Commit Graph

1756 Commits

Author SHA1 Message Date
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
23c09ac042 add imports 2019-03-29 11:04:38 -07:00
Lachlan Sneff
4df5f02444 Merge branch 'feature/wasi' of github.com:wasmerio/wasmer into feature/wasi 2019-03-29 11:03:31 -07:00
Lachlan Sneff
b1030d3181 Add prestat_t 2019-03-29 11:03:21 -07:00
Mark McCaskey
514432c05a call wasi files correctly 2019-03-29 10:58:56 -07:00
Mark McCaskey
d10d0285ac
Merge branch 'feature/wasi' into feature/wasi-cross-platform-skeleton 2019-03-29 10:43:30 -07:00
Mark McCaskey
ea27effdb3 keeep top level wasi calls that call out to platform-specific impls 2019-03-29 10:20:08 -07:00
bors[bot]
39ccf403f3 Merge #306
306: Add helper types and wasi function signatures r=MarkMcCaskey a=lachlansneff



Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-03-29 17:00:47 +00:00
bors[bot]
c6a597f3a2 Merge #311
311: doc(lib) Add basic `README.md` r=Hywan a=Hywan

This patch adds very basic `README.md`. They must obviously be completed, but it's better than nothing!

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-03-29 15:56:14 +00:00
bors[bot]
ef0f00f5a1 Merge #312
312: feat(runtime-c-api) Split the big `lib.rs` file into modules r=Hywan a=Hywan

This PR splits the `lib.rs` file into smaller modules.
Proof everything is OK:

  1. `wasmer.h` and `wasmer.hh` are not different,
  2. Tests are still green,
  3. `rustc` is polite.

Bonus: I removed the last couple of warnings.

Next step: Add more documentations.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-03-29 15:17:04 +00:00
Ivan Enderlin
8ee0f16c8a fix(runtime-c-api) Remove last warnings. 2019-03-29 15:56:08 +01:00
Ivan Enderlin
849af62911 feat(runtime-c-api) Finish to extract last pieces of code. 2019-03-29 15:52:41 +01:00
Ivan Enderlin
361ff81db7 feat(runtime-c-api) Extract the import module. 2019-03-29 15:50:16 +01:00
Ivan Enderlin
9c4696eb5b feat(runtime-c-api) Extract the export module. 2019-03-29 15:38:12 +01:00
Ivan Enderlin
f46be814da feat(runtime-c-api) Extract the instance module. 2019-03-29 15:14:05 +01:00
Ivan Enderlin
d06d6b7ac8 feat(runtime-c-api) Extract the global module. 2019-03-29 15:05:17 +01:00
Ivan Enderlin
8bdb458ea7 feat(runtime-c-api) Extract the table module. 2019-03-29 15:02:50 +01:00
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
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
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