Skip to content

Use emscripten 1.37.21 on Travis (same as on Circleci) #3491

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from

Conversation

axic
Copy link
Member

@axic axic commented Feb 12, 2018

The same version used by the circleci target.

Fixes #3558.

This results in:

  • Travis: emscripten changed (1.37.37), boost unchanged (1.57)
  • Circleci: emscripten changed (1.37.37), boost unchanged (1.57)

But it fails on cirlceci.

@axic axic force-pushed the travis-emscripten branch from d4d0f3b to 5697f01 Compare February 13, 2018 22:01
@axic axic changed the title Use emscripten 1.37.19 on Travis Use emscripten 1.37.21 on Travis (same as on Circleci) Feb 13, 2018
@axic
Copy link
Member Author

axic commented Feb 13, 2018

Should only merge after the release to avoid any potential problem with using the new emscripten (since no nightlies were created with it yet).

@axic
Copy link
Member Author

axic commented Feb 13, 2018

Strangely enough this works on circleci, but fails on travis:

# multiple files can be compiled
missing function: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1ERKS5_jjRKS4_
-1
-1
warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling

@axic
Copy link
Member Author

axic commented Feb 13, 2018

Also the build size is different:
Circleci: Emscripten output size: -rw-r--r-- 1 root root 8219233 Feb 13 22:06 soljson.js
Travis: Emscripten output size: -rw-r--r-- 1 root root 8228799 Feb 13 22:58 soljson.js

(And it took 52 minutes longer for Travis 😉)

@axic
Copy link
Member Author

axic commented Feb 13, 2018

Should turn those warnings into errors (since not all solc-js test are actually affected by the missing symbols):

[100%] Linking CXX executable soljson.js
WARNING:root:not all asm.js optimizations are possible with ALLOW_MEMORY_GROWTH, disabling those. [-Walmost-asm]
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5uflowEv
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1ERKS5_jjRKS4_
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_
...

@aarlt
Copy link
Member

aarlt commented Feb 13, 2018

@axic what about -s DEMANGLE_SUPPORT=1? looks like on circleci it was build with it? It's super strange - the thing is that I spend some hours on the weekend for that. The really strange thing is that it also builds on my machine, with trzeci/emscripten:sdk-tag-1.37.33-64bit but that version had exactly the same problem on travis, but additionally to that also a bug in the JavaScript optimizer..

@axic
Copy link
Member Author

axic commented Feb 20, 2018

Just realized that .travis.yml contains another docker image reference (to 1.35.4) so perhaps some strange shadowing issue. Not sure why we need a docker pull in travis while using another version in the script.

@axic axic force-pushed the travis-emscripten branch from 902ebba to 1ed5e71 Compare February 20, 2018 22:00
@axic
Copy link
Member Author

axic commented Feb 20, 2018

Current Travis: Emscripten output size: -rw-r--r-- 1 root root 7637505 Feb 20 21:47 soljson.js
Current Circleci: Emscripten output size: -rw-r--r-- 1 root root 8255543 Feb 20 22:07 soljson.js
New Travis: Emscripten output size: -rw-r--r-- 1 root root 8264918 Feb 20 22:13 soljson.js

But still Travis fails with unresolved symbols while circleci is happy:

[100%] Linking CXX executable soljson.js
WARNING:root:not all asm.js optimizations are possible with ALLOW_MEMORY_GROWTH, disabling those. [-Walmost-asm]
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5uflowEv
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1ERKS5_jjRKS4_
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSERKS5_
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6insertENS_11__wrap_iterIPKcEEc
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9push_backEc
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE9__grow_byEjjjjjj
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKc
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5imbueERKNS_6localeE
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9underflowEv
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE4syncEv
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5eraseEjj
warning: unresolved symbol: _ZNSt3__16localeC1Ev
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1ERKS5_
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsgetnEPci
warning: unresolved symbol: _ZNSt3__18ios_base5clearEj
warning: unresolved symbol: _ZNSt3__113basic_istreamIcNS_11char_traitsIcEEED1Ev
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9pbackfailEi
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEEC2Ev
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEjc
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE8overflowEi
warning: unresolved symbol: _ZNKSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7compareEPKc
warning: unresolved symbol: _ZNKSt3__121__basic_string_commonILb1EE20__throw_length_errorEv
warning: unresolved symbol: _ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv
warning: unresolved symbol: _ZNKSt3__120__vector_base_commonILb1EE20__throw_out_of_rangeEv
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEaSEc
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE6xsputnEPKci
warning: unresolved symbol: _ZNKSt3__16locale9use_facetERNS0_2idE
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcj
warning: unresolved symbol: _ZNSt3__18ios_base4initEPv
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEjc
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6appendEPKcj
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7reserveEj
warning: unresolved symbol: _ZNSt3__16localeD1Ev
warning: unresolved symbol: _ZNSt13runtime_errorC2ERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEED2Ev
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKc
warning: unresolved symbol: _ZNSt3__16localeC1ERKS0_
warning: unresolved symbol: _ZNSt3__19basic_iosIcNS_11char_traitsIcEEED2Ev
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEjc
warning: unresolved symbol: _ZNSt3__16localeaSERKS0_
warning: unresolved symbol: _ZNKSt3__18ios_base6getlocEv
warning: unresolved symbol: _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6assignEPKcj
warning: unresolved symbol: _ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE9showmanycEv
warning: unresolved symbol: _ZNSt3__113basic_istreamIcNS_11char_traitsIcEEErsERi
warning: unresolved symbol: _ZNSt3__15ctypeIcE2idE
warning: unresolved symbol: _ZNSt3__17collateIcE2idE
warning: unresolved symbol: _ZNSt3__18numpunctIcE2idE
warning: unresolved symbol: _ZTINSt3__115basic_streambufIcNS_11char_traitsIcEEEE
warning: unresolved symbol: _ZTVNSt3__113basic_istreamIcNS_11char_traitsIcEEEE
[100%] Built target soljson

@axic
Copy link
Member Author

axic commented Feb 21, 2018

After cleaning the emscripten cache, the new emscripten version fails to build boost on Travis.

@axic axic force-pushed the travis-emscripten branch from f168218 to 17c5af8 Compare February 21, 2018 09:05
@chriseth
Copy link
Contributor

Do we still want to include this with 0.4.21?

@axic
Copy link
Member Author

axic commented Feb 28, 2018

No, there's no point forcing this. I'd like to have more testing with the new emscripten with nightlies also it has a >10% size increase and probably will need some tuning once it starts working on travis.

@axic axic removed the nextrelease label Feb 28, 2018
@chriseth
Copy link
Contributor

chriseth commented Mar 1, 2018

Moved to 0.5.0

@axic axic force-pushed the travis-emscripten branch from 17c5af8 to 1ad4f44 Compare April 5, 2018 12:49
@axic axic force-pushed the travis-emscripten branch 2 times, most recently from 5f640d6 to 7a416ac Compare April 20, 2018 20:18
@axic
Copy link
Member Author

axic commented Apr 20, 2018

The emscripten we use to ship soljson is 1.35.4 was released on 27 Oct 2015. I wonder what is the risk updating it and what is the risk not updating it.

@axic
Copy link
Member Author

axic commented Apr 23, 2018

Latest emscripten docker has a newer cmake, so the cmake installation step can be removed.

@axic axic force-pushed the travis-emscripten branch from a8f497d to 4b8e244 Compare April 23, 2018 13:42
@axic axic force-pushed the travis-emscripten branch 2 times, most recently from a8bbeb6 to a795259 Compare April 30, 2018 23:21
@axic axic force-pushed the travis-emscripten branch from a795259 to 2050c46 Compare April 30, 2018 23:23
@axic
Copy link
Member Author

axic commented Apr 30, 2018

Travis just abruptly aborts in the middle of the log. The same warnings exists on circle too, but it doesn't abort.

Maybe some kind of out of memory issue?

@@ -110,6 +110,8 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
# Abort if linking results in any undefined symbols
# Note: this is on by default in the CMake Emscripten module which we aren't using
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s ERROR_ON_UNDEFINED_SYMBOLS=1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s VERBOSE=1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s STRICT=1")
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ekpyron Don't fully remember these options, but probably worth keeping it on the other PRs.

@axic
Copy link
Member Author

axic commented Nov 21, 2018

Replaced by #4486.

@axic axic closed this Nov 21, 2018
@axic axic deleted the travis-emscripten branch November 21, 2018 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants