Commit Graph

214 Commits

Author SHA1 Message Date
Mark McCaskey
d507253372 update crate version numbers to 0.3.0 2019-04-12 12:19:46 -07:00
Lachlan Sneff
051d435423 Warnings and unused code cleanup 2019-04-12 10:27:14 -07:00
Lachlan Sneff
8b5da1d86e Update cranelift backend to new backend abstraction 2019-04-12 09:58:29 -07:00
Lachlan Sneff
751dff0f9d Attempt to fix windows build 2019-04-09 16:46:01 -07:00
Lachlan Sneff
c212ba3619 Add implementations for typed func errors to cranelift and llvm 2019-04-09 15:53:01 -07:00
bors[bot]
77f8186507 Merge #321
321: Update to Cranelift 0.3.0 r=bjfish a=bjfish

Some API changes were addressed:
- `ModuleEnvironment` many trait methods removed: 459f6ddb26 (diff-0682a088315ee358a75d4b60bc72dafc)
- `declare_table_elements` parameter type changed: 64ea964bc0
- `UnreachableCodeReached` trap code added: 1c43ad771e
- `declare_signature` signature updated: 8a24539e0c
- `define_function_body` parameter added: 37dffdaea1
- `target_lexicon` dependency updated to version `0.3.0`

Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
Co-authored-by: Brandon Fish <bjfish@users.noreply.github.com>
2019-04-04 17:10:51 +00:00
Mark McCaskey
9e601c42f9 change func_index offset by number of imported funcs 2019-04-04 09:29:30 -07:00
Syrus Akbary
7ff51c3b9e
Update lib/clif-backend/src/module.rs
Remove unnecessary `<'a>` from Converter

Co-Authored-By: bjfish <bjfish@users.noreply.github.com>
2019-04-03 13:35:36 -05:00
Brandon Fish
5627f80548 Update to Cranelift 0.3.0 2019-04-03 00:13:40 -05:00
Ivan Enderlin
316cbc54ab doc(lib) Add basic README.md. 2019-03-29 10:17:24 +01:00
Mackenzie Clark
5294eb6b0d merge and respond to feedback 2019-03-28 11:41:45 -07:00
Mark McCaskey
09068c1a74 clean up implementation 2019-03-27 14:01:27 -07:00
Mark McCaskey
a0809dedbf change formatting to match syscalls 2019-03-26 16:57:58 -07:00
Mark McCaskey
9c58bed344 add support for symbol maps 2019-03-26 16:41:40 -07:00
Mackenzie Clark
edacb0a8a7 Merge branch 'master' into feature/vfs 2019-03-16 13:38:02 -07:00
Mackenzie Clark
14104c2c8b fix lots of warnings
fix warnings
2019-03-15 14:10:17 -07:00
Mackenzie Clark
f2488ac410 remove feature flag on custom sections 2019-03-12 13:36:11 -07:00
Mackenzie Clark
b9c3a49f3c parse and store custom sections from wasm, guarded by vfs feature flag 2019-03-12 10:45:44 -07:00
Ivan Enderlin
2c8fc5238d fix(clif-backend) Remove unused imports.
This patch removes unused imports reported by `rustc` as warnings.
2019-03-12 10:03:55 +01: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
Lachlan Sneff
4e198bca8b merge upstream/master into wasmer-private/feature/llvm-backend 2019-03-04 13:03:32 -08:00
Lachlan Sneff
65ec10961b
Change RuntimeError type (#234)
* Change RuntimeError type and fix codebase to use it

* Fix spectests to work with new runtime error type

* Fix windows signal handler in the clif-backend

* Add missing conversion

* final windows fix
2019-03-04 12:57:26 -08:00
Mackenzie Clark
b3c60bce14
Merge branch 'master' into fix-clif-backend-module-new 2019-03-04 08:14:44 -08:00
Ivan Enderlin
5744f6896f fix(clif-backend) Module::new does not use its argument.
The `Module::new` method requires an argument (`wasm: &[u8]`) that is
never used.

This patch removes the argument, and updates the code accordingly.
2019-03-04 14:03:07 +01:00
Ivan Enderlin
42c9bdf8c2 fix(clif-backend) Remove an unused variable declaration.
The `compiled_functions` variable is declared twice. The first
declaration is never used. This patch removes it.
2019-03-04 13:59:37 +01: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
Lachlan Sneff
07c8975304 Fix clif backend 2019-02-22 16:20:26 -08:00
Lachlan Sneff
df03d00e74 Merge upstream/master into feature/llvm-feature 2019-02-22 14:14:46 -08:00
Lachlan Sneff
0c19824425 Fix after merge 2019-02-22 14:07:03 -08:00
Syrus
fdb2a67579 Added cache into standalone app 2019-02-22 11:42:36 -08:00
Lachlan Sneff
696fd8fce3 Update api again and change SerializedCache to Artifact 2019-02-21 17:07:04 -08:00
Lachlan Sneff
7fa818ea06 Finalize new cache api 2019-02-21 11:47:28 -08:00
Lachlan Sneff
9f40eedba8 Get caching working again 2019-02-20 16:41:41 -08:00
Lachlan Sneff
82eea00a02 Saved 2019-02-19 15:36:22 -08:00
Lachlan Sneff
3c7dc200fa close to working 2019-02-19 09:58:01 -08:00
Lachlan Sneff
e381bbd07b Use ModuleInfo instead of ModuleInner when possible 2019-02-18 11:56:20 -08:00
Lachlan Sneff
2d87f64f82 Merge master into feature/llvm-backend 2019-02-14 15:47:28 -08:00
Mackenzie Clark
6a1fdb7f91
add windows exception handling in C (#175) 2019-02-14 09:58:33 -08:00
Syrus
b6416068a8 Use vec.push instead of .insert for vmctx arg 2019-02-12 11:17:09 -08:00
Syrus
44d1a0d1f9 Fixed debug function context position 2019-02-12 10:49:43 -08:00
Syrus
c40195cf77 Fixed spectests 2019-02-12 10:04:11 -08:00
Syrus
4311a37def Fixed simple spectests example compilation 2019-02-09 20:13:58 -08:00
Lachlan Sneff
327e3a4a1a Implement many wasm instructions 2019-02-09 15:53:40 -08:00
Syrus
227d5e24cf Moved ctx to first argument in Cranelift backend 2019-02-09 14:18:53 -08:00
Lachlan Sneff
aa90a33501 Make module info store FuncSig, not Arc<FuncSig> 2019-02-08 14:19:58 -08:00
Mackenzie Clark
9a56680281
fix windows linking and appveyor build (#166) 2019-02-08 13:51:29 -08:00
Lachlan Sneff
1886b3d3c1
Naive short circuiting implementation for user panics and results. (#167)
* Add panic and result catching

* exit process on panic and user runtime error

* Complete initial implementation
2019-02-08 13:08:03 -08:00
Mackenzie Clark
46ac4e9e1a
reorganize signal module and leave stubs in windows (#162) 2019-02-07 17:08:42 -08:00
Lachlan Sneff
8d2c1956d7
Fix runtime error catching (#157) 2019-02-07 14:44:28 -08:00
Syrus
14806cb604 Fixed formatting and removed print debug statement 2019-02-07 11:37:15 -08:00
Lachlan Sneff
e147983ece fix 2019-02-07 10:45:48 -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
Lachlan Sneff
2f2f86a4de
Add feature flag to output debug information while running wasm (#147)
* Generate debug info during execution

* feature cfg debug output
2019-02-06 15:43:27 -08:00
Syrus
b1a7642773 Fixed immutable globals assertion 2019-02-01 14:00:07 -08:00
Lachlan Sneff
69e9c5154d Add Pages and Bytes newtypes 2019-01-29 15:44:15 -08:00
Lachlan Sneff
bc78738bb7 renaming 2019-01-29 14:15:59 -08:00
Lachlan Sneff
581363119b More review fixes 2019-01-29 13:04:42 -08:00
Lachlan Sneff
767fdbd950 Fix some reviewed items 2019-01-29 12:49:51 -08: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
Lachlan Sneff
98305c8731 Add new global import api 2019-01-28 11:55:44 -08: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
Brandon Fish
65872a1be4 Cherry-picked fix 2019-01-25 10:23:26 -08:00
Syrus
2973a32502 Updated cargo 2019-01-23 16:59:37 -08:00
Lachlan Sneff
7632beced8
Add generic range bounds to mmap (#110) 2019-01-23 09:37:56 -08:00
Syrus
88eb1d39a5 Improved Cargo congif
# Conflicts:
#	lib/clif-backend/Cargo.toml
2019-01-22 15:34:52 -08:00
Syrus
453801b5ff Added VERSION var to all the lib crates 2019-01-22 15:34:29 -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
de046491d2 finish support for traps 2019-01-21 13:43:48 -08:00
Lachlan Sneff
b74a08f097 Add (hopefully-working) support for windows 2019-01-21 11:51:41 -08:00
Brandon Fish
3399dddb5b cargo fmt 2019-01-20 09:52:54 -06:00
Brandon Fish
e245742251 Remove commented out code 2019-01-20 09:43:43 -06:00
Brandon Fish
808aacde2d Update println! -> debug!, remove unnecessary comments 2019-01-20 09:19:41 -06:00
Brandon Fish
b8baf5cab9 Rename sigidx -> sig_index 2019-01-20 09:15:28 -06:00
Brandon Fish
89c5984d47 Remove commented out code 2019-01-18 23:17:00 -06:00
Lachlan Sneff
ebeea0c71c handle traps naively 2019-01-18 16:45:30 -08:00
Lachlan Sneff
c18328aa4c support the start function 2019-01-18 14:53:46 -08:00
Lachlan Sneff
9ed0018045 transition to protected_caller 2019-01-18 14:30:25 -08:00
Lachlan Sneff
c34df39095 Fix broken reference 2019-01-18 14:18:06 -08:00
Lachlan Sneff
539db9f577 Starting to set up protected call in clif-backend 2019-01-18 13:29:43 -08:00
Lachlan Sneff
705708cafe add 'ProtectedCaller' to runtime 2019-01-18 12:14:21 -08:00
Lachlan Sneff
8a9f5fa61a
Add special error types for compile, linking, and runtime errors. (#99)
* Add error types and convert most results to wasmer-runtime results

* Fix spectests

* Fix umbrella project to work with new error types
2019-01-18 10:54:16 -08:00
Lachlan Sneff
e8dcbc5897
Merge branch 'feature/vm_refactor' into feature/vm_refactor_errors 2019-01-18 09:20:55 -08:00
Lachlan Sneff
d23601a810 Add error types and convert most results to wasmer-runtime results 2019-01-18 09:17:44 -08:00
Brandon Fish
321abe6644 Merge branch 'feature/vm_refactor' into fix/vm_refactor_esmcripten_integration 2019-01-17 23:20:56 -06:00
Lachlan Sneff
f5ab605878 Change authors listing to "The Wasmer Engineering Team <engineering@wasmer.io>" 2019-01-17 16:19:31 -08:00
Steve Akinyemi
0bf6ce49f6 Update emscripten to latest changes 2019-01-17 23:19:15 +01:00
Steve Akinyemi
76f6d3c33c Fix emscripten imports 2019-01-17 23:19:14 +01:00
Lachlan Sneff
1dbbaa30b6 Get most spectests passing 2019-01-17 13:11:53 -08:00
Lachlan Sneff
bb9ed66cea Split codegen into multiple modules 2019-01-16 17:59:12 -08:00
Lachlan Sneff
5872d879f9 Local/Import index differentiation 2019-01-16 10:26:10 -08:00
Brandon Fish
de1da689f8 Add imported globals 2019-01-13 16:45:36 -06:00
Lachlan Sneff
a9e58203f2 Remove generated spectest codes from repo. 2019-01-12 23:48:21 -05:00
Lachlan Sneff
a7ffb44bbc Rework imports 2019-01-12 22:02:19 -05:00
Lachlan Sneff
f08f49fa38 Fix formatting 2019-01-12 17:53:17 -05:00
Lachlan Sneff
a983e9ce8b Rearrange some apis 2019-01-12 17:52:14 -05:00
Lachlan Sneff
a3b3523a78 Fix broken test that was creating a stack overflow 2019-01-12 09:51:32 -05:00
Syrus
a358ab7a35 Merge branch 'feature/vm_refactor' into feature/vm_refactor_emscripten_lib 2019-01-10 21:38:57 -08:00
Syrus
de459fa5bd Isolated emscripten in new lib 2019-01-10 21:38:10 -08:00
Lachlan Sneff
230e43a894 Rewrite exports and imports 2019-01-10 23:00:05 -05:00
Lachlan Sneff
2e26f8547e Fix arithmetic NaN handling in f32.nearest and f64.nearest 2019-01-10 12:20:23 -05:00
Lachlan Sneff
c44dcfec2b call_indirect checks signature structural equality instead of nominal equality 2019-01-10 11:26:52 -05:00
Lachlan Sneff
e7e62cb6b7 Down to 30 failing spectests 2019-01-09 23:43:18 -05:00
Lachlan Sneff
0c6f76a8ef Fix more spectests 2019-01-09 21:14:35 -05:00
Lachlan Sneff
985e2b2f42 Fix support for floating point numbers 2019-01-09 20:32:02 -05:00
Lachlan Sneff
e72aeddc60 Remove unnecessary stuff 2019-01-09 18:38:39 -05:00
Lachlan Sneff
8c74d0a551 Push debugging stuff to help debug calls not working 2019-01-09 18:32:13 -05:00
Brandon Fish
14c9512cf4 Remove old src/runtime and src/compilers directories 2019-01-09 00:49:11 -06:00
Lachlan Sneff
bba168e61e Support imported functions 2019-01-08 21:57:28 -05:00
Lachlan Sneff
7324c85749 Add clif-backend crate and runtime example 2019-01-08 16:04:03 -05:00