Commit Graph

2156 Commits

Author SHA1 Message Date
Ivan Enderlin
4239975240 feat(runtime-c-api) Move wasmer_validate into the module module. 2019-03-29 14:59:02 +01:00
Ivan Enderlin
55c010688c feat(runtime-c-api) Extract the memory module. 2019-03-29 14:57:08 +01:00
Ivan Enderlin
168aa8031f feat(runtime-c-api) Extract the module module. 2019-03-29 14:51:35 +01:00
Ivan Enderlin
96324977b5 feat(runtime-c-api) Extract the error module. 2019-03-29 14:41:39 +01:00
Ivan Enderlin
49c01f6093 feat(runtime-c-api) Extract the value module. 2019-03-29 14:40:26 +01:00
Ivan Enderlin
316cbc54ab doc(lib) Add basic README.md. 2019-03-29 10:17:24 +01:00
Ivan Enderlin
8179dd6f96 fix(llvm-backend) Remove sign_type from generate_trampoline. 2019-03-29 10:09:56 +01:00
Ivan Enderlin
34b4f2fb11 fix(llvm-backend) Mark some variables as unused. 2019-03-29 10:09:39 +01:00
Ivan Enderlin
5cd45cbc28 fix(llvm-backend) Mark a variable as unused. 2019-03-29 10:09:10 +01:00
Ivan Enderlin
b03980f8c9 fix(llvm-backend) Remove unused variables or functions. 2019-03-29 10:08:43 +01:00
Ivan Enderlin
76d26d97ac fix(llvm-backend) Remove Intrinsics.ctx_ty, CtxType.ctx_ty, and .ctx_ptr_ty`. 2019-03-29 10:07:38 +01:00
Ivan Enderlin
7645a812d9 fix(llvm-backend) Remove unused variables. 2019-03-29 10:07:08 +01:00
Ivan Enderlin
00e4b25111 fix(llvm-backend) No need to enumerate items in this iterator. 2019-03-29 10:06:31 +01:00
Ivan Enderlin
20378de0e7 fix(llvm-backend) llvm_sig variable is not used here. 2019-03-29 10:06:11 +01:00
Ivan Enderlin
e3f39fc127 fix(llvm-backend) parse_function doesn't need a Module. 2019-03-29 10:05:39 +01:00
Ivan Enderlin
dea4705dcb fix(llvm-backend) LLVMBackend::new doesn't use instrinsics yet. 2019-03-29 10:04:56 +01:00
Ivan Enderlin
91f40639b7 fix(llvm-back) Mark WasmTrapType as deadcode.
This enum is not used directly by Rust, but used externally.
2019-03-29 10:04:09 +01:00
Ivan Enderlin
a1ca7069af fix(llvm-backend) Remove unused imports. 2019-03-29 10:03:40 +01:00
Ivan Enderlin
ddf532ddb5 fix(llvm-backend) Remove an example.rs file. 2019-03-29 09:43:21 +01:00
Lachlan Sneff
d9b89b46ee Fix bug in deref of WasmPtr<T, Array> 2019-03-28 22:22:46 -07:00
Lachlan Sneff
90db12e59a Finish up signatures and converting function types 2019-03-28 22:10:11 -07:00
losfair
0f26ee40de Codegen v2. 2019-03-29 12:06:47 +08:00
losfair
a2f86c3c52 Improve machine state abstraction. 2019-03-29 12:06:28 +08:00
Mark McCaskey
bd09343fca add structure for cross-platform wasi syscall implementations 2019-03-28 17:09:39 -07:00
Lachlan Sneff
c45de2207e Add helper types and half-ish of the wasi signatures 2019-03-28 17:00:10 -07:00
bors[bot]
72ec4ab9e5 Merge #305
305: Feature/fix wasi setup r=lachlansneff a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-03-28 22:51:42 +00:00
Mark McCaskey
9478ba71af actually fix it 2019-03-28 15:47:00 -07:00
Mark McCaskey
46f90d3415 fix conditional compliation 2019-03-28 15:42:34 -07:00
bors[bot]
2982e6e383 Merge #304
304: remove __wasi_ prefix r=lachlansneff a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-03-28 22:32:23 +00:00
Mark McCaskey
aed9d3b9b7 remove __wasi_ prefix 2019-03-28 15:17:52 -07:00
bors[bot]
79133e59e5 Merge #303
303: Add all wasi types r=lachlansneff a=lachlansneff

This adds all wasi types.

Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-03-28 21:59:28 +00:00
Lachlan Sneff
bde6bdfd3a Add all wasi types 2019-03-28 14:33:15 -07:00
bors[bot]
3323c3c60a Merge #300
300: hook up wasi to wasmer r=lachlansneff a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-03-28 21:28:30 +00:00
Mark McCaskey
ce22818c35 add feature gate on import 2019-03-28 14:22:28 -07:00
Mark McCaskey
21304cb700
Merge branch 'feature/wasi' into feature/hook-up-wasi-to-wasmer 2019-03-28 14:19:17 -07:00
bors[bot]
e227b890c8 Merge #301
301: Add arg and env support to wasi r=lachlansneff a=lachlansneff



Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-03-28 20:56:16 +00:00
Mark McCaskey
5c12fd0b49 fix test 2019-03-28 13:55:38 -07:00
Mark McCaskey
a69fdfef38 implement wasi check 2019-03-28 13:46:30 -07:00
Mark McCaskey
3c01c11f01 pass args and env vars to wasi 2019-03-28 13:24:15 -07:00
Lachlan Sneff
256253a1d5 Fix clippy lint 2019-03-28 13:10:22 -07:00
bors[bot]
bf823d2826 Merge #268
268: add experimental virtual filesystem r=lachlansneff a=xmclark

This PR introduces some changes to the runtime and adds a new feature: virtual file system.

In the future, we may want to bundle data with our wasm apps. That data can be made available to apps in a virtual filesystem by the wasmer runtime. To do this:

- wasmer must understand custom section data
- wasmer must re-wire emscripten calls to access a virtual file system
- these features are experimental and should be guarded by a feature flag (`--features vfs`)

~This PR adds support for the `read` syscall. ~
Just kidding, this PR does a lot more. Enough syscalls were re-implemented that a code reorg was warranted. 

Additions below ⬇️ 

Several new modules live under and around the `syscalls` module. These features are only supported on linux, but can be expanded to windows.

There are effectively two implementations: one for VFS and one for the host FS. In the future, we will have more tight control over access to the host, but this will do for now. The `select` function was also extracted into a new module as the complexity increased significantly. 

`select`should be refactored in the future to use a runtime like tokio, but that will need to wait.

The introduction of the libsodium dependency introduced some stumbling blocks, so I forked the zbox project and added a new build step. See it [here](https://github.com/wasmerio/zbox/blob/bundle-libsodium/build.rs). This will build libsodium at `cargo build` time and will automatically configure the environment. This will help with adoption and it is something we may be able to give back to zbox.


Additional changes:

After review, this PR is just a bit too large. We will implement the emscripten changes in another PR. This will help accelerate the work on WASI.

Co-authored-by: Mackenzie Clark <mackenzie.a.z.c@gmail.com>
2019-03-28 20:08:08 +00:00
Mackenzie Clark
a203675469 lint 2019-03-28 13:01:02 -07:00
Lachlan Sneff
dbc4176964 Add env and args syscalls 2019-03-28 12:56:11 -07:00
Mackenzie Clark
d9c693a31c make file like implement the std::io traits instead and wrap zbox file 2019-03-28 12:50:37 -07:00
Mark McCaskey
72dd995522 fix typo 2019-03-28 12:21:44 -07:00
Mark McCaskey
bc863fcf0c hook up wasi to wasmer 2019-03-28 12:19:23 -07:00
Lachlan Sneff
94674e9d80 Add wasi state 2019-03-28 12:18:05 -07:00
Lachlan Sneff
c045da3de6 Merge branch 'feature/wasi' of github.com:wasmerio/wasmer into feature/wasi 2019-03-28 11:57:07 -07:00
Lachlan Sneff
7b0992e44f Instance now pulls state from the ImportObject 2019-03-28 11:56:31 -07:00
Mackenzie Clark
09642c92db revert changes to emscripten 2019-03-28 11:55:01 -07:00