Commit Graph

2342 Commits

Author SHA1 Message Date
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
Mark McCaskey
b7254ce1f5 add stubs and dispatch 2019-03-28 11:54:22 -07:00
Lachlan Sneff
e3a6b7c9d8 Add skeleton for wasi abi 2019-03-28 11:44: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
Lachlan Sneff
be08154670 Add wasi crate 2019-03-28 11:23:08 -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
a0e20667b5 add small fix 2019-03-28 10:08:41 -07:00
Mark McCaskey
764ec96ad1 fix compilation error 2019-03-28 09:20:54 -07:00
losfair
e21def188e Machine state. 2019-03-28 10:17:06 +08:00
losfair
eaa161fcb4 More operations. 2019-03-28 09:03:36 +08:00
Mackenzie Clark
d8347a3d40 Merge branch 'master' into feature/vfs 2019-03-27 17:31:56 -07:00
Mackenzie Clark
9619019baf fix compiler errors for debug build 2019-03-27 17:23:07 -07:00
Mackenzie Clark
423f154177 fix typo 2019-03-27 16:55:21 -07:00
Mackenzie Clark
c9613bdcea add compiler error instead 2019-03-27 16:55:12 -07:00