Commit Graph

361 Commits

Author SHA1 Message Date
Brandon Fish
a96d5cb975 Fix f32/f64 conversion, add tests, and rename conversion method 2019-05-11 19:26:17 -05:00
Brandon Fish
85158ac22a Add some initial deny for unused_imports and unused_variables
Additional unused variable fix on unix

Remove unused import on unix

Remove unused windows import
2019-05-11 09:23:25 -05:00
Brandon Fish
080220c6a7
Merge branch 'master' into feature/llvm-cgapi 2019-05-08 17:33:06 -07:00
Heyang Zhou
620a6ddd85 Disable memory bound checking for kernel loader. 2019-05-08 10:25:29 -07:00
Johan Andersson
36a78a23b6 Fix Windows crash on caching compiled artifact.
Memory clone function wasn't able to write to new reserved memory object.

Changed so allocating Memory objects with protection flag allocates commited memory.
2019-05-08 15:59:00 +02:00
Heyang Zhou
0bbd6e6970 Fix function offset. 2019-05-07 08:25:46 -07:00
Brandon Fish
87a94657d0
Merge branch 'master' into feature/llvm-cgapi 2019-05-06 22:39:20 -05:00
Mark McCaskey
e5dc94c7d6 update version number to 0.4.1 2019-05-06 18:02:39 -07:00
bors[bot]
94e6c7318f Merge #424
424: Update emscripten to run JSC r=syrusakbary a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-05-06 21:19:27 +00:00
Mark McCaskey
ab184aceea Update emscripten to run JSC 2019-05-06 14:05:04 -07:00
Pekka Enberg
089aab296d codegen: Remove unused LoadError import
Rustc complains that:

  warning: unused import: `parse::LoadError`
   --> lib/runtime-core/src/codegen.rs:7:5
    |
  7 |     parse::LoadError,
    |     ^^^^^^^^^^^^^^^^
    |
2019-05-06 20:42:35 +03:00
Heyang Zhou
61510f8116 Enforce runtime memory and stack bound check when using kernel loader. 2019-05-06 07:15:30 -07:00
Brandon Fish
0926a5020e Implement caching for parser refactor 2019-05-05 20:11:47 -05:00
Brandon Fish
31acf81762 cargo fmt 2019-05-05 13:37:36 -05:00
Brandon Fish
1864733ab8 Merge branch 'master' into feature/llvm-cgapi 2019-05-05 13:25:51 -05:00
Heyang Zhou
7bc09ee220 kwasmd. 2019-05-05 09:32:35 -07:00
Heyang Zhou
46e4cb05bc Get memory intrinsics at runtime. 2019-05-04 10:33:12 -07:00
Heyang Zhou
a590d7cd07 Tables 2019-05-04 09:56:52 -07:00
Heyang Zhou
c4e4efc694 kwasm imports 2019-05-04 08:28:13 -07:00
Brandon Fish
c5caf9b6db Update LLVM FCG begin_body 2019-05-03 00:14:25 -05:00
losfair
14bfd75ac9 Code loader framework. 2019-05-03 00:23:41 +08:00
Brandon Fish
8d86844c5f
Merge branch 'master' into parser-middleware 2019-05-01 13:10:44 -05:00
losfair
99c101f312 Merge remote-tracking branch 'origin/master' into parser-middleware 2019-05-02 00:30:58 +08:00
Mark McCaskey
2646765671
Merge branch 'master' into update-version-numbers-to-4 2019-05-01 09:27:38 -07:00
Brandon Fish
39b6b05f71
Merge branch 'master' into atomic-transparent-repr 2019-04-30 17:09:18 -07:00
Mark McCaskey
d020ffd759 update version to 0.4.0 2019-04-29 13:26:51 -07:00
losfair
305e1801ff Fix incomplete data section 2019-04-28 15:38:18 +08:00
losfair
e63d7fd531 Merge 2019-04-28 12:58:27 +08:00
losfair
6beb76c3ae Various cleanups. 2019-04-28 12:48:01 +08:00
losfair
2262c8a6da Finished middleware impl and made a CallTrace middleware 2019-04-27 16:31:47 +08:00
losfair
eca8ccdbd4 Move out parser and codegen traits. 2019-04-27 12:31:04 +08:00
Brandon Fish
389c6a015d Remove unused function memory offset addr 2019-04-24 02:00:07 -05:00
Lachlan Sneff
ff9de181f1 Add error propagation test 2019-04-22 15:53:21 -07:00
Lachlan Sneff
706ddabf61 Hook up error propagation 2019-04-22 15:06:40 -07:00
Lachlan Sneff
74b6ba4eaf Return type normalization, and change return errors from imported functions 2019-04-22 11:42:52 -07:00
Lachlan Sneff
85d9ca9ad2 Add NativeWasmType trait and modify WasmExternType 2019-04-22 10:35:55 -07:00
Clément Renault
21bd55c30d
Make the slice::from_raw_parts call safe 2019-04-21 12:58:48 +02:00
Lachlan Sneff
3b9e12b248 fix test 2019-04-19 14:02:21 -07:00
Lachlan Sneff
443663aa3f Add caching support to llvm backend 2019-04-19 13:54:48 -07:00
Lachlan Sneff
6279dd8e82 Fix test again, whoops 2019-04-18 10:14:25 -07:00
Lachlan Sneff
f0e0255b3f Fix vm test 2019-04-18 10:08:17 -07:00
Lachlan Sneff
4dd64ed72e Remove UserTrapper trait 2019-04-18 10:00:15 -07:00
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
051d435423 Warnings and unused code cleanup 2019-04-12 10:27:14 -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
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
bors[bot]
72b9939331 Merge #334
334: Added longjmp implementation r=syrusakbary a=syrusakbary

Added longjmp implementation

Co-authored-by: Syrus <me@syrusakbary.com>
Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-11 00:26:30 +00:00
bors[bot]
870faf9838 Merge #341
341: feat(runtime-core) `Instance.exports` takes `&self` instead of `&mut self` r=lachlansneff a=Hywan

There is no reason for `exports` to take a mutable reference. This patch rewrites the `Instance.export` signature a little bit.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-04-10 19:22:12 +00:00
Ivan Enderlin
20297d1751 feat(runtime-core) Instance.exports takes &self instead of &mut self.
There is no reason for `exports` to take a mutable reference.
2019-04-10 12:17:16 -07:00
Syrus
6848e81a77 Merge branch 'master' into feature/longjmp
# Conflicts:
#	lib/runtime-core/src/backend.rs
#	lib/runtime-core/src/typed_func.rs
2019-04-10 10:57:45 -07:00
Lachlan Sneff
2d2a177e9c Fix lint 2019-04-10 10:31:49 -07:00
Lachlan Sneff
cfd4758210 Add some documentation 2019-04-10 10:26:16 -07:00
Syrus
02ed9f0e5f Reenabled longjmp 🎉 2019-04-09 18:33:53 -07:00
Lachlan Sneff
a320af4485 Fix runtime test missing method 2019-04-09 17:09:33 -07:00
Lachlan Sneff
cc656b26a9 Add implementations for typed func errors to cranelift and llvm 2019-04-09 17:09:33 -07:00
Lachlan Sneff
7d09a2ee7e Initial typed func rewrite 2019-04-09 17:09:33 -07:00
Mark McCaskey
fec65a262e implement emscripten resize_heap 2019-04-09 17:09:33 -07:00
Mark McCaskey
8ba5ea2a08 allow resize_heap to grow heap in emscripten 2019-04-09 17:09:33 -07:00
Mark McCaskey
18a00e8e8f fix bug in stat, move lstat64 back to unix 2019-04-09 17:09:33 -07:00
Lachlan Sneff
41129e445d Fix runtime test missing method 2019-04-09 16:15:50 -07:00
Lachlan Sneff
c212ba3619 Add implementations for typed func errors to cranelift and llvm 2019-04-09 15:53:01 -07:00
Lachlan Sneff
5e1a67d835 Initial typed func rewrite 2019-04-09 12:48:41 -07:00
Mark McCaskey
50a22bcae2 implement emscripten resize_heap 2019-04-08 16:17:34 -07:00
Mark McCaskey
6578838acd allow resize_heap to grow heap in emscripten 2019-04-08 14:44:40 -07:00
bors[bot]
7f8b1ea521 Merge #332
332: fix lstat64; heap size; and stat r=MarkMcCaskey a=MarkMcCaskey

- Get https://github.com/nikic/PHP-Parser working 🎉 
- fixes memory issue bug which looked like relative paths didn't work, but was really pointer aliasing corrupting data

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-04-08 18:58:48 +00:00
Mark McCaskey
b3a765446a fix bug in stat, move lstat64 back to unix 2019-04-08 11:26:25 -07:00
Syrus
3b11da91c5 Make DynFunc public 2019-04-06 14:31:39 -07:00
Syrus
1193d561e2 Improved debug! macro with timing 2019-04-05 23:47:59 -07: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
bbf663aceb
Merge branch 'master' into feature/wasi 2019-04-03 17:16:09 -07:00
Brandon Fish
1ff6ed6d1b Add Export and GlobalDescriptor to Runtime API 2019-04-02 22:10:49 -05:00
Lachlan Sneff
287c81d7a5 Misc fixes 2019-04-01 17:50:53 -07:00
Lachlan Sneff
ce35e5794f Change ValueType trait and add basic fs 2019-04-01 15:52:35 -07:00
Lachlan Sneff
48b5918895 Merge branch 'master' into feature/wasi-fs 2019-03-29 11:09:04 -07:00
Ivan Enderlin
316cbc54ab doc(lib) Add basic README.md. 2019-03-29 10:17:24 +01:00
Lachlan Sneff
c45de2207e Add helper types and half-ish of the wasi signatures 2019-03-28 17:00:10 -07:00
Mark McCaskey
5c12fd0b49 fix test 2019-03-28 13:55:38 -07:00
Lachlan Sneff
7b0992e44f Instance now pulls state from the ImportObject 2019-03-28 11:56:31 -07:00
Mackenzie Clark
c684ea46f0 lint 2019-03-28 11:42:59 -07:00
Mackenzie Clark
5294eb6b0d merge and respond to feedback 2019-03-28 11:41:45 -07:00
Lachlan Sneff
0787d001e3 Add data support to import macro 2019-03-28 11:41:14 -07:00
bors[bot]
4bbf9903f3 Merge #294
294: add support for symbol maps r=MarkMcCaskey a=MarkMcCaskey

resolves #293 

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-03-28 17:09:44 +00:00
Mark McCaskey
764ec96ad1 fix compilation error 2019-03-28 09:20:54 -07:00
Mackenzie Clark
d8347a3d40 Merge branch 'master' into feature/vfs 2019-03-27 17:31:56 -07:00
Mark McCaskey
315d8286c4 clean up (second pass) 2019-03-27 14:08:17 -07:00
Mark McCaskey
09068c1a74 clean up implementation 2019-03-27 14:01:27 -07:00
Mackenzie Clark
d65a5dfe57 fix typo 2019-03-26 20:07:00 -07:00
Mackenzie Clark
8dd158d3fb fix more warnings 2019-03-26 19:05:53 -07:00
Mackenzie Clark
0533a4eef6 dynamically import null funcs (all with the same signature) 2019-03-26 18:59:39 -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
Mackenzie Clark
8432ce9238 Merge branch 'master' into feature/vfs 2019-03-24 18:30:50 -07:00
bors[bot]
18a6c8a611 Merge #286
286: Add extend to imports  r=MarkMcCaskey a=MarkMcCaskey

a rewrite of #283 with a focus on simplicity

resolves #258

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-03-25 01:16:10 +00:00
Mark McCaskey
225b82ae78 change behavior of extend to overwrite on conflict 2019-03-24 17:16:05 -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
Mark McCaskey
d037c5fdbb fmt 2019-03-22 17:29:09 -07:00
Mark McCaskey
5e39a7b3d9 rewrite extending imports 2019-03-22 17:11:30 -07:00
losfair
08ba696ab0 Fix vmctx offset tests. 2019-03-21 09:24:44 +08:00
losfair
26e4278657 Make the internal field private from outside. 2019-03-21 08:57:50 +08:00
losfair
cb3846ff6a Add InternalCtx. 2019-03-21 08:39:06 +08:00
losfair
395161acdc Merge remote-tracking branch 'origin/master' into feature/dynasm-backend 2019-03-20 19:54:29 +08:00
Mark McCaskey
b1ef4ef0fa change output to go to OUT_DIR 2019-03-19 11:23:04 -07:00
Mark McCaskey
8e5f250ed0 generate the hash at compile time 2019-03-19 10:58:58 -07:00
losfair
14da8abc23 Run-time memory bound checking. 2019-03-19 21:27:49 +08:00
losfair
a006a368c5 Cleanup. 2019-03-19 20:01:38 +08:00
losfair
61abe70042 cargo fmt 2019-03-19 11:52:43 +08:00
losfair
ebaf2dc5a8 Make DynFunc::func_index private. 2019-03-19 11:52:27 +08:00
losfair
2ab2205d6b Allow cross-module indirect calls. 2019-03-19 11:47:38 +08:00
Mark
a152b85729 Add versioning to cache 2019-03-18 17:27:23 -07:00
losfair
6c40ea1cb5 Cargo fmt more files. 2019-03-18 00:35:55 +08:00
losfair
08f4526b45 Merge remote-tracking branch 'origin/master' into feature/dynasm-backend 2019-03-17 21:14:01 +08:00
losfair
f8fe999015 Implemented protected call and floating point traps; passing all spectests! 2019-03-17 10:27:14 +08:00
Mackenzie Clark
edacb0a8a7 Merge branch 'master' into feature/vfs 2019-03-16 13:38:02 -07:00
Ivan Enderlin
61a203438a feat(runtime-core) SharedMemory.desc is not used… yet! 2019-03-15 09:09:24 +01:00
losfair
d80ea47ffc FIx bugs found with spectests. 2019-03-14 10:30:24 +08:00
Lachlan Sneff
3eaf5525d1 Add some better docs 2019-03-13 14:58:44 -07:00
Brandon Fish
557be77338 Merge branch 'master' into feature/dynasm-backend 2019-03-12 20:58:22 -05:00
Mackenzie Clark
f2488ac410 remove feature flag on custom sections 2019-03-12 13:36:11 -07:00
Mackenzie Clark
4cee16220b more edge cases 2019-03-12 13:04:14 -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
6e62ea7cfb fix(runtime-core) Remove unused imports.
This patch removes unused imports as reported by `rustc` as warnings.
2019-03-12 09:51:54 +01:00
losfair
683cb2090c Fix call_indirect. 2019-03-12 11:31:55 +08: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
losfair
c5ef0a96e9 Update vm::Ctx. 2019-03-09 02:58:37 +08:00
Lachlan Sneff
f36aade2e5 Fix broken test 2019-03-05 14:57:37 -08:00
Lachlan Sneff
7ef2c0dece Fix execute after free issue with llvm (and presumably cranelift?) 2019-03-04 14:41:56 -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
Syrus Akbary
436c4bffcb
Merge pull request #228 from Hywan/fix-runtime-core-unused-import
fix(runtime-core) Remove an unused import
2019-03-04 07:13:21 -08:00
Ivan Enderlin
d9073c03c6 fix(runtime-core) hasher does not need to be mutable.
This patch updates the `hasher` variable. It is declared as mutable,
but it's never mutated.
2019-03-04 13:53:41 +01:00
Ivan Enderlin
ec4e476cc6 fix(runtime-core) Remove an unused import.
This patch removes an unused import, namely `crate::sys::Memory`.
2019-03-04 13:51:13 +01:00
Lachlan Sneff
801979c40d Add dynamic sigindices to the vm context. 2019-03-03 21:26:34 -08:00
Lachlan Sneff
3717c5720d Get control flow (at least according to the llvm verifier) working.
Next up:
- Importing vm intrinsics.
2019-03-01 15:48:43 -08:00
Mackenzie Clark
bde2022b58
fix appveyor installer and build (#224)
* remove exception handler when function returns or throws

* revert to only reserving and not committing memory due to issues

* appveyor builds for release, caches more, only publish artifact once
2019-03-01 13:16:32 -08:00
Brandon Fish
b80252e165 Setup the spectests lib to use llvm-backend 2019-02-28 23:02:03 -06:00
Syrus
60f8f15db3 Updated version to 0.2.1 2019-02-27 17:20:49 -08:00
Mackenzie Clark
95062d524a
commit virtual memory before copying (#212) 2019-02-27 14:20:53 -08:00
Syrus
e6d0f91832 Use blake2b SIMD version for increased performance 2019-02-26 01:12:34 -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
09fe82862e
Merge pull request #211 from wasmerio/fix/error-display
Fix/error display
2019-02-25 12:35:16 -08:00
Syrus
f9c0e0c078 Fix formatting 2019-02-25 12:25:28 -08:00
Syrus Akbary
c5c967da00 Added parallel compilation (#209) 2019-02-25 12:03:48 -08:00
Andrew Cann
ed706133c4 fix stack overflow in Error's Display impl 2019-02-23 17:00:03 +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