Skip to content

Commit 8dda952

Browse files
authored
Merge pull request #8341 from ethereum/develop
Merge develop into release for 0.6.3
2 parents bacdbe5 + c2e22d4 commit 8dda952

File tree

435 files changed

+12385
-3208
lines changed

Some content is hidden

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

435 files changed

+12385
-3208
lines changed

.circleci/config.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ defaults:
6262
path: build/solc/solc
6363
destination: solc
6464

65+
# compiled tool executable target
66+
- artifacts_tools: &artifacts_tools
67+
path: build/tools/solidity-upgrade
68+
destination: solidity-upgrade
69+
6570
# compiled executable targets
6671
- artifacts_executables: &artifacts_executables
6772
root: build
@@ -257,6 +262,22 @@ jobs:
257262
name: Check for C++ coding style
258263
command: ./scripts/check_style.sh
259264

265+
chk_pylint:
266+
docker:
267+
- image: buildpack-deps:eoan
268+
steps:
269+
- checkout
270+
- run:
271+
name: Install pip
272+
command: apt -q update && apt install -y python3-pip
273+
- run:
274+
name: Install pylint
275+
command: python3 -m pip install pylint z3-solver pygments-lexer-solidity
276+
# also z3-solver to make sure pylint knows about this module, pygments-lexer-solidity for docs
277+
- run:
278+
name: Linting Python Scripts
279+
command: ./scripts/pylint_all.py
280+
260281
chk_buglist:
261282
docker:
262283
- image: circleci/node
@@ -308,6 +329,7 @@ jobs:
308329
- checkout
309330
- run: *run_build
310331
- store_artifacts: *artifacts_solc
332+
- store_artifacts: *artifacts_tools
311333
- persist_to_workspace: *artifacts_executables
312334

313335
b_ubu_release: &build_ubuntu1904_release
@@ -391,8 +413,8 @@ jobs:
391413
- run:
392414
name: Regression tests
393415
command: |
416+
git clone https://github.com/ethereum/solidity-fuzzing-corpus /tmp/solidity-fuzzing-corpus
394417
mkdir -p test_results
395-
export ASAN_OPTIONS="check_initialization_order=true:detect_stack_use_after_return=true:strict_init_order=true:strict_string_checks=true:detect_invalid_pointer_pairs=2"
396418
scripts/regressions.py -o test_results
397419
- run: *gitter_notify_failure
398420
- run: *gitter_notify_success
@@ -439,6 +461,7 @@ jobs:
439461
- /usr/local/Homebrew
440462
- run: *run_build
441463
- store_artifacts: *artifacts_solc
464+
- store_artifacts: *artifacts_tools
442465
- persist_to_workspace: *artifacts_build_dir
443466

444467
t_osx_soltest:
@@ -718,6 +741,7 @@ workflows:
718741
# DISABLED FOR 0.6.0 - chk_docs_examples: *workflow_trigger_on_tags
719742
- chk_buglist: *workflow_trigger_on_tags
720743
- chk_proofs: *workflow_trigger_on_tags
744+
- chk_pylint: *workflow_trigger_on_tags
721745

722746
# build-only
723747
- b_docs: *workflow_trigger_on_tags

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ docs/utils/*.pyc
4040
/deps/downloads/
4141
deps/install
4242
deps/cache
43+
cmake-build-debug/
4344

4445
# vim stuff
4546
[._]*.sw[a-p]

CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ include(EthPolicy)
1010
eth_policy()
1111

1212
# project name and version should be set after cmake_policy CMP0048
13-
set(PROJECT_VERSION "0.6.2")
13+
set(PROJECT_VERSION "0.6.3")
1414
project(solidity VERSION ${PROJECT_VERSION} LANGUAGES C CXX)
1515

1616
include(TestBigEndian)
@@ -55,6 +55,7 @@ add_subdirectory(libevmasm)
5555
add_subdirectory(libyul)
5656
add_subdirectory(libsolidity)
5757
add_subdirectory(libsolc)
58+
add_subdirectory(tools)
5859

5960
if (NOT EMSCRIPTEN)
6061
add_subdirectory(solc)

Changelog.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
### 0.6.3 (2020-02-18)
2+
3+
Language Features:
4+
* Allow contract types and enums as keys for mappings.
5+
* Allow function selectors to be used as compile-time constants.
6+
* Report source locations for structured documentation errors.
7+
8+
9+
10+
Compiler Features:
11+
* AST: Add a new node for doxygen-style, structured documentation that can be received by contract, function, event and modifier definitions.
12+
* Code Generator: Use ``calldatacopy`` instead of ``codecopy`` to zero out memory past input.
13+
* Debug: Provide reason strings for compiler-generated internal reverts when using the ``--revert-strings`` option or the ``settings.debug.revertStrings`` setting on ``debug`` mode.
14+
* Yul Optimizer: Prune functions that call each other but are otherwise unreferenced.
15+
16+
17+
Bugfixes:
18+
* Assembly: Added missing `source` field to legacy assembly json output to complete the source reference.
19+
* Parser: Fix an internal error for ``abstract`` without ``contract``.
20+
* Type Checker: Make invalid calls to uncallable types fatal errors instead of regular.
21+
22+
23+
124
### 0.6.2 (2020-01-27)
225

326
Language Features:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# The Solidity Contract-Oriented Programming Language
2-
[![Join the chat at https://gitter.im/ethereum/solidity](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ethereum/solidity?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2+
You can talk to us on [![solidity at https://gitter.im/ethereum/solidity](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ethereum/solidity?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge). Questions, feedback and suggestions are welcome!
33

44
Solidity is a statically typed, contract-oriented, high-level language for implementing smart contracts on the Ethereum platform.
55

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ test_script:
7171
- soltest.exe --show-progress -- --testpath %APPVEYOR_BUILD_FOLDER%\test --no-smt
7272
# Skip bytecode compare if private key is not available
7373
- cd %APPVEYOR_BUILD_FOLDER%
74-
- ps: if ($env:priv_key) {
74+
- ps: if ($env:priv_key -and -not $env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT) {
7575
scripts\bytecodecompare\storebytecode.bat $Env:CONFIGURATION $bytecodedir
7676
}
7777
- cd %APPVEYOR_BUILD_FOLDER%\build\test\%CONFIGURATION%

cmake/EthCompilerSettings.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
5454
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 5.0 or greater.")
5555
endif ()
5656

57+
# Use fancy colors in the compiler diagnostics
58+
add_compile_options(-fdiagnostics-color)
59+
5760
# Additional Clang-specific compiler settings.
5861
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
5962
if ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")

cmake/toolchains/libfuzzer.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ set(USE_CVC4 OFF CACHE BOOL "Disable CVC4" FORCE)
77
set(OSSFUZZ ON CACHE BOOL "Enable fuzzer build" FORCE)
88
# Use libfuzzer as the fuzzing back-end
99
set(LIB_FUZZING_ENGINE "-fsanitize=fuzzer" CACHE STRING "Use libfuzzer back-end" FORCE)
10-
# clang/libfuzzer specific flags for ASan instrumentation
11-
set(CMAKE_CXX_FLAGS "-O1 -gline-tables-only -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link -stdlib=libstdc++" CACHE STRING "Custom compilation flags" FORCE)
10+
# clang/libfuzzer specific flags for UBSan instrumentation
11+
set(CMAKE_CXX_FLAGS "-O1 -gline-tables-only -fsanitize=undefined -fsanitize=fuzzer-no-link -stdlib=libstdc++" CACHE STRING "Custom compilation flags" FORCE)

docs/050-breaking-changes.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ This section highlights changes that affect syntax and semantics.
6363
last one only works for value types). Change every ``keccak256(a, b, c)`` to
6464
``keccak256(abi.encodePacked(a, b, c))``. Even though it is not a breaking
6565
change, it is suggested that developers change
66-
``x.call(bytes4(keccak256("f(uint256)"), a, b)`` to
66+
``x.call(bytes4(keccak256("f(uint256)")), a, b)`` to
6767
``x.call(abi.encodeWithSignature("f(uint256)", a, b))``.
6868

6969
* Functions ``.call()``, ``.delegatecall()`` and ``.staticcall()`` now return
@@ -455,7 +455,7 @@ New version:
455455
uint z = someInteger();
456456
x += z;
457457
// Throw is now disallowed.
458-
require(x > 100);
458+
require(x <= 100);
459459
int y = -3 >> 1;
460460
require(y == -2);
461461
do {

docs/bugs_by_version.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -884,5 +884,9 @@
884884
"0.6.2": {
885885
"bugs": [],
886886
"released": "2020-01-27"
887+
},
888+
"0.6.3": {
889+
"bugs": [],
890+
"released": "2020-02-18"
887891
}
888892
}

0 commit comments

Comments
 (0)