aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml2
-rw-r--r--.travis.yml4
-rw-r--r--Changelog.md3
-rw-r--r--docs/frequently-asked-questions.rst18
-rwxr-xr-xscripts/build_emscripten.sh2
-rwxr-xr-xscripts/travis-emscripten/build_emscripten.sh27
-rwxr-xr-xscripts/travis-emscripten/install_deps.sh18
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'