Commit Graph

491 Commits

Author SHA1 Message Date
ptitSeb
6ed8e4832e Added Wait / Notify opcode to LLVM compiler (for #3157) 2022-11-22 14:38:25 +01:00
ptitSeb
2a6d5e7687 Merge branch 'master' into imp_limit_compilation_clone 2022-11-21 11:12:24 +01:00
Felix Schütt
dcc0164698 Release 3.0.0 2022-11-20 17:00:03 +01:00
Felix Schütt
91c2c1daea Release 3.0.0-rc.4 2022-11-19 16:21:42 +01:00
Felix Schütt
820b83e56b Update 3.0.0-rc.2 -> 3.0.0-rc.3 2022-11-18 19:50:41 +01:00
ptitSeb
ecc0c9e547 Limit the use of clone when handling Compilation object 2022-11-09 13:23:44 +01:00
Felix Schütt
d2364f40bb Update versions via script 2022-11-02 14:52:12 +01:00
Felix Schütt
8ee578fb5d Update package versions 2022-10-25 12:54:45 +02:00
Felix Schütt
fef756412f Update 3.0.0-beta -> 3.0.0-beta.2 2022-09-26 12:20:35 +02:00
Manos Pitsidianakis
c570b1471a Bump version to 3.0.0-beta in Cargo manifests 2022-08-08 19:56:35 +03:00
Manos Pitsidianakis
14ee38a24e compiler: move Symbol, SymbolRegistry to wasmer-types 2022-08-02 15:45:28 +03:00
Felix Schütt
011d36829a Bump 3.0.0-alpha.3 to 3.0.0-alpha.4 2022-07-30 11:31:08 +03:00
Felix Schütt
1c3ffffe46 Bump 3.0.0-alpha.2 to 3.0.0-alpha.3 2022-07-30 11:30:45 +03:00
Felix Schütt
02ee80cf10 Bump version to 3.0.0-alpha.2 2022-07-30 11:30:07 +03:00
Felix Schütt
6c045bff10 Bump version to 3.0.0-alpha.1 to fix botched compiler crate 2022-07-30 11:29:41 +03:00
Felix Schütt
8959008403 Update version to 3.0.0-alpha 2022-07-30 11:29:05 +03:00
Syrus Akbary
4384ddf9cd Improved EngineBuilder and Store API
- Store::new() now takes an impl Into<Engine>.
- Added Into<Engine> impls in each of the compilers
- Updated docs/migration_to_3.0.0.md on API usage
2022-07-28 15:20:26 +03:00
Manos Pitsidianakis
214346af3b Merge Backend into EngineBuilder and refactor feature flags 2022-07-27 21:03:24 +03:00
Manos Pitsidianakis
4a06b1d3f6 Rename engine's Universal type to Backend
The Universal type was essentially a builder of engines that's given a
compiler backend and creates an Engine with .engine() method. The name
was not clear.
2022-07-25 13:23:13 +03:00
Manos Pitsidianakis
187d2e6364 Remove Artifact trait
In favor of using UniversalArtifact everywhere
2022-07-25 13:13:52 +03:00
ptitSeb
fec2e5fa51 Added back some needed relocation for arm64 llvm compiler 2022-07-20 11:45:17 +03:00
Syrus Akbary
a419ccdf52 Move Webassembly objects to Store and remove Context
Co-authored-by: ptitSeb <sebastien.chev@gmail.com>
Co-authored-by: Manos Pitsidianakis <manos@wasmer.io>
2022-07-19 15:31:51 +03:00
Manos Pitsidianakis
f744bac1a2 Store: replace new() with new_with_engine() and make new() take CompilerConfig
Since there's one engine now, it doesn't make sense to initialize a
`Store` with the engine specifically. It's an extra redundant step for
the API user.
2022-06-16 16:57:45 +03:00
Manos Pitsidianakis
8f539d134b Move wasmer_compiler/{address_map, function, module, sourceloc, trap, unwind}.rs to wasmer_types 2022-06-16 16:57:45 +03:00
Manos Pitsidianakis
b1f1939bf7 Move wasmer_compiler/{section,relocation}.rs to wasmer_types 2022-06-16 16:57:45 +03:00
Manos Pitsidianakis
feee4e3587 Move wasmer_compiler errors to wasmer_types error module 2022-06-16 16:57:45 +03:00
Wolfgang Silbermayr
5339f7cdae Fix clippy lints
Fixes: #2926
2022-06-09 16:05:53 +02:00
Manos Pitsidianakis
00f9a3c8d7 Remove loupe dependency
Closes #2731
Closes #2744
2022-06-08 14:12:49 +03:00
Manos Pitsidianakis
33654c1a1d Release version 2.3.0 2022-06-06 22:27:57 +03:00
Amanieu d'Antras
4c946257cf Update Cranelift to 0.82 2022-04-06 16:23:32 +01:00
Amanieu d'Antras
3ad9552e2e Update wasmparser to 0.83 2022-04-06 16:23:32 +01:00
ptitSeb
31c9e622f7 Removed Arm64MovwX relocs 2022-03-17 10:41:04 +01:00
bors[bot]
fc794ab4e3 Merge #2807
2807: Run Wasm code on a separate stack r=Amanieu a=Amanieu

This uses the [corosensei](https://crates.io/crates/corosensei) crate to
run Wasm code on a separate stack from the main thread stack.

In trap handlers for stack overflows and memory out of bounds accesses,
we can now check whether we are executing on the Wasm stack and reset
execution back to the main thread stack when returning from the trap
handler.

When Wasm code needs to perform an operation which may modify internal
data structures (e.g. growing a memory) then execution must switch back
to the main thread stack using on_host_stack. This is necessary to avoid
leaving internal data structure in an inconsistent state when a stack
overflow happens.

In the future, this can also be used to suspend execution of a Wasm
module (#1127) by modeling it as an async function call.

Fixes #2757
Fixes #2562


Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
2022-03-16 13:24:50 +00:00
Amanieu d'Antras
fe9d2d8d22 Release version 2.2.1 2022-03-15 11:02:31 +00:00
Amanieu d'Antras
7467ec3261 Use LLVM's inline-asm stack probing instead of an external function 2022-03-14 22:14:22 +00:00
ptitSeb
df4943338a Update regex crate to 1.5+ (from 1.3) 2022-03-11 16:47:40 +01: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
Toru Nayuki
1daf3ed6dc Fix lint 2022-02-10 11:25:31 +09:00
Toru Nayuki
82eed9acd4 Made relocations matching strictly in compiler-llvm 2022-02-09 21:41:01 +09: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
78eb5bc4c0 Fix alignment of WASMER_METADATA in the dylib engine
rykv requires this to be at least 16-byte aligned.
2022-01-04 16:23:49 +01: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
Syrus Akbary
aae99dda0d Update requirements 2021-11-30 21:00:06 +01:00
Amanieu d'Antras
cca6a6b6cc Bump minimum required LLVM version to 12 2021-11-16 03:21:06 +00:00
bors[bot]
2b104a8ecc Merge #2677
2677: Support 32-bit memories with 65536 pages r=ptitSeb a=Amanieu

Fixes #2187

Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
2021-11-10 15:49:43 +00:00
Amanieu d'Antras
6a0b381763 Support 32-bit memories with 65536 pages
Fixes #2187
2021-11-10 14:49:32 +00:00