Commit Graph

5290 Commits

Author SHA1 Message Date
2276d16f36 Merge branch 'master' into fix-runtime-c-api-1314 2020-03-27 07:48:23 +01:00
baeeea1535 doc(changelog) Fix typo. 2020-03-27 07:47:03 +01:00
531ec45f34 Merge pull request #1329 from Hywan/feat-interface-types-new-types-and-instructions
feat(interface-types) New numbers and strings instructions
2020-03-26 00:02:31 -07:00
f71872c365 doc(changelog) Add #1335. 2020-03-26 07:35:54 +01:00
6eaf87d651 chore(runtime-c-api) Update C/C++ headers. 2020-03-26 07:32:57 +01:00
9826ff3813 fix(runtime-c-api) Change mutability of memory for const in wasmer_memory_data_length. 2020-03-26 07:30:34 +01:00
4a86cd16f9 Merge branch 'master' into feat-interface-types-new-types-and-instructions 2020-03-26 07:26:37 +01:00
4e53f9e9c6 Merge #1332
1332: Add `CompilerConfig` opt to disable IR verification in debug mode r=MarkMcCaskey a=MarkMcCaskey

Resolves #1330 

# Review

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


Co-authored-by: Mark McCaskey <mark@wasmer.io>
2020-03-25 01:26:27 +00:00
697da669a1 Minor code update, move conditional block inwards 2020-03-24 16:00:32 -07:00
ce1b1f67cf Update opt name in CompilerConfig, enable IR verification in spectests 2020-03-24 15:46:58 -07:00
403e14bc1e Add CompilerConifg opt to disable IR verification in debug mode 2020-03-24 14:52:02 -07:00
b251d6d7b4 doc(changelog) Add #1329. 2020-03-24 15:42:40 +01:00
ffe7f765a2 doc(interface-types) Add strign.size in the list of supported instructions. 2020-03-24 15:35:01 +01:00
38f62392ff feat(interface-types) Implement the string.size instruction. 2020-03-24 15:33:42 +01:00
daef7b0bfd feat(interface-types) Add the Stackable::peek1 method.
This method allows to peek the last item on the stack (if any) by
reference.
2020-03-24 15:32:54 +01:00
7f2273b32b doc(interface-types) Add string.* instructions. 2020-03-24 13:29:38 +01:00
ec7aebe7e1 feat(interface-types) Implement the string.(lift|lower)_memory instructions.
The `string.lift_memory` instruction replaces `memory-to-string`, and
`string.lower_memory` replaces `string-to-memory`.
2020-03-24 13:25:06 +01:00
afbeb5d230 feat(interface-types) Rename lowering_lifting module to numbers. 2020-03-24 13:10:21 +01:00
6fcd45bce3 doc(interface-types) Add links to WIT instructions. 2020-03-24 12:48:33 +01:00
cd58af2633 doc(interface-types) Update supported instructions. 2020-03-24 12:47:39 +01:00
50201a5e0b feat(interface-types) Implement [siu](NN|MM).from_* instructions.
Basically the `x-to-y` instructions have been renamed `y.from_x`. This
patch updates the instruction. The binary representation isn't
specified yet, so it's just arbitrary values.
2020-03-24 12:43:57 +01:00
56aec04d1d Merge #1327
1327: fix(interface-types) Stack pops items in the same order than Wasm invocation rule r=Hywan a=Hywan

This PR fixes the items order when popped from the stack. It matches [the Wasm invocation rule](https://webassembly.github.io/spec/core/exec/instructions.html#invocation-of-function-address).

Not that it is more performant in our case, since we use the `drain` API rather than `drain` + `rev`.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2020-03-24 09:49:42 +00:00
4703e78250 Merge #1292
1292: Experimental Support for Android (x86_64 and AArch64) r=syrusakbary a=igrep

# Description

Related: https://github.com/wasmerio/wasmer/issues/1113

# Current Status

- ~~This pull request is a draft until the next version of libc crate (which should contain https://github.com/rust-lang/libc/pull/1622)~~
    - Now released! 🎉
- I confirmed the tests of wasmer-runtime-core pass on Android x86\_64.
    - The other tests including ones on AArch64 seems too hard so far... 😓 

# Review

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

# Note

I'm happy given any hint to test of Android specific code (esp. in libc I added in https://github.com/rust-lang/libc/pull/1622).


Co-authored-by: Yuji Yamamoto <yuji-yamamoto@iij.ad.jp>
Co-authored-by: YAMAMOTO Yuji <yuji-yamamoto@iij.ad.jp>
Co-authored-by: Mark McCaskey <5770194+MarkMcCaskey@users.noreply.github.com>
2020-03-23 21:16:53 +00:00
9cdb49d22c Merge branch 'master' into android 2020-03-23 13:29:18 -07:00
e695ecbfd8 Merge #1288
1288: Update some dependencies manually, removing duplicate deps r=MarkMcCaskey a=MarkMcCaskey

Removes all duplicate deps (as seen by `cargo +stable tree -d`).  Primarily by updating `wasm-debug` but also by through updating some other dependencies.

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2020-03-23 18:58:51 +00:00
a1f0a556e5 fix(interface-types) Use same stack order than Wasm invocation rule. 2020-03-23 14:34:57 +01:00
693b210638 fix(interface-types) Stack pops items in the same order than Wasm invocation rule. 2020-03-23 14:32:26 +01:00
18be0f2bae Fix build on CI for Android 2020-03-23 11:55:33 +09:00
a114b77fe9 Add https://github.com/wasmerio/wasmer/pull/1292 to changelog 2020-03-23 11:55:33 +09:00
056e9cf88c Add the android test script to the CI pipeline 2020-03-23 11:55:33 +09:00
93f6a9b91b enable testing on Android x86_64
Currently, at the time of 2020/03/11, testing on AArch64 is not supported in the upstream repository
2020-03-23 11:55:32 +09:00
96a0f851c2 Update libc
The new version of libc contains changes necessary to build
wasmer-runtime-core for Android.

See https://github.com/rust-lang/libc/pull/1622 for details.
2020-03-23 11:55:32 +09:00
b23436d1bb 🐛 Correct error message when trying to build on non-supported targets 2020-03-23 11:55:31 +09:00
0df0a1cccb Support Android
I'll send a PR after https://github.com/rust-lang/libc/pull/1622 is merged and released
2020-03-23 11:55:31 +09:00
704c34283f Merge #1320
1320: Support multiple custom sections with the same name r=MarkMcCaskey a=MarkMcCaskey

The spec doesn't disallow duplicates and the [JS API spec](https://webassembly.github.io/spec/js-api/index.html#dom-module-customsections) supports them.

# Review

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


Co-authored-by: Mark McCaskey <mark@wasmer.io>
2020-03-21 00:15:24 +00:00
df1afa2cdc Add custom section update to changelog 2020-03-20 17:14:30 -07:00
c6dc793924 Merge #1322
1322: inkwell::Builder is a per-function notion, remove it from LLVMModuleCodeGenerator. r=nlewycky a=nlewycky

This also removes it from the API to generate trampolines, which makes sense because those produce new functions, so it can produce a new builder for the new function.


Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: nlewycky <nick@wasmer.io>
2020-03-20 19:29:23 +00:00
30afd145e0 Merge branch 'master' into feature/llvm-mcg-no-builder 2020-03-20 12:27:48 -07:00
f7d4f855a3 inkwell::Builder is a per-function notion, remove it from LLVMModuleCodeGenerator.
This also removes it from the API to generate trampolines, which makes sense because those produce new functions, so it can produce a new builder for the new function.
2020-03-20 12:26:15 -07:00
248e06146a Support multiple custom sections with the same name 2020-03-20 11:27:23 -07:00
04754aa223 Merge #1303
1303: NaN canonicalization for singlepass backend. r=losfair a=losfair

- [x] Implementation
- [x] Test

Co-authored-by: losfair <zhy20000919@hotmail.com>
Co-authored-by: Nick Lewycky <nick@wasmer.io>
Co-authored-by: Syrus Akbary <me@syrusakbary.com>
Co-authored-by: Heyang Zhou <zhy20000919@hotmail.com>
2020-03-19 04:06:27 +00:00
d1e8674f8d Merge branch 'master' into feature/singlepass-nan-cncl 2020-03-19 12:05:57 +08:00
3a911a20a0 Merge pull request #1317 from wasmerio/fix/osx-static-lib-packaging
Fix OSX static library packaging
2020-03-18 14:47:45 -07:00
a7ddae13d8 Fix OSX static library packaging 2020-03-18 13:03:33 -07:00
0c0badc6a2 Merge #1315
1315: Fix windows cross compilation r=MarkMcCaskey a=Jake-Shadle

# Description
When compiling to windows from any host other than windows, the `win-exception-handler` crate would not actually compile the C code since the compilation was guarded by `#[cfg(target_os = "windows")]`, which is evaluated when the build script itself is compiled which would mean it would != windows, which would eventually cause a link error due to the missing library.

This change gets the target os via the `CARGO_CFG_TARGET_OS` environment variable, which is set by cargo when invoking the build script, and will evaluate to `windows` when actually targetting windows, no matter the host platform.

It also changed from using cmake to use the cc crate to compile the code, as cmake seemed like massive overkill for a single C file, as well as complicating cross compilation again, though I can change it back to cmake if you don't want that change.

I also fixed a warning produced by clang by adding `#include <intrin.h>`, though there was another warning due to the trampoline function pointer taking a non-const `wasmer_instance_context_t*`, but wasmer actually sending in a const *.

# Review

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


Co-authored-by: Jake Shadle <jake.shadle@embark-studios.com>
2020-03-18 19:32:06 +00:00
19ffd8ebb9 Fix warning (from clang) 2020-03-18 20:07:12 +01:00
9e389b9a5f Fix cross compilation
cfg!()/env!() are applied on the host platform during the build script's
build, the environment of the build script's execution is the proper way
to determine eg target_os
2020-03-18 20:06:55 +01:00
4de7deb568 Replace cmake with cc 2020-03-18 20:05:05 +01:00
c25ba627df Add comment for call argument list preprocessing. 2020-03-18 23:41:10 +08:00
8485ccc88c Update comment for nan_canonicalization. 2020-03-18 01:48:27 +08:00