Commit Graph

2044 Commits

Author SHA1 Message Date
Mark McCaskey
e8b2660eb7 greatly simplify logic -- thanks Lachlan! 2019-04-22 16:14:12 -07:00
Mark McCaskey
b3dacbfc3c
Merge branch 'master' into feature/improve-backend-error-message 2019-04-22 16:09:08 -07:00
Mark McCaskey
015bf78953 update changelog 2019-04-22 16:06:22 -07:00
Mark McCaskey
51cf0d1be7 reduce suggested backends to the ones compiled into wasmer 2019-04-22 16:03:04 -07:00
bors[bot]
b7f98c8401 Merge #381
381: Hook up error propagation r=lachlansneff a=lachlansneff

You can now retrieve the error from a panicking or error-returning imported function.

Example:

```rust
#[derive(Debug)]
struct ExitCode {
    code: i32,
}

fn do_panic(_ctx: &mut Ctx) -> Result<i32, ExitCode> {
    Err(ExitCode { code: 42 })
}

// This wasm functions calls `do_panic`.
let foo: Func<(), i32> = instance.func(...)?;

let result = foo.call();

println!("result: {:?}", result);

if let Err(RuntimeError::Error { data }) = result {
    if let Ok(exit_code) = data.downcast::<ExitCode>() {
        println!("exit code: {:?}", exit_code);
    }
}
```

outputs:

```
result: Err(unknown error)
exit code: ExitCode { code: 42 }
```

Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-22 22:55:25 +00:00
Lachlan Sneff
ff9de181f1 Add error propagation test 2019-04-22 15:53:21 -07:00
Lachlan Sneff
14325c975e Rename internal enum to make less confusing 2019-04-22 15:36:47 -07:00
Lachlan Sneff
aa9cd84085 Update changelog 2019-04-22 15:17:47 -07:00
Lachlan Sneff
706ddabf61 Hook up error propagation 2019-04-22 15:06:40 -07:00
bors[bot]
a42b7d3815 Merge #379
379: Fix small return types. r=syrusakbary a=lachlansneff

This fixes returning integers smaller than 32bits from imported functions. Also some work on fixing returning errors from functions.

Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
Co-authored-by: Syrus <me@syrusakbary.com>
2019-04-22 19:46:35 +00:00
Syrus
3729c4a8b8 Revert "Merge #370"
This reverts commit 48a8391f5d, reversing
changes made to 363b46eca7.
2019-04-22 12:10:39 -07:00
Syrus
878a0e6687 Partial Revert of types “Return type normalization, and change return errors from imported functions"
This reverts commit 74b6ba4eaf.

# Conflicts:
#	lib/wasi/src/syscalls/mod.rs
2019-04-22 12:09:30 -07:00
Lachlan Sneff
7940aa7e42 Fix renamed variable 2019-04-22 11:57:50 -07:00
Lachlan Sneff
ecdcab5de9 Update singlepass to renamed enum discrimant 2019-04-22 11:47:47 -07:00
Lachlan Sneff
39ebca366c Update changelog 2019-04-22 11:44:31 -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
bors[bot]
6478500b8f Merge #371
371: Add more Debug impl for WASI types r=bjfish a=bjfish



Co-authored-by: Brandon Fish <brandon.j.fish@gmail.com>
Co-authored-by: Brandon Fish <bjfish@users.noreply.github.com>
2019-04-20 22:41:46 +00:00
Brandon Fish
2516a1ee31
Merge branch 'master' into feature/wasi-more-debug 2019-04-20 14:22:59 -05:00
Brandon Fish
962c9c8596 Add more Debug impl for WASI types 2019-04-20 14:22:31 -05:00
bors[bot]
48a8391f5d Merge #370
370: Fix WASI by using u32 everywhere instead of u16 r=syrusakbary a=syrusakbary

Long story short: we were seeing some undeterministic behavior when running wasmer with WASI on Linux.

It turned out we are doing some bad conversions from u16 to the inner type in the trampolines (or func type?), and this only showed up in certain systems.

This PR is a quick fix to get things running quickly, but we will proceed with a proper fix soon and revert this PR.

Note: the discovery of the bug was done by @bjfish, and this PR is just a very simple way to address it.

cc @lachlansneff 

Co-authored-by: Syrus <me@syrusakbary.com>
2019-04-20 18:56:20 +00:00
Syrus
0aa35a675b Fix WASI by using u32 everywhere instead of u16 2019-04-20 11:47:06 -07:00
bors[bot]
363b46eca7 Merge #368
368: fix write to flush buffer; fix warnings r=MarkMcCaskey a=MarkMcCaskey

resolves #363 

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-04-20 00:22:07 +00:00
Mark McCaskey
9256f6e60a update changelog 2019-04-19 16:48:30 -07:00
Mark McCaskey
8095d70957 fix write to flush buffer; fix warnings 2019-04-19 15:57:51 -07:00
bors[bot]
f7e4a09832 Merge #343
343: add preopened fd and fix/improve fs syscalls; fix wasi memory access r=MarkMcCaskey a=MarkMcCaskey

resolves #356 

Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-04-19 21:24:58 +00:00
Mark McCaskey
5a575cd64d
Merge branch 'master' into feature/preopen-fd-and-more 2019-04-19 14:24:30 -07:00
Syrus Akbary
b4ded07313
Merge branch 'master' into feature/preopen-fd-and-more 2019-04-19 14:14:40 -07:00
bors[bot]
f959c3f15a Merge #367
367: Add caching support to llvm backend r=lachlansneff a=lachlansneff

This changes the `CacheGen` trait a little, since it was weird.

Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-19 21:10:14 +00:00
Lachlan Sneff
087a826222 fix tests on more time uh huh 2019-04-19 14:09:41 -07:00
Mark McCaskey
eef2bc6a21 update changelog 2019-04-19 14:07:41 -07:00
Lachlan Sneff
3b9e12b248 fix test 2019-04-19 14:02:21 -07:00
Lachlan Sneff
c3ef1f8421 Remove commented-out code 2019-04-19 14:00:03 -07:00
Lachlan Sneff
65838fe148 Update changelog 2019-04-19 13:57:05 -07:00
Lachlan Sneff
443663aa3f Add caching support to llvm backend 2019-04-19 13:54:48 -07:00
Mark McCaskey
b141d7f80e fix typo 2019-04-19 13:25:23 -07:00
Mark McCaskey
52279afbe2 add comment and reduce code in pre-open loading section 2019-04-19 13:24:41 -07:00
Mark McCaskey
5e504b77cd add support for more complex paths in path_open 2019-04-19 12:48:29 -07:00
Mark McCaskey
35f8d69d4b fix typo; thanks Kerollmops! 2019-04-19 09:26:47 -07:00
Mark McCaskey
c75f055b09 disable ZFS again; clean up simple-path's control-flow-path in path_open 2019-04-19 09:25:29 -07:00
Mark McCaskey
19e830d25a fix memory access in WasmPtr 2019-04-18 17:48:14 -07:00
Mark McCaskey
7e58c4258c Merge remote-tracking branch 'origin/master' into feature/preopen-fd-and-more 2019-04-18 15:43:02 -07:00
Syrus
ed651055f3 Fixed singlepass make release 2019-04-18 13:01:55 -07:00
bors[bot]
b146a9f82a Merge #366
366: Remove UserTrapper trait r=lachlansneff a=lachlansneff

This removes the `UserTrapper` trait and the thread_local EARLY_TRAPPER variable.

Fixes bug reported in #365.

Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-18 17:33:37 +00:00
Lachlan Sneff
36d73d1b48 Update changelog to point to pr 2019-04-18 10:18:36 -07:00
Lachlan Sneff
016ef1c7b9 Add changelog item 2019-04-18 10:16:11 -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
bors[bot]
ccad8874e9 Merge #360
360: Single-pass fixes and optimizations. r=syrusakbary a=losfair



Co-authored-by: losfair <zhy20000919@hotmail.com>
Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-18 15:04:09 +00:00