Skip to content

Commit f4a555b

Browse files
authored
Merge pull request #9729 from ethereum/develop
Merge develop into release for 0.7.1
2 parents 9e61f92 + 3a48be5 commit f4a555b

File tree

529 files changed

+8334
-2241
lines changed

Some content is hidden

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

529 files changed

+8334
-2241
lines changed

Diff for: .circleci/config.yml

+19-11
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ parameters:
2121
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:7a4d5271b5552139d9f2caefc50d42f401bf74132cf8f253e199e11c80ab42de"
2222
ubuntu-1604-clang-ossfuzz-docker-image:
2323
type: string
24-
# solbuildpackpusher/solidity-buildpack-deps:ubuntu1604.clang.ossfuzz-2
25-
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:efaabb3c143f64171be596932c62013bcfd7f73b1fbcb832025a34dd2b6e6922"
24+
# solbuildpackpusher/solidity-buildpack-deps:ubuntu1604.clang.ossfuzz-3
25+
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:6fa6914bd81abcac4b162c738e6ff05d87cefe7655e3859c7a827e5a8ec20dc7"
2626
emscripten-docker-image:
2727
type: string
2828
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:d557d015918c3cf68b0d22839bab41013f0757b651a7fef21595f89721dbebcc"
@@ -410,6 +410,7 @@ jobs:
410410
CC: clang
411411
CXX: clang++
412412
CMAKE_OPTIONS: -DSANITIZE=address
413+
MAKEFLAGS: -j 3
413414
steps:
414415
- checkout
415416
- run: *run_build
@@ -433,13 +434,15 @@ jobs:
433434
<<: *build_ubuntu2004
434435
environment:
435436
FORCE_RELEASE: ON
437+
MAKEFLAGS: -j 10
436438

437439
b_ubu18: &build_ubuntu1804
438440
docker:
439441
- image: << pipeline.parameters.ubuntu-1804-docker-image >>
440442
environment:
441443
CMAKE_OPTIONS: -DCMAKE_CXX_FLAGS=-O2
442444
CMAKE_BUILD_TYPE: RelWithDebugInfo
445+
MAKEFLAGS: -j 3
443446
steps:
444447
- checkout
445448
- run: *run_build
@@ -451,6 +454,7 @@ jobs:
451454
environment:
452455
COVERAGE: ON
453456
CMAKE_BUILD_TYPE: Debug
457+
MAKEFLAGS: -j 10
454458
steps:
455459
- checkout
456460
- run: *run_build
@@ -483,7 +487,8 @@ jobs:
483487
<<: *build_ubuntu2004
484488
environment:
485489
CMAKE_BUILD_TYPE: Debug
486-
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/cxx20.cmake -DUSE_CVC4=OFF
490+
CMAKE_OPTIONS: -DCMAKE_CXX_STANDARD=20 -DUSE_CVC4=OFF
491+
MAKEFLAGS: -j 10
487492
steps:
488493
- checkout
489494
- run: *run_build
@@ -495,7 +500,7 @@ jobs:
495500
CC: clang
496501
CXX: clang++
497502
TERM: xterm
498-
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/libfuzzer.cmake
503+
MAKEFLAGS: -j 3
499504
steps:
500505
- checkout
501506
- run: *setup_prerelease_commit_hash
@@ -524,6 +529,7 @@ jobs:
524529
- image: archlinux/base
525530
environment:
526531
TERM: xterm
532+
MAKEFLAGS: -j 3
527533
steps:
528534
- run:
529535
name: Install build dependencies
@@ -540,6 +546,7 @@ jobs:
540546
environment:
541547
TERM: xterm
542548
CMAKE_BUILD_TYPE: Release
549+
MAKEFLAGS: -j 5
543550
steps:
544551
- checkout
545552
- restore_cache:
@@ -625,6 +632,7 @@ jobs:
625632
<<: *build_ubuntu2004
626633
environment:
627634
CMAKE_OPTIONS: -DSANITIZE=address
635+
MAKEFLAGS: -j 10
628636
CMAKE_BUILD_TYPE: Release
629637
steps:
630638
- checkout
@@ -884,13 +892,6 @@ workflows:
884892
- t_ubu_release_cli: *workflow_ubuntu2004_release
885893
- t_ubu_release_soltest: *workflow_ubuntu2004_release
886894

887-
# ASan build and tests
888-
- b_ubu_asan: *workflow_trigger_on_tags
889-
- b_ubu_asan_clang: *workflow_trigger_on_tags
890-
- t_ubu_asan_constantinople: *workflow_ubuntu2004_asan
891-
- t_ubu_asan_constantinople_clang: *workflow_ubuntu2004_asan_clang
892-
- t_ubu_asan_cli: *workflow_ubuntu2004_asan
893-
894895
# Emscripten build and selected tests
895896
- b_ems: *workflow_trigger_on_tags
896897
- t_ems_solcjs: *workflow_emscripten
@@ -917,3 +918,10 @@ workflows:
917918
# Code Coverage enabled build and tests
918919
- b_ubu_codecov: *workflow_trigger_on_tags
919920
- t_ubu_codecov: *workflow_ubuntu2004_codecov
921+
922+
# ASan build and tests
923+
- b_ubu_asan: *workflow_trigger_on_tags
924+
- b_ubu_asan_clang: *workflow_trigger_on_tags
925+
- t_ubu_asan_constantinople: *workflow_ubuntu2004_asan
926+
- t_ubu_asan_constantinople_clang: *workflow_ubuntu2004_asan_clang
927+
- t_ubu_asan_cli: *workflow_ubuntu2004_asan

Diff for: CMakeLists.txt

+1-1
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.7.0")
13+
set(PROJECT_VERSION "0.7.1")
1414
# OSX target needed in order to support std::visit
1515
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
1616
project(solidity VERSION ${PROJECT_VERSION} LANGUAGES C CXX)

Diff for: Changelog.md

+36
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,39 @@
1+
### 0.7.1 (2020-09-02)
2+
3+
Language Features:
4+
* Allow function definitions outside of contracts, behaving much like internal library functions.
5+
* Code generator: Implementing copying structs from calldata to storage.
6+
7+
Compiler Features:
8+
* SMTChecker: Add underflow and overflow as verification conditions in the CHC engine.
9+
* SMTChecker: Support bitwise or, xor and not operators.
10+
* SMTChecker: Support conditional operator.
11+
* Standard JSON Interface: Do not run EVM bytecode code generation, if only Yul IR or EWasm output is requested.
12+
* Yul Optimizer: LoopInvariantCodeMotion can move reading operations outside for-loops as long as the affected area is not modified inside the loop.
13+
* Yul: Report error when using non-string literals for ``datasize()``, ``dataoffset()``, ``linkersymbol()``, ``loadimmutable()``, ``setimmutable()``.
14+
15+
Bugfixes:
16+
* AST: Remove ``null`` member values also when the compiler is used in standard-json-mode.
17+
* General: Allow `type(Contract).name` for abstract contracts and interfaces.
18+
* Immutables: Disallow assigning immutables more than once during their declaration.
19+
* Immutables: Properly treat complex assignment and increment/decrement as both reading and writing and thus disallow it everywhere for immutable variables.
20+
* Optimizer: Keep side-effects of ``x`` in ``byte(a, shr(b, x))`` even if the constants ``a`` and ``b`` would make the expression zero unconditionally. This optimizer rule is very hard if not impossible to trigger in a way that it can result in invalid code, though.
21+
* References Resolver: Fix internal bug when using constructor for library.
22+
* Scanner: Fix bug where whitespace would be allowed within the ``->`` token (e.g. ``function f() - > x {}`` becomes invalid in inline assembly and Yul).
23+
* SMTChecker: Fix internal error in BMC function inlining.
24+
* SMTChecker: Fix internal error on array implicit conversion.
25+
* SMTChecker: Fix internal error on fixed bytes index access.
26+
* SMTChecker: Fix internal error on lvalue unary operators with tuples.
27+
* SMTChecker: Fix internal error on tuple assignment.
28+
* SMTChecker: Fix internal error on tuples of one element that have tuple type.
29+
* SMTChecker: Fix soundness of array ``pop``.
30+
* Type Checker: Disallow ``using for`` directive inside interfaces.
31+
* Type Checker: Disallow signed literals as exponent in exponentiation operator.
32+
* Type Checker: Disallow structs containing nested mapping in memory as parameters for library functions.
33+
* Yul Optimizer: Ensure that Yul keywords are not mistakenly used by the NameDispenser and VarNameCleaners. The bug would manifest as uncompilable code.
34+
* Yul Optimizer: Make function inlining order more resilient to whether or not unrelated source files are present.
35+
36+
137
### 0.7.0 (2020-07-28)
238

339
Breaking changes:

Diff for: ReleaseChecklist.md

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
- [ ] Readthedocs account, access to the Solidity project
77
- [ ] Write access to https://github.com/ethereum/homebrew-ethereum
88

9+
### Documentation check
10+
- [ ] Run `make linkcheck` from within `docs/` and fix any broken links it finds. Ignore false positives caused by `href` anchors and dummy links not meant to work.
11+
912
### Blog Post
1013
- [ ] Create a post on https://github.com/ethereum/solidity-blog and explain some of the new features or concepts.
1114

Diff for: cmake/EthCompilerSettings.cmake

+2-1
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,10 @@ elseif (DEFINED MSVC)
157157
add_compile_options(/wd4800) # disable forcing value to bool 'true' or 'false' (performance warning) (4800)
158158
add_compile_options(-D_WIN32_WINNT=0x0600) # declare Windows Vista API requirement
159159
add_compile_options(-DNOMINMAX) # undefine windows.h MAX && MIN macros cause it cause conflicts with std::min && std::max functions
160-
add_compile_options(/utf-8) # enable utf-8 encoding (solves warning 4819)
160+
add_compile_options(/utf-8) # enable utf-8 encoding (solves warning 4819)
161161
add_compile_options(-DBOOST_REGEX_NO_LIB) # disable automatic boost::regex library selection
162162
add_compile_options(-D_REGEX_MAX_STACK_COUNT=200000L) # increase std::regex recursion depth limit
163+
add_compile_options(/permissive-) # specify standards conformance mode to the compiler
163164

164165
# disable empty object file warning
165166
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4221")

Diff for: cmake/EthToolchains.cmake

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# Require C++17.
2+
if (NOT DEFINED CMAKE_CXX_STANDARD)
3+
set(CMAKE_CXX_STANDARD 17) # This requires at least CMake 3.8 to accept this C++17 flag.
4+
endif ()
5+
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
6+
set(CMAKE_CXX_EXTENSIONS OFF)
7+
18
if(NOT CMAKE_TOOLCHAIN_FILE)
29
# Use default toolchain file if none is provided.
310
set(

Diff for: cmake/toolchains/cxx20.cmake

-4
This file was deleted.

Diff for: cmake/toolchains/default.cmake

-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +0,0 @@
1-
# Require C++17.
2-
set(CMAKE_CXX_STANDARD 17) # This requires at least CMake 3.8 to accept this C++17 flag.
3-
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
4-
set(CMAKE_CXX_EXTENSIONS OFF)

0 commit comments

Comments
 (0)