Lachlan Sneff
57e24c957c
Merge branch 'master' into feature/remove-call-protected
2019-04-12 12:44:59 -07:00
Mark McCaskey
d507253372
update crate version numbers to 0.3.0
2019-04-12 12:19:46 -07:00
Lachlan Sneff
e8d5f01276
Merge branch 'master' into feature/remove-call-protected
2019-04-12 10:38:04 -07:00
Lachlan Sneff
d8c6f76846
Redesign the interface between the runtime and the backends.
...
This removes the ProtectedCaller and FuncResolver traits, simplifying call implementations and improving dynamic call throughput.
2019-04-11 18:01:54 -07:00
Syrus
94fac3dd8b
Updated version to 0.3.0 🎉
2019-04-11 17:19:39 -07:00
Lachlan Sneff
a100b2a72e
feature cfg away singlepass and llvm backends in cli
2019-04-11 15:31:02 -07:00
Lachlan Sneff
688b6cae26
Merge branch 'master' into feature/nightly-release
2019-04-11 14:36:18 -07:00
Syrus
d67bfdb2c5
Renamed dynasm backend to singlepass
2019-04-11 12:44:03 -07:00
Lachlan Sneff
c898439817
Add well placed unwind(allowed) attribute
2019-04-11 12:07:54 -07:00
Syrus
71aaf2d3f8
Updated cargo
2019-04-11 11:40:23 -07:00
Syrus
e5fc3b49b8
Create releases with dynasm
2019-04-06 13:23:16 -07:00
Mackenzie Clark
7cea2c28a1
update lockfile for zbox fix
2019-04-05 11:15:44 -07:00
Brandon Fish
5fd0ee810b
Update Cargo.lock for Cranelift 0.3.0
2019-04-04 10:23:28 -05:00
Mark McCaskey
03b529d3d1
Merge branch 'master' into add-validate
2019-04-03 21:35:23 -07:00
Mark McCaskey
bda5b19098
update wasm-parser dep; use it for validation
2019-04-03 17:21:57 -07:00
Mackenzie Clark
e9e7a33317
fix warnings and let it build on windows
2019-04-03 16:50:15 -07:00
Mark McCaskey
d164c7a93b
update wasi Cargo.toml
2019-04-01 17:21:48 -07:00
Mark McCaskey
2dd7ec8b72
fix it up
2019-04-01 16:36:41 -07:00
Lachlan Sneff
ce35e5794f
Change ValueType trait and add basic fs
2019-04-01 15:52:35 -07:00
Lachlan Sneff
c12c7d558c
Merge branch 'feature/wasi-fs' into feature/wasi
2019-04-01 15:17:13 -07:00
Mark McCaskey
88212d356f
implement random_get()
2019-03-29 13:06:06 -07:00
Mark McCaskey
48d34d9522
improve calling of platform-specific code and impl linux clock calls
2019-03-29 11:38:48 -07:00
Lachlan Sneff
48b5918895
Merge branch 'master' into feature/wasi-fs
2019-03-29 11:09:04 -07:00
Mark McCaskey
bc863fcf0c
hook up wasi to wasmer
2019-03-28 12:19:23 -07:00
Mackenzie Clark
09642c92db
revert changes to emscripten
2019-03-28 11:55:01 -07:00
Mark McCaskey
b7254ce1f5
add stubs and dispatch
2019-03-28 11:54:22 -07:00
Mackenzie Clark
5294eb6b0d
merge and respond to feedback
2019-03-28 11:41:45 -07:00
Mark McCaskey
9c58bed344
add support for symbol maps
2019-03-26 16:41:40 -07:00
Mackenzie Clark
7c9e537443
refactor everything
2019-03-25 19:44:12 -07:00
Mark McCaskey
1ce29e788f
add syscalls for sqlite3
2019-03-25 11:12:34 -07:00
Mackenzie Clark
0666a5375b
add missing hashbrown dependency for dynasm
2019-03-24 17:30:10 -07:00
Mackenzie Clark
0091264b65
get it building with zbox fork
2019-03-24 16:38:45 -07:00
Mackenzie Clark
e5951ce56d
Merge branch 'master'
...
Conflicts:
Cargo.lock
Cargo.toml
lib/emscripten/Cargo.toml
lib/emscripten/src/syscalls/unix.rs
lib/runtime-core/Cargo.toml
2019-03-23 00:27:55 -07:00
Mackenzie Clark
9ed593d7b6
wip enchanced vfs
2019-03-21 08:55:57 -07:00
Brandon Fish
e5d67c9705
Add dynasm feature to emscripten tests
2019-03-13 20:16:07 -05:00
Mackenzie Clark
c1e0d325e3
switch to zbox
2019-03-13 14:23:55 -07:00
Brandon Fish
68181acc74
Add dynasm to spectests
2019-03-12 21:14:50 -05:00
Brandon Fish
557be77338
Merge branch 'master' into feature/dynasm-backend
2019-03-12 20:58:22 -05:00
Mackenzie Clark
f014a05304
create runtime abi crate and vfs implementation
2019-03-12 10:40:52 -07:00
Syrus
e591cd0607
Use wasmerio fork of inkwell
2019-03-11 10:03:40 -07:00
Lachlan Sneff
17eada53f3
feat(runtime) Get ready for tiering ( #257 )
...
* Add local_function field to context
* Add local call indirection to llvm
* local call indirection
* Fix vm test
* Fix cranelift local call indirection
* Fix unwinding on nightly
2019-03-08 15:15:16 -08:00
Syrus
3a4325c5a3
Only use llvm in non windows envs
2019-03-07 18:26:29 -08:00
Brandon Fish
1957ddef53
Run emscripten tests with both compilers
2019-03-06 21:36:46 -06:00
Lachlan Sneff
9f589de031
Reset Cargo.lock
2019-03-06 13:53:06 -08:00
Lachlan Sneff
e3e91c628b
Merge branch 'master' into feature/llvm-backend
2019-03-06 13:47:15 -08:00
Ivan Enderlin
365d00979b
chore(runtime-c-api) Update the Cargo.lock
file.
2019-03-06 11:03:38 +01:00
Lachlan Sneff
039ebdcf75
Fix merge errors and update llvm to use the new runtime error type.
2019-03-04 13:10:28 -08:00
Lachlan Sneff
4e198bca8b
merge upstream/master into wasmer-private/feature/llvm-backend
2019-03-04 13:03:32 -08:00
Lachlan Sneff
caf2205936
Add a signal handler for macos and linux.
...
Implementation Notes:
- To avoid setjmp, longjmp, and the mess that those create, we instead set the interrupting
context of the signal handler to return into the `throw_trap` routine. To my surprise,
this actually works. The stack ends up getting unwound normally and the memory-oob error
is caught by the trampoline.
2019-03-02 17:00:05 -08:00
Brandon Fish
b80252e165
Setup the spectests lib to use llvm-backend
2019-02-28 23:02:03 -06:00
Lachlan Sneff
6a20676fa9
Actually unmap the code after it's done being used
2019-02-28 17:20:18 -08:00
Lachlan Sneff
359ac5abec
Connect part of the llvm backend to the runtime
2019-02-28 13:18:00 -08:00
Lachlan Sneff
d4ae5cdd40
Get function addresses from llvm-compiled code
2019-02-28 12:31:39 -08:00
Lachlan Sneff
5d77769381
Hopefully finish the memory manager implementation for llvm RuntimeDyLd
2019-02-27 17:21:20 -08:00
Syrus
60f8f15db3
Updated version to 0.2.1
2019-02-27 17:20:49 -08:00
Lachlan Sneff
4f833876e0
Start work on object loader using llvm's RuntimeDyld api.
2019-02-25 18:08:06 -08:00
Syrus
2d49d58665
Use blake2b (simd) version instead of blake2
2019-02-25 17:43:25 -08:00
Syrus
e7d08712b5
Use blake2 hashing algorithm
2019-02-25 17:37:33 -08:00
Syrus
53c8603464
Updated crates version to 0.2.0
2019-02-25 13:33:33 -08:00
Syrus Akbary
c5c967da00
Added parallel compilation ( #209 )
2019-02-25 12:03:48 -08:00
losfair
e9c0325784
Update dependencies
2019-02-24 00:51:47 +08:00
Mackenzie Clark
82eef13f41
Create a grow error and refactor grow impl to return result ( #191 )
2019-02-22 22:18:59 -08:00
Lachlan Sneff
2a913f5663
Implement table, partial call_indirect
2019-02-22 17:34:55 -08:00
Lachlan Sneff
df03d00e74
Merge upstream/master into feature/llvm-feature
2019-02-22 14:14:46 -08:00
Lachlan Sneff
4042cff914
Change hashing algorithm from sha1 to meowhash
2019-02-22 13:02:28 -08:00
Mackenzie Clark
70ba4ec466
Merge branch 'master' into feature/benchmarks
2019-02-22 12:14:11 -08:00
Lachlan Sneff
17901f992a
Add benchmark runner and nginx compile vs. load bench
2019-02-22 12:07:07 -08:00
Mackenzie Clark
a6d72bdec9
more emscripten stubs and urandom hack ( #199 )
2019-02-22 10:42:38 -08:00
Lachlan Sneff
696fd8fce3
Update api again and change SerializedCache to Artifact
2019-02-21 17:07:04 -08:00
Lachlan Sneff
2234f357b7
Merge branch 'master' into feature/cache-rework
2019-02-21 11:54:57 -08:00
Lachlan Sneff
7fa818ea06
Finalize new cache api
2019-02-21 11:47:28 -08:00
Brandon Fish
2ed6e82354
Merge branch 'master' into feature/c-api
2019-02-17 17:20:47 -06:00
David McNeil
a9b1c6c85e
Fix emscripten environment ( #172 )
...
Dynamically determine abortOnCannotGrowMemory and add
_emscripten_get_heap_size and _emscripten_resize_heap
2019-02-16 15:01:01 -07:00
Brandon Fish
768a2fae18
Merge branch 'master' into feature/c-api
2019-02-15 19:12:30 -06:00
Lachlan Sneff
108973dabe
Start producing object files with llvm
2019-02-15 16:02:20 -08:00
Lachlan Sneff
73b4f7d337
Implement memory and global operations
2019-02-14 18:08:20 -08:00
Lachlan Sneff
2d87f64f82
Merge master into feature/llvm-backend
2019-02-14 15:47:28 -08:00
Lachlan Sneff
8827830aba
implement load* and store* instructions
2019-02-14 15:13:58 -08:00
Mackenzie Clark
6a1fdb7f91
add windows exception handling in C ( #175 )
2019-02-14 09:58:33 -08:00
losfair
8d8db4aa09
Starting integration.
2019-02-14 00:53:36 +08:00
Lachlan Sneff
5ee19e55a5
Add some branching instructions
2019-02-11 19:34:04 -08:00
losfair
af19f5c097
Update dependencies.
2019-02-12 00:51:26 +08:00
Lachlan Sneff
327e3a4a1a
Implement many wasm instructions
2019-02-09 15:53:40 -08:00
Brandon Fish
c3707efa08
Update for merge from master
2019-02-09 13:09:54 -06:00
losfair
9649219578
Initial work on WebAssembly parser for Dynasm backend.
2019-02-08 23:56:14 +08:00
Lachlan Sneff
8d2c1956d7
Fix runtime error catching ( #157 )
2019-02-07 14:44:28 -08:00
Mackenzie Clark
ce03e4464c
fill unsetenv for windows ( #150 )
...
* fill unsetenv
* update usage of read_string_from_wasm
* convert helper to return String
* correct usage of helper fn, cargo fmt, and check in lock file change
2019-02-07 10:51:19 -08:00
Mackenzie Clark
4ab8bd69be
install errno on all platforms ( #152 )
2019-02-07 10:02:41 -08:00
Lachlan Sneff
8fe9b7eac2
Add caching. ( #134 )
...
* Allow a module to have a different signature registry than the process-specific
* Add core ability to build compiled code caches
* Remove timing printouts
* Serialize/Deserialize memories to reduce copies
* Work more on api
* Relocate local functions relatively before external functions
* Fix incorrect definition in test
* merge errors caused by merge
* Fix emscripten compile
* Fix review comments
2019-02-06 16:26:45 -08:00
Mackenzie Clark
7bd609fd58
memory fixes for windows ( #138 )
2019-02-05 16:07:55 -08:00
Syrus
9370588b86
Merge branch 'master' into fix/emscripten-translate
2019-01-31 14:00:00 -08:00
Brandon Fish
30caeb0810
Merge branch 'master' into fix/emscripten-translate
2019-01-29 23:07:32 -06:00
Brandon Fish
9f206399de
Merge branch 'master' into feature/move-spectests-to-own-lib
2019-01-29 19:04:10 -06:00
Brandon Fish
3d62fc88ca
Move spectests to their own library
2019-01-29 16:58:16 -06:00
Lachlan Sneff
5aa7d71ede
Merge branch 'master' into feature/improve-importing
2019-01-29 10:28:18 -08:00
Lachlan Sneff
19242a413f
Get table imports working
2019-01-29 10:16:39 -08:00
Brandon Fish
2245c920ed
Merge branch 'master' into fix/emscripten-translate
2019-01-27 13:21:44 -06:00
Lachlan Sneff
e4686e67c4
Add importable memories and dynamic memories
2019-01-25 15:28:54 -08:00
Syrus
29a3af11fc
Updated lib crate versions
2019-01-25 10:38:31 -08:00
Syrus
4a8eacb370
Simplified storage of emscripten globals data
2019-01-24 16:45:06 -08:00
Syrus
788ba75982
Updated main Cargo witht he proper dependencies
2019-01-24 14:04:25 -08:00
Syrus
87d02d8399
Updated runtime and runtime-core versions
2019-01-24 13:45:25 -08:00
Lachlan Sneff
a20627964c
Improve runtime docs and add readme ( #118 )
...
* Add crate-level documentation
* add runtime readme
* Fix lint
2019-01-24 10:51:20 -08:00
Lachlan Sneff
ab65477d1f
Refine the runtime api and document the exposed items ( #115 )
...
* private module, remove unused method, docs on compile_with
* refine runtime api and document exposed items
* Fix integration test build
* Fix lint
2019-01-23 12:34:15 -08:00
Lachlan Sneff
38b0fbf3c5
Generate trampolines to call exported functions instead of using libffi ( #108 )
...
* remove codegen.rs
* Add export trampolines and remove libffi
* Remove unused extern crates
2019-01-22 15:00:27 -08:00
Brandon Fish
74875ed554
Library restructure ( #104 )
...
* Move wasmer-runtime to wasmer-runtime-core
* Add the runtime library
* Fix issue with macros using wasmer_runtime, fmt
* Make default compiler dependency optional
* Add instantiate and validate functions
2019-01-22 11:02:06 -08:00
Lachlan Sneff
69fd93937c
merge vm_refactor_trap_handling into vm_refactor
2019-01-21 13:53:33 -08:00
Lachlan Sneff
b74a08f097
Add (hopefully-working) support for windows
2019-01-21 11:51:41 -08:00
Lachlan Sneff
c18328aa4c
support the start function
2019-01-18 14:53:46 -08:00
Brandon Fish
321abe6644
Merge branch 'feature/vm_refactor' into fix/vm_refactor_esmcripten_integration
2019-01-17 23:20:56 -06:00
Syrus
620f40c144
Make build and tests pass again by skipping emscripten
2019-01-17 17:44:33 -08:00
Steve Akinyemi
456a76a5e5
Fix emtest compilation issues
2019-01-18 01:25:05 +01:00
Steve Akinyemi
76f6d3c33c
Fix emscripten imports
2019-01-17 23:19:14 +01:00
Syrus
de459fa5bd
Isolated emscripten in new lib
2019-01-10 21:38:10 -08:00
Brandon Fish
c3a3461367
Use a cargo workspace
2019-01-09 20:06:33 -06:00
Brandon Fish
3e641d9f89
Updates to get wasmer crate compiling
2019-01-09 19:45:48 -06:00
Brandon Fish
14c9512cf4
Remove old src/runtime and src/compilers directories
2019-01-09 00:49:11 -06:00
Brandon Fish
696bc9a0a9
Merge branch 'master' into feature/vm_refactor
2018-12-28 15:15:24 -06:00
Brandon Fish
8d8f20a11c
Merge branch 'master' into feature/add-emscripten-core-tests
2018-12-27 10:30: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
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
e2a9bd4761
Merge branch 'master' into feature/vm_refactor
2018-12-26 15:51:14 -05:00
Lachlan Sneff
c06c65e7c6
Add preliminary support for imports
2018-12-24 23:05:04 -05:00
Brandon Fish
241f3d4091
Update to latest wasmparser version
2018-12-20 00:35:11 -06:00
Syrus
75046e0e2c
Updated version to 0.1.4
2018-12-19 10:14:53 -08:00
Lachlan Sneff
5b920b7953
More backing work
2018-12-18 20:28:15 -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
Mackenzie Clark
755f3ae690
upgrade to wabt-rs 0.7.2
...
includes a fix for windows builds, this brings wamer one step closer to windows support
2018-12-16 11:27:55 -08:00
Syrus
fd5554c3bd
Refactored memory usage to use impl-abstract mmap
2018-12-14 17:32:35 -08:00
Syrus
bbb2f080cc
Updated version to 0.1.3
2018-12-06 20:39:59 -08:00
Lachlan Sneff
bb34f4718e
Add initial progress bar
2018-12-05 20:39:06 -05:00
Syrus Akbary
b781d33318
Updated version of wasmer to 0.1.2
2018-12-05 16:18:44 -08:00
Syrus Akbary
92a97d1dd4
Added emscripten _sysconf
2018-12-05 15:14:58 -08:00
Syrus Akbary
65b36eb6ba
Trying to use latest version of nix
2018-11-28 13:57:59 -08:00
Lachlan Sneff
30d4688fe3
Runs up to socket/ioctl/sigaction functions
2018-11-26 22:48:19 -05:00
Lachlan Sneff
4015fb6193
Hack together enough emscripten stack stuff to make it happy
2018-11-25 23:56:21 -05:00
Syrus Akbary
f3833dc237
Merge branch 'master' into parallel-compilation
...
# Conflicts:
# src/webassembly/instance.rs
2018-11-20 16:30:25 -08:00
Syrus Akbary
c141f8b64c
Use local cranelift
2018-11-20 16:19:00 -08:00
Syrus Akbary
a9e46a02d3
Merge branch 'master' into cranelift-upgrade
...
# Conflicts:
# Cargo.lock
# Cargo.toml
# src/webassembly/mod.rs
# src/webassembly/module.rs
2018-11-15 19:40:45 -08:00
Syrus Akbary
2dcd25bebd
Make wasmer work with stable Rust
2018-11-15 13:30:32 -08:00
Syrus Akbary
adf6d298b6
Trying to upgrade Cranelift to 0.23
2018-11-14 23:10:35 -08:00
Syrus Akbary
52614de22f
Added signal handler to handle WebAssembly traps properly
...
Please read more about this here: https://github.com/CraneStation/wasmtime/issues/15
Code inspired by: 625a2b6c08
2018-11-06 11:15:40 +01:00
Syrus Akbary
1bc5664e5d
Updated spin package
2018-11-05 18:58:57 +01:00
Syrus Akbary
380e5417d9
Removed unnecessary dependency libffi
2018-10-19 11:46:07 +02:00
Syrus Akbary
e97b47e147
Added ImportObject structure. Added integration tests
2018-10-17 16:08:51 +02:00
Syrus Akbary
1879a14938
All function calls are now working
2018-10-16 03:24:36 +02:00
Syrus Akbary
78cf7800e5
Added function compilation
2018-10-15 02:48:59 +02:00
Syrus Akbary
48fbc850ea
Improved runnable options
2018-10-14 23:47:35 +02:00
Syrus Akbary
ac9edf39e6
Improved instance
2018-10-14 13:59:11 +02:00
Syrus Akbary
9bca6940b3
First working version of the interpreter
2018-10-11 21:29:36 +02:00