Commit Graph

631 Commits

Author SHA1 Message Date
Lachlan Sneff
3aac97db42 Fix formatting 2018-12-27 09:56:26 -05:00
Brandon Fish
81b952ebec Add Emscripten tests/core tests 2018-12-27 01:46:41 -06:00
Brandon Fish
8921385fbb Update emtests to glob for c/cpp files, use ignores.txt to exclude tests, disable cc out by default 2018-12-27 01:43:38 -06:00
Lachlan Sneff
98c9ce5ed9 Add memory_grow*, memory_size vmcalls 2018-12-27 00:58:16 -05:00
Lachlan Sneff
0f3833fecb Add support for the start function 2018-12-27 00:07:48 -05:00
Lachlan Sneff
74f0ff444a Add support for tables 2018-12-26 22:29:42 -05:00
Lachlan Sneff
b9976f10b7 Fix compile warnings 2018-12-26 20:47:34 -05:00
Lachlan Sneff
a7618346e6 Make sig registry private 2018-12-26 20:44:45 -05:00
Lachlan Sneff
3861fe98c6 Add typesafe wasm export calls 2018-12-26 20:42:23 -05:00
Mackenzie Clark
4813047d37 clock_gettime with time crate and test
more lint
2018-12-26 16:58:23 -08:00
Lachlan Sneff
4bd2c3d053 Change FuncResolver::resolve signature 2018-12-26 17:28:07 -05:00
Lachlan Sneff
1bb5e420f3 Fix vm anyfunc offset 2018-12-26 17:01:52 -05:00
Lachlan Sneff
baf22b55be Fix formatting 2018-12-26 16:55:11 -05:00
Lachlan Sneff
53fab9c278 Update to latest master 2018-12-26 16:53:08 -05:00
Lachlan Sneff
e2a9bd4761
Merge branch 'master' into feature/vm_refactor 2018-12-26 15:51:14 -05:00
Lachlan Sneff
4fbf60e6ae Expose types module 2018-12-26 15:13:31 -05:00
Lachlan Sneff
503a2cfe64 Expose FuncResolver trait 2018-12-26 15:09:39 -05:00
Lachlan Sneff
4f0ef7f534 Add compilers modules 2018-12-26 15:07:28 -05:00
Lachlan Sneff
9f8798764e Runtime refactor compiles 2018-12-26 15:00:28 -05:00
Lachlan Sneff
5ce75fc0ad Fix most compile-time errors 2018-12-25 00:19:05 -05:00
Lachlan Sneff
fb04ba0bce Replace webassembly folder with master 2018-12-24 23:06:19 -05:00
Lachlan Sneff
c06c65e7c6 Add preliminary support for imports 2018-12-24 23:05:04 -05:00
Lachlan Sneff
93ef1e4220 new runtime module 2018-12-24 17:25:17 -05:00
Brandon Fish
bfa68e8d79 Add workaround to prevent use after free issue resulting in bad pointer 2018-12-24 13:10:29 -06:00
Syrus
3764e02607 Added emscriptent environment docs 2018-12-21 22:37:39 -08:00
Syrus
1ad580a618 Improved emscripten env(get,set,unset,put) integration 2018-12-21 17:16:40 -08:00
Syrus
ae77811c4d Merge branch 'master' into fix/emscripten-env
# Conflicts:
#	build/emtests.rs
#	src/emtests/mod.rs
2018-12-21 16:58:41 -08:00
Mackenzie Clark
cfb8442d6b lint 2018-12-20 23:08:00 -08:00
Mackenzie Clark
bc63bb736a this shouldn't be here 2018-12-20 21:58:00 -08:00
Mackenzie Clark
207c4d8d55 unwrap it 2018-12-20 21:55:03 -08:00
Mackenzie Clark
3783b923d1 implement a cross-platform stdout pipe 2018-12-20 21:50:24 -08:00
Brandon Fish
4c883c53a4 Make the StdioCapturer module only for test 2018-12-20 00:23:29 -06:00
Brandon Fish
abdb63148a Disable the Cranelift verifier by default except for tests 2018-12-19 19:59:45 -06:00
Syrus
a912c14022 Improved documentation of setjmp/longjmp 2018-12-19 00:13:16 -08:00
Syrus
db93d2693d Make setjmp/longjmp more secure 2018-12-18 23:21:18 -08:00
Syrus Akbary
e278bd4a29
Merge branch 'master' into feature/run-lua-wasm 2018-12-18 17:33:37 -08:00
Syrus
88ee0d736e Trying to fix linux compilation error 2018-12-18 17:31:30 -08:00
Lachlan Sneff
5b920b7953 More backing work 2018-12-18 20:28:15 -05:00
Syrus
116ed86668 Improved formatting 2018-12-18 17:23:45 -08:00
Syrus
87c3c037e4 Added emscripten jmp instructions 2018-12-18 17:21:12 -08:00
Syrus
903e3223dd Fix formatting 2018-12-18 09:43:59 -08:00
Syrus
2d5a1fd170 Merge branch 'master' into feature/run-lua-wasm
# Conflicts:
#	src/apis/emscripten/env.rs
#	src/apis/emscripten/mod.rs
#	src/apis/emscripten/process.rs
#	src/apis/emscripten/syscalls.rs
2018-12-18 09:43:36 -08:00
Steve Akinyemi
ef205fb60f Fix segfault 2018-12-18 14:00:18 +01:00
Syrus
be265ddba7 Improved lint 2018-12-17 22:26:05 -08:00
Syrus
bb298f1890 Merge branch 'master' into feature/emscripten-refactor 2018-12-17 22:24:44 -08:00
Syrus
3f27610459 Refactored emscripten logic out of Instance 2018-12-17 22:23:49 -08:00
Brandon Fish
fd94c2df86 Add more argument info to debug messages 2018-12-17 23:54:00 -06:00
Lachlan Sneff
e4dab88efd Redesign of vm data 2018-12-17 22:43:26 -05:00
Brandon Fish
ac87344013 Add emscripten nullfunc_v (#65) 2018-12-17 22:21:15 -05:00
Lachlan Sneff
0847c950a4 Merge branch 'master' into feature/vm_refactor 2018-12-17 21:51:03 -05:00
Lachlan Sneff
93f8cdfc81
Update cranelift to 0.26.0. (#64)
* Initial additional modules

* Update to cranelift 0.26.0

* Fixed formatting
2018-12-17 21:30:27 -05:00
Lachlan Sneff
fafb904875 Initial additional modules 2018-12-17 18:57:44 -05:00
Steve Akinyemi
a2bd8d170f Remove debug prints 2018-12-17 09:15:08 +01:00
Brandon Fish
de85ab943a Add Emscripten globals for Infinity and NaN to fix printf for these values 2018-12-16 14:00:43 -06:00
Syrus Akbary
ae210253b6
Merge pull request #61 from bjfish/debug-message-for-mocked-missing-tables-globals
Add debug messages for mocked missing globals and tables
2018-12-16 11:20:55 -08:00
Brandon Fish
4b33b101ed Add a debug messages for mocked missing globals and tables 2018-12-16 10:43:35 -06:00
Syrus
982db0281c Added support for 0 or 2 params in main emscripten function 2018-12-15 22:51:10 -08:00
Syrus Akbary
ff45aea0ea [WIP] Improved memory handling (#56)
* Improved memory handling

* Fix memory accessibility

* Fix formatting
2018-12-15 13:30:53 -05:00
Brandon Fish
c6957a6287 Run cargo fmt to clean up 2018-12-15 01:17:55 -06:00
Syrus Akbary
914b20d01f
Merge branch 'master' into fix-additional-clippy-warnings 2018-12-14 23:06:45 -08:00
Brandon Fish
572115f140 Initial format using rustfmt 2018-12-15 00:46:11 -06:00
Brandon Fish
9971c21d74 Fix clippy error equal expressions as operands to - 2018-12-15 00:11:32 -06:00
Brandon Fish
aa7fc05ea1 Fix clippy warning length comparison to one 2018-12-15 00:10:07 -06:00
Brandon Fish
d405d8de41 Fix clippy warnings unneeded returns 2018-12-15 00:07:14 -06:00
Brandon Fish
5b7f0f10dc Fix clippy redundant field names in struct initialization 2018-12-15 00:06:47 -06:00
Syrus
9d3b76835c Merge branch 'feature/runtime-upgrade' of github.com:wasmerio/wasmer into feature/runtime-upgrade 2018-12-14 19:57:44 -08:00
Syrus
1057131bc7 Added description of offset_guard_size 2018-12-14 19:57:00 -08:00
Syrus Akbary
81fb2fbd0b
Merge branch 'master' into feature/runtime-upgrade 2018-12-14 17:41:03 -08:00
Syrus
7e78d3c661 Improved max size code 2018-12-14 17:40:29 -08:00
Syrus
fd5554c3bd Refactored memory usage to use impl-abstract mmap 2018-12-14 17:32:35 -08:00
Brandon Fish
0b69d8465b Fix build warnings unused imports 2018-12-13 19:58:31 -06:00
Brandon Fish
e583226510 Fix build warning unnecessary unsafe 2018-12-13 19:58:08 -06:00
Steve Akinyemi
05aa3bc62a Fixing get_env 2018-12-14 00:11:48 +01:00
Syrus
a2bcdb658f Refactored libcalls 2018-12-13 12:49:30 -08:00
Syrus
38bd62be4d Trying to make it work 2018-12-13 12:36:53 -08:00
Steve Akinyemi
7f91a64cf6 Add a bunch of required functions and syscalls 2018-12-13 19:28:30 +01:00
Syrus
332840afe3 Added emscripten env test 2018-12-11 21:32:53 -08:00
Steve Akinyemi
fa1d602e26 Revert edition 2018-12-11 21:13:43 +01:00
Steve Akinyemi
d5f4541ac9 Merge branch 'fix/localtime' of https://github.com/wafoundation/wasmer into fix/localtime 2018-12-11 20:51:46 +01:00
Steve Akinyemi
cdf56f2865 Refactor localtime_r 2018-12-11 20:42:29 +01:00
Syrus
0eb6583b63 Merge branch 'master' into fix/localtime
# Conflicts:
#	emtests/README.md
#	src/apis/emscripten/mod.rs
#	src/apis/emscripten/storage.rs
#	src/bin/wasmer.rs
2018-12-11 10:32:21 -08:00
Steve Akinyemi
899bd5c919 Fix failing compilation 2018-12-11 19:24:47 +01:00
Steve Akinyemi
877c13979a Fix localtime_r issue caused by temp var 2018-12-11 19:04:46 +01:00
Steve Akinyemi
2b1dac4d7d Refactor code 2018-12-11 18:06:20 +01:00
Steve Akinyemi
6f632e615f Add impl for asctime_r 2018-12-11 17:05:07 +01:00
Syrus
9a028abfe5 Refactored emscripten usage to allow future ABIs 2018-12-10 21:19:39 -08:00
Syrus
eefea5ebee Add emscripten imports conditionally 2018-12-10 21:07:41 -08:00
Syrus
34e9e52b56 Improved execute wasm to use emscripten conditionally 2018-12-10 20:15:41 -08:00
Syrus
914addc1f3 Remove Stdio hack 2018-12-10 19:35:42 -08:00
Syrus
6f179ed4d2 Fixed merge 2018-12-10 19:31:08 -08:00
Syrus
028d86a300 Provide instance options when instantiating. Make tests monothreaded 2018-12-10 19:19:46 -08:00
Syrus
43128070b7 Added emtests autogenerated tests 2018-12-10 18:42:23 -08:00
Syrus
5796b172d1 Added emtests 2018-12-10 17:07:13 -08:00
Syrus
44a745e4f5 Added start_instance function 2018-12-10 16:23:14 -08:00
Syrus
707f30757c Added probestack to LibCall 2018-12-10 16:22:56 -08:00
Syrus
5dac9b489a Added emtests build 2018-12-09 19:21:28 -08:00
Syrus
e58963dd35 Refactored build outside src 2018-12-09 18:47:34 -08:00
Brandon Fish
e7c4e25e77 Fix clippy warnings returning the result of a let binding from a block 2018-12-09 01:13:47 -06:00
Brandon Fish
a857bca9ea Fix clippy warnings manual implementation of an assign operation 2018-12-09 01:05:22 -06:00
Brandon Fish
6354d3d14f Fix clippy warnings unused imports 2018-12-09 01:02:26 -06:00
Brandon Fish
6fd188a3f7 Fix clippy unused variable: instance 2018-12-08 00:31:49 -06:00
Brandon Fish
a9d95b42c5 Fix unneeded return statement 2018-12-08 00:27:36 -06:00
Brandon Fish
bd55552b4a Fix clippy long literal lacking separators warnings 2018-12-08 00:19:55 -06:00
Brandon Fish
704556e45e Fix redundant_field_names 2018-12-08 00:16:16 -06:00
Steve Akinyemi
2b81d88b58 Fixing _localtime_r 2018-12-08 01:38:51 +01:00
Syrus
80f76f79b5 Improved localtime formatting 2018-12-07 14:00:19 -08:00
Steve Akinyemi
540b5be395 Remove static_top fn 2018-12-07 18:19:28 +01:00
Steve Akinyemi
15e1e5aee0 Fix segfault 2018-12-07 16:37:14 +01:00
Steve Akinyemi
181837d7cc Fix localtime implementation 2018-12-07 14:50:35 +01:00
Lachlan Sneff
a29b480e85 Fixing merge issues 2018-12-06 22:44:16 -05:00
Lachlan Sneff
0e024aa722 Fix crashing cli args 2018-12-06 22:42:16 -05:00
Steve Akinyemi
485da4c701 More debugging 2018-12-07 04:23:18 +01:00
Steve Akinyemi
03cff50a40 Debug segfaulting stackallocation 2018-12-07 03:10:26 +01:00
Lachlan Sneff
28a668f38c Stack allocate arguments 2018-12-06 15:21:58 -05:00
Steve Akinyemi
266ced4311 Abstract arguments extraction into a function 2018-12-06 16:26:27 +01:00
Steve Akinyemi
5b8e4ed4a6 Fix argv allocation 2018-12-06 16:20:02 +01:00
Steve Akinyemi
fcb19f1c98 Remove stub function 2018-12-06 12:51:09 +01:00
Steve Akinyemi
2b3c87e80c Add support for argc/argv 2018-12-06 12:51:09 +01:00
Syrus Akbary
fbc2fc9c50 Make mock func calls non printed in releases 2018-12-05 23:53:41 -08:00
Syrus Akbary
27b4015373 Make progressbar optional 2018-12-05 23:29:27 -08:00
Syrus Akbary
36f70005c9 Improved progress bar style 2018-12-05 23:23:06 -08:00
Piotr Sikora
c18065a8f0 Fixed false positives in Emscripten detection. (#35)
Almost all languages targeting WebAssembly create imports from
"env" module by default, which means that Emscripten was being
detected even when it wasn't used.

Use "_emscripten_memcpy_big" as a signal, since it's imported
in all WASM modules produced by Emscripten, even as simple as:

    EMSCRIPTEN_KEEPALIVE
    int
    main(int argc, const char** argv) {
        return 0;
    }

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
2018-12-05 21:01:52 -05:00
Lachlan Sneff
bb34f4718e Add initial progress bar 2018-12-05 20:39:06 -05:00
Syrus Akbary
e09205a391 Fixed accept socket call 2018-12-05 16:16:17 -08:00
Syrus Akbary
92a97d1dd4 Added emscripten _sysconf 2018-12-05 15:14:58 -08:00
Syrus Akbary
0379668f27 Fixed readv by commenting debug! statements 2018-12-01 16:26:17 -08:00
Syrus Akbary
4b2abd631c Multiple fixes, now http server is responding 2018-12-01 16:14:16 -08:00
Syrus Akbary
0d3134c9fd Added emscripten _signal, improved chdir implementation 2018-12-01 12:12:04 -08:00
Syrus Akbary
a85e02fe6e Added ___syscall57 emscripten syscall 2018-12-01 11:33:17 -08:00
Syrus Akbary
d1c8d34270 Fixed emscripten detector 2018-12-01 11:32:24 -08:00
Syrus Akbary
a2a728e8e4 Emscripten writev is now working 2018-11-30 10:37:45 -08:00
Syrus Akbary
7f504c9f5e Trying to fix ___syscall146 2018-11-29 23:55:36 -08:00
Syrus Akbary
b5e93ecae8 Improved docs on emscripten memory instantiation 2018-11-29 22:46:52 -08:00
Syrus Akbary
4ac6d4838f Fixed wrong syscalls debug strings 2018-11-29 22:39:45 -08:00
Syrus Akbary
a6f47fa17d Added ___emscripten_environ_constructor initializer 2018-11-29 22:31:24 -08:00
Syrus Akbary
d94e13778a Added emscripten ___build_environment mock 2018-11-29 21:59:43 -08:00
Syrus Akbary
8a4d26396d Trying to bypass recovery signal addr issue 2018-11-29 20:55:05 -08:00
Syrus Akbary
948f519a04 Make tests happy again 2018-11-29 20:49:34 -08:00
Syrus Akbary
55b0509654 Mock unimplemented cases for ___syscall54 (ioctl) 2018-11-29 19:43:24 -08:00
Syrus Akbary
0d6d91159e Merge branch 'feature/compile-and-run-nginx-wasm' of github.com:wasmerio/wasmer into feature/compile-and-run-nginx-wasm 2018-11-29 13:07:26 -08:00
Syrus Akbary
209062d27d Added debug for nullfuncs 2018-11-29 13:07:20 -08:00
Lachlan Sneff
c881f95eb6 Almost working 2018-11-29 15:49:04 -05:00
Syrus Akbary
adee7d42db Improved debug! in all emscripten calls 2018-11-28 22:02:25 -08:00
Lachlan Sneff
1db0306b8b implmented mmap2 2018-11-29 00:11:36 -05:00
Syrus Akbary
c9ae2f25b9 Fixed all warnings 2018-11-28 13:29:50 -08:00
Syrus Akbary
80ddc759a1 Formatted files 2018-11-28 13:25:56 -08:00
Syrus Akbary
02477b6e5e Added support for conditional emscripten 2018-11-28 13:25:17 -08:00
Syrus Akbary
1f49f0358f Merge branch 'master' into feature/compile-and-run-nginx-wasm
# Conflicts:
#	src/bin/wasmer.rs
#	src/recovery.rs
2018-11-27 23:47:13 -08:00
Syrus Akbary
30f79554e5 Added unwind spectests 2018-11-27 23:38:35 -08:00
Syrus Akbary
836f6c70af Added memory_trap spectests 💪 2018-11-27 23:35:53 -08:00
Syrus Akbary
4d41cbbac6 Merge branch 'master' into self-update
# Conflicts:
#	src/bin/wasmer.rs
2018-11-27 21:53:33 -08:00
losfair
319bd08905 Install signal handler only once. 2018-11-28 13:21:03 +08:00
losfair
b9714e1ce1 Fix a few warnings 2018-11-28 13:18:23 +08:00
losfair
3815eaf13a Allow using wasmer as a library. 2018-11-28 13:15:33 +08:00
Steve Akinyemi
f7e3f128d3 Refactor code 2018-11-28 02:10:09 +01:00
Lachlan Sneff
88589a9cbc Add sig* syscalls 2018-11-27 19:10:43 -05:00
Steve Akinyemi
ad426fb5e3 Resolve REUSEADDR issue 2018-11-27 15:19:10 +01:00
Syrus Akbary
cf64cc8e04 Added ___syscall12 and ___syscall192 implementations 2018-11-26 23:28:37 -08:00
Syrus Akbary
4fb01c87ec Improved import functions casting readability 2018-11-26 21:23:23 -08:00
Syrus Akbary
c2ede37a72 Improved formatting 2018-11-26 20:29:26 -08:00
Syrus Akbary
50f6ea3bd4 Fixed all Rust warnings 2018-11-26 20:28:13 -08:00
Lachlan Sneff
30d4688fe3 Runs up to socket/ioctl/sigaction functions 2018-11-26 22:48:19 -05:00
Steve Akinyemi
c460ddd325 Merge branch 'feature/compile-and-run-nginx-wasm' of https://github.com/wafoundation/wasmer into feature/compile-and-run-nginx-wasm 2018-11-27 01:15:25 +01:00
Steve Akinyemi
1a08c19b5d Add __syscall340 2018-11-27 01:15:20 +01:00
Syrus Akbary
3fc759df63 Merge branch 'feature/compile-and-run-nginx-wasm' of github.com:wasmerio/wasmer into feature/compile-and-run-nginx-wasm 2018-11-26 14:30:55 -08:00
Syrus Akbary
adad0a0be2 Improved debug calls 2018-11-26 14:30:28 -08:00
Steve Akinyemi
5d64349894 Merge branch 'feature/compile-and-run-nginx-wasm' of https://github.com/wafoundation/wasmer into feature/compile-and-run-nginx-wasm 2018-11-26 23:28:01 +01:00
Steve Akinyemi
be07767faf Add GuestTm 2018-11-26 23:27:56 +01:00
Syrus Akbary
0ba5f1ecb7 Added mock for _strftime 2018-11-26 14:16:51 -08:00
Syrus Akbary
ac51a33d5e Improved utils from pritnln! to debug! 2018-11-26 14:06:05 -08:00
Syrus Akbary
8876ade624 Added emscripten ___syscall201 and ___syscall202 2018-11-26 13:59:18 -08:00
Syrus Akbary
c3813fedea Removed _localtime emscripten mock 2018-11-26 13:51:24 -08:00
Syrus Akbary
bef9f075f0 Removed duplicated emscripten time functions 2018-11-26 13:45:38 -08:00
Syrus Akbary
28c5afabfa Make happy path 2018-11-26 13:42:44 -08:00
Syrus Akbary
ab740aa37c Merge branch 'feature/compile-and-run-nginx-wasm' of github.com:wasmerio/wasmer into feature/compile-and-run-nginx-wasm
# Conflicts:
#	src/apis/emscripten/mod.rs
2018-11-26 13:30:55 -08:00
Syrus Akbary
7a2920f75b Use debug instead of println for emscripten mocks 2018-11-26 13:21:11 -08:00
Steve Akinyemi
27f642a891 Merge changes 2018-11-26 22:20:10 +01:00
Syrus Akbary
9f511f3994 Added emscripten ___syscall64 and import ___syscall122 2018-11-26 13:17:44 -08:00
Steve Akinyemi
3f819e3a79 Move some functions to utils 2018-11-26 22:15:49 +01:00
Lachlan Sneff
3be1bdba30 Fix build errors 2018-11-26 16:11:01 -05:00
Lachlan Sneff
bd3b78ccc8 Add several more syscalls 2018-11-26 16:07:42 -05:00
Lachlan Sneff
ec9e83eca6 Add a few more syscalls 2018-11-26 16:07:30 -05:00
Steve Akinyemi
b1ba24e99d Add _localtimeand _time functions 2018-11-26 22:01:15 +01:00
Syrus Akbary
5907bcc0f4 Added emscripten syscall20 implementation 2018-11-26 12:48:39 -08:00
Syrus Akbary
5911ac58c0 Added _clock_gettime emscripten implementation 2018-11-26 12:28:20 -08:00
Syrus Akbary
cb7c7fd475 Added _gettimeofday to emscripten 2018-11-26 12:02:29 -08:00
Syrus Akbary
444d85f9c9 Added debug release 2018-11-26 11:47:33 -08:00
Syrus Akbary
057e1ead18 Mock all the functions
Based on the suggestion from @lachlansneff
2018-11-26 11:16:09 -08:00
Lachlan Sneff
76c9107e48 Added a few more syscalls 2018-11-26 01:17:56 -05:00
Syrus Akbary
f186ed8534 Added self-update command 2018-11-25 21:31:32 -08:00
Syrus Akbary
5a81c501be
Merge branch 'master' into feature/compile-and-run-nginx-wasm 2018-11-25 21:28:20 -08:00
losfair
dad50f6f2c Add the SA_ONSTACK flag to SigAction so that stack overflow doesn't prevent unwinding. 2018-11-26 13:13:52 +08:00
Lachlan Sneff
c4b2e87c19 Finish merging 2018-11-26 00:08:33 -05:00
Lachlan Sneff
a8b62ae8a5 Hack together enough emscripten stack stuff to make it happy 2018-11-26 00:06:50 -05:00
Steve Akinyemi
ecc8199855 Remove failing impl 2018-11-26 00:05:36 -05:00
Steve Akinyemi
399f72df94 Add some syscalls 2018-11-26 00:05:36 -05:00
Lachlan Sneff
75ef87824e Segfault-based memory bounds-checking. (#29)
* Mostly working

* Improve CircleCI releases

* Recover safely from WebAssembly-generated traps

* Add notes about async signal safety

* Improved trap catching with call_protected macro

* Improved test assert_trap code using call_protected macro

* Mostly working
2018-11-26 00:02:59 -05:00
Syrus Akbary
5feda6b524 Improved test assert_trap code using call_protected macro 2018-11-26 00:01:30 -05:00
Syrus Akbary
a44a3b0456 Improved trap catching with call_protected macro 2018-11-26 00:01:30 -05:00
losfair
6d09fab498 Add notes about async signal safety 2018-11-26 00:01:30 -05:00
losfair
227a3ee6d6 Recover safely from WebAssembly-generated traps 2018-11-26 00:01:30 -05:00
Lachlan Sneff
4015fb6193 Hack together enough emscripten stack stuff to make it happy 2018-11-25 23:56:21 -05:00
Lachlan Sneff
399d253bc1 Segfault-based memory bounds-checking. (#29)
* Mostly working

* Improve CircleCI releases

* Recover safely from WebAssembly-generated traps

* Add notes about async signal safety

* Improved trap catching with call_protected macro

* Improved test assert_trap code using call_protected macro

* Mostly working
2018-11-25 10:51:21 -08:00
Syrus Akbary
6b75580749 Improved test assert_trap code using call_protected macro 2018-11-24 10:52:17 -08:00
Syrus Akbary
e258875d4b Improved trap catching with call_protected macro 2018-11-24 10:50:48 -08:00
Steve Akinyemi
88235eab37 Remove failing impl 2018-11-24 18:38:51 +01:00
Steve Akinyemi
6a72d942fd Update to use new varargs impl 2018-11-24 18:31:38 +01:00
Steve Akinyemi
c639bf850e Add some syscalls 2018-11-24 18:07:45 +01:00
Steve Akinyemi
2486ac96a3 Add existing syscalls impl 2018-11-24 18:07:08 +01:00
Steve Akinyemi
44429aae74 Add legend to emscripten readme 2018-11-24 18:06:30 +01:00
Steve Akinyemi
c7ac71b0e4 Reafactor varargs macro 2018-11-24 18:06:30 +01:00
losfair
a316253b94 Add notes about async signal safety 2018-11-24 22:25:32 +08:00
losfair
5de9f0f7b4 Recover safely from WebAssembly-generated traps 2018-11-24 19:40:29 +08:00
Lachlan Sneff
6121370656 Fix debug macro warnings 2018-11-23 00:13:20 -05:00
Lachlan Sneff
587fb92de6 Add VarArgs type 2018-11-23 00:13:01 -05:00
Syrus Akbary
ad562ddc35 Remove debug statements on release 2018-11-21 21:22:27 -08:00
Syrus Akbary
e59b95d95e Removed unused code 2018-11-21 21:07:01 -08:00
Syrus Akbary
38f045da3c run cargo fmt 2018-11-21 20:59:23 -08:00
Syrus Akbary
ccdabd26b5 pypyjs.wasm is finally working 🎉 2018-11-21 20:58:32 -08:00
Syrus Akbary
a50e846f9b Refactored host code 2018-11-21 15:10:03 -08:00
Syrus Akbary
1f6e640054 Improved emscripten integration 2018-11-21 14:31:55 -08:00
Syrus Akbary
5ad5606b39 Added APIs to support conditional emscripten instantiation 2018-11-20 20:51:11 -08:00
Syrus Akbary
0ad10a4900 Make emscripten “work” 2018-11-20 19:24:23 -08:00
Syrus Akbary
fca2eb3884 Merge branch 'master' into feature/add-emscripten-compatible-apis
# Conflicts:
#	Cargo.lock
#	cranelift
#	src/webassembly/instance.rs
2018-11-20 19:07:51 -08:00
Syrus Akbary
f3833dc237 Merge branch 'master' into parallel-compilation
# Conflicts:
#	src/webassembly/instance.rs
2018-11-20 16:30:25 -08:00
Steve Akinyemi
771dae7feb Refactor api code and doc 2018-11-21 00:45:57 +01:00
Steve Akinyemi
70e3262bf8 Add some other emscripten apis 2018-11-20 00:43:07 +01:00
Syrus Akbary
3fa01be0bb Remove offsets print 2018-11-19 13:21:11 -08:00
Syrus Akbary
3b878620cc Added support for mocking globals and tables by default 2018-11-19 13:09:16 -08:00
Syrus Akbary
12dc70d497 Added support for global references 2018-11-19 10:27:55 -08:00
Syrus Akbary
f2d2c9b9f8 Use rayon for easy parallel compilation 2018-11-18 23:51:56 -08:00
Syrus Akbary
9680d586c3 Use iterator map for compilation 2018-11-18 22:12:22 -08:00
Syrus Akbary
39e1f59311 Merge branch 'master' into features/global-value-offset 2018-11-18 21:05:55 -08:00
Syrus Akbary
a7e1775255 Added mocking back into instance 2018-11-18 21:05:26 -08:00
Syrus Akbary
60b1520808 Improved naming of Exportable to ImportableExportable 2018-11-18 20:23:01 -08:00
Syrus Akbary
9f561db90b Added support for global value offsets
This commit depends on this PR landing on cranelift:
https://github.com/CraneStation/cranelift/pull/612
2018-11-18 20:22:18 -08:00
Steve Akinyemi
cb77e89c45 Add some syscalls 2018-11-19 01:12:29 +01:00
Steve Akinyemi
ab570e8be6 Add syscall function sig 2018-11-19 01:12:29 +01:00
Steve Akinyemi
79b74567b2 Update with link to top 2018-11-19 01:12:29 +01:00
Steve Akinyemi
f8eae09110 Add emscripten printf example and list of emscripten syscalls 2018-11-19 01:12:29 +01:00
Syrus Akbary
998d7294f0 Fix table element size 2018-11-18 15:41:31 -08:00
Syrus Akbary
f3cbfc0e09 Fixed return_mode 2018-11-18 15:23:38 -08:00
Syrus Akbary
91875fef06 Merge branch 'master' into cranelift-upgrade
# Conflicts:
#	src/webassembly/module.rs
2018-11-18 13:09:34 -08:00
Steve Akinyemi
e7923d3b32 Add memory_grow.wast test file. 2018-11-17 22:13:59 +01:00
Steve Akinyemi
ba6bc71019 Fix LinearMemory.current update bug 2018-11-17 19:56:15 +01:00
Syrus Akbary
7977d09fc7 Merge branch 'master' into fix/table-import-memory-repr-rebased
# Conflicts:
#	.circleci/config.yml
#	install.sh
#	src/build_spectests.rs
#	src/linkers/emscripten/abort.rs
#	src/linkers/emscripten/mod.rs
#	src/linkers/mod.rs
#	src/main.rs
#	src/webassembly/instance.rs
#	src/webassembly/memory.rs
#	src/webassembly/mod.rs
#	src/webassembly/module.rs
2018-11-17 01:01:47 -08:00
Syrus Akbary
84b9847456 Improved offsets in module using pointer size rather than fixed numbers
# Conflicts:
#	src/webassembly/module.rs
2018-11-17 00:46:27 -08:00
Syrus Akbary
e4ed4cc532 Improved instance & module data pointers location
# Conflicts:
#	src/webassembly/instance.rs
#	src/webassembly/module.rs
2018-11-17 00:42:31 -08:00
Syrus Akbary
ac2d605472 Added Instance options, automatically mock missing imports
# Conflicts:
#	src/webassembly/instance.rs
#	src/webassembly/mod.rs
2018-11-17 00:37:45 -08:00
Syrus Akbary
b16fceb9d3 Added emscripten abort function
# Conflicts:
#	src/linkers/emscripten/mod.rs
2018-11-17 00:10:41 -08:00