diff options
-rw-r--r-- | .circleci/config.yml | 2 | ||||
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | Changelog.md | 3 | ||||
-rw-r--r-- | docs/frequently-asked-questions.rst | 18 | ||||
-rwxr-xr-x | scripts/build_emscripten.sh | 2 | ||||
-rwxr-xr-x | scripts/travis-emscripten/build_emscripten.sh | 27 | ||||
-rwxr-xr-x | scripts/travis-emscripten/install_deps.sh | 18 |
7 files changed, 29 insertions, 45 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml index 0980fa5c..975d1c7a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -53,7 +53,7 @@ jobs: name: Save Boost build key: *boost-cache-key paths: - - boost_1_57_0 + - boost_1_67_0 - store_artifacts: path: build/libsolc/soljson.js destination: soljson.js diff --git a/.travis.yml b/.travis.yml index ef4f8b39..d68c79ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -90,7 +90,7 @@ matrix: before_install: - nvm install 8 - nvm use 8 - - docker pull trzeci/emscripten:sdk-tag-1.35.4-64bit + - docker pull trzeci/emscripten:sdk-tag-1.37.21-64bit env: - SOLC_EMSCRIPTEN=On - SOLC_INSTALL_DEPS_TRAVIS=Off @@ -153,7 +153,7 @@ git: cache: ccache: true directories: - - boost_1_57_0 + - boost_1_67_0 - $HOME/.local install: diff --git a/Changelog.md b/Changelog.md index 197419fa..449798a4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -13,6 +13,9 @@ Compiler Features: Bugfixes: +Build System: + * Emscripten: Upgrade to Emscripten SDK 1.37.21 and boost 1.67. + ### 0.5.0 (2018-11-13) diff --git a/docs/frequently-asked-questions.rst b/docs/frequently-asked-questions.rst index 8b655b0d..a100bb15 100644 --- a/docs/frequently-asked-questions.rst +++ b/docs/frequently-asked-questions.rst @@ -232,24 +232,6 @@ Note2: Optimizing storage access can pull the gas costs down considerably, becau currently do not work across loops and also have a problem with bounds checking. You might get much better results in the future, though. -What happens to a ``struct``'s mapping when copying over a ``struct``? -====================================================================== - -This is a very interesting question. Suppose that we have a contract field set up like such:: - - struct User { - mapping(string => string) comments; - } - - function somefunction public { - User user1; - user1.comments["Hello"] = "World"; - User user2 = user1; - } - -In this case, the mapping of the struct being copied over into ``user2`` is ignored as there is no "list of mapped keys". -Therefore it is not possible to find out which values should be copied over. - How do I initialize a contract with only a specific amount of wei? ================================================================== diff --git a/scripts/build_emscripten.sh b/scripts/build_emscripten.sh index cddcd4f8..14c497ae 100755 --- a/scripts/build_emscripten.sh +++ b/scripts/build_emscripten.sh @@ -30,5 +30,5 @@ set -e if [[ "$OSTYPE" != "darwin"* ]]; then ./scripts/travis-emscripten/install_deps.sh - docker run -v $(pwd):/root/project -w /root/project trzeci/emscripten:sdk-tag-1.35.4-64bit ./scripts/travis-emscripten/build_emscripten.sh + docker run -v $(pwd):/root/project -w /root/project trzeci/emscripten:sdk-tag-1.37.21-64bit ./scripts/travis-emscripten/build_emscripten.sh fi diff --git a/scripts/travis-emscripten/build_emscripten.sh b/scripts/travis-emscripten/build_emscripten.sh index f49ff5b2..32899903 100755 --- a/scripts/travis-emscripten/build_emscripten.sh +++ b/scripts/travis-emscripten/build_emscripten.sh @@ -56,18 +56,14 @@ else echo 'NODE_JS=["nodejs", "--stack_size=8192"]' > ~/.emscripten fi - # Boost echo -en 'travis_fold:start:compiling_boost\\r' -cd "$WORKSPACE"/boost_1_57_0 +cd "$WORKSPACE"/boost_1_67_0 # if b2 exists, it is a fresh checkout, otherwise it comes from the cache # and is already compiled test -e b2 && ( -sed -i 's|using gcc ;|using gcc : : em++ ;|g' ./project-config.jam -sed -i 's|$(archiver\[1\])|emar|g' ./tools/build/src/tools/gcc.jam -sed -i 's|$(ranlib\[1\])|emranlib|g' ./tools/build/src/tools/gcc.jam -./b2 link=static variant=release threading=single runtime-link=static \ - system regex filesystem unit_test_framework program_options +./b2 toolset=emscripten link=static variant=release threading=single runtime-link=static \ + system regex filesystem unit_test_framework program_options cxxflags="-Wno-unused-local-typedef -Wno-variadic-macros -Wno-c99-extensions -Wno-all" find . -name 'libboost*.a' -exec cp {} . \; rm -rf b2 libs doc tools more bin.v2 status ) @@ -89,17 +85,12 @@ cmake \ -DBoost_FOUND=1 \ -DBoost_USE_STATIC_LIBS=1 \ -DBoost_USE_STATIC_RUNTIME=1 \ - -DBoost_INCLUDE_DIR="$WORKSPACE"/boost_1_57_0/ \ - -DBoost_FILESYSTEM_LIBRARY="$WORKSPACE"/boost_1_57_0/libboost_filesystem.a \ - -DBoost_FILESYSTEM_LIBRARIES="$WORKSPACE"/boost_1_57_0/libboost_filesystem.a \ - -DBoost_PROGRAM_OPTIONS_LIBRARY="$WORKSPACE"/boost_1_57_0/libboost_program_options.a \ - -DBoost_PROGRAM_OPTIONS_LIBRARIES="$WORKSPACE"/boost_1_57_0/libboost_program_options.a \ - -DBoost_REGEX_LIBRARY="$WORKSPACE"/boost_1_57_0/libboost_regex.a \ - -DBoost_REGEX_LIBRARIES="$WORKSPACE"/boost_1_57_0/libboost_regex.a \ - -DBoost_SYSTEM_LIBRARY="$WORKSPACE"/boost_1_57_0/libboost_system.a \ - -DBoost_SYSTEM_LIBRARIES="$WORKSPACE"/boost_1_57_0/libboost_system.a \ - -DBoost_UNIT_TEST_FRAMEWORK_LIBRARY="$WORKSPACE"/boost_1_57_0/libboost_unit_test_framework.a \ - -DBoost_UNIT_TEST_FRAMEWORK_LIBRARIES="$WORKSPACE"/boost_1_57_0/libboost_unit_test_framework.a \ + -DBoost_INCLUDE_DIR="$WORKSPACE"/boost_1_67_0/ \ + -DBoost_FILESYSTEM_LIBRARY_RELEASE="$WORKSPACE"/boost_1_67_0/libboost_filesystem.a \ + -DBoost_PROGRAM_OPTIONS_LIBRARY_RELEASE="$WORKSPACE"/boost_1_67_0/libboost_program_options.a \ + -DBoost_REGEX_LIBRARY_RELEASE="$WORKSPACE"/boost_1_67_0/libboost_regex.a \ + -DBoost_SYSTEM_LIBRARY_RELEASE="$WORKSPACE"/boost_1_67_0/libboost_system.a \ + -DBoost_UNIT_TEST_FRAMEWORK_LIBRARY_RELEASE="$WORKSPACE"/boost_1_67_0/libboost_unit_test_framework.a \ -DTESTS=0 \ .. make -j 4 diff --git a/scripts/travis-emscripten/install_deps.sh b/scripts/travis-emscripten/install_deps.sh index 45c16a9f..155506e4 100755 --- a/scripts/travis-emscripten/install_deps.sh +++ b/scripts/travis-emscripten/install_deps.sh @@ -30,11 +30,19 @@ set -ev echo -en 'travis_fold:start:installing_dependencies\\r' -test -e boost_1_57_0 -a -e boost_1_57_0/boost || ( -wget 'https://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.tar.gz/download'\ - -O - | tar xz -cd boost_1_57_0 -./bootstrap.sh --with-toolset=gcc --with-libraries=thread,system,regex,date_time,chrono,filesystem,program_options,random +test -e boost_1_67_0 -a -e boost_1_67_0/boost || ( +rm -rf boost_1_67_0 +rm -f boost.tar.xz +wget -q 'https://sourceforge.net/projects/boost/files/boost/1.67.0/boost_1_67_0.tar.gz/download'\ + -O boost.tar.xz +test "$(shasum boost.tar.xz)" = "77e73c9fd7bf85b14067767b9e8fdc39b49ee0f2 boost.tar.xz" +tar -xzf boost.tar.xz +rm boost.tar.xz +cd boost_1_67_0 +./bootstrap.sh +wget -q 'https://raw.githubusercontent.com/tee3/boost-build-emscripten/master/emscripten.jam' +test "$(shasum emscripten.jam)" = "a7e13fc2c1e53b0e079ef440622f879aa6da3049 emscripten.jam" +echo "using emscripten : : em++ ;" >> project-config.jam ) cd .. echo -en 'travis_fold:end:installing_dependencies\\r' |