Commit Graph

646 Commits

Author SHA1 Message Date
82f258b888 Prepare for 0.9.0 release 2019-10-23 13:40:35 -07:00
0fd0ab6e58 Merge branch 'master' into ventuzelo/add-detail-unimplemented-calls-runtime 2019-10-23 12:30:14 -07:00
77527c23ce Merge #877
877: Reimplement F32Min, F32Max, F64Min and F64Max. r=nlewycky a=nlewycky

# Description
Reimplement F32Min, F32Max, F64Min and F64Max.

Adds XMM8--15 registers. Adds VMOVA, VBLEND and VXORP, and the VCMPUNORD and VCMPORD comparisons.

Fixes 419 test failures.

Co-authored-by: Nick Lewycky <nick@wasmer.io>
2019-10-22 17:33:44 +00:00
88dc613385 Save and restore the additional XMM registers in OSR too. 2019-10-21 19:44:16 -07:00
961684a8e0 Adjust comment rulers. 2019-10-18 16:33:49 -07:00
8424b61444 Fix typo in comment. 2019-10-18 16:33:49 -07:00
f99d0360d2 Add registers XMM8--15 to from_dwarf_regnum and invoke_call_return_on_stack. 2019-10-16 10:34:37 -07:00
81be25d970 feat(runtime-core) Add documentation and make macros more readable.
After a long time, the macros are easy to read, but not at first
glance. I hope this PR will improve the situation: Same syntax used
everywhere, more spaces…
2019-10-16 16:07:50 +02:00
765e1d3b9e Add XMM8--XMM15. These were added in x64. 2019-10-14 13:46:55 -07:00
2e532fa66d Preserve fault.ip when calling middleware. 2019-10-14 20:23:27 +08:00
b0b0983eb8 Allow accessing execution state in middleware breakpoint handlers. 2019-10-13 20:51:39 +08:00
5499a69ddc Run cargo fmt on everything. 2019-10-13 20:02:47 +08:00
c18bdd52cc Fix inline breakpoints on macOS. 2019-10-13 20:02:28 +08:00
94f97109ff Include backend metadata in tiering module. 2019-10-11 21:05:17 +08:00
db59127f71 Inline breakpoint support in core. 2019-10-11 21:04:53 +08:00
420bfa570e Merge branch 'master' into deterministic 2019-10-10 15:55:35 +03:00
bd06aa02ba x 2019-10-08 19:07:38 +08:00
c337999c5c x 2019-10-08 18:43:39 +08:00
b5bb3fa764 Move {push,pop}_code_version to caller side for non-mananged execution. 2019-10-08 18:41:22 +08:00
3489bfb9b9 renamed feature flag deterministic to deterministic-execution 2019-10-07 23:07:20 +03:00
4d99963640 Replace "be the i32 type" with "be an i32" in error messages. 2019-10-07 12:11:10 -07:00
e0e7d58313 Make state mapping work on non-x86 architectures. 2019-10-07 23:00:37 +08:00
6ca5812798 When deterministic feature will be enabled (turned-off by default) it'll guarantee deterministic
execution of wasm programs across different hardware/circumstances.
This is very useful for Blockchain projects having wasm smart-contracts

This is critical for Blockchain projects that require execution to be deterministic
in order to reach a consensus of the state transition of each smart-contract transaction.
2019-10-07 16:58:58 +03:00
80d6c4cbc0 Implement get_fault_info for aarch64. 2019-10-06 18:27:35 +08:00
4b3880c88b add details when calling unimplemented! 2019-10-03 11:26:54 +02:00
c77cbc1f40 Prepare for 0.8.0 release 2019-10-02 15:40:35 -07:00
871310a851 Improve docs from feedback 2019-09-27 10:15:40 -07:00
dc1744560c Add lots of rustdocs and clean up one line of code 2019-09-26 17:17:50 -07:00
c69cdeca9b Update cranelift backend to fork version 0.44.0 2019-09-25 23:37:39 -05:00
4266926e90 Add ImportObject maybe_with_namespace example 2019-09-25 12:37:27 -07:00
b45a228e84 Merge branch 'master' into ventuzelo/fix-800-index-oob-backing 2019-09-25 09:30:33 +02:00
7bf306eb27 Use flat-square style in downloads button 2019-09-24 13:42:17 -07:00
621ef56ab6 lmproved READMEs to use Azure Pipelines badges and better lgo 2019-09-24 13:36:31 -07:00
588a77d2af Merge branch 'master' into feature/merge-cranelift-0-43-1 2019-09-24 11:41:14 -07:00
ac321846e3 Merge branch 'master' into ventuzelo/fix-653-panic-memorydescriptor 2019-09-24 09:10:45 +02:00
8c5ccdb497 Merge #807
807: Implement Send for Instance r=MarkMcCaskey a=MarkMcCaskey

# Review

- [x] Create a short description of the the change in the CHANGELOG.md file

Resolves #748 

WIP

## List of changes
### Commit 1
- `Global`s use Arc instead of RC
- Export `Context` and `FuncPointer` manually implement Send
- `ImportObject` uses `Arc<Mutex<HashMap<...>>>` Instead of `Rc<RefCell<HashMap<...>>>`; removed `get_namespace` method in favor of continuation style to deal with locking the Mutex
- `Func` manually implements `Send` (TODO: this change needs to be checked in depth)
### Commit 2
- `unsafe impl Send for Export {}` (temporary to allow Memory to be not Send)
- RefCell -> Mutex in Global and Table
- Rc -> Arc in Table
- Namespace's `IsExport`s must be `Send` (Done to avoid touching much more of the code (i.e. `trait IsExport: Send` requires a lot -- maybe this is what we should do though)
- Make `Host` and `Wasm` `Func`s Send (manual implementation)
- Manual implementation for `LocalTable` and `AnyFunc`
### Commit 3
- rm placeholder `unsafe impl Send for Export {}`
- Manual implementation for `LocalBacking` and `ImportBacking` (both seemed to be not Send due to direct ownership of mutable pointers in their containers)
- ImportObject's state creator Fn trait object is now ` + Send + Sync + 'static` (required because it's in an Arc)
- Manually implement Send for `InstanceInner` because it holds a raw pointer, `LocalBacking` and `ImportBacking` are marked Send separately 
- Memory: All Rc -> Arc (including unshared memory); All RefCell -> Mutex (including unshared memory)
- Manual implementation of Send and Sync on `UnsharedMemoryInternal`
- Manual implementation of Send and Sync on `SharedMemoryInternal`
- Change `runtime-core::unix::memory::Memory.fd` from `Option<Rc<Rawfd>>` to `Option<Arc<Rawfd>>` (not strictly required for this change because Memory has manual implementations of Send and Sync, but Arc seems more correct here and there's no comment justifying the use of Rc)
- Manual implementation of Send for `ImportedFunc`

Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Mark McCaskey <markmccaskey@users.noreply.github.com>
2019-09-23 21:20:01 +00:00
9cab6d721f Merge branch 'feature/make-instance-send' of github.com:wasmerio/wasmer into feature/make-instance-send 2019-09-23 13:43:48 -07:00
c4818f12dc Update spectests to work with new Instance; use Arc<Mutex<>> 2019-09-23 13:43:01 -07:00
eed033021b Merge pull request #825 from Hywan/doc-runtime-core-memory-view
doc(runtime-core) Replace `map(|cell| cell.get())` by `map(Cell::get)`.
2019-09-23 11:34:00 -07:00
705287c317 Merge branch 'master' into feature/make-instance-send 2019-09-23 11:06:00 -07:00
1e637badc4 Merge remote-tracking branch 'origin/master' into feature/make-instance-send 2019-09-23 11:05:00 -07:00
05ad1aaea4 Add test for Instance, fix tests for ImportObject 2019-09-23 11:04:31 -07:00
f289cb2ba9 doc(runtime-core) Replace map(|cell| cell.get()) by map(Cell::get).
Because it's simpler :-p.
2019-09-23 15:15:06 +02:00
5ace7a0af3 fix failing test 2019-09-23 11:17:02 +02:00
9942d3ae98 Improved Emscripten / WASI autodetection 2019-09-22 18:23:22 -07:00
a1a88c6eb8 Use the default features for wasmparser 2019-09-21 13:59:08 -05:00
f48d6f6690 Cranelift backend update to fork of clif version 0.43.1 2019-09-21 13:06:54 -05:00
7d9e6d8caa Merge #821
821: Remove patch version in deps when not necessary r=MarkMcCaskey a=MarkMcCaskey

This allows wasmer library users to have more control over the exact versions of deps that Wasmer uses.

# Review

- [x] Add a short description of the the change to the CHANGELOG.md file


Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-09-20 23:44:37 +00:00
862a4c5448 Merge pull request #814 from confio/fix-linux-image-link-error
Fix issues with testing/linking singlepass in runtime-c-api
2019-09-20 16:33:30 -07:00
bf396ec76d Remove patch version in deps when not necessary 2019-09-20 16:11:09 -07:00