Skip to content

Commit bacdbe5

Browse files
authored
Merge pull request #8193 from ethereum/develop
Merge develop into release for 0.6.2.
2 parents e6f7d5a + cebca57 commit bacdbe5

File tree

707 files changed

+8774
-10464
lines changed

Some content is hidden

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

707 files changed

+8774
-10464
lines changed

.circleci/config.yml

+2-8
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,6 @@ jobs:
295295
environment:
296296
CC: clang
297297
CXX: clang++
298-
CMAKE_OPTIONS: -DLLL=ON
299298
steps:
300299
- checkout
301300
- run: *run_build
@@ -305,8 +304,6 @@ jobs:
305304
b_ubu: &build_ubuntu1904
306305
docker:
307306
- image: ethereum/solidity-buildpack-deps:ubuntu1904-<< pipeline.parameters.docker-image-rev >>
308-
environment:
309-
CMAKE_OPTIONS: -DLLL=ON
310307
steps:
311308
- checkout
312309
- run: *run_build
@@ -317,13 +314,12 @@ jobs:
317314
<<: *build_ubuntu1904
318315
environment:
319316
FORCE_RELEASE: ON
320-
CMAKE_OPTIONS: -DLLL=ON
321317

322318
b_ubu18: &build_ubuntu1804
323319
docker:
324320
- image: ethereum/solidity-buildpack-deps:ubuntu1804-<< pipeline.parameters.docker-image-rev >>
325321
environment:
326-
CMAKE_OPTIONS: -DCMAKE_CXX_FLAGS=-O2 -DLLL=ON
322+
CMAKE_OPTIONS: -DCMAKE_CXX_FLAGS=-O2
327323
CMAKE_BUILD_TYPE: RelWithDebugInfo
328324
steps:
329325
- checkout
@@ -368,7 +364,7 @@ jobs:
368364
<<: *build_ubuntu1904
369365
environment:
370366
CMAKE_BUILD_TYPE: Debug
371-
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/cxx20.cmake -DUSE_CVC4=OFF -DLLL=ON
367+
CMAKE_OPTIONS: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/cxx20.cmake -DUSE_CVC4=OFF
372368
steps:
373369
- checkout
374370
- run: *run_build
@@ -408,7 +404,6 @@ jobs:
408404
- image: archlinux/base
409405
environment:
410406
TERM: xterm
411-
CMAKE_OPTIONS: -DLLL=ON
412407
steps:
413408
- run:
414409
name: Install build dependencies
@@ -425,7 +420,6 @@ jobs:
425420
environment:
426421
TERM: xterm
427422
CMAKE_BUILD_TYPE: Debug
428-
CMAKE_OPTIONS: -DLLL=ON
429423
steps:
430424
- checkout
431425
- restore_cache:

CMakeLists.txt

+2-9
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.1")
13+
set(PROJECT_VERSION "0.6.2")
1414
project(solidity VERSION ${PROJECT_VERSION} LANGUAGES C CXX)
1515

1616
include(TestBigEndian)
@@ -19,10 +19,7 @@ if (IS_BIG_ENDIAN)
1919
message(FATAL_ERROR "${PROJECT_NAME} currently does not support big endian systems.")
2020
endif()
2121

22-
option(LLL "Build LLL" OFF)
2322
option(SOLC_LINK_STATIC "Link solc executable statically on supported platforms" OFF)
24-
option(LLLC_LINK_STATIC "Link lllc executable statically on supported platforms" OFF)
25-
option(INSTALL_LLLC "Include lllc executable in installation" ${LLL})
2623

2724
# Setup cccache.
2825
include(EthCcache)
@@ -52,7 +49,7 @@ configure_file("${CMAKE_SOURCE_DIR}/cmake/templates/license.h.in" include/licens
5249
include(EthOptions)
5350
configure_project(TESTS)
5451

55-
add_subdirectory(libdevcore)
52+
add_subdirectory(libsolutil)
5653
add_subdirectory(liblangutil)
5754
add_subdirectory(libevmasm)
5855
add_subdirectory(libyul)
@@ -61,10 +58,6 @@ add_subdirectory(libsolc)
6158

6259
if (NOT EMSCRIPTEN)
6360
add_subdirectory(solc)
64-
if (LLL)
65-
add_subdirectory(liblll)
66-
add_subdirectory(lllc)
67-
endif()
6861
endif()
6962

7063
if (TESTS AND NOT EMSCRIPTEN)

CODING_STYLE.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ for (map<ComplexTypeOne, ComplexTypeTwo>::iterator i = l.begin(); i != l.end();
211211
212212
## 12. Include Headers
213213
214-
1. Includes should go in increasing order of generality (`libsolidity` -> `libevmasm` -> `libdevcore` -> `boost` -> `STL`).
214+
1. Includes should go in increasing order of generality (`libsolidity` -> `libevmasm` -> `libsolutil` -> `boost` -> `STL`).
215215
2. The corresponding `.h` file should be the first include in the respective `.cpp` file.
216216
3. Insert empty lines between blocks of include files.
217217
@@ -226,8 +226,8 @@ Example:
226226
227227
#include <libevmasm/GasMeter.h>
228228
229-
#include <libdevcore/Common.h>
230-
#include <libdevcore/SHA3.h>
229+
#include <libsolutil/Common.h>
230+
#include <libsolutil/SHA3.h>
231231
232232
#include <boost/range/adaptor/reversed.hpp>
233233
#include <boost/algorithm/string/replace.hpp>

Changelog.md

+27-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
### 0.6.2 (2020-01-27)
2+
3+
Language Features:
4+
* Allow accessing external functions via contract and interface names to obtain their selector.
5+
* Allow interfaces to inherit from other interfaces
6+
* Allow gas and value to be set in external function calls using ``c.f{gas: 10000, value: 4 ether}()``.
7+
* Allow specifying the ``salt`` for contract creations and thus the ``create2`` opcode using ``new C{salt: 0x1234, value: 1 ether}(arg1, arg2)``.
8+
* Inline Assembly: Support literals ``true`` and ``false``.
9+
10+
11+
Compiler Features:
12+
* LLL: The LLL compiler has been removed.
13+
* General: Raise warning if runtime bytecode exceeds 24576 bytes (a limit introduced in Spurious Dragon).
14+
* General: Support compiling starting from an imported AST. Among others, this can be used for mutation testing.
15+
* Yul Optimizer: Apply penalty when trying to rematerialize into loops.
16+
17+
18+
Bugfixes:
19+
* Commandline interface: Only activate yul optimizer if ``--optimize`` is given.
20+
* Fixes internal compiler error on explicitly calling unimplemented base functions.
21+
22+
23+
Build System:
24+
* Switch to building soljson.js with an embedded base64-encoded wasm binary.
25+
26+
127
### 0.6.1 (2020-01-02)
228

329
Bugfixes:
@@ -900,7 +926,7 @@ Features:
900926
* ABI JSON: Include new field ``stateMutability`` with values ``pure``, ``view``,
901927
``nonpayable`` and ``payable``.
902928
* Analyzer: Experimental partial support for Z3 SMT checker ("SMTChecker").
903-
* Build System: Shared libraries (``libdevcore``, ``libevmasm``, ``libsolidity``
929+
* Build System: Shared libraries (``libsolutil``, ``libevmasm``, ``libsolidity``
904930
and ``liblll``) are no longer produced during the build process.
905931
* Code generator: Experimental new implementation of ABI encoder that can
906932
encode arbitrarily nested arrays ("ABIEncoderV2")

cmake/EthCompilerSettings.cmake

+10-3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
3434
add_compile_options(-Wall)
3535
add_compile_options(-Wextra)
3636
add_compile_options(-Werror)
37+
add_compile_options(-pedantic)
38+
add_compile_options(-Wno-unknown-pragmas)
39+
add_compile_options(-Wimplicit-fallthrough)
3740

3841
# Configuration-specific compiler settings.
3942
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -DETH_DEBUG")
@@ -110,9 +113,13 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
110113
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s STRICT=1")
111114
# Export the Emscripten-generated auxiliary methods which are needed by solc-js.
112115
# Which methods of libsolc itself are exported is specified in libsolc/CMakeLists.txt.
113-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap','addFunction','removeFunction','UTF8ToString','lengthBytesUTF8','_malloc','stringToUTF8','setValue']")
114-
# Do not build as a WebAssembly target - we need an asm.js output.
115-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=0")
116+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap','addFunction','removeFunction','UTF8ToString','lengthBytesUTF8','stringToUTF8','setValue']")
117+
# Build for webassembly target.
118+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=1")
119+
# Set webassembly build to synchronous loading.
120+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM_ASYNC_COMPILATION=0")
121+
# Output a single js file with the wasm binary embedded as base64 string.
122+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s SINGLE_FILE=1")
116123

117124
# Disable warnings about not being pure asm.js due to memory growth.
118125
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-almost-asm")

cmake/EthOptions.cmake

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ if (SUPPORT_TOOLS)
4141
endif()
4242
message("------------------------------------------------------------------ flags")
4343
message("-- OSSFUZZ ${OSSFUZZ}")
44-
message("-- LLL ${LLL}")
4544
message("------------------------------------------------------------------------")
4645
message("")
4746
endmacro()

0 commit comments

Comments
 (0)