Commit Graph

525 Commits

Author SHA1 Message Date
c2ecb99142 Rename UniversalArtifact to Artifact 2022-07-25 13:21:43 +03:00
51be5d0860 Rename UniversalEngine to Engine 2022-07-25 13:21:41 +03:00
987a90c0dc Remove Engine trait 2022-07-25 13:19:32 +03:00
187d2e6364 Remove Artifact trait
In favor of using UniversalArtifact everywhere
2022-07-25 13:13:52 +03:00
37773f29d7 Store/create Arc<ModuleInfo> in Module on Instantiation
Instead of accessing Arc<ModuleInfo> from the artifact a module was
instantiated from, create a copy from it in each instantiated module.
2022-07-25 13:13:52 +03:00
4b7671cabd Leave rkyv dependency only in wasmer-types
rkyv is only needed in wasmer-types crate after moving all serializable
types there.
2022-07-25 13:13:52 +03:00
0bf94d6276 Move SerializableModule, SerializableCompilation to wasmer_types 2022-07-25 13:13:52 +03:00
fec2e5fa51 Added back some needed relocation for arm64 llvm compiler 2022-07-20 11:45:17 +03:00
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
a67e17db6a lib/compiler: delete left-over file 2022-07-19 15:31:51 +03:00
738a66f719 Implement the new Context API for the core API
Co-authored-by: ptitSeb <sebastien.chev@gmail.com>
2022-07-19 15:31:51 +03:00
220751a035 Remove RuntimeError::raise from public API 2022-07-05 14:12:58 +03:00
c55cee41a5 Upgrade enumset minimum version to one that compiles 2022-06-29 20:32:29 +03:00
086205bfcc Remove wasmer_engine_universal{,_artifact} and merge into wasmer_compiler 2022-06-16 16:57:45 +03:00
a6173f9746 Remove wasmer-{artifact,engine} and merge it into wasmer-compiler and wasmer-vm 2022-06-16 16:57:45 +03:00
8f539d134b Move wasmer_compiler/{address_map, function, module, sourceloc, trap, unwind}.rs to wasmer_types 2022-06-16 16:57:45 +03:00
b1f1939bf7 Move wasmer_compiler/{section,relocation}.rs to wasmer_types 2022-06-16 16:57:45 +03:00
feee4e3587 Move wasmer_compiler errors to wasmer_types error module 2022-06-16 16:57:45 +03:00
699bd3f8ca Update rkyv dependency to 0.7.38 2022-06-16 16:57:45 +03:00
4a80830566 lib/types: remove ArchivableIndexMap struct
rkyv supports IndexMap via a feature flag, so having our own IndexMap
type is unnecessary.
2022-06-16 16:57:45 +03:00
065734bb05 Make rkyv dependency required 2022-06-16 16:57:45 +03:00
5339f7cdae Fix clippy lints
Fixes: #2926
2022-06-09 16:05:53 +02:00
00f9a3c8d7 Remove loupe dependency
Closes #2731
Closes #2744
2022-06-08 14:12:49 +03:00
33654c1a1d Release version 2.3.0 2022-06-06 22:27:57 +03:00
3d7ae9e21f Moved LibCall enum to wasmer_types, and compiler is no longer dependant of wasmer_vm 2022-05-03 09:32:34 +02:00
e745ceab7a Moved TableStyle and MemoryStyle to wasmer-types (and compiler-single pass do not depend from vm anymore) 2022-05-03 09:32:34 +02:00
d5bbfd0768 Moved TrapCode enum to wasmer_types, and adapted compiler and wompiler-singlepass 2022-05-03 09:32:34 +02:00
77af8ba634 Fix some clippy lints
Before:
```
% make lint 2>&1 | grep warnings | sort | uniq
error: could not compile `wasmer-cli` due to previous error; 25 warnings emitted
warning: `compiler-test-derive` (lib) generated 8 warnings
warning: `test-generator` (lib) generated 4 warnings
warning: `wasi-test-generator` (bin "wasi-test-generator") generated 8 warnings
warning: `wasmer-cache` (lib) generated 4 warnings
warning: `wasmer-cli` (lib) generated 25 warnings
warning: `wasmer-compiler-cranelift` (lib) generated 50 warnings
warning: `wasmer-compiler-singlepass` (lib) generated 228 warnings
warning: `wasmer-compiler` (lib) generated 3 warnings
warning: `wasmer-emscripten` (lib) generated 182 warnings
warning: `wasmer-engine-dummy` (lib) generated 6 warnings
warning: `wasmer-engine-dylib` (lib) generated 37 warnings
warning: `wasmer-engine-staticlib` (lib) generated 16 warnings
warning: `wasmer-engine-staticlib` (lib) generated 7 warnings
warning: `wasmer-engine-universal` (lib) generated 11 warnings
warning: `wasmer-engine` (lib) generated 15 warnings
warning: `wasmer-object` (lib) generated 5 warnings
warning: `wasmer-types` (lib) generated 31 warnings
warning: `wasmer-vfs` (lib) generated 4 warnings
warning: `wasmer-vm` (lib) generated 40 warnings
warning: `wasmer-wasi-experimental-io-devices` (lib) generated 11 warnings
warning: `wasmer-wasi-types` (lib) generated 3 warnings
warning: `wasmer-wasi` (lib) generated 13 warnings
warning: `wasmer-wast` (lib) generated 11 warnings
warning: `wasmer` (lib) generated 54 warnings
```

After:
```
warning: `wasmer-cli` (lib) generated 16 warnings
warning: `wasmer-compiler-cranelift` (lib) generated 48 warnings
warning: `wasmer-compiler-singlepass` (lib) generated 213 warnings
warning: `wasmer-emscripten` (lib) generated 170 warnings
warning: `wasmer-engine-dummy` (lib) generated 6 warnings
warning: `wasmer-engine-dylib` (lib) generated 4 warnings
warning: `wasmer-engine-staticlib` (lib) generated 14 warnings
warning: `wasmer-engine-staticlib` (lib) generated 5 warnings
warning: `wasmer-engine-universal` (lib) generated 9 warnings
warning: `wasmer-engine` (lib) generated 12 warnings
warning: `wasmer-object` (lib) generated 3 warnings
warning: `wasmer-types` (lib) generated 7 warnings
warning: `wasmer-vm` (lib) generated 36 warnings
warning: `wasmer-wasi-experimental-io-devices` (lib) generated 6 warnings
warning: `wasmer-wasi-types` (lib) generated 3 warnings
warning: `wasmer-wasi` (lib) generated 9 warnings
warning: `wasmer-wast` (lib) generated 9 warnings
warning: `wasmer` (lib) generated 42 warnings
```
2022-04-20 18:25:04 +03:00
4c946257cf Update Cranelift to 0.82 2022-04-06 16:23:32 +01:00
3ad9552e2e Update wasmparser to 0.83 2022-04-06 16:23:32 +01:00
31c9e622f7 Removed Arm64MovwX relocs 2022-03-17 10:41:04 +01:00
fe9d2d8d22 Release version 2.2.1 2022-03-15 11:02:31 +00:00
4dd1634218 Release version 2.2.0 2022-02-28 17:19:14 +00:00
15f9d2646f Release version 2.2.0-rc1 2022-02-15 19:10:24 +00:00
4e27e1164c Release version 2.2.0-rc1 2022-01-27 23:59:27 +00:00
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
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
ebcea4a5c4 Release v2.1.1 2021-12-21 12:19:50 +01:00
c650ffea33 Version 2.1.0 2021-11-30 23:46:54 +00:00
cbd169add2 Upgrade rkyv to 0.7 2021-11-19 10:32:34 +00:00
b54780cdab feat(compiler) Refactor the new ARM Reloc and Trampoline to avoid a &mut 2021-10-12 10:11:36 +02:00
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
4f3b0a95a3 feat(compiler) - Fixed Arm64Call relocation 2021-09-28 11:25:21 +02:00
21660e6d05 feat(compiler) Added preliminary support for Arm64Call relocation 2021-09-28 10:03:25 +02:00
f7dcb02a79 Updated version 2021-08-21 10:21:37 +01:00
1e980b82f7 Fixed dependencies a bit more 2021-08-10 11:47:44 -07:00
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
5746be813c Revert "[compiler] simplified codebase (we can factor this out)"
This reverts commit 76ea96ab06.
2021-07-16 16:35:16 -07:00
92f8141421 [compiler] simplified codebase (we can factor this out) 2021-07-16 16:34:16 -07:00
76ea96ab06 [compiler] simplified codebase (we can factor this out) 2021-07-16 16:33:37 -07:00