Skip to content

Commit 124ca40

Browse files
authored
Merge pull request #3950 from ethereum/develop
Merge develop into release for 0.4.23
2 parents 4cb486e + 7fb431a commit 124ca40

File tree

62 files changed

+888
-533
lines changed

Some content is hidden

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

62 files changed

+888
-533
lines changed

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ cache:
159159
install:
160160
- test $SOLC_INSTALL_DEPS_TRAVIS != On || (scripts/install_deps.sh)
161161
- test "$TRAVIS_OS_NAME" != "linux" || (scripts/install_cmake.sh)
162-
# - if [ "$TRAVIS_BRANCH" != release -a -z "$TRAVIS_TAG" ]; then SOLC_TESTS=Off; fi
162+
# 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
163164
- SOLC_TESTS=Off
164165
- if [ "$TRAVIS_BRANCH" = release -o -n "$TRAVIS_TAG" ]; then echo -n > prerelease.txt; else date -u +"nightly.%Y.%-m.%-d" > prerelease.txt; fi
165166
- echo -n "$TRAVIS_COMMIT" > commit_hash.txt

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.4.22")
11+
set(PROJECT_VERSION "0.4.23")
1212
project(solidity VERSION ${PROJECT_VERSION})
1313

1414
option(SOLC_LINK_STATIC "Link solc executable statically on supported platforms" OFF)

CODING_STYLE.md

Lines changed: 163 additions & 182 deletions
Large diffs are not rendered by default.

Changelog.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
### 0.4.23 (2018-04-19)
2+
3+
Features:
4+
* Build system: Support Ubuntu Bionic.
5+
* SMTChecker: Integration with CVC4 SMT solver
6+
* Syntax Checker: Warn about functions named "constructor".
7+
8+
Bugfixes:
9+
* Type Checker: Improve error message for failed function overload resolution.
10+
* Type Checker: Do not complain about new-style constructor and fallback function to have the same name.
11+
* Type Checker: Detect multiple constructor declarations in the new syntax and old syntax.
12+
* Type Checker: Explicit conversion of ``bytesXX`` to ``contract`` is properly disallowed.
13+
114
### 0.4.22 (2018-04-16)
215

316
Features:
@@ -25,7 +38,6 @@ Features:
2538
* Syntax Tests: Add source locations to syntax test expectations.
2639
* Type Checker: Improve documentation and warnings for accessing contract members inherited from ``address``.
2740

28-
2941
Bugfixes:
3042
* Code Generator: Allow ``block.blockhash`` without being called.
3143
* Code Generator: Do not include internal functions in the runtime bytecode which are only referenced in the constructor.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ Solidity is still under development. So please do not hesitate and open an [issu
1414
See the [Solidity documentation](https://solidity.readthedocs.io/en/latest/installing-solidity.html#building-from-source) for build instructions.
1515

1616
## How to Contribute
17-
Please see our contribution guidelines in [the Solidity documentation](https://solidity.readthedocs.io/en/latest/contributing.html).
17+
Please see our [contribution guidelines](https://solidity.readthedocs.io/en/latest/contributing.html) in the Solidity documentation.
1818

1919
Any contributions are welcome!

ReleaseChecklist.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
Checklist for making a release:
22

3-
- [ ] Check that all "nextrelease" issues and pull requests are merged to ``develop``.
4-
- [ ] Create a commit in ``develop`` that updates the ``Changelog`` to include a release date (run the tests locally to update the bug list).
3+
- [ ] Ensure that a Github project exists for the release.
4+
- [ ] Check that all issues and pull requests from the Github project to be released are merged to ``develop``.
5+
- [ ] Create a commit in ``develop`` that updates the ``Changelog`` to include a release date (run ``./scripts/tests.sh`` to update the bug list). Sort the changelog entries alphabetically and correct any errors you notice.
56
- [ ] Create a pull request and wait for the tests, merge it.
67
- [ ] Create a pull request from ``develop`` to ``release``, wait for the tests, then merge it.
78
- [ ] Make a final check that there are no platform-dependency issues in the ``solc-test-bytecode`` repository.
89
- [ ] Wait for the tests for the commit on ``release``, create a release in Github, creating the tag.
910
- [ ] Thank voluntary contributors in the Github release page (use ``git shortlog -s -n -e origin/release..origin/develop``).
1011
- [ ] Wait for the CI runs on the tag itself (they should push artefacts onto the Github release page).
1112
- [ ] Run ``scripts/release_ppa.sh release`` to create the PPA release (you need the relevant openssl key).
12-
- [ ] Check that the Docker release was pushed to Docker Hub (this still seems to have problems).
13+
- [ ] Check that the Docker release was pushed to Docker Hub (this still seems to have problems, run ``./scripts/docker_deploy_manual.sh release``).
1314
- [ ] Update the homebrew realease in https://github.com/ethereum/homebrew-ethereum/blob/master/solidity.rb (version and hash)
1415
- [ ] Update the default version on readthedocs.
1516
- [ ] Make a release of ``solc-js``: Increment the version number, create a pull request for that, merge it after tests succeeded.

cmake/EthCompilerSettings.cmake

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -43,27 +43,6 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
4343
# TODO - Track down what breaks if we do NOT do this.
4444
add_compile_options(-Wno-unknown-pragmas)
4545

46-
# To get the code building on FreeBSD and Arch Linux we seem to need the following
47-
# warning suppression to work around some issues in Boost headers.
48-
#
49-
# See the following reports:
50-
# https://github.com/ethereum/webthree-umbrella/issues/384
51-
# https://github.com/ethereum/webthree-helpers/pull/170
52-
#
53-
# The issue manifest as warnings-as-errors like the following:
54-
#
55-
# /usr/local/include/boost/multiprecision/cpp_int.hpp:181:4: error:
56-
# right operand of shift expression '(1u << 63u)' is >= than the precision of the left operand
57-
#
58-
# -fpermissive is a pretty nasty way to address this. It is described as follows:
59-
#
60-
# Downgrade some diagnostics about nonconformant code from errors to warnings.
61-
# Thus, using -fpermissive will allow some nonconforming code to compile.
62-
#
63-
# NB: Have to use this form for the setting, so that it only applies to C++ builds.
64-
# Applying -fpermissive to a C command-line (ie. secp256k1) gives a build error.
65-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
66-
6746
# Configuration-specific compiler settings.
6847
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DETH_DEBUG")
6948
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
@@ -82,18 +61,6 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
8261

8362
# Additional Clang-specific compiler settings.
8463
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
85-
86-
# A couple of extra warnings suppressions which we seemingly
87-
# need when building with Clang.
88-
#
89-
# TODO - Nail down exactly where these warnings are manifesting and
90-
# try to suppress them in a more localized way. Notes in this file
91-
# indicate that the first is needed for sepc256k1 and that the
92-
# second is needed for the (clog, cwarn) macros. These will need
93-
# testing on at least OS X and Ubuntu.
94-
add_compile_options(-Wno-unused-function)
95-
add_compile_options(-Wno-dangling-else)
96-
9764
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
9865
# Set stack size to 16MB - by default Apple's clang defines a stack size of 8MB, some tests require more.
9966
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-stack_size -Wl,0x1000000")

cmake/FindCVC4.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
find_path(CVC4_INCLUDE_DIR cvc4/cvc4.h)
2+
find_library(CVC4_LIBRARY NAMES cvc4 )
3+
include(FindPackageHandleStandardArgs)
4+
find_package_handle_standard_args(CVC4 DEFAULT_MSG CVC4_LIBRARY CVC4_INCLUDE_DIR)

cmake/FindGMP.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
find_library(GMP_LIBRARY NAMES gmp )
2+
include(FindPackageHandleStandardArgs)
3+
find_package_handle_standard_args(GMP DEFAULT_MSG GMP_LIBRARY)

docs/bugs.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
[
2+
{
3+
"name": "OneOfTwoConstructorsSkipped",
4+
"summary": "If a contract has both a new-style constructor (using the constructor keyword) and an old-style constructor (a function with the same name as the contract) at the same time, one of them will be ignored.",
5+
"description": "If a contract has both a new-style constructor (using the constructor keyword) and an old-style constructor (a function with the same name as the contract) at the same time, one of them will be ignored. There will be a compiler warning about the old-style constructor, so contracts only using new-style constructors are fine.",
6+
"introduced": "0.4.22",
7+
"fixed": "0.4.23",
8+
"severity": "very low"
9+
},
210
{
311
"name": "ZeroFunctionSelector",
412
"summary": "It is possible to craft the name of a function such that it is executed instead of the fallback function in very specific circumstances.",

0 commit comments

Comments
 (0)