Commit Graph

294 Commits

Author SHA1 Message Date
Amanieu d'Antras
fe9d2d8d22 Release version 2.2.1 2022-03-15 11:02:31 +00:00
Amanieu d'Antras
4dd1634218 Release version 2.2.0 2022-02-28 17:19:14 +00:00
Amanieu d'Antras
15f9d2646f Release version 2.2.0-rc1 2022-02-15 19:10:24 +00:00
Amanieu d'Antras
4e27e1164c Release version 2.2.0-rc1 2022-01-27 23:59:27 +00:00
Amanieu d'Antras
ffb9cd33b9 Use trampolines for all libcalls in engine-universal and engine-dylib
In both of these engines, the compiled code may be loaded in memory far
from the Wasmer runtime which means that libcalls may not be reachable
through the normal relocation types. Instead a trampoline is needed to
allow reaching any address in the 64-bit address space.

In the case of engine-dylib, this is even worse since the symbols are
not exported by the executable without some special linker flags. The
solution here is to manually patch in the addresses at load time into
a data table of function pointers.
2022-01-20 11:47:20 +00:00
Amanieu d'Antras
fb7a572415 Use exact version for Wasmer crate dependencies
We don't guarantee API compatibility between internal Wasmer crates when
making minor version bumps.
2022-01-19 21:35:09 +00:00
Amanieu d'Antras
ebcea4a5c4 Release v2.1.1 2021-12-21 12:19:50 +01:00
Amanieu d'Antras
c650ffea33 Version 2.1.0 2021-11-30 23:46:54 +00:00
Amanieu d'Antras
cbd169add2 Upgrade rkyv to 0.7 2021-11-19 10:32:34 +00:00
ptitSeb
b54780cdab feat(compiler) Refactor the new ARM Reloc and Trampoline to avoid a &mut 2021-10-12 10:11:36 +02:00
ptitSeb
20f0c66fe6 feat(compiler) Added Trampolines and more Relocations for Arm64 (llvm-universal on linux-aarch64 are OK now) 2021-10-05 14:08:55 +02:00
ptitSeb
4f3b0a95a3 feat(compiler) - Fixed Arm64Call relocation 2021-09-28 11:25:21 +02:00
ptitSeb
21660e6d05 feat(compiler) Added preliminary support for Arm64Call relocation 2021-09-28 10:03:25 +02:00
Syrus Akbary
f7dcb02a79 Updated version 2021-08-21 10:21:37 +01:00
Syrus Akbary
1e980b82f7 Fixed dependencies a bit more 2021-08-10 11:47:44 -07:00
bors[bot]
baebb436e2 Merge #2460
2460: Added Wasmer Js API r=syrusakbary a=syrusakbary

<!-- 
Prior to submitting a PR, review the CONTRIBUTING.md document for recommendations on how to test:
https://github.com/wasmerio/wasmer/blob/master/CONTRIBUTING.md#pull-requests

-->

# Description

This PR adds support for compiling Wasmer into JS/Wasm via wasm-bindgen, so 3rd party dependencies can use Wasmer to target the web also.

Things working:
* [x] Type introspection: we have to decide how to do it, either run our own parser on the data or rely on the future APIs for introspect Wasm types (this APIs are yet available in the browser, but a proposal is on the way: [wasm-js-types proposal](https://github.com/WebAssembly/js-types)).
* [x] Wasm-pack wasmer-js tests
* [x] Assert 0 warnings in lint
* [x] Allow for custom JS errors (via `RuntimeError`)
* Externals
   * [x] Functions with and without Environments
      * [x] Native functions
      * [x] Dynamic functions
   * [x] Memory
   * [x] Globals
   * [x] Tables

# Review


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


Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2021-07-23 23:23:59 +00:00
Syrus Akbary
5746be813c Revert "[compiler] simplified codebase (we can factor this out)"
This reverts commit 76ea96ab06.
2021-07-16 16:35:16 -07:00
Syrus Akbary
92f8141421 [compiler] simplified codebase (we can factor this out) 2021-07-16 16:34:16 -07:00
Syrus Akbary
76ea96ab06 [compiler] simplified codebase (we can factor this out) 2021-07-16 16:33:37 -07:00
Syrus Akbary
98481f51fe Move ModuleInfo to wasmer-types 2021-07-16 15:42:39 -07:00
Mark McCaskey
0c0fdad3d2 Prepare for 2.0.0 release 2021-06-15 11:26:46 -07:00
Mark McCaskey
80a8658e5a Prepare for 2.0.0-rc2 release 2021-06-03 09:19:16 -07:00
Mark McCaskey
cfc1a5fc26 Fix typo 2.0.0-rc -> 2.0.0-rc1 2021-06-02 08:32:46 -07:00
Mark McCaskey
2897a5b05e Bump version number to 2.0.0-rc1 2021-06-02 08:21:34 -07:00
jubianchi
6a99268895 feat(llvm): Make NaN canonicalization configurable
compiler-llvm now uses the experimental.constrained intrinsics to ensure
correct behavior on FP operations when full-canonicalization is
disabled.

This patch requires TheDan64/inkwell#247
2021-05-28 11:40:10 +02:00
Ivan Enderlin
e5a784a006 feat: Rename wasmer-engine-jit to wasmer-engine-universal.
This (small) patch renames the `wasmer-engine-jit` crate into
`wasmer-engine-universal`.
2021-05-25 16:12:06 +02:00
Syrus Akbary
c1ada66fe2 Added support for Cranelift Native in Aarch64 2021-05-14 14:07:05 -07:00
Syrus
c7df813210 Update code with last simd instructions 2021-05-12 15:27:56 -07:00
Mark McCaskey
9e04e2624b Update cranelift, impl low hanging fruit SIMD opcodes 2021-05-12 09:15:56 -07:00
Mark McCaskey
d9d09aba6e Type check tables when importing 2021-05-04 12:16:53 -07:00
bors[bot]
8012f3f2fd Merge #2250
2250: Use rkyv for JIT Engine r=syrusakbary a=syrusakbary

Since we are going to switch serialization methods, the new one doesn’t have a slowdown if we read the data directly.

Thus, we can always operate with processed frame infos rather than creating a lazy structure that will be deserialized when needed.

Try it:

```shell
git clone https://github.com/wasmerio/wasmer.git -b universal-compiled-info
cd wasmer
make build-wasmer
./target/release/wasmer run lib/c-api/tests/assets/qjs.wasm --disable-cache -- -h
```

Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2021-04-30 18:15:12 +00:00
Syrus Akbary
bd1553c409 Address all review comments 2021-04-29 22:41:23 -07:00
Syrus Akbary
4c54d863ce Downgrade to rkyv 0.4.3 2021-04-29 16:42:06 -07:00
Syrus Akbary
2aa5122ee0 Merge branch 'master' into universal-compiled-info 2021-04-29 13:02:37 -07:00
Mark McCaskey
ac42dcecfd Merge branch 'master' into feature/update-wasmparser-to-0.77 2021-04-29 15:17:24 -04:00
Mark McCaskey
20758ea8af Update wasmparser to 0.77 2021-04-29 09:22:14 -07:00
Mark McCaskey
846d549913 Update rkyv to version 0.6.0 2021-04-29 08:04:28 -07:00
Syrus Akbary
50f899af69 Move from serde to rkyv 2021-04-29 01:24:44 -07:00
Syrus Akbary
cb66b5293d Improved middleware logic 2021-04-27 14:00:25 -07:00
Syrus Akbary
8b00aec7a1 Improved a bit more the codebase 2021-04-26 21:32:41 -07:00
Syrus Akbary
2df5854e37 Make compilers to take non-mutable inputs 2021-04-26 21:14:23 -07:00
Syrus Akbary
ae20af8426 Add middleware accessor in compiler 2021-04-26 16:52:31 -07:00
Syrus Akbary
9be59f809f Use FunctionBinaryReader instead of Middleware 2021-04-26 16:40:54 -07:00
Bo Yao
dadc81296a cargo fmt 2021-04-21 16:06:12 -07:00
Bo Yao
24bcc9349e cargo fmt 2021-04-21 15:42:47 -07:00
Bo Yao
de33c1d2ed follow Syrus's comment fix test -p wasmer-engine-jit --release --no-default-features 2021-04-21 14:55:23 -07:00
Bo Yao
92af25a585 resolve conflict, replace two primary map to hash map 2021-04-20 16:50:05 -07:00
Bo Yao
51d60ae911 fix rkyv 0.4.3 align check 2021-03-25 16:14:30 -07:00
Bo Yao
3c19a663a9 merge master 2021-03-23 15:42:54 -07:00
Ivan Enderlin
e1e2f03c7c fix: Rename lib/wasmer-types/ to lib/types/. 2021-03-23 17:36:58 +01:00