Skip to content

Commit 1df8f40

Browse files
authored
Merge pull request #5697 from ethereum/develop
Merge develop into release for 0.5.2
2 parents c8a2cb6 + ddf54b2 commit 1df8f40

File tree

512 files changed

+7656
-2689
lines changed

Some content is hidden

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

512 files changed

+7656
-2689
lines changed

.circleci/config.yml

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ defaults:
1515
mkdir -p build
1616
cd build
1717
[ -n "$COVERAGE" -a "$CIRCLE_BRANCH" != release -a -z "$CIRCLE_TAG" ] && CMAKE_OPTIONS="$CMAKE_OPTIONS -DCOVERAGE=ON"
18-
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo $CMAKE_OPTIONS
18+
cmake .. -DCMAKE_BUILD_TYPE=Release $CMAKE_OPTIONS
1919
make -j4
2020
- run_tests: &run_tests
2121
name: Tests
@@ -68,7 +68,7 @@ jobs:
6868
- version.txt
6969
test_emscripten_solcjs:
7070
docker:
71-
- image: trzeci/emscripten:sdk-tag-1.37.21-64bit
71+
- image: circleci/node:10
7272
environment:
7373
TERM: xterm
7474
steps:
@@ -78,23 +78,15 @@ jobs:
7878
- run:
7979
name: Install external tests deps
8080
command: |
81-
apt-get -qq update
82-
apt-get -qy install netcat curl
83-
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | NVM_DIR=/usr/local/nvm bash
84-
export NVM_DIR="/usr/local/nvm"
85-
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
86-
nvm --version
87-
nvm install 8
8881
node --version
8982
npm --version
9083
- run:
9184
name: Test solcjs
9285
command: |
93-
. /usr/local/nvm/nvm.sh
9486
test/solcjsTests.sh /tmp/workspace/soljson.js $(cat /tmp/workspace/version.txt)
9587
test_emscripten_external:
9688
docker:
97-
- image: trzeci/emscripten:sdk-tag-1.37.21-64bit
89+
- image: circleci/node:10
9890
environment:
9991
TERM: xterm
10092
steps:
@@ -104,19 +96,11 @@ jobs:
10496
- run:
10597
name: Install external tests deps
10698
command: |
107-
apt-get -qq update
108-
apt-get -qy install netcat curl
109-
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | NVM_DIR=/usr/local/nvm bash
110-
export NVM_DIR="/usr/local/nvm"
111-
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
112-
nvm --version
113-
nvm install 8
11499
node --version
115100
npm --version
116101
- run:
117102
name: External tests
118103
command: |
119-
. /usr/local/nvm/nvm.sh
120104
test/externalTests.sh /tmp/workspace/soljson.js || test/externalTests.sh /tmp/workspace/soljson.js
121105
build_x86_linux:
122106
docker:

.travis.yml

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,18 @@ matrix:
5555
env:
5656
- ZIP_SUFFIX=ubuntu-trusty
5757
- SOLC_STOREBYTECODE=On
58+
before_install:
59+
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
60+
- sudo add-apt-repository -y ppa:mhier/libboost-latest
61+
- sudo add-apt-repository -y ppa:hvr/z3
62+
- sudo apt-get update -qq
63+
install:
64+
- sudo apt-get install -qq g++-8 gcc-8
65+
- sudo apt-get install -qq libboost1.67-dev
66+
- sudo apt-get install -qq libleveldb1
67+
- sudo apt-get install -qq libz3-dev
68+
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 90
69+
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 90
5870

5971
- os: linux
6072
dist: trusty
@@ -63,6 +75,18 @@ matrix:
6375
env:
6476
- ZIP_SUFFIX=ubuntu-trusty-clang
6577
- SOLC_STOREBYTECODE=On
78+
before_install:
79+
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
80+
- sudo add-apt-repository -y ppa:mhier/libboost-latest
81+
- sudo add-apt-repository -y ppa:hvr/z3
82+
- sudo apt-get update -qq
83+
install:
84+
- sudo apt-get install -qq g++-8 gcc-8
85+
- sudo apt-get install -qq libboost1.67-dev
86+
- sudo apt-get install -qq libleveldb1
87+
- sudo apt-get install -qq libz3-dev
88+
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 90
89+
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 90
6690

6791
# Docker target, which generates a statically linked alpine image
6892
- os: linux
@@ -159,18 +183,15 @@ cache:
159183
install:
160184
- test $SOLC_INSTALL_DEPS_TRAVIS != On || (scripts/install_deps.sh)
161185
- test "$TRAVIS_OS_NAME" != "linux" || (scripts/install_cmake.sh)
186+
187+
before_script:
162188
# Disable tests unless run on the release branch, on tags or with daily cron
163-
#- if [ "$TRAVIS_BRANCH" != release -a -z "$TRAVIS_TAG" -a "$TRAVIS_EVENT_TYPE" != cron ]; then SOLC_TESTS=Off; fi
164-
- SOLC_TESTS=Off
189+
- if [ "$TRAVIS_BRANCH" != release -a -z "$TRAVIS_TAG" -a "$TRAVIS_EVENT_TYPE" != cron ]; then SOLC_TESTS=Off; fi
165190
- if [ "$TRAVIS_BRANCH" = release -o -n "$TRAVIS_TAG" ]; then echo -n > prerelease.txt; else date -u +"nightly.%Y.%-m.%-d" > prerelease.txt; fi
166191
- echo -n "$TRAVIS_COMMIT" > commit_hash.txt
167-
168-
before_script:
169192
- test $SOLC_EMSCRIPTEN != On || (scripts/build_emscripten.sh)
170193
- test $SOLC_DOCKER != On || (scripts/docker_build.sh)
171-
- test $SOLC_RELEASE != On || (scripts/build.sh $SOLC_BUILD_TYPE
172-
&& scripts/release.sh $ZIP_SUFFIX
173-
&& scripts/create_source_tarball.sh)
194+
- test $SOLC_RELEASE != On || (scripts/build.sh $SOLC_BUILD_TYPE -DBoost_USE_STATIC_LIBS=OFF && scripts/create_source_tarball.sh)
174195

175196
script:
176197
- test $SOLC_EMSCRIPTEN != On -o $SOLC_TESTS != On || (scripts/test_emscripten.sh)
@@ -204,7 +225,7 @@ deploy:
204225
- release
205226
- /^v\d/
206227
# This is the deploy target for the native build (Linux and macOS)
207-
# which generates ZIPs per commit and the source tarball.
228+
# which generates the source tarball.
208229
#
209230
# This runs for each tag that is created and adds the corresponding files.
210231
- provider: releases

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ include(EthPolicy)
88
eth_policy()
99

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

1414
option(LLL "Build LLL" OFF)

Changelog.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
1+
### 0.5.2 (2018-12-19)
2+
3+
Language Features:
4+
* Control Flow Graph: Detect every access to uninitialized storage pointers.
5+
6+
7+
Compiler Features:
8+
* Inline Assembly: Improve error messages around invalid function argument count.
9+
* Code Generator: Only check callvalue once if all functions are non-payable.
10+
* Code Generator: Use codecopy for string constants more aggressively.
11+
* Code Generator: Use binary search for dispatch function if more efficient. The size/speed tradeoff can be tuned using ``--optimize-runs``.
12+
* SMTChecker: Support mathematical and cryptographic functions in an uninterpreted way.
13+
* SMTChecker: Support one-dimensional mappings.
14+
* Standard JSON Interface: Disallow unknown keys in standard JSON input.
15+
* Standard JSON Interface: Only run code generation if it has been requested. This could lead to unsupported feature errors only being reported at the point where you request bytecode.
16+
* Static Analyzer: Do not warn about unused variables or state mutability for functions with an empty body.
17+
* Type Checker: Add an additional reason to be displayed when type conversion fails.
18+
* Yul: Support object access via ``datasize``, ``dataoffset`` and ``datacopy`` in standalone assembly mode.
19+
20+
21+
Bugfixes:
22+
* Standard JSON Interface: Report specific error message for json input errors instead of internal compiler error.
23+
24+
25+
Build System:
26+
* Replace the trusty PPA build by a static build on cosmic that is used for the trusty package instead.
27+
* Remove support for Visual Studio 2015.
28+
29+
130
### 0.5.1 (2018-12-03)
231

332
Language Features:

ReleaseChecklist.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Checklist for making a release:
1010
- [ ] Thank voluntary contributors in the Github release page (use ``git shortlog -s -n -e origin/release..origin/develop``).
1111
- [ ] Wait for the CI runs on the tag itself (they should push artifacts onto the Github release page).
1212
- [ ] Run ``scripts/release_ppa.sh release`` to create the PPA release (you need the relevant openssl key).
13+
- [ ] Once the ``~ethereum/ubuntu/ethereum-static`` PPA build is finished and published for all platforms (make sure not to do this earlier), copy the static package to the ``~ethereum/ubuntu/ethereum`` PPA for the destination series ``Trusty`` while selecting ``Copy existing binaries``.
1314
- [ ] Check that the Docker release was pushed to Docker Hub (this still seems to have problems, run ``./scripts/docker_deploy_manual.sh release``).
1415
- [ ] Update the homebrew realease in https://github.com/ethereum/homebrew-ethereum/blob/master/solidity.rb (version and hash)
1516
- [ ] Update the default version on readthedocs.

appveyor.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@ branches:
3232
- release
3333
- develop
3434
configuration:
35-
- RelWithDebInfo
35+
- Release
3636
environment:
3737
matrix:
38-
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
3938
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
4039
# This is used for pushing to solidity-test-bytecodes
4140
priv_key:
@@ -63,12 +62,11 @@ install:
6362
before_build:
6463
- if not exist build mkdir build
6564
- cd build
66-
- if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2015" ( cmake -G "Visual Studio 14 2015 Win64" .. -DTESTS=On )
67-
else ( cmake -G "Visual Studio 15 2017 Win64" .. -DTESTS=On )
65+
- cmake -G "Visual Studio 15 2017 Win64" .. -DTESTS=On
6866
build_script:
6967
- msbuild solidity.sln /p:Configuration=%CONFIGURATION% /m:%NUMBER_OF_PROCESSORS% /v:minimal
7068
- cd %APPVEYOR_BUILD_FOLDER%
71-
- if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" ( scripts\release.bat %CONFIGURATION% 2017 )
69+
- scripts\release.bat %CONFIGURATION% 2017
7270
- ps: $bytecodedir = git show -s --format="%cd-%H" --date=short
7371

7472
test_script:

cmake/EthCompilerSettings.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ eth_add_cxx_compiler_flag_if_supported(-Wimplicit-fallthrough)
2525

2626
if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
2727

28-
# Use ISO C++11 standard language.
29-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
28+
# Use ISO C++14 standard language.
29+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
3030

3131
# Enables all the warnings about constructions that some users consider questionable,
3232
# and that are easy to avoid. Also enable some extra warning flags that are not

cmake/FindCLN.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
find_library(CLN_LIBRARY NAMES cln)
22
include(FindPackageHandleStandardArgs)
33
find_package_handle_standard_args(CLN DEFAULT_MSG CLN_LIBRARY)
4+
5+
if(CLN_FOUND AND NOT TARGET CLN::CLN)
6+
add_library(CLN::CLN UNKNOWN IMPORTED)
7+
set_property(TARGET CLN::CLN PROPERTY IMPORTED_LOCATION ${CLN_LIBRARY})
8+
endif()

cmake/FindCVC4.cmake

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,19 @@ if (USE_CVC4)
1414
set(CVC4_LIBRARIES ${CVC4_LIBRARY})
1515

1616
if (CLN_FOUND)
17-
set(CVC4_LIBRARIES ${CVC4_LIBRARIES} ${CLN_LIBRARY})
17+
set(CVC4_LIBRARIES ${CVC4_LIBRARIES} CLN::CLN)
1818
endif ()
1919

2020
if (GMP_FOUND)
21-
set(CVC4_LIBRARIES ${CVC4_LIBRARIES} ${GMP_LIBRARY})
21+
set(CVC4_LIBRARIES ${CVC4_LIBRARIES} GMP::GMP)
2222
endif ()
23+
24+
if (NOT TARGET CVC4::CVC4)
25+
add_library(CVC4::CVC4 UNKNOWN IMPORTED)
26+
set_property(TARGET CVC4::CVC4 PROPERTY IMPORTED_LOCATION ${CVC4_LIBRARY})
27+
set_property(TARGET CVC4::CVC4 PROPERTY INTERFACE_LINK_LIBRARIES ${CVC4_LIBRARIES})
28+
set_property(TARGET CVC4::CVC4 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CVC4_INCLUDE_DIR})
29+
endif()
2330
endif()
2431
else()
2532
set(CVC4_FOUND FALSE)

cmake/FindGMP.cmake

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
find_library(GMP_LIBRARY NAMES gmp )
1+
find_library(GMP_LIBRARY NAMES gmp)
22
include(FindPackageHandleStandardArgs)
33
find_package_handle_standard_args(GMP DEFAULT_MSG GMP_LIBRARY)
4+
5+
if(GMP_FOUND AND NOT TARGET GMP::GMP)
6+
add_library(GMP::GMP UNKNOWN IMPORTED)
7+
set_property(TARGET GMP::GMP PROPERTY IMPORTED_LOCATION ${GMP_LIBRARY})
8+
endif()

0 commit comments

Comments
 (0)