Skip to content

Commit c8a2cb6

Browse files
authored
Merge pull request #5571 from ethereum/develop
Version 0.5.1
2 parents 1d4f565 + 590be1d commit c8a2cb6

File tree

425 files changed

+7166
-4602
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

425 files changed

+7166
-4602
lines changed

.circleci/config.yml

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ defaults:
1414
command: |
1515
mkdir -p build
1616
cd build
17+
[ -n "$COVERAGE" -a "$CIRCLE_BRANCH" != release -a -z "$CIRCLE_TAG" ] && CMAKE_OPTIONS="$CMAKE_OPTIONS -DCOVERAGE=ON"
1718
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo $CMAKE_OPTIONS
1819
make -j4
1920
- run_tests: &run_tests
@@ -53,7 +54,7 @@ jobs:
5354
name: Save Boost build
5455
key: *boost-cache-key
5556
paths:
56-
- boost_1_57_0
57+
- boost_1_67_0
5758
- store_artifacts:
5859
path: build/libsolc/soljson.js
5960
destination: soljson.js
@@ -122,7 +123,7 @@ jobs:
122123
- image: buildpack-deps:artful
123124
environment:
124125
TERM: xterm
125-
CMAKE_OPTIONS: -DCOVERAGE=OFF
126+
COVERAGE: "ON"
126127
steps:
127128
- checkout
128129
- run:
@@ -139,13 +140,35 @@ jobs:
139140
paths:
140141
- "*"
141142

143+
build_x86_archlinux:
144+
docker:
145+
- image: archlinux/base
146+
environment:
147+
TERM: xterm
148+
steps:
149+
- run:
150+
name: Install build dependencies
151+
command: |
152+
pacman --noconfirm -Syu --noprogressbar --needed base-devel boost cmake z3 cvc4 git openssh tar
153+
- checkout
154+
- run: *setup_prerelease_commit_hash
155+
- run: *run_build
156+
- store_artifacts: *solc_artifact
157+
- persist_to_workspace:
158+
root: build
159+
paths:
160+
- solc/solc
161+
- test/soltest
162+
- test/tools/solfuzzer
163+
142164
build_x86_clang7:
143165
docker:
144166
- image: buildpack-deps:cosmic
145167
environment:
146168
TERM: xterm
147169
CC: /usr/bin/clang-7
148170
CXX: /usr/bin/clang++-7
171+
CMAKE_OPTIONS: -DLLL=ON
149172
steps:
150173
- checkout
151174
- run:
@@ -167,6 +190,7 @@ jobs:
167190
xcode: "10.0.0"
168191
environment:
169192
TERM: xterm
193+
CMAKE_OPTIONS: -DLLL=ON
170194
steps:
171195
- checkout
172196
- run:
@@ -260,6 +284,27 @@ jobs:
260284
path: test_results/
261285
destination: test_results/
262286

287+
test_x86_archlinux:
288+
docker:
289+
- image: archlinux/base
290+
environment:
291+
TERM: xterm
292+
steps:
293+
- run:
294+
name: Install dependencies
295+
command: |
296+
pacman --noconfirm -Syu --noprogressbar --needed boost z3 cvc4 git openssh tar
297+
- checkout
298+
- attach_workspace:
299+
at: build
300+
- run: mkdir -p test_results
301+
- run: build/test/soltest --logger=JUNIT,test_suite,test_results/result.xml -- --no-ipc --testpath test
302+
- store_test_results:
303+
path: test_results/
304+
- store_artifacts:
305+
path: test_results/
306+
destination: test_results/
307+
263308
test_x86_mac:
264309
macos:
265310
xcode: "10.0.0"
@@ -330,3 +375,8 @@ workflows:
330375
requires:
331376
- build_x86_mac
332377
- docs: *build_on_tags
378+
- build_x86_archlinux: *build_on_tags
379+
- test_x86_archlinux:
380+
<<: *build_on_tags
381+
requires:
382+
- build_x86_archlinux

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ about: Bug reports about the Solidity Compiler.
2121
## Environment
2222

2323
- Compiler version:
24+
- Target EVM version (as per compiler settings):
2425
- Framework/IDE (e.g. Truffle or Remix):
2526
- EVM execution environment / backend / blockchain client:
2627
- Operating system:

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ matrix:
9090
before_install:
9191
- nvm install 8
9292
- nvm use 8
93-
- docker pull trzeci/emscripten:sdk-tag-1.35.4-64bit
93+
- docker pull trzeci/emscripten:sdk-tag-1.37.21-64bit
9494
env:
9595
- SOLC_EMSCRIPTEN=On
9696
- SOLC_INSTALL_DEPS_TRAVIS=Off
@@ -153,7 +153,7 @@ git:
153153
cache:
154154
ccache: true
155155
directories:
156-
- boost_1_57_0
156+
- boost_1_67_0
157157
- $HOME/.local
158158

159159
install:

CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@ include(EthPolicy)
88
eth_policy()
99

1010
# project name and version should be set after cmake_policy CMP0048
11-
set(PROJECT_VERSION "0.5.0")
11+
set(PROJECT_VERSION "0.5.1")
1212
project(solidity VERSION ${PROJECT_VERSION})
1313

14+
option(LLL "Build LLL" OFF)
1415
option(SOLC_LINK_STATIC "Link solc executable statically on supported platforms" OFF)
1516
option(LLLC_LINK_STATIC "Link lllc executable statically on supported platforms" OFF)
16-
option(INSTALL_LLLC "Include lllc executable in installation" OFF)
17+
option(INSTALL_LLLC "Include lllc executable in installation" ${LLL})
1718

1819
# Setup cccache.
1920
include(EthCcache)
@@ -44,14 +45,18 @@ include(EthOptions)
4445
configure_project(TESTS)
4546

4647
add_subdirectory(libdevcore)
48+
add_subdirectory(liblangutil)
4749
add_subdirectory(libevmasm)
50+
add_subdirectory(libyul)
4851
add_subdirectory(libsolidity)
4952
add_subdirectory(libsolc)
5053

5154
if (NOT EMSCRIPTEN)
5255
add_subdirectory(solc)
53-
add_subdirectory(liblll)
54-
add_subdirectory(lllc)
56+
if (LLL)
57+
add_subdirectory(liblll)
58+
add_subdirectory(lllc)
59+
endif()
5560
endif()
5661

5762
if (TESTS AND NOT EMSCRIPTEN)

Changelog.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,44 @@
1+
### 0.5.1 (2018-12-03)
2+
3+
Language Features:
4+
* Allow mapping type for parameters and return variables of public and external library functions.
5+
* Allow public functions to override external functions.
6+
7+
Compiler Features:
8+
* Code generator: Do not perform redundant double cleanup on unsigned integers when loading from calldata.
9+
* Commandline interface: Experimental ``--optimize`` option for assembly mode (``--strict-assembly`` and ``--yul``).
10+
* SMTChecker: SMTLib2 queries and responses passed via standard JSON compiler interface.
11+
* SMTChecker: Support ``msg``, ``tx`` and ``block`` member variables.
12+
* SMTChecker: Support ``gasleft()`` and ``blockhash()`` functions.
13+
* SMTChecker: Support internal bound function calls.
14+
* Yul: Support Yul objects in ``--assemble``, ``--strict-assembly`` and ``--yul`` commandline options.
15+
16+
Bugfixes:
17+
* Assembly output: Do not mix in/out jump annotations with arguments.
18+
* Commandline interface: Fix crash when using ``--ast`` on empty runtime code.
19+
* Code Generator: Annotate jump from calldata decoder to function as "jump in".
20+
* Code Generator: Fix internal error related to state variables of function type access via base contract name.
21+
* Optimizer: Fix nondeterminism bug related to the boost version and constants representation. The bug only resulted in less optimal but still correct code because the generated routine is always verified to be correct.
22+
* Type Checker: Properly detect different return types when overriding an external interface function with a public contract function.
23+
* Type Checker: Disallow struct return types for getters of public state variables unless the new ABI encoder is active.
24+
* Type Checker: Fix internal compiler error when a field of a struct used as a parameter in a function type has a non-existent type.
25+
* Type Checker: Disallow functions ``sha3`` and ``suicide`` also without a function call.
26+
* Type Checker: Fix internal compiler error with ``super`` when base contract function is not implemented.
27+
* Type Checker: Fixed internal error when trying to create abstract contract in some cases.
28+
* Type Checker: Fixed internal error related to double declaration of events.
29+
* Type Checker: Disallow inline arrays of mapping type.
30+
* Type Checker: Consider abstract function to be implemented by public state variable.
31+
32+
Build System:
33+
* CMake: LLL is not built anymore by default. Must configure it with CMake as `-DLLL=ON`.
34+
* Docker: Includes both Scratch and Alpine images.
35+
* Emscripten: Upgrade to Emscripten SDK 1.37.21 and boost 1.67.
36+
37+
Solc-Js:
38+
* Fix handling of standard-json in the commandline executable.
39+
* Remove support of nodejs 4.
40+
41+
142
### 0.5.0 (2018-11-13)
243

344
How to update your code:

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,6 @@ if you want to help.
6262
[@chriseth](https://github.com/chriseth)
6363

6464
## License
65-
Solidity is licensed under [GNU General Public License v3.0](https://github.com/ethereum/solidity/blob/develop/LICENSE.txt)
65+
Solidity is licensed under [GNU General Public License v3.0](LICENSE.txt)
6666

67+
Some third-party code has its [own licensing terms](cmake/templates/license.h.in).

cmake/templates/license.h.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jsoncpp:
6767
license you like.
6868

6969
scanner/token:
70-
The libsolidity/parsing/{scanner,token}.{h,cpp} files are dervied from
70+
The liblangutil/{CharStream,Scanner,Token}.{h,cpp} files are dervied from
7171
code originating from the V8 project licensed under the following terms:
7272

7373
Copyright 2006-2012, the V8 project authors. All rights reserved.

docs/bugs_by_version.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,5 +612,9 @@
612612
"0.5.0": {
613613
"bugs": [],
614614
"released": "2018-11-13"
615+
},
616+
"0.5.1": {
617+
"bugs": [],
618+
"released": "2018-12-03"
615619
}
616620
}

0 commit comments

Comments
 (0)