Commit Graph

452 Commits

Author SHA1 Message Date
ptitSeb
7fb7c09080 Release 3.2.0 2023-04-18 16:30:03 +02:00
ptitSeb
e40c6a4177 Release 3.2.0-beta.2 2023-04-05 13:25:40 +02:00
Christoph Herzog
47cc5bbf99 feat: Implement safe, checked module artifact deserialization
Enable rkyv validation of serialized module artifacts.

Required additions:
* derive the required CheckBytes trait for all types
* Add `_checked` variants of all the deserialization functions

Also enables the `strict` feature of rkyv by default.
This will ensure consistent archive binary layout across architectures
and Rust compiler versions.
2023-03-31 13:01:58 +00:00
ptitSeb
d58d158897 Release 3.2.0-beta.1 2023-03-22 19:14:57 +01:00
ptitSeb
7500ce76fc Feat riscv llvm and cranelift (#3244)
* Basic changes for RISC-V support

* RISC-V in compiler LLVM

* RISC-V support in dylib engine

* RISC-V support in universal engine

* Various small fixes

* [RISCV] LLVM-riscv working, with some ignored tests to be worked on later

* Update rustc to 4.65 (1.64 has some issue with riscv64 target)

* Fixed some (new) Linting issues

* Updated Cargo.toml and remove split-debuginfo for Windows build

* Removed profile.dev from Cargo.toml as it cannot be per platform (breaks Windows). split-debug info is now the default value

* Enable Cranelift compiler for RISCV

* Update crates and fixed all the new clippy errors

* Taken review remarks into account

* Removed change from deny.toml, it's not needed anymore

* Added some more comment about llvm abi hack

* Added doc about current state of RISCV support

* Fixed (newer) linter

---------

Co-authored-by: Toru Nayuki <tnayuki@icloud.com>
2023-03-22 15:26:28 +01:00
ptitSeb
f8c0910c33 Update wasmparser to v0.95 (#3682)
* Update wasmparser to v0.95

* Update lib/compiler/src/translator/module.rs

Co-authored-by: Syrus Akbary <me@syrusakbary.com>

---------

Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2023-03-15 11:15:58 +01:00
Christoph Herzog
ee58d7c2b2 Revert "Update wasmparser to v0.91"
This reverts commit 87232623de.
2023-03-15 01:46:26 +01:00
ptitSeb
87232623de Update wasmparser to v0.91 2023-03-14 20:39:38 +01:00
Syrus Akbary
a6ebf78fcb Verious fixes for the wasix merge 2023-02-24 14:37:48 -08:00
Syrus Akbary
826d32194d Merge branch 'master' into std-api
# Conflicts:
#	lib/api/src/js/mem_access.rs
#	lib/api/src/js/mod.rs
#	lib/api/src/sys/typed_function.rs
#	lib/wasi/src/syscalls/wasix32.rs
#	lib/wasi/src/syscalls/wasix64.rs
#	lib/wasi/src/utils/mod.rs
2023-02-24 14:13:02 -08:00
Syrus Akbary
1f64ba13e0 Wrap engine 2023-02-24 13:35:46 -08:00
Syrus Akbary
b61e2a1287 Added equality to instance, Module and Exports 2023-02-16 21:56:44 -08:00
Syrus Akbary
d85297fddc Fix linting and compilation 2023-02-16 21:21:44 -08:00
Syrus Akbary
db6dd420e1 Optimized ModuleInfo usage 2023-02-16 20:44:49 -08:00
Johnathan Sharratt
81bae8f95d Merge remote-tracking branch 'origin' into wasix-major-fixes-and-tweaks 2023-02-16 15:40:44 +11:00
Michael-F-Bryan
8d46f7f2d7 Make AsStoreRef and friends work for anything that derefs to an AsStoreRef 2023-02-16 00:41:03 +08:00
Syrus Akbary
92255601fe Merge branch 'master' into std-api
# Conflicts:
#	lib/api/src/sys/instance.rs
2023-02-11 18:19:10 -08:00
Christoph Herzog
8b0d1fc302 wasi: Partial unification of instance spawning
Introduces a new WasiEnvInit type that should hold all information
required for initializing an instance.

An instance can then be created with WasiEnv::instantiate().
This method takes care of all the required setup steps to properly run a
wasi(X) module.
2023-02-08 14:36:01 +01:00
ptitSeb
1387363a7b Fix/compile not in memory (#3573)
* Example of allocated artifact
* Better error when Instancing fail because of OS/Arch issue
* Add missing brnach for new error
---------

Co-authored-by: Syrus Akbary <me@syrusakbary.com>
2023-02-06 10:28:39 +01:00
Syrus Akbary
d09a76ec5f Use standard API for js and sys for Module. Added Engine in js 2023-01-27 17:10:54 +01:00
ptitSeb
420cde0224 Merge branch 'master' into fix_instancehandle_memoryleak 2023-01-25 14:19:19 +01:00
ptitSeb
0dc0ce1f0d Renamed InstanceHandle to VMinstance, and InstanceAllocator::write_instance to into_vminstance 2023-01-25 12:06:09 +01:00
Felix Schütt
4b9389cdaa Release 3.2.0-alpha.1 2023-01-23 12:52:43 +01:00
Felix Schütt
c1fec2f32e Always import ModuleInfo 2023-01-19 19:54:23 +01:00
Felix Schütt
b26b48794c Move get_module_info into the Engine 2023-01-19 19:43:01 +01:00
Felix Schütt
17943e5e11 Refactor Artifact::new into separate sub-functions 2023-01-19 17:24:44 +01:00
Felix Schütt
fd5962dd66 Revert "Fix make lint"
This reverts commit e2755b7107.
2023-01-19 09:23:10 +01:00
Felix Schütt
d52ae79070 Merge branch 'master' into fix-master-red-2 2023-01-18 21:53:16 +01:00
Felix Schütt
ed7f122ed5 Fixed create_exe_serialized tests 2023-01-18 20:05:31 +01:00
Felix Schütt
790fcfca59 Debug why get_store_for_target fails 2023-01-18 18:39:00 +01:00
Felix Schütt
a70a4922ad Fix feature flags and misleading error message 2023-01-18 12:21:16 +01:00
Felix Schütt
e2755b7107 Fix make lint 2023-01-17 21:07:09 +01:00
ptitSeb
87eb05d6d6 Merge branch 'master' into wasix-core-changes 2023-01-16 09:39:08 +01:00
Syrus Akbary
1cdb3ebf5a Fixed custom section being skipped if the section name is “name” 2023-01-12 19:59:35 +01:00
ptitSeb
26b43fee27 Merge branch 'master' into wasix-core-changes 2023-01-05 21:32:17 +01:00
Felix Schütt
0313fe4667 Revert "Disable publish_eh_frame"
This reverts commit 5a9418aaf9.
2023-01-05 15:38:50 +01:00
Felix Schütt
5a9418aaf9 Disable publish_eh_frame 2023-01-05 13:27:49 +01:00
Felix Schütt
bf37e63bba Remove last case of manual WASMER_METADATA formatting and enable LLVM 2023-01-04 19:20:21 +01:00
ptitSeb
5b5d032583 Fixed linter 2023-01-04 19:19:12 +01:00
ptitSeb
9fbc7f4ea5 Removed default Compiler::name() implementation 2023-01-04 18:38:17 +01:00
Felix Schütt
84dc64bbd1 Migrate from WASMER_METADATA_ to using SymbolRegistry 2023-01-04 17:36:52 +01:00
Felix Schütt
2c9ad00573 WASMER_{}_METADATA -> WASMER_METADATA_{} 2023-01-04 15:44:25 +01:00
Felix Schütt
253cd21183 Document metadata_prefix and remove PrefixerFn 2023-01-04 15:23:43 +01:00
Felix Schütt
683c60c255 Refactor gen-c-header using Artifact::metadata 2023-01-04 11:24:31 +01:00
Felix Schütt
afb9d401cd Add gen-c-header option 2023-01-04 09:45:08 +01:00
Felix Schütt
c7986832a2 Debug why linking WASMER_METADATA doesn't work for multiple files 2022-12-22 13:58:40 +01:00
Christoph Herzog
cfa3bf4200 Merge remote-tracking branch 'origin/master' into wasix-core-changes 2022-12-22 13:51:14 +01:00
Mallory Adams
5648e5091b Use GNU/Linux frame registration code for FreeBSD too
This change prevents a long hang when a program exits.

FreeBSD's `__deregister_frame` and `__register_frame` implementations
are ported from GCC, which is why we should be using the same frame
registration code for FreeBSD and GNU/Linux.

Link: https://github.com/freebsd/freebsd-src/blob/release/13.1.0/contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c#L241-L299
Fixes: https://github.com/wasmerio/wasmer/issues/3373
2022-12-20 11:30:29 -05:00
Christoph Herzog
7503fdacd3 Remove module_start from ArtifactBuild::new, provide builder instead
Remove the added module_start argument in ArtifactBuild::new() to avoid
a breaking change.

Introduce a with_module_start() method instead.
2022-12-16 11:47:04 +01:00
Christoph Herzog
838bfe2c71 Make Compiler::name() optional
Makes the new Compiler::name() method optional by adding a default
implementation.

This avoid a breaking public API change.
2022-12-16 11:47:04 +01:00