Skip to content
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

[WIP] Update steven for emscripten #1

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

[WIP] Update steven for emscripten #1

wants to merge 8 commits into from

Conversation

satoshinm
Copy link
Owner

@satoshinm satoshinm commented May 14, 2017

Compile for emscripten with:

LIBRARY_PATH="$LIBRARY_PATH:/usr/local/lib" OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include OPENSSL_LIB_DIR=`brew --prefix openssl`/lib cargo build --target asmjs-unknown-emscripten

@satoshinm
Copy link
Owner Author

satoshinm commented May 14, 2017

  = note: WARNING:root:emcc: cannot find library "SDL2"
          warning: emitted code will contain very large numbers of local variables, which is bad for performance (build to JS with -O2 or above to avoid this - make sure to do so both on source files, and during 'linking')
          error: unresolved symbol: EVP_PKEY_new
          error: unresolved symbol: EVP_PKEY_get1_RSA
          error: unresolved symbol: EVP_sha384
          error: unresolved symbol: EVP_ripemd160
          error: unresolved symbol: SDL_GetClipboardText
          error: unresolved symbol: EVP_PKEY_set1_RSA
          error: unresolved symbol: EVP_MD_CTX_destroy
          error: unresolved symbol: EVP_aes_128_cfb128
          error: unresolved symbol: EVP_CipherUpdate
          error: unresolved symbol: EVP_PKEY_free
          error: unresolved symbol: EVP_sha256
          error: unresolved symbol: SDL_GL_CreateContext
          error: unresolved symbol: CRYPTO_set_locking_callback
          error: unresolved symbol: EVP_CIPHER_CTX_free
          error: unresolved symbol: EVP_MD_CTX_create
          error: unresolved symbol: EVP_md5
          error: unresolved symbol: CRYPTO_num_locks
          error: unresolved symbol: EVP_aes_128_ecb
          error: unresolved symbol: EVP_aes_128_cfb1
          error: unresolved symbol: SDL_CreateWindow
          error: unresolved symbol: EVP_sha512
          error: unresolved symbol: EVP_DigestUpdate
          error: unresolved symbol: RSA_size
          error: unresolved symbol: OPENSSL_add_all_algorithms_noconf
          error: unresolved symbol: d2i_RSA_PUBKEY
          error: unresolved symbol: RSA_public_encrypt
          error: unresolved symbol: EVP_DigestInit_ex
          error: unresolved symbol: EVP_des_cbc
          error: unresolved symbol: EVP_aes_256_cfb1
          error: unresolved symbol: SSL_load_error_strings
          error: unresolved symbol: EVP_CIPHER_CTX_new
          error: unresolved symbol: SSL_library_init
          error: unresolved symbol: SDL_GL_GetDrawableSize
          error: unresolved symbol: EVP_aes_256_cfb8
          error: unresolved symbol: EVP_aes_256_cfb128
          error: unresolved symbol: CRYPTO_set_id_callback
          error: unresolved symbol: EVP_aes_128_cbc
          error: unresolved symbol: EVP_DigestFinal_ex
          error: unresolved symbol: EVP_CipherInit
          error: unresolved symbol: EVP_aes_128_cfb8
          error: unresolved symbol: RAND_bytes
          error: unresolved symbol: EVP_des_ecb
          error: unresolved symbol: EVP_sha224
          error: unresolved symbol: EVP_rc4
          error: unresolved symbol: SDL_SetRelativeMouseMode
          error: unresolved symbol: SDL_HasClipboardText
          error: unresolved symbol: SDL_GetRelativeMouseMode
          error: unresolved symbol: EVP_aes_256_cbc
          error: unresolved symbol: EVP_sha1
          error: unresolved symbol: EVP_aes_256_ecb

EMMAKEN_CFLAGS="-s USE_SDL=2" is used to enable the SDL2 port with emscripten, but it fails with a bizarre error: https://gist.github.com/satoshinm/7c5a7971d8c3b2bbf4fa62c9de8d85b2

          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)
          INFO:root:generating port: sdl2.bc... (this will be cached in "/Users/admin/.emscripten_cache/asmjs/sdl2.bc" for subsequent builds)

seems it is trying to generate sdl2.bc multiple times simultaneously and choking on itself?


To pregenerate sdl2.bc, try running from emscripten the unit test - this passes:

1.37.9 $ python tests/runner.py browser.test_sdl2_image

and then the SDL errors go away, we are left with only OpenSSL missing:

          error: unresolved symbol: EVP_PKEY_new
          error: unresolved symbol: EVP_sha384
          error: unresolved symbol: EVP_ripemd160
          error: unresolved symbol: EVP_PKEY_get1_RSA
          error: unresolved symbol: EVP_PKEY_set1_RSA
          error: unresolved symbol: EVP_MD_CTX_destroy
          error: unresolved symbol: EVP_aes_128_cfb128
          error: unresolved symbol: EVP_PKEY_free
          error: unresolved symbol: RSA_public_encrypt
          error: unresolved symbol: CRYPTO_set_locking_callback
          error: unresolved symbol: EVP_CIPHER_CTX_free
          error: unresolved symbol: EVP_MD_CTX_create
          error: unresolved symbol: EVP_md5
          error: unresolved symbol: CRYPTO_num_locks
          error: unresolved symbol: EVP_aes_128_ecb
          error: unresolved symbol: EVP_aes_128_cfb1
          error: unresolved symbol: RSA_size
          error: unresolved symbol: EVP_DigestInit_ex
          error: unresolved symbol: OPENSSL_add_all_algorithms_noconf
          error: unresolved symbol: d2i_RSA_PUBKEY
          error: unresolved symbol: EVP_aes_256_cfb1
          error: unresolved symbol: EVP_rc4
          error: unresolved symbol: SSL_load_error_strings
          error: unresolved symbol: EVP_CIPHER_CTX_new
          error: unresolved symbol: SSL_library_init
          error: unresolved symbol: EVP_aes_256_cfb8
          error: unresolved symbol: EVP_aes_256_cfb128
          error: unresolved symbol: CRYPTO_set_id_callback
          error: unresolved symbol: EVP_aes_128_cbc
          error: unresolved symbol: EVP_DigestFinal_ex
          error: unresolved symbol: EVP_des_ecb
          error: unresolved symbol: EVP_CipherInit
          error: unresolved symbol: EVP_aes_128_cfb8
          error: unresolved symbol: RAND_bytes
          error: unresolved symbol: EVP_sha224
          error: unresolved symbol: EVP_CipherUpdate
          error: unresolved symbol: EVP_sha512
          error: unresolved symbol: EVP_DigestUpdate
          error: unresolved symbol: EVP_aes_256_cbc
          error: unresolved symbol: EVP_sha1
          error: unresolved symbol: EVP_sha256
          error: unresolved symbol: EVP_aes_256_ecb
          error: unresolved symbol: EVP_des_cbc

@satoshinm
Copy link
Owner Author

satoshinm commented May 14, 2017

Stubbing out OpenSSL calls just to unblock building (port to ring?), starts to run but then quickly panics - thread-related?

screen shot 2017-05-14 at 12 33 37 am

[Log] [main.rs:184][INFO] Starting steven (hello.html, line 1237)
[Error] thread 'main' panicked at 'explicit panic', /checkout/src/libstd/sys/unix/thread.rs:43
	printErr (hello.html:1249)
	put_char (steven.js:4342)
	write (steven.js:4262)
	write (steven.js:6291)
	___syscall4 (steven.js:7552)
	_write (steven.js:1215400)
	__ZN3std2io5Write9write_all17hcb9233a33bf0c52bE (steven.js:1032420)
	__ZN94__LT_std__io__Write__write_fmt__Adaptor_LT__u27_a_C__u20_T_GT__u20_as_u20_core__fmt__Write_GT_9write_str17h1d640efc6e63faf5E (steven.js:1032115)
	__ZN4core3fmt5write17h36ba3c3c97d7615bE (steven.js:1061016)
	dynCall_iiii (steven.js:1227454)
	invoke_iiii (steven.js:11412)
	__ZN3std2io5Write9write_fmt17h6729b634732be692E (steven.js:1031773)
	__ZN3std2io5impls69__LT_impl_u20_std__io__Write_u20_for_u20__RF__u27_a_u20_mut_u20_W_GT_9write_fmt17hcff529e7ae38d39aE (steven.js:1031748)
	__ZN3std9panicking12default_hook28__u7b__u7b_closure_u7d__u7d_17h47b2a7bf24f9ec4bE (steven.js:1028634)
	dynCall_viii (steven.js:1227482)
	invoke_viii (steven.js:11448)
	__ZN3std9panicking12default_hook17h96a38c23a922ad21E (steven.js:1027326)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	__ZN3std9panicking20rust_panic_with_hook17h2e0c66f95442aa5eE (steven.js:1026754)
	__ZN3std9panicking11begin_panic17ha37639164620fc7fE (steven.js:1026386)
	dynCall_viii (steven.js:1227482)
	invoke_viii (steven.js:11448)
	__ZN3std3sys3imp6thread6Thread3new17h0eb41cacd873c6f9E (steven.js:1050737)
	dynCall_viiii (steven.js:1227657)
	invoke_viiii (steven.js:11673)
	__ZN3std6thread7Builder5spawn17h99c753b389c56740E (steven.js:89894)
	__ZN3std6thread5spawn17h551ac61a7706f221E (steven.js:88408)
	dynCall_vii (steven.js:1227377)
	invoke_vii (steven.js:11313)
	__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E (steven.js:402816)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	__ZN6steven9resources7Manager3new17h3fa7875809462e90E (steven.js:399860)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	__ZN6steven4main17h8974e073fbff5637E (steven.js:470511)
	__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h00bbd0533c772ef2E (steven.js:1051379)
	__ZN3std9panicking3try7do_call17h7b43cb5af68e0401E (steven.js:1051372:83)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	___rust_maybe_catch_panic (steven.js:1051445)
	__ZN3std2rt10lang_start17h383c8992c0d0ccc3E (steven.js:1051189)
	_main (steven.js:510191)
	callMain (steven.js:1228892)
	doRun (steven.js:1228951)
	(anonymous function) (steven.js:1228962)
[Error] note: Run with `RUST_BACKTRACE=1` for a backtrace.
	printErr (hello.html:1249)
	put_char (steven.js:4342)
	write (steven.js:4262)
	write (steven.js:6291)
	___syscall4 (steven.js:7552)
	_write (steven.js:1215400)
	__ZN3std2io5Write9write_all17hcb9233a33bf0c52bE (steven.js:1032420)
	__ZN94__LT_std__io__Write__write_fmt__Adaptor_LT__u27_a_C__u20_T_GT__u20_as_u20_core__fmt__Write_GT_9write_str17h1d640efc6e63faf5E (steven.js:1032115)
	__ZN4core3fmt5write17h36ba3c3c97d7615bE (steven.js:1061016)
	dynCall_iiii (steven.js:1227454)
	invoke_iiii (steven.js:11412)
	__ZN3std2io5Write9write_fmt17h6729b634732be692E (steven.js:1031773)
	__ZN3std2io5impls69__LT_impl_u20_std__io__Write_u20_for_u20__RF__u27_a_u20_mut_u20_W_GT_9write_fmt17hcff529e7ae38d39aE (steven.js:1031748)
	__ZN3std9panicking12default_hook28__u7b__u7b_closure_u7d__u7d_17h47b2a7bf24f9ec4bE (steven.js:1028708)
	dynCall_viii (steven.js:1227482)
	invoke_viii (steven.js:11448)
	__ZN3std9panicking12default_hook17h96a38c23a922ad21E (steven.js:1027326)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	__ZN3std9panicking20rust_panic_with_hook17h2e0c66f95442aa5eE (steven.js:1026754)
	__ZN3std9panicking11begin_panic17ha37639164620fc7fE (steven.js:1026386)
	dynCall_viii (steven.js:1227482)
	invoke_viii (steven.js:11448)
	__ZN3std3sys3imp6thread6Thread3new17h0eb41cacd873c6f9E (steven.js:1050737)
	dynCall_viiii (steven.js:1227657)
	invoke_viiii (steven.js:11673)
	__ZN3std6thread7Builder5spawn17h99c753b389c56740E (steven.js:89894)
	__ZN3std6thread5spawn17h551ac61a7706f221E (steven.js:88408)
	dynCall_vii (steven.js:1227377)
	invoke_vii (steven.js:11313)
	__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E (steven.js:402816)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	__ZN6steven9resources7Manager3new17h3fa7875809462e90E (steven.js:399860)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	__ZN6steven4main17h8974e073fbff5637E (steven.js:470511)
	__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h00bbd0533c772ef2E (steven.js:1051379)
	__ZN3std9panicking3try7do_call17h7b43cb5af68e0401E (steven.js:1051372:83)
	dynCall_vi (steven.js:1227363)
	invoke_vi (steven.js:11295)
	___rust_maybe_catch_panic (steven.js:1051445)
	__ZN3std2rt10lang_start17h383c8992c0d0ccc3E (steven.js:1051189)
	_main (steven.js:510191)
	callMain (steven.js:1228892)
	doRun (steven.js:1228951)
	(anonymous function) (steven.js:1228962)
[Error] Failed to load resource: the server responded with a status of 404 (File not found) (steven-29adafe4c02fb09c.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (File not found) (favicon.ico, line 0)

@satoshinm
Copy link
Owner Author

satoshinm commented May 14, 2017

screen shot 2017-05-14 at 12 57 29 am

Enabling RUST_BACKTRACE for a more informative error, it mentions Unwind_GetIPInfo:

[Error] thread 'main' panicked at 'explicit panic', /checkout/src/libstd/sys/unix/thread.rs:43
	printErr (steven.html:1249)
	put_char (steven.js:4346)
	write (steven.js:4266)
	write (steven.js:6295)
	___syscall4 (steven.js:7556)
	_write (steven.js:1215404)
	__ZN3std2io5Write9write_all17hcb9233a33bf0c52bE (steven.js:1032424)
	__ZN94__LT_std__io__Write__write_fmt__Adaptor_LT__u27_a_C__u20_T_GT__u20_as_u20_core__fmt__Write_GT_9write_str17h1d640efc6e63faf5E (steven.js:1032119)
	__ZN4core3fmt5write17h36ba3c3c97d7615bE (steven.js:1061020)
	dynCall_iiii (steven.js:1227458)
	invoke_iiii (steven.js:11416)
	__ZN3std2io5Write9write_fmt17h6729b634732be692E (steven.js:1031777)
	__ZN3std2io5impls69__LT_impl_u20_std__io__Write_u20_for_u20__RF__u27_a_u20_mut_u20_W_GT_9write_fmt17hcff529e7ae38d39aE (steven.js:1031752)
	__ZN3std9panicking12default_hook28__u7b__u7b_closure_u7d__u7d_17h47b2a7bf24f9ec4bE (steven.js:1028638)
	dynCall_viii (steven.js:1227486)
	invoke_viii (steven.js:11452)
	__ZN3std9panicking12default_hook17h96a38c23a922ad21E (steven.js:1027330)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN3std9panicking20rust_panic_with_hook17h2e0c66f95442aa5eE (steven.js:1026758)
	__ZN3std9panicking11begin_panic17ha37639164620fc7fE (steven.js:1026390)
	dynCall_viii (steven.js:1227486)
	invoke_viii (steven.js:11452)
	__ZN3std3sys3imp6thread6Thread3new17h0eb41cacd873c6f9E (steven.js:1050741)
	dynCall_viiii (steven.js:1227661)
	invoke_viiii (steven.js:11677)
	__ZN3std6thread7Builder5spawn17h99c753b389c56740E (steven.js:89898)
	__ZN3std6thread5spawn17h551ac61a7706f221E (steven.js:88412)
	dynCall_vii (steven.js:1227381)
	invoke_vii (steven.js:11317)
	__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E (steven.js:402820)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN6steven9resources7Manager3new17h3fa7875809462e90E (steven.js:399864)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN6steven4main17h8974e073fbff5637E (steven.js:470515)
	__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h00bbd0533c772ef2E (steven.js:1051383)
	__ZN3std9panicking3try7do_call17h7b43cb5af68e0401E (steven.js:1051376:83)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	___rust_maybe_catch_panic (steven.js:1051449)
	__ZN3std2rt10lang_start17h383c8992c0d0ccc3E (steven.js:1051193)
	_main (steven.js:510195)
	callMain (steven.js:1228896)
	doRun (steven.js:1228955)
	(anonymous function) (steven.js:1228966)
[Error] Unwind_GetIPInfo
	printErr (steven.html:1249)
	abort (steven.js:1229003)
	__Unwind_GetIPInfo (steven.js:7202)
	__ZN3std3sys3imp9backtrace7tracing3imp8trace_fn17h974d4c40551ba1cbE (steven.js:1033653)
	dynCall_iii (steven.js:1227549)
	__Unwind_Backtrace (steven.js:10395)
	__ZN3std3sys3imp9backtrace7tracing3imp16unwind_backtrace17h0e14f963e590228bE (steven.js:1032532)
	__ZN3std9panicking12default_hook28__u7b__u7b_closure_u7d__u7d_17h47b2a7bf24f9ec4bE (steven.js:1028771)
	dynCall_viii (steven.js:1227486)
	invoke_viii (steven.js:11452)
	__ZN3std9panicking12default_hook17h96a38c23a922ad21E (steven.js:1027330)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN3std9panicking20rust_panic_with_hook17h2e0c66f95442aa5eE (steven.js:1026758)
	__ZN3std9panicking11begin_panic17ha37639164620fc7fE (steven.js:1026390)
	dynCall_viii (steven.js:1227486)
	invoke_viii (steven.js:11452)
	__ZN3std3sys3imp6thread6Thread3new17h0eb41cacd873c6f9E (steven.js:1050741)
	dynCall_viiii (steven.js:1227661)
	invoke_viiii (steven.js:11677)
	__ZN3std6thread7Builder5spawn17h99c753b389c56740E (steven.js:89898)
	__ZN3std6thread5spawn17h551ac61a7706f221E (steven.js:88412)
	dynCall_vii (steven.js:1227381)
	invoke_vii (steven.js:11317)
	__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E (steven.js:402820)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN6steven9resources7Manager3new17h3fa7875809462e90E (steven.js:399864)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN6steven4main17h8974e073fbff5637E (steven.js:470515)
	__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h00bbd0533c772ef2E (steven.js:1051383)
	__ZN3std9panicking3try7do_call17h7b43cb5af68e0401E (steven.js:1051376:83)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	___rust_maybe_catch_panic (steven.js:1051449)
	__ZN3std2rt10lang_start17h383c8992c0d0ccc3E (steven.js:1051193)
	_main (steven.js:510195)
	callMain (steven.js:1228896)
	doRun (steven.js:1228955)
	(anonymous function) (steven.js:1228966)
[Error] warning: build with  -s DEMANGLE_SUPPORT=1  to link in libcxxabi demangling
	printErr (steven.html:1249)
	warnOnce (steven.js:364)
	demangle (steven.js:1091)
	(anonymous function) (steven.js:1100)
	anonymous
	demangleAll (steven.js:1098)
	stackTrace (steven.js:1125)
	abort (steven.js:1229014)
	__Unwind_GetIPInfo (steven.js:7202)
	__ZN3std3sys3imp9backtrace7tracing3imp8trace_fn17h974d4c40551ba1cbE (steven.js:1033653)
	dynCall_iii (steven.js:1227549)
	__Unwind_Backtrace (steven.js:10395)
	__ZN3std3sys3imp9backtrace7tracing3imp16unwind_backtrace17h0e14f963e590228bE (steven.js:1032532)
	__ZN3std9panicking12default_hook28__u7b__u7b_closure_u7d__u7d_17h47b2a7bf24f9ec4bE (steven.js:1028771)
	dynCall_viii (steven.js:1227486)
	invoke_viii (steven.js:11452)
	__ZN3std9panicking12default_hook17h96a38c23a922ad21E (steven.js:1027330)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN3std9panicking20rust_panic_with_hook17h2e0c66f95442aa5eE (steven.js:1026758)
	__ZN3std9panicking11begin_panic17ha37639164620fc7fE (steven.js:1026390)
	dynCall_viii (steven.js:1227486)
	invoke_viii (steven.js:11452)
	__ZN3std3sys3imp6thread6Thread3new17h0eb41cacd873c6f9E (steven.js:1050741)
	dynCall_viiii (steven.js:1227661)
	invoke_viiii (steven.js:11677)
	__ZN3std6thread7Builder5spawn17h99c753b389c56740E (steven.js:89898)
	__ZN3std6thread5spawn17h551ac61a7706f221E (steven.js:88412)
	dynCall_vii (steven.js:1227381)
	invoke_vii (steven.js:11317)
	__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E (steven.js:402820)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN6steven9resources7Manager3new17h3fa7875809462e90E (steven.js:399864)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	__ZN6steven4main17h8974e073fbff5637E (steven.js:470515)
	__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h00bbd0533c772ef2E (steven.js:1051383)
	__ZN3std9panicking3try7do_call17h7b43cb5af68e0401E (steven.js:1051376:83)
	dynCall_vi (steven.js:1227367)
	invoke_vi (steven.js:11299)
	___rust_maybe_catch_panic (steven.js:1051449)
	__ZN3std2rt10lang_start17h383c8992c0d0ccc3E (steven.js:1051193)
	_main (steven.js:510195)
	callMain (steven.js:1228896)
	doRun (steven.js:1228955)
	(anonymous function) (steven.js:1228966)
[Error] exception thrown: abort("Unwind_GetIPInfo") at jsStackTrace@http://localhost:8000/steven.js:1106:22
stackTrace@http://localhost:8000/steven.js:1123:24
abort@http://localhost:8000/steven.js:1229014:54
__Unwind_GetIPInfo@http://localhost:8000/steven.js:7202:12
__ZN3std3sys3imp9backtrace7tracing3imp8trace_fn17h974d4c40551ba1cbE@http://localhost:8000/steven.js:1033653:26
dynCall_iii@http://localhost:8000/steven.js:1227549:40
__Unwind_Backtrace@http://localhost:8000/steven.js:10395:40
__ZN3std3sys3imp9backtrace7tracing3imp16unwind_backtrace17h0e14f963e590228bE@http://localhost:8000/steven.js:1032532:26
__ZN3std9panicking12default_hook28__u7b__u7b_closure_u7d__u7d_17h47b2a7bf24f9ec4bE@http://localhost:8000/steven.js:1028771:78
dynCall_viii@http://localhost:8000/steven.js:1227486:34
invoke_viii@http://localhost:8000/steven.js:11452:27
__ZN3std9panicking12default_hook17h96a38c23a922ad21E@http://localhost:8000/steven.js:1027330:19
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
__ZN3std9panicking20rust_panic_with_hook17h2e0c66f95442aa5eE@http://localhost:8000/steven.js:1026758:16
__ZN3std9panicking11begin_panic17ha37639164620fc7fE@http://localhost:8000/steven.js:1026390:63
dynCall_viii@http://localhost:8000/steven.js:1227486:34
invoke_viii@http://localhost:8000/steven.js:11452:27
__ZN3std3sys3imp6thread6Thread3new17h0eb41cacd873c6f9E@http://localhost:8000/steven.js:1050741:14
dynCall_viiii@http://localhost:8000/steven.js:1227661:34
invoke_viiii@http://localhost:8000/steven.js:11677:28
__ZN3std6thread7Builder5spawn17h99c753b389c56740E@http://localhost:8000/steven.js:89898:19
__ZN3std6thread5spawn17h551ac61a7706f221E@http://localhost:8000/steven.js:88412:52
dynCall_vii@http://localhost:8000/steven.js:1227381:33
invoke_vii@http://localhost:8000/steven.js:11317:26
__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E@http://localhost:8000/steven.js:402820:20
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
__ZN6steven9resources7Manager3new17h3fa7875809462e90E@http://localhost:8000/steven.js:399864:16
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
__ZN6steven4main17h8974e073fbff5637E@http://localhost:8000/steven.js:470515:23
__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h00bbd0533c772ef2E@http://localhost:8000/steven.js:1051383:27
__ZN3std9panicking3try7do_call17h7b43cb5af68e0401E@http://localhost:8000/steven.js:1051376:82
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
___rust_maybe_catch_panic@http://localhost:8000/steven.js:1051449:11
__ZN3std2rt10lang_start17h383c8992c0d0ccc3E@http://localhost:8000/steven.js:1051193:36
_main@http://localhost:8000/steven.js:510195:51
callMain@http://localhost:8000/steven.js:1228896:30
doRun@http://localhost:8000/steven.js:1228955:60
http://localhost:8000/steven.js:1228966:12
If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.
	printErr (steven.html:1249)
	callMain (steven.js:1228916)
	doRun (steven.js:1228955)
	(anonymous function) (steven.js:1228966)
[Error] abort("Unwind_GetIPInfo") at jsStackTrace@http://localhost:8000/steven.js:1106:22
stackTrace@http://localhost:8000/steven.js:1123:24
abort@http://localhost:8000/steven.js:1229014:54
__Unwind_GetIPInfo@http://localhost:8000/steven.js:7202:12
__ZN3std3sys3imp9backtrace7tracing3imp8trace_fn17h974d4c40551ba1cbE@http://localhost:8000/steven.js:1033653:26
dynCall_iii@http://localhost:8000/steven.js:1227549:40
__Unwind_Backtrace@http://localhost:8000/steven.js:10395:40
__ZN3std3sys3imp9backtrace7tracing3imp16unwind_backtrace17h0e14f963e590228bE@http://localhost:8000/steven.js:1032532:26
__ZN3std9panicking12default_hook28__u7b__u7b_closure_u7d__u7d_17h47b2a7bf24f9ec4bE@http://localhost:8000/steven.js:1028771:78
dynCall_viii@http://localhost:8000/steven.js:1227486:34
invoke_viii@http://localhost:8000/steven.js:11452:27
__ZN3std9panicking12default_hook17h96a38c23a922ad21E@http://localhost:8000/steven.js:1027330:19
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
__ZN3std9panicking20rust_panic_with_hook17h2e0c66f95442aa5eE@http://localhost:8000/steven.js:1026758:16
__ZN3std9panicking11begin_panic17ha37639164620fc7fE@http://localhost:8000/steven.js:1026390:63
dynCall_viii@http://localhost:8000/steven.js:1227486:34
invoke_viii@http://localhost:8000/steven.js:11452:27
__ZN3std3sys3imp6thread6Thread3new17h0eb41cacd873c6f9E@http://localhost:8000/steven.js:1050741:14
dynCall_viiii@http://localhost:8000/steven.js:1227661:34
invoke_viiii@http://localhost:8000/steven.js:11677:28
__ZN3std6thread7Builder5spawn17h99c753b389c56740E@http://localhost:8000/steven.js:89898:19
__ZN3std6thread5spawn17h551ac61a7706f221E@http://localhost:8000/steven.js:88412:52
dynCall_vii@http://localhost:8000/steven.js:1227381:33
invoke_vii@http://localhost:8000/steven.js:11317:26
__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E@http://localhost:8000/steven.js:402820:20
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
__ZN6steven9resources7Manager3new17h3fa7875809462e90E@http://localhost:8000/steven.js:399864:16
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
__ZN6steven4main17h8974e073fbff5637E@http://localhost:8000/steven.js:470515:23
__ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h00bbd0533c772ef2E@http://localhost:8000/steven.js:1051383:27
__ZN3std9panicking3try7do_call17h7b43cb5af68e0401E@http://localhost:8000/steven.js:1051376:82
dynCall_vi@http://localhost:8000/steven.js:1227367:32
invoke_vi@http://localhost:8000/steven.js:11299:25
___rust_maybe_catch_panic@http://localhost:8000/steven.js:1051449:11
__ZN3std2rt10lang_start17h383c8992c0d0ccc3E@http://localhost:8000/steven.js:1051193:36
_main@http://localhost:8000/steven.js:510195:51
callMain@http://localhost:8000/steven.js:1228896:30
doRun@http://localhost:8000/steven.js:1228955:60
http://localhost:8000/steven.js:1228966:12
If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.
	(anonymous function) (steven.js:241)
	callMain (steven.js:1228917)
	doRun (steven.js:1228955)
	(anonymous function) (steven.js:1228966)
[Error] Failed to load resource: the server responded with a status of 404 (File not found) (steven-29adafe4c02fb09c.js.map, line 0)

@satoshinm
Copy link
Owner Author

satoshinm commented May 14, 2017

__ZN6steven9resources7Manager16download_vanilla17h4f5630a967cc4317E (steven.js:402816)

I think this error is trying to say it can't download the needed resources, around this function: https://github.com/Thinkofname/steven/blob/a9cb7654e45757b7219f4da5e6f709d0fa23f42a/src/resources.rs#L345 - unfortunately, not clear how to port this. The web platform cannot download arbitrary URLs cross-origin, yet the resources are mandatory. Setting this aside for now.

@satoshinm satoshinm changed the title [WIP] Update steven [WIP] Update steven for emscripten May 14, 2017
@satoshinm
Copy link
Owner Author

See some notes on challenges of completing this port in Thinkofname#70 (comment), in order of difficulty: sockets, crypto, threads. But even before porting, there is the difficulty of getting Steven up-to-date and functional on my system: Rust nightly is a moving target, what worked before may not work now, there's a bunch of warnings, it is not clear which are real problems, there is graphic corruption on the title screen, any login fails with "Invalid scheme for Http", and I don't know Rust to fix it.

screen shot 2017-05-14 at 9 52 49 am

@bjorn3
Copy link

bjorn3 commented May 15, 2017

Invalid scheme for Http is caused by not supporting https when openssl is not used by hyper (http library)

@iceiix
Copy link

iceiix commented Dec 29, 2020

@satoshinm iceiix/stevenarella#446 is further along using wasm32-unknown-unknown (had difficulties with wasm32-unknown-emscripten: https://users.rust-lang.org/t/what-is-a-known-working-setup-for-using-rust-with-emscripten-wasm32-unknown-emscripten/24312/4?u=iceiix, and the wasm32-unknown-unknown target is more popular / supported), although still a ways from being useful:

web.mov

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