Commit Graph

181 Commits

Author SHA1 Message Date
Gregory Sobol
25d6a49f1c fmt 2022-10-05 18:42:38 +03:00
Gregory Sobol
7b49e4d6d6 fix popcnt for m1 and add test 2022-09-30 17:02:30 +03:00
ptitSeb
2752f7d390 More rollback fixes 2022-09-01 18:02:14 +02:00
ptitSeb
436bec735b Using IntoBytes only for Module::deserialise (both sys and js) 2022-09-01 13:52:53 +02:00
ptitSeb
1912373e1f The API breaking changes from future WASIX/Network/Threading addition 2022-08-26 10:46:56 +02:00
Felix Schütt
18abab157c Add sanity test for Artifact::deserialize 2022-08-23 16:56:16 +02:00
Wolfgang Silbermayr
89bba319a9 No longer require FunctionEnvMut for new_typed(…) callback function 2022-08-05 14:27:44 +02:00
Wolfgang Silbermayr
566c897e57 Remove FunctionEnvMut for Function::new(…) 2022-08-05 14:27:44 +02:00
Wolfgang Silbermayr
7df3e3ca23 Rename {native,typed} functions, reintroduce *_with_env variants 2022-08-05 14:27:44 +02:00
John Sharratt's Shared Account
5aa356f222 Fixed a memory corruption issue with JS memory operations that were reusing invalid views 2022-07-31 20:31:41 +10: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
51be5d0860 Rename UniversalEngine to Engine 2022-07-25 13:21:41 +03:00
Manos Pitsidianakis
987a90c0dc Remove Engine trait 2022-07-25 13:19:32 +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
ptitSeb
267a09ce8e Migrate compiler tests to the new Context API 2022-07-19 15:31:51 +03:00
Manos Pitsidianakis
168e330260 Renamed get_native_function to get_typed_function, marked former as deprecated. 2022-07-19 15:31:51 +03:00
Amanieu d'Antras
9e53e70767 Rework the way the Context is passed into function using it 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
c9baa6e451 tests/compilers: remove Engine configuration
Since there's only one Engine now.
2022-06-16 16:57:45 +03:00
Manos Pitsidianakis
086205bfcc Remove wasmer_engine_universal{,_artifact} and merge into wasmer_compiler 2022-06-16 16:57:45 +03:00
Manos Pitsidianakis
a6173f9746 Remove wasmer-{artifact,engine} and merge it into wasmer-compiler and wasmer-vm 2022-06-16 16:57:45 +03:00
Manos Pitsidianakis
e9d54e130c Remove engine-dylib 2022-06-16 16:57:45 +03:00
ptitSeb
0cd9dfe3e0 Fixed linter warnings/errors 2022-06-15 19:26:57 +03:00
ptitSeb
3e9de243a5 Fix lint warnings/errors 2022-06-15 19:26:57 +03:00
Johnathan Sharratt
7c532813e7 Multiple changes required to implement the wasmer terminal on the browser
- Split functionality out of WasiEnv so that it can support multi-threading
- Added methods to the VFS File Trait that supporting polling
- Implemented basic time functionality for WASI
- Incorported a yield callback for when WASI processes idle
- Improved the error handling on WASI IO calls
- Reduce the verbose logging on some critical WASI calls (write/read)
- Implemented the missing poll functionality for WASI processes
- Moved the syspoll functionality behind a feature flag to default to WASI method
- Refactored the thread sleeping functionality for WASI processes
- Fixed the files system benchmark which was not compiling
- Modified the file system trait so that it is SYNC and thus can handle multiple threads
- Removed the large mutex around filesystem state and implemented granular locks instead
  (this is needed to fix a deadlock scenario on the terminal)
- Split the inodes object apart from the state to fix the deadlock scenario.
- Few minor fixes to some warnings when not using certain features
- Sleeping will now call a callback that can be used by the runtime operator when
  a WASI thread goes to sleep (for instance to do other work)
- Fixed a bug where paths that exist on the real file system are leaking into VFS
- Timing functions now properly return a time precision on WASI
- Some improved macros for error handling within syscalls (wasi_try_ok!)
- Refactored the remove_directory WASI function which was not working properly
- Refactored the unlink WASI function which was not working properly
- Refactored the poll WASI function which was not working properly
- Updates some of the tests to make them compile again
- Rewrote the OutputCapturer so that it does leak into the internals
2022-06-15 12:00:24 +02:00
Wolfgang Silbermayr
da4e9fe617 Rename NativeFunc to TypedFunction
Closes: #2915
2022-06-08 14:12:51 +03:00
Manos Pitsidianakis
00f9a3c8d7 Remove loupe dependency
Closes #2731
Closes #2744
2022-06-08 14:12:49 +03:00
Manos Pitsidianakis
8aa225a192 api/sys: Replace ImportObject with new type Imports 2022-06-08 14:09:40 +03:00
Manos Pitsidianakis
008c6720d7 tests/compilers/issues.rs: update broken Memory API usage 2022-06-08 14:09:40 +03:00
Amanieu d'Antras
683c3688d4 Update spec test workaround for singlepass
This is necessary for singlepass which doesn't support multi-value yet.
2022-04-06 20:48:43 +01:00
Amanieu d'Antras
3d52bf2f8f Don't try generating a backtrace on stack overflow 2022-03-14 22:14:22 +00:00
Simonas Kazlauskas
13a926adc6 regression test for GPR exhaustion during calls 2022-01-24 20:37:28 +02:00
Simonas Kazlauskas
6dc24623e3 Regression test for #2721
The wasm snippet in the test corresponds to roughly:

```rust
let name = "bananapeach";
banana(a, b, c, name.len() as _, name.as_ptr() as _, f, g, h);
```

however sometime between 2.0 and 2.1 the name pointer is no longer being
passed through as an argument. Instead a 0 gets passed in.

To make things weirder, if `name.as_ptr()` is passed through multiple
times, the second time the pointer will get passed correctly.
2021-12-14 14:44:51 +02:00
bors[bot]
8f2e49d528 Merge #2693
2693: Add extra validation to compilers & engines r=ptitSeb a=Amanieu

- Cranelift and singlepass now properly cross-compile with no dependency on the host target.
- Staticlib engine now panics if you try to run a freshly compiled module.
- CPU features used when a module was compiled are now checked against the host CPU features during instantiation.

Fixes #1567
Fixes #2590 

Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
2021-11-23 19:48:25 +00:00
Amanieu d'Antras
a603c33def Validate that CPU features are supported when instantiating a module 2021-11-23 15:21:34 +00:00
Anbang Wen
b32e8d92c1 add a compiler test to check for deterministic
This is to test #2173, the empty test always pass while the table one
fails sometimes.
2021-11-22 15:49:11 +00:00
Benjamin Coenen
e0e12f9d9f feat(wasi): add rename for a directory + fix remove_dir
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2021-09-07 13:55:24 +02:00
Ivan Enderlin
971915a8c1 test(wasi) Run the WASI test suites with the in-memory FS.
This PR updates how we generate the WASI test suites to test against
the `wasmer_vfs::host_fs` (the default), and `wasmer_vfs::mem_fs`
(that's new).
2021-08-31 11:26:14 +02:00
Syrus Akbary
e0fce0ae9d Use test that trigger issue 2021-07-28 17:05:46 -07:00
Syrus Akbary
69cdfbb134 Added issues to test in compilers 2021-07-28 14:41:22 -07:00
chenyukang
d9b53d8792 allow unreachable_patterns in config 2021-06-08 16:03:20 +08:00
Ivan Enderlin
3d66a2e360 feat: Rename wasmer-engine-native to wasmer-engine-dylib. 2021-05-28 14:13:24 +02:00
Ivan Enderlin
79d5f20301 feat: Rename wasmer-engine-native to wasmer-engine-shared-object. 2021-05-28 14:13:24 +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
5b1fabc4ac Fixed issues 2021-05-19 20:20:32 -05:00
Syrus Akbary
67188ed41b Added serial test macro for serial tests 2021-05-19 13:09:47 -07:00
Syrus Akbary
0c654445b1 Fixed ignored tests 2021-05-18 15:34:31 -07:00
Syrus Akbary
2e90db6967 Addressed comments 2021-05-18 14:32:21 -07:00