Mackenzie Clark
e75a23602a
wip
2019-03-22 16:57:29 -07:00
Mackenzie Clark
b7c5f27b37
this commit makes the whole thing work
2019-03-22 15:35:38 -07:00
Mackenzie Clark
eedb6b9d72
writev
2019-03-22 11:19:06 -07:00
Mark McCaskey
c522c6d1e3
fix bugs; add checks and lint exceptions for alignment casting
2019-03-22 10:30:35 -07:00
Mackenzie Clark
0c004c9290
move select into separate file
2019-03-22 10:18:03 -07:00
Syrus Akbary
bf3af660fd
Added dynasm-backend to the libraries README
2019-03-21 21:12:01 -07:00
Mackenzie Clark
33942d2fc9
partially works
2019-03-21 18:05:03 -07:00
Mark McCaskey
99f76925a8
fmt
2019-03-21 17:20:13 -07:00
Mark McCaskey
b9e7449f64
add functions for php cli
2019-03-21 17:18:25 -07:00
Mackenzie Clark
7c4b0d3b23
wip
2019-03-21 16:18:11 -07:00
Mackenzie Clark
3e728acdc0
reads working
2019-03-21 14:28:12 -07:00
Mackenzie Clark
65c4c12942
optimize mroe
2019-03-21 12:22:18 -07:00
Mackenzie Clark
92e1fce83a
more organizing
2019-03-21 12:12:58 -07:00
Mackenzie Clark
825926f40a
more optimizing imports
2019-03-21 11:54:55 -07:00
Mackenzie Clark
59ed6a91d8
imports
2019-03-21 11:05:29 -07:00
Mackenzie Clark
d5f62b20aa
refactor some imports in host fs
2019-03-21 11:00:49 -07:00
Mackenzie Clark
4eb9d3344b
debug statements, move another fn into platform mod
2019-03-21 10:42:58 -07:00
Mackenzie Clark
630d4bde13
re-organize modules for syscalls, windows is in bad shape
2019-03-21 10:20:59 -07:00
Mackenzie Clark
9ed593d7b6
wip enchanced vfs
2019-03-21 08:55:57 -07:00
losfair
08ba696ab0
Fix vmctx offset tests.
2019-03-21 09:24:44 +08:00
losfair
26e4278657
Make the internal
field private from outside.
2019-03-21 08:57:50 +08:00
losfair
a4ee873eae
Merge remote-tracking branch 'origin/master' into feature/dynasm-backend
2019-03-21 08:42:34 +08:00
losfair
cb3846ff6a
Add InternalCtx
.
2019-03-21 08:39:06 +08:00
Mark McCaskey
c58a7e0c37
stub out/add the rest
2019-03-20 16:46:42 -07:00
Mark McCaskey
d13e4aa71f
clean up a bit
2019-03-20 15:24:05 -07:00
Mark McCaskey
42b122d639
add many emscripten functions for PHP
2019-03-20 15:13:00 -07:00
Mark McCaskey
76b4cc79e8
fix make debug-release
2019-03-20 10:27:07 -07:00
losfair
395161acdc
Merge remote-tracking branch 'origin/master' into feature/dynasm-backend
2019-03-20 19:54:29 +08:00
Lachlan Sneff
5657be1df0
Merge branch 'master' into add-versioning-to-cache
2019-03-19 16:22:55 -07:00
Mark McCaskey
cd9ef3c49a
fix bugs and clean up path logic
2019-03-19 11:31:45 -07:00
Mark McCaskey
b1ef4ef0fa
change output to go to OUT_DIR
2019-03-19 11:23:04 -07:00
Mark McCaskey
8e5f250ed0
generate the hash at compile time
2019-03-19 10:58:58 -07:00
losfair
01f18b2f43
Merge remote-tracking branch 'origin/master' into feature/dynasm-backend
2019-03-20 01:57:40 +08:00
losfair
295efbf3a9
Fix clippy errors.
2019-03-20 01:52:00 +08:00
Ivan Enderlin
c0f4b6a87c
Merge branch 'master' into feat-runtime-c-api-cache
2019-03-19 16:35:32 +01:00
Ivan Enderlin
57a82fa5cf
fix(runtime-c-api) wasmer_serialized_module_from_bytes
accepts bytes + length instead of wasmer_byte_array
.
2019-03-19 16:24:59 +01:00
losfair
7ee364a58b
Cargo fmt.
2019-03-19 21:31:23 +08:00
losfair
4256ccba92
Cleanup & fix need_check condition.
2019-03-19 21:30:26 +08:00
losfair
14da8abc23
Run-time memory bound checking.
2019-03-19 21:27:49 +08:00
losfair
a006a368c5
Cleanup.
2019-03-19 20:01:38 +08:00
Ivan Enderlin
44373aae94
feat(runtime-c-api) Mirrors the debug
and llvm
features.
...
`wasmer-runtime` has a `debug` and a `llvm` features. Let's mirror
them in `wasmer-runtime-c-api` so that the user can, for instance,
compile with the LLVM backend.
2019-03-19 11:12:19 +01:00
Ivan Enderlin
46edd20725
feat(runtime-c-api) Add the wasmer_serialized_module_from_bytes
function.
...
This function is required to transform a `wasmer_byte_array` into a
`wasmer_serialized_module_t`. This is the complementary function of
`wasmer_serialized_module_bytes`.
2019-03-19 10:51:43 +01:00
Ivan Enderlin
5e31a1b6d1
feat(runtime-c-api) Introduce the wasmer_serialized_module_t
struct type.
...
The `wasmer_module_serialize` function now computes a
`wasmer_serialized_module_t` value. The `wasmer_module_deserialize`
function takes this value as an input. Same for
`wasmer_serialized_module_destroy`.
The new function `wasmer_serialized_module_bytes` allows to read the
bytes inside the `wasmer_serialized_mdule_t` structure.
2019-03-19 10:04:31 +01:00
losfair
61abe70042
cargo fmt
2019-03-19 11:52:43 +08:00
losfair
ebaf2dc5a8
Make DynFunc::func_index private.
2019-03-19 11:52:27 +08:00
losfair
2ab2205d6b
Allow cross-module indirect calls.
2019-03-19 11:47:38 +08:00
Mark
874b613f56
fmt it
2019-03-18 17:46:06 -07:00
Mark
2580871f63
update the binary too
2019-03-18 17:40:36 -07:00
Mark
a152b85729
Add versioning to cache
2019-03-18 17:27:23 -07:00
Ivan Enderlin
f049e9b0b3
fix(runtime-c-api) Remove explicity drop
.
...
When the value goes out-of-scope, `drop` is called utomatically.
2019-03-18 16:09:02 +01:00
Ivan Enderlin
6f04f1ad88
Merge branch 'feat-runtime-c-api-cache' of github.com:Hywan/wasmer into feat-runtime-c-api-cache
2019-03-18 16:05:59 +01:00
Ivan Enderlin
6605a02316
feat(runtime-c-api) Add the wasmer_module_serialization_destroy
function.
2019-03-18 16:05:04 +01:00
losfair
b06a49e1c0
Move wasmer-dynasm-backend out of default-compiler.
2019-03-18 16:22:57 +08:00
losfair
cd5c1456d7
Fix default compiler.
2019-03-18 16:15:48 +08:00
losfair
af8f307a92
Fix dependencies.
2019-03-18 16:14:11 +08:00
losfair
caa239a3df
Make wasmer-dynasm-backend optional.
2019-03-18 16:06:20 +08:00
losfair
c5694ec527
Fix lint errors.
2019-03-18 00:53:07 +08:00
losfair
e48ff027a6
Remove commented out code.
2019-03-18 00:52:16 +08:00
losfair
4ca27b68b0
Manually fix lint errors.
2019-03-18 00:48:50 +08:00
losfair
6c40ea1cb5
Cargo fmt more files.
2019-03-18 00:35:55 +08:00
losfair
99faa79869
Run cargo fmt.
2019-03-18 00:31:36 +08:00
losfair
fcfde7352a
Use R15 as temporary register.
2019-03-17 21:27:19 +08:00
losfair
08f4526b45
Merge remote-tracking branch 'origin/master' into feature/dynasm-backend
2019-03-17 21:14:01 +08:00
losfair
7394df2fd8
FIx floating point trunc's.
2019-03-17 19:54:20 +08:00
losfair
d8d39c309c
Fix warnings.
2019-03-17 10:54:50 +08:00
losfair
f8fe999015
Implemented protected call and floating point traps; passing all spectests!
2019-03-17 10:27:14 +08:00
Mackenzie Clark
edacb0a8a7
Merge branch 'master' into feature/vfs
2019-03-16 13:38:02 -07:00
losfair
1f8c644855
Merge remote-tracking branch 'private/feature/dynasm-backend' into feature/dynasm-backend
2019-03-17 03:08:06 +08:00
losfair
81af8cfa9c
Fixed several bugs in the single-pass backend and implemented a runtime resolver that allows to call managed functions with System V cc.
2019-03-17 03:07:27 +08:00
Syrus
53a8fca4d5
Make wasmer executable work with dynasm
2019-03-16 11:52:11 -07:00
Ivan Enderlin
212591b908
Merge branch 'master' into feat-runtime-c-api-cache
2019-03-16 14:10:44 +01:00
Mackenzie Clark
c46ff0dcfc
Merge branch 'master' into fix/windows-warnings-cargo-build
2019-03-15 14:20:34 -07:00
Mackenzie Clark
14104c2c8b
fix lots of warnings
...
fix warnings
2019-03-15 14:10:17 -07:00
Ivan Enderlin
aac5c88b58
doc(runtime-c-api) Update the documentation of wasmer_module_deserialize
.
2019-03-15 12:18:52 +01:00
Ivan Enderlin
082c93ceba
chore(runtime-c-api) Fix a merging error.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
2368ce3a20
chore(runtime-c-api) Regenerate the wasmer.hh?
files.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
c8872f1a6f
test(runtime-c-api) Test the new wasmer_module_(de)?serialize
functions.
...
This test suite compiles a module, then serializes it, deserializes
it, and continues by creating an instance and calling a function on
it. It allows to test the entire roundtrip.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
f2760249b6
fix(runtime-c-api) Reorganize the tests by alphabetic order.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
c142e16d12
feat(runtime-c-api) Implement the wasmer_module_(de)?serialize
functions.
...
This patch implements 2 functions:
1. `wasmer_module_serialize`, and
2. `wasmer_module_deserialize`.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
f57f8bc0cb
fix(runtime-c-api) Use imported symbols.
...
`std::slice` is already imported. This patch then rewrites `::std::slice::` into `slice::`.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
92ff24f5a2
feat(runtime) Make default_compiler
public.
...
This is required to be able to deserialize a serialized module in
`runtime-c-api`.
2019-03-15 12:04:23 +01:00
Ivan Enderlin
2e45431876
Merge branch 'master' into fix-runtime-core-shared-memory-descriptor
2019-03-15 09:57:23 +01:00
Ivan Enderlin
61a203438a
feat(runtime-core) SharedMemory.desc
is not used… yet!
2019-03-15 09:09:24 +01:00
Mackenzie Clark
8fc2a13828
use the header
2019-03-14 13:34:52 -07:00
losfair
1b5ea9bece
Passes all assert_return(_*)
tests.
2019-03-15 01:10:31 +08:00
Ivan Enderlin
a98c1c87bf
Merge branch 'master' into feat-runtime-c-api-validate
2019-03-14 14:15:48 +01:00
Ivan Enderlin
5b98ee732c
feat(runtime-c-api) wasmer_validate
expects a *const uint8_t
.
...
This patch updates the first argument of `wasmer_validate` from `*mut
uint8_t` to `*const uint8_t`. Indeed, the
`wasmer-runtime-core::validate` function doesn't expect a mutable
slice, so it's not required to expect a mutable array from C.
Also, it's likely for the Wasm bytes to be stored in the
`wasmer_byte_array` structure. The first field `bytes` is defined as
`*const uint8_t`. So this patch avoids a cast when writing a C++
program.
2019-03-14 12:33:40 +01:00
losfair
1104073641
Implemented more floating point operations.
2019-03-14 19:10:22 +08:00
losfair
4d2b6a0efe
Add Copy + Clone for IfElseState
2019-03-14 17:11:48 +08:00
losfair
592c3fb938
Fixes and some floating point operations.
2019-03-14 17:11:35 +08:00
losfair
c76887d83c
Merge remote-tracking branch 'private/feature/dynasm-backend' into feature/dynasm-backend
2019-03-14 10:31:48 +08:00
losfair
d80ea47ffc
FIx bugs found with spectests.
2019-03-14 10:30:24 +08:00
Brandon Fish
e5d67c9705
Add dynasm feature to emscripten tests
2019-03-13 20:16:07 -05:00
losfair
179bbf9e41
Fix integer division.
2019-03-14 09:15:25 +08:00
Mackenzie Clark
93b602d8ea
use "wasmer:fs" for custom section name and add unbundled test wasm
2019-03-13 15:24:48 -07:00
Mackenzie Clark
d95b62a467
fix cargo toml and fmt
2019-03-13 14:27:00 -07:00
Mackenzie Clark
bd697487aa
Merge branch 'master' into feature/vfs
2019-03-13 14:25:14 -07:00
Mackenzie Clark
c1e0d325e3
switch to zbox
2019-03-13 14:23:55 -07:00
Lachlan Sneff
cd767bc1a7
Merge branch 'master' into fix/llvm-feature-flag
2019-03-13 12:22:21 -07:00
losfair
d4ded2cf07
Fix bugs found when running spectests.
2019-03-13 18:23:50 +08:00
Brandon Fish
68181acc74
Add dynasm to spectests
2019-03-12 21:14:50 -05:00
Brandon Fish
a5bab8cdf6
Updates to compile dynasm after merge from master
2019-03-12 20:59:10 -05:00
Brandon Fish
557be77338
Merge branch 'master' into feature/dynasm-backend
2019-03-12 20:58:22 -05:00
Brandon Fish
1fc7b31309
Add missing trait items to DynasmCompiler so that cargo build --all works
2019-03-12 19:39:10 -05:00
Mackenzie Clark
650125f338
fix build errors
2019-03-12 14:04:53 -07:00
Mackenzie Clark
9ff55a93ee
Merge branch 'master' into feature/vfs
2019-03-12 14:02:06 -07:00
Ivan Enderlin
20d1023abe
fix(emscripten) Various warning fixes and cleanups ( #266 )
...
* fix(emscripten) Remove unused imports.
This patch removes unused imports reported by `rustc` as warnings.
* fix(emscripten) Allow unreachable patterns in `_clock_gettime`.
The compiler thinks `CLOCK_MONOTONIC_COARSE` is unreachable, which is
not always the case. Add an attribute to allow unreachable patterns to
remove the warning.
* fix(emscripten) Rename unused variables.
This patch renames various unused variables by appending an underscore
to them.
* fix(emscripten) Declare `table` as immutable.
The `table` variable in `EmscriptenGlobals::new` was declared as
mutable, but it's never mutated.
* fix(emscripten) Remove an unnecessary `unsafe` block.
* fix(emscripten) Remove duplicate definition of `SO_NOSIGPIPE`.
The `SO_NOSIGPIPE` constant is defined in `syscalls/mod.rs` and
`syscalls/unix.rs`. It's never used in the first case. We can safely
remove it in this file, and keep it in `unix.rs`.
* fix(emscripten) `read_string_from_wasm` is used only on Windows.
Mark `read_string_from_wasm` as possible deadcode, since it's used
only on Windows.
* fix(emscripten) Remove `DYNAMICTOP_PTR_DIFF`, `stacktop`, `stack_max`,
`dynamic_base` and `dynamic_ptr`.
Four functions and one constant are used together but never used
inside or outside this file. They are deadcode.
* fix(emscripten) Remove `infinity` and `nan` fields of `EmscriptenGlobalsData`.
Those fields are never used.
* fix(emscripten) Allow non snake case in `emscripten_target.rs`.
Many functions in this file don't follow the snake case style for Rust
function names. The reason is that we want the names to match the
emscripten symbol names; even if a mapping is done in `lib.rs`, it's
easier to get the same names.
* fix(emscripten) Rename `STATIC_TOP` to `static_top`.
This variable is not a constant.
2019-03-12 14:00:33 -07:00
Mackenzie Clark
0c7808b1d3
reset a cargo manifests
2019-03-12 13:58:33 -07:00
Mackenzie Clark
f2488ac410
remove feature flag on custom sections
2019-03-12 13:36:11 -07:00
Mackenzie Clark
4cee16220b
more edge cases
2019-03-12 13:04:14 -07:00
Mackenzie Clark
b5697d854a
fix typos in vfs tests
2019-03-12 12:01:45 -07:00
Mackenzie Clark
f7f4fbf08a
add the feature flag for llvm backend
2019-03-12 11:59:50 -07:00
Mackenzie Clark
76531b4fcb
add readme for runtime abi
2019-03-12 10:57:47 -07:00
Mackenzie Clark
cc3f04efd7
expose vfs in emscripten and impl read
syscall, feature flag
2019-03-12 10:48:47 -07:00
Mackenzie Clark
b9c3a49f3c
parse and store custom sections from wasm, guarded by vfs feature flag
2019-03-12 10:45:44 -07:00
Mackenzie Clark
f014a05304
create runtime abi crate and vfs implementation
2019-03-12 10:40:52 -07:00
bors[bot]
d304bb4238
Merge #263 #265
...
263: fix(runtime-core) Remove unused imports r=Hywan a=Hywan
This patch removes unused imports as reported by `rustc` as warnings.
265: fix(clif-backend) Remove unused imports r=Hywan a=Hywan
This patch removes unused imports reported by `rustc` as warnings.
Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-03-12 13:09:26 +00:00
Ivan Enderlin
2c8fc5238d
fix(clif-backend) Remove unused imports.
...
This patch removes unused imports reported by `rustc` as warnings.
2019-03-12 10:03:55 +01:00
Ivan Enderlin
6e62ea7cfb
fix(runtime-core) Remove unused imports.
...
This patch removes unused imports as reported by `rustc` as warnings.
2019-03-12 09:51:54 +01:00
Ivan Enderlin
5db05fd609
Merge branch 'master' into feat-runtime-c-api-instance-context-data
2019-03-12 09:02:05 +01:00
Ivan Enderlin
9bcd59a4c4
Merge branch 'feat-runtime-c-api-instance-context-data' of github.com:Hywan/wasmer into feat-runtime-c-api-instance-context-data
2019-03-12 09:00:54 +01:00
Ivan Enderlin
a390a28384
fix(runtime-c-api) Fix Clippy errors.
2019-03-12 08:58:22 +01:00
losfair
683cb2090c
Fix call_indirect.
2019-03-12 11:31:55 +08:00
Mackenzie Clark
033a2e71bd
fix compiler error on windows
2019-03-11 10:25:45 -07:00
Syrus Akbary
87fb082993
Merge branch 'master' into fix-runtime-c-api-test-imports
2019-03-11 10:09:15 -07:00
Syrus Akbary
7242149b46
Merge branch 'master' into feat-runtime-c-api-instance-context-data
2019-03-11 10:09:02 -07:00
Mackenzie Clark
9c2a141d6e
Merge branch 'master' into fix/llvm-feature-flag
2019-03-11 10:05:10 -07:00
Syrus
e591cd0607
Use wasmerio fork of inkwell
2019-03-11 10:03:40 -07:00
Mackenzie Clark
ee55cd5e64
create an llvm flag
2019-03-11 09:58:09 -07:00
Ivan Enderlin
675f6817ba
test(runtime-c-api) Free allocations.
...
Don't forget to free `context_data` :-).
2019-03-11 17:41:17 +01:00
Ivan Enderlin
170de02dd3
test(runtime-c-api) Test the wasmer_instance_context_data_*
functions.
2019-03-11 17:34:13 +01:00
Ivan Enderlin
a11d454130
feat(runtime-c-api) Add an API to update vm::Ctx.data
.
...
This patch adds 2 functions for the runtime C API, respectively
`wasmer_instance_context_data_set` and
`wasmer_instance_context_data_get`. The goal is to modify the
`vm::Ctx.data` field in the `runtime-core` library.
This is required to pass dynamic data to imported functions for
instance.
2019-03-11 16:50:18 +01:00
Ivan Enderlin
3fea07dc8a
fix(runtime-c-api) Fix the imports
length.
...
`imports` contains `func_import`, `global_import`, `memory_import` and
`table_import`, so 4 items. This patch updates the length of `imports`
when calling the `wasmer_instantiate` function.
2019-03-11 14:35:51 +01:00
Lachlan Sneff
17eada53f3
feat(runtime) Get ready for tiering ( #257 )
...
* Add local_function field to context
* Add local call indirection to llvm
* local call indirection
* Fix vm test
* Fix cranelift local call indirection
* Fix unwinding on nightly
2019-03-08 15:15:16 -08:00
losfair
c5ef0a96e9
Update vm::Ctx.
2019-03-09 02:58:37 +08:00
losfair
25034ece07
Almost finished indirect calls.
2019-03-09 02:57:23 +08:00
losfair
3efccbe0f7
Support imported globals.
2019-03-09 00:38:13 +08:00
losfair
4c4743e7cd
Globals.
2019-03-09 00:32:18 +08:00
losfair
258dea64d8
Fix calling imports.
2019-03-09 00:07:13 +08:00
Ivan Enderlin
a4454ebae8
doc(readme) Fix a typo.
...
This patch fixes a typo in the C example.
2019-03-08 13:26:04 +01:00
Brandon Fish
dd3a6ad21b
Merge branch 'master' into feat-runtime-c-api-strict-c-cpp
2019-03-07 23:06:01 -06:00
Brandon Fish
628caf0a74
Make import_func_new/destroy not const
2019-03-07 22:59:11 -06:00
Syrus Akbary
60a74540d9
Update README.md
2019-03-07 20:39:58 -08:00
Syrus Akbary
b321ca339b
Update README.md
2019-03-07 20:39:44 -08:00
Syrus
4acb826bf2
Fixed default compiler on windows
2019-03-07 19:11:29 -08:00
Syrus
3a4325c5a3
Only use llvm in non windows envs
2019-03-07 18:26:29 -08:00
Syrus
671ff09e6a
Use LLVM 5 for Windows
2019-03-07 18:06:47 -08:00
Lachlan Sneff
679fdc14c2
Merge branch 'master' into feature/llvm-backend
2019-03-07 13:25:24 -08:00
Syrus Akbary
6570bd433d
Fixed import func to be mutable
2019-03-07 10:19:03 -08:00
losfair
12c213739a
Hack around calling imports. Not yet working.
2019-03-08 01:31:37 +08:00
Ivan Enderlin
7a9816ff12
feat(runtime-c-api) Ask rustc
to generate a static library.
...
This is required to correctly link to the embedded runtime.
2019-03-07 10:19:02 +01:00
Ivan Enderlin
1dfae80c65
test(runtime-c-api) Fix compilation errors in test-exports.c
.
2019-03-07 10:15:32 +01:00
Ivan Enderlin
725aff6fee
test(runtime-c-api) Fix a compilation error in test-instantiate.c
.
2019-03-07 10:15:32 +01:00
Ivan Enderlin
603f1fc57d
test(runtime-c-api) Fix compilation errors in test-import-function.c
.
2019-03-07 10:15:32 +01:00
Ivan Enderlin
2a0e42c1e5
test(runtime-c-api) Fix compilation errors in test-memory.c
.
2019-03-07 10:15:32 +01:00
Ivan Enderlin
dcb4032e9d
test(runtime-c-api) Fix compilation errors in test-imports.c
.
2019-03-07 10:15:32 +01:00
Ivan Enderlin
c658224f0c
test(runtime-c-api) Transforms all C/C++ warnings into errors.
...
This patch ensures that all our examples and tests do not generate
warnings. In C, it can be catastrophic sometimes…
Also, be sure that the `cmake` command doesn't emit any warnings too.
2019-03-07 10:15:32 +01:00
Brandon Fish
1957ddef53
Run emscripten tests with both compilers
2019-03-06 21:36:46 -06:00
Syrus Akbary
af9c26f4f9
Fixed links of wasmer runtime C api in crates.io and docs.rs
2019-03-06 18:22:16 -08:00
Syrus Akbary
49dc21363b
Merge pull request #242 from Hywan/doc-runtime-c-api
...
doc(runtime-c-api) Improve the `README.md`.
2019-03-06 17:28:02 -08:00
Lachlan Sneff
e3e91c628b
Merge branch 'master' into feature/llvm-backend
2019-03-06 13:47:15 -08:00
Mackenzie Clark
fd5916e493
Merge branch 'master' into feature/emscripten-for-bundling
2019-03-06 10:18:26 -08:00
Mackenzie Clark
b1739d93ec
remove leading underscores from execvp and exit
2019-03-06 10:18:00 -08:00
Ivan Enderlin
bedb05738b
Merge branch 'master' into doc-runtime-c-api
2019-03-06 18:50:49 +01:00
Ivan Enderlin
f5ce1e8b60
doc(runtime-c-api) Improve the README.md
.
...
This patch updates the `README.md` by adding badges, a Usage Section,
and a License Section. The Testing Section is slightly revamped.
2019-03-06 14:11:12 +01:00
Ivan Enderlin
d709191be1
doc(runtime-c-api) Declare the example as C, so that they are not tested.
...
Those examples contain C code. They must not be run by `rustdoc` as
tests.
2019-03-06 12:08:02 +01:00
Ivan Enderlin
76caebebb4
fix(runtime-c-api) Provide a link target.
...
When compiling `wasmer-runtime-c-api` as a dependency of another
crate, `rustc` emits this warning:
```
warning: The package `wasmer_runtime_c_api` provides no linkable
target. The compiler might raise an error while compiling
`foo`. Consider adding 'dylib' or 'rlib' to key `crate-type` in
`wasmer_runtime_c_api`'s Cargo.toml. This warning might turn into a
hard error in the future.
```
To solve this issue, the `rlib` type has been added to the
`crate-type` list.
2019-03-06 11:02:14 +01:00
Ivan Enderlin
0f74133be3
feat(runtime-c-api) Build: Copy the C header files from OUT_DIR
to CARGO_MANIFEST_DIR
.
...
This patch copies the generated C and C++ header files from the
`OUT_DIR` to the root of the crate.
2019-03-06 10:58:40 +01:00
Ivan Enderlin
f2997357fc
feat(runtime-c-api) Remove the flag WASM_EMSCRIPTEN_GENERATE_C_API_HEADERS
.
...
This patch removes the `WASM_EMSCRIPTEN_GENERATE_C_API_HEADERS`
flag. Consequently, the C header files will be generated for each
build.
The `generate-c-api-headers` feature is also removed, since it becomes useless.
2019-03-06 10:42:32 +01:00
Ivan Enderlin
7c56d893c2
feat(runtime-c-api) Generate the C header file in OUT_DIR
.
...
This patch changes the directory where the C header files are
generated, from `CARGO_MANIFEST_DIR` to `OUT_DIR`. The goal is: When
`wasm-runtime-c-api` is used as a dependency of another Rust project,
then the C header files are accessible in the `target/` directory
(i.e. the `OUT_DIR`).
Also, since `rustc` has a `--out-dir` directory, it increases the
flexibility of this approach: The user can generate the C header files
where she wants.
2019-03-06 10:42:06 +01:00
Brandon Fish
03909fe3c2
Run spectests with both compilers, activate using features
2019-03-06 00:15:07 -06:00
Lachlan Sneff
0e5d1172d6
Just install the signal handler once
2019-03-05 16:50:49 -08:00
Syrus Akbary
28bb264266
Merge pull request #232 from Hywan/fix-runtime-c-api-remove-warnings
...
fix(runtime-c-api) Fix several warnings
2019-03-05 16:38:14 -08:00
Lachlan Sneff
f36aade2e5
Fix broken test
2019-03-05 14:57:37 -08:00
Lachlan Sneff
48b36a3b01
Runs on linux and also hopefully ci
2019-03-05 14:54:44 -08:00
Lachlan Sneff
fa3ef2e88d
Remove .llvmenv
2019-03-05 13:34:22 -08:00
Lachlan Sneff
276e5125b5
Filter out -fno-exceptions from llvm-config --cxxflags
2019-03-05 13:23:26 -08:00
Lachlan Sneff
c86c910054
Add partiality to float truncation
2019-03-05 11:50:56 -08:00
losfair
27b2061ffd
Implemented missing integer operators and fixed division.
2019-03-06 01:16:24 +08:00
Ivan Enderlin
8ed340b6f1
fix(runtime-c-api) Update cbindgen
.
...
When requiring `wasmer-runtime-c-api`, I get the following conflicts:
```
error: failed to select a version for `serde_derive`.
... required by package `cbindgen v0.7.1`
... which is depended on by `wasmer-runtime-c-api v0.2.1`
... which is depended on by `foo v0.1.0 (/private/tmp/foo)`
versions that meet the requirements `= 1.0.58` are: 1.0.58
all possible versions conflict with previously selected packages.
previously selected package `serde_derive v1.0.89`
... which is depended on by `wasmer-runtime-core v0.2.1`
... which is depended on by `wasmer-runtime-c-api v0.2.1`
... which is depended on by `foo v0.1.0 (/private/tmp/foo)`
failed to select a version for `serde_derive` which could resolve this conflict
```
This issue resolves by updating `cbindgen` to 0.8.
2019-03-05 14:28:35 +01:00
Ivan Enderlin
25feef7384
chore(runtime-c-api) Regenerate the header files.
2019-03-05 10:07:08 +01:00
Ivan Enderlin
86c41264a3
chore(runtime-c-api) Fix CS.
2019-03-05 10:07:08 +01:00
Ivan Enderlin
59de57e075
fix(runtime-c-api) Fix Clippy notes.
...
This patch fixes warnings raised by Clippy.
2019-03-05 10:07:08 +01:00
Ivan Enderlin
053e5c40f4
fix(runtime-c-api) Avoid mutable bindings as much as possible.
...
This patch cleans several warnings where mutable bindings are declared
but used only as immutable bindings.
It's a little bit opinionated patch. I think it's interesting to use
`const` pointers as much as possible.
2019-03-05 10:07:08 +01:00
Ivan Enderlin
5ace3cfa2b
fix(runtime-c-api) Remove unsafe blocks inside unsafe function.
...
This patch removes `unsafe { … }` blocks inside `unsafe` functions.
This patch also removes some warnings about camel case. All structures
with a C representation are automatically not mangle, and allow non
camel case.
2019-03-05 10:07:08 +01:00
Lachlan Sneff
f2b927bcd8
Remove debug print
2019-03-04 20:00:56 -08:00
Lachlan Sneff
fe8f8a0132
Add illegal arithmetic runtime error
2019-03-04 19:56:02 -08:00
Lachlan Sneff
3be7144892
Some cleanup
2019-03-04 17:37:05 -08:00
Lachlan Sneff
2969409ca7
Add hacky reinterpret instructions and pop used arguments off the value stack
2019-03-04 16:44:46 -08:00
Lachlan Sneff
25c0cef5f7
Up to 1242 passing spectests
2019-03-04 15:51:45 -08:00
Lachlan Sneff
7ef2c0dece
Fix execute after free issue with llvm (and presumably cranelift?)
2019-03-04 14:41:56 -08:00
Mackenzie Clark
84c8be6b33
Merge branch 'master' into feature/emscripten-for-bundling
2019-03-04 13:16:01 -08:00
Lachlan Sneff
039ebdcf75
Fix merge errors and update llvm to use the new runtime error type.
2019-03-04 13:10:28 -08:00
Lachlan Sneff
4e198bca8b
merge upstream/master into wasmer-private/feature/llvm-backend
2019-03-04 13:03:32 -08:00
Lachlan Sneff
65ec10961b
Change RuntimeError type ( #234 )
...
* Change RuntimeError type and fix codebase to use it
* Fix spectests to work with new runtime error type
* Fix windows signal handler in the clif-backend
* Add missing conversion
* final windows fix
2019-03-04 12:57:26 -08:00
Mackenzie Clark
970758dd69
Merge branch 'master' into feature/emscripten-for-bundling
2019-03-04 12:51:12 -08:00
Syrus Akbary
2d987982d6
Merge pull request #231 from Hywan/fix-clif-backend-module-new
...
fix(clif-backend) `Module::new` does not use its argument
2019-03-04 11:42:36 -08:00
Lachlan Sneff
deea9e98a4
Add import names, whoops.
2019-03-04 10:19:38 -08:00
losfair
bd7698e1f2
64-bit operators.
2019-03-05 00:59:05 +08:00
losfair
fa61b66516
Strongly type scratch registers and fixed an unwinding issue.
2019-03-05 00:23:49 +08:00
Mackenzie Clark
b3c60bce14
Merge branch 'master' into fix-clif-backend-module-new
2019-03-04 08:14:44 -08:00
Mackenzie Clark
71d7fe7d08
Merge branch 'master' into fix/c-api-fix-imports
2019-03-04 08:14:14 -08:00
Mackenzie Clark
4eb6ad238e
lint
2019-03-04 08:11:36 -08:00
Mackenzie Clark
65100d19fc
add __exit
2019-03-04 08:10:37 -08:00
Mackenzie Clark
00e3ec1446
add execvp
2019-03-04 08:10:37 -08:00
Mackenzie Clark
2ea9d0b09b
add __syscall42 (pipe)
2019-03-04 08:10:37 -08:00
Mackenzie Clark
cf2909f5f3
add alternative assert function for emscripten
2019-03-04 08:10:37 -08:00
Syrus Akbary
ba8b7580ba
Merge pull request #230 from Hywan/fix-clif-backend-resolver-compiled-functions
...
fix(clif-backend) Remove an unused variable declaration
2019-03-04 08:10:11 -08:00
Syrus Akbary
436c4bffcb
Merge pull request #228 from Hywan/fix-runtime-core-unused-import
...
fix(runtime-core) Remove an unused import
2019-03-04 07:13:21 -08:00
Ivan Enderlin
5744f6896f
fix(clif-backend) Module::new
does not use its argument.
...
The `Module::new` method requires an argument (`wasm: &[u8]`) that is
never used.
This patch removes the argument, and updates the code accordingly.
2019-03-04 14:03:07 +01:00
Ivan Enderlin
42c9bdf8c2
fix(clif-backend) Remove an unused variable declaration.
...
The `compiled_functions` variable is declared twice. The first
declaration is never used. This patch removes it.
2019-03-04 13:59:37 +01:00
Ivan Enderlin
d9073c03c6
fix(runtime-core) hasher
does not need to be mutable.
...
This patch updates the `hasher` variable. It is declared as mutable,
but it's never mutated.
2019-03-04 13:53:41 +01:00
Ivan Enderlin
ec4e476cc6
fix(runtime-core) Remove an unused import.
...
This patch removes an unused import, namely `crate::sys::Memory`.
2019-03-04 13:51:13 +01:00
Lachlan Sneff
3f9dbca17f
List specific supported features for validator.
2019-03-03 22:47:34 -08:00
Lachlan Sneff
ab550f46fc
Fix bug resulting from comparing the memory base instead of the memory offset to the memory bounds.
2019-03-03 22:11:40 -08:00
Lachlan Sneff
ae3b2b2a42
Add bounds checking for memory accesses on dynamic memories
2019-03-03 21:56:30 -08:00
Lachlan Sneff
87c453a0ec
Add check for table bounds on call_indirect.
2019-03-03 21:38:35 -08:00
Lachlan Sneff
801979c40d
Add dynamic sigindices to the vm context.
2019-03-03 21:26:34 -08:00
Lachlan Sneff
51cf9dde05
Move SSA value caches to the entry block.
...
The supporting framework around LLVM will make sure to only compute values once if they
are known to never change. Previously, these values were attempted to be reused from places where
the users may not dominate the creation of the value. To avoid that, they are always created
in the entry block now.
2019-03-03 21:13:37 -08:00
Brandon Fish
c07298e58e
Make capstone optional with a feature
2019-03-03 16:02:20 -06:00
Brandon Fish
aae256b407
Add tag to fix cast ptr lint error
2019-03-03 15:34:20 -06:00
Brandon Fish
3f345b41c2
Fix emscripten lib compilation
2019-03-03 15:18:16 -06:00
Brandon Fish
97a70327d0
Fix compilation of test example
2019-03-03 15:13:20 -06:00
Brandon Fish
2c765c87c5
Update locals reading to use count
2019-03-03 12:55:29 -06:00
Lachlan Sneff
e362b56b07
Turns out we can just throw an exception from the signal handler
...
without any fancy tricks.
This has been tested on macos, hopefully it works on linux too.
2019-03-03 02:15:53 -08:00
Brandon Fish
2077fb448a
Fix C API table/global/memory imports
2019-03-02 22:28:00 -06:00
Lachlan Sneff
9cfda6800f
Try to return an error from call_protected when an exception occurs.
...
Something breaks pretty drastically sometimes, not sure why.
2019-03-02 19:08:15 -08:00
Lachlan Sneff
caf2205936
Add a signal handler for macos and linux.
...
Implementation Notes:
- To avoid setjmp, longjmp, and the mess that those create, we instead set the interrupting
context of the signal handler to return into the `throw_trap` routine. To my surprise,
this actually works. The stack ends up getting unwound normally and the memory-oob error
is caught by the trampoline.
2019-03-02 17:00:05 -08:00
Lachlan Sneff
57bfa9b0a4
Remove multiple throwing functions, just use one.
2019-03-02 14:16:02 -08:00
Lachlan Sneff
9a90689b93
Add preliminary support for throwing and catching uncatchable exceptions.
...
Additional info:
- WebAssembly "traps" are uncatchable, but are still caught by the trampoline caller.
2019-03-02 12:57:35 -08:00
Lachlan Sneff
5760f6006a
Start implementing exception handling by adding frame descriptor entry processing.
...
- Soon, we should be able basic exceptions.
2019-03-02 10:56:02 -08:00
Lachlan Sneff
87ddf4f855
Add personality function.
...
- This is part of supporting exceptions in the future.
2019-03-02 10:20:18 -08:00
Lachlan Sneff
a6fc06c908
Fix more compiling issues
...
Specifically:
- Don't truncate the list of local parameters.
- If the default destination in a br_table instruction is a loop, don't pop any results.
2019-03-02 10:04:44 -08:00
Lachlan Sneff
362e5aa160
Fix issue caused by dangling instruction.
...
- Come on inkwell, I thought you were better than this.
2019-03-01 20:28:27 -08:00
Lachlan Sneff
f0ac76517a
Start running spectests
...
Additional info:
- Execution is turned off, this is just to make sure the backend can compile the entire specsuite.
- That being said, trampolines are implemented and protected call works (just doesn't protect).
2019-03-01 17:11:20 -08:00
Lachlan Sneff
3717c5720d
Get control flow (at least according to the llvm verifier) working.
...
Next up:
- Importing vm intrinsics.
2019-03-01 15:48:43 -08:00
Mackenzie Clark
bde2022b58
fix appveyor installer and build ( #224 )
...
* remove exception handler when function returns or throws
* revert to only reserving and not committing memory due to issues
* appveyor builds for release, caches more, only publish artifact once
2019-03-01 13:16:32 -08:00
Brandon Fish
adfdf4d85d
Merge branch 'master' into feature/add-c-api-module-import-descriptors
2019-03-01 12:50:35 -06:00
Brandon Fish
0792cc7018
Merge branch 'master' into feature/c-api-call-an-exported-func
2019-03-01 12:14:56 -06:00
losfair
aa75994e2f
Add memory opcodes and test.
2019-03-02 01:41:31 +08:00
Brandon Fish
b80252e165
Setup the spectests lib to use llvm-backend
2019-02-28 23:02:03 -06:00
Lachlan Sneff
51c9091fc5
Start work on generating trampolines
2019-02-28 18:26:47 -08:00
Lachlan Sneff
6a20676fa9
Actually unmap the code after it's done being used
2019-02-28 17:20:18 -08:00
Lachlan Sneff
359ac5abec
Connect part of the llvm backend to the runtime
2019-02-28 13:18:00 -08:00
Lachlan Sneff
d4ae5cdd40
Get function addresses from llvm-compiled code
2019-02-28 12:31:39 -08:00
losfair
e026adf33e
Initial work on linear memory.
2019-02-28 23:58:02 +08:00
losfair
64142c4cb8
Reserve R15.
2019-02-28 23:22:21 +08:00
losfair
b7ca5e46ed
Add Select opcode.
2019-02-28 23:12:42 +08:00
Brandon Fish
358d653b18
Merge branch 'master' into feature/add-c-api-module-export-descriptors
2019-02-27 23:21:23 -06:00
Brandon Fish
889fc3f432
Merge branch 'master' into feature/add-c-api-module-import-descriptors
2019-02-27 23:21:01 -06:00
Brandon Fish
02eac589f4
Merge branch 'master' into feature/c-api-call-an-exported-func
2019-02-27 23:19:50 -06:00
Lachlan Sneff
5d77769381
Hopefully finish the memory manager implementation for llvm RuntimeDyLd
2019-02-27 17:21:20 -08:00
Syrus
60f8f15db3
Updated version to 0.2.1
2019-02-27 17:20:49 -08:00
Mackenzie Clark
95062d524a
commit virtual memory before copying ( #212 )
2019-02-27 14:20:53 -08:00
Mackenzie Clark
ff5e1320da
Fix casting errors cause io issues ( #222 )
2019-02-27 13:54:28 -08:00
Mackenzie Clark
2a7a8c0069
newline in test-module-imports.c
2019-02-27 10:41:22 -08:00
Mackenzie Clark
c4566f0b39
Merge branch 'master' into feature/add-c-api-module-export-descriptors
2019-02-27 10:28:18 -08:00
losfair
d50f1cc95f
If/Else.
2019-02-27 23:38:45 +08:00
Syrus Akbary
c7f3666354
Merge pull request #220 from wasmerio/feature/better-debug
...
Added debug build
2019-02-26 15:42:29 -08:00
Syrus
f7197bf456
Added debug build
2019-02-26 15:39:54 -08:00
losfair
3c3c5db2e1
Native trampolines.
2019-02-26 20:56:10 +08:00
Syrus
e6d0f91832
Use blake2b SIMD version for increased performance
2019-02-26 01:12:34 -08:00
Lachlan Sneff
4f833876e0
Start work on object loader using llvm's RuntimeDyld api.
2019-02-25 18:08:06 -08:00
Syrus
2d49d58665
Use blake2b (simd) version instead of blake2
2019-02-25 17:43:25 -08:00
Syrus
e7d08712b5
Use blake2 hashing algorithm
2019-02-25 17:37:33 -08:00
Syrus
53c8603464
Updated crates version to 0.2.0
2019-02-25 13:33:33 -08:00
Syrus Akbary
09fe82862e
Merge pull request #211 from wasmerio/fix/error-display
...
Fix/error display
2019-02-25 12:35:16 -08:00
Syrus
f9c0e0c078
Fix formatting
2019-02-25 12:25:28 -08:00
Mackenzie Clark
3cfdaf3891
Merge branch 'master' into feature/emscripten-getcwd
2019-02-25 12:18:30 -08:00
Syrus Akbary
c5c967da00
Added parallel compilation ( #209 )
2019-02-25 12:03:48 -08:00
losfair
9d8c5a5c70
Add a note on incorrect code generation.
2019-02-25 23:57:12 +08:00
losfair
530294922a
Allow more registers to be used.
2019-02-25 23:55:27 +08:00
losfair
78fd995ad3
Fix argument passing at entry.
2019-02-25 23:38:33 +08:00
losfair
80812e3809
Implement native call & fix stack alignment.
2019-02-25 23:29:18 +08:00
losfair
2432a6c9b3
Fix function calls.
2019-02-25 22:47:27 +08:00
Brandon Fish
b008a054de
Fix C API to allow calling an exported func
2019-02-24 12:22:24 -06:00
losfair
dbebdf937f
Code generation for br_table.
2019-02-24 12:00:35 +08:00
Brandon Fish
1dfa106850
Add C API module import descriptors
2019-02-23 18:25:51 -06:00
Brandon Fish
17fe7bdaea
Add C API module export descriptors
2019-02-23 15:41:38 -06:00
losfair
09cbd4aeb0
Changed to using custom calling conventions; Implemented direct calls.
2019-02-24 00:52:32 +08:00
losfair
e9c0325784
Update dependencies
2019-02-24 00:51:47 +08:00
Andrew Cann
ed706133c4
fix stack overflow in Error's Display impl
2019-02-23 17:00:03 +08:00
Mackenzie Clark
82eef13f41
Create a grow error and refactor grow impl to return result ( #191 )
2019-02-22 22:18:59 -08:00
Lachlan Sneff
2a913f5663
Implement table, partial call_indirect
2019-02-22 17:34:55 -08:00
Mackenzie Clark
0c4aea2d84
Merge branch 'master' into feature/emscripten-getcwd
2019-02-22 16:54:19 -08:00
Lachlan Sneff
07c8975304
Fix clif backend
2019-02-22 16:20:26 -08:00
Mackenzie Clark
7fb7529b48
cargo fmt
2019-02-22 15:16:07 -08:00
Mackenzie Clark
70e0b8cee1
Merge branch 'master' into feature/emscripten-getcwd
2019-02-22 15:15:26 -08:00
Mackenzie Clark
b5056d676a
update wasm file
2019-02-22 15:07:55 -08:00
Mackenzie Clark
966be3ee8f
right to the out buffer that was passed in syscall183
2019-02-22 14:54:01 -08:00
Lachlan Sneff
df03d00e74
Merge upstream/master into feature/llvm-feature
2019-02-22 14:14:46 -08:00
Lachlan Sneff
0c19824425
Fix after merge
2019-02-22 14:07:03 -08:00
Lachlan Sneff
d9506ca5d5
Merge branch 'master' into feature/benchmarks
2019-02-22 13:32:09 -08:00
Lachlan Sneff
4042cff914
Change hashing algorithm from sha1 to meowhash
2019-02-22 13:02:28 -08:00
Mackenzie Clark
0f9369c67d
cargo fmt and better error message
2019-02-22 12:39:19 -08:00
Mackenzie Clark
ad3d361f76
add the syscall and create a test
2019-02-22 12:32:14 -08:00
Lachlan Sneff
687f70df89
Add validation benchmark
2019-02-22 12:31:41 -08:00
Syrus
16d62ace52
Fixed cache example (again)
2019-02-22 12:17:49 -08:00
Mackenzie Clark
70ba4ec466
Merge branch 'master' into feature/benchmarks
2019-02-22 12:14:11 -08:00
Lachlan Sneff
6d092dc121
Fix lint
2019-02-22 12:08:56 -08:00
Lachlan Sneff
17901f992a
Add benchmark runner and nginx compile vs. load bench
2019-02-22 12:07:07 -08:00
Syrus
b3dd47bce8
Fixed runtime example
2019-02-22 12:06:22 -08:00
Syrus
84042cecb3
Fixed wrong syntax
2019-02-22 12:00:30 -08:00
Syrus
fdb2a67579
Added cache into standalone app
2019-02-22 11:42:36 -08:00
Brandon Fish
c9969f269c
Use minimum limit as initial table size ( #196 )
2019-02-22 11:16:15 -08:00
Mackenzie Clark
a6d72bdec9
more emscripten stubs and urandom hack ( #199 )
2019-02-22 10:42:38 -08:00
Syrus Akbary
e9d72740c0
Merge pull request #197 from wasmerio/feature/c-api-module-instantiate
...
Add C API module_instantiate function
2019-02-22 09:58:49 -08:00
losfair
08a2ec82b3
Unary operators, comparison opcodes, loops, etc.
2019-02-23 01:54:16 +08:00
Lachlan Sneff
f1b190743b
Change file.write to file.write_all
2019-02-21 17:11:28 -08:00
Lachlan Sneff
199cabd0af
Add comment about serde feature
2019-02-21 17:09:32 -08:00
Lachlan Sneff
696fd8fce3
Update api again and change SerializedCache to Artifact
2019-02-21 17:07:04 -08:00
Lachlan Sneff
64eadad7fa
Fix review comments
2019-02-21 15:31:20 -08:00
Lachlan Sneff
244308374c
Fix formatting
2019-02-21 15:27:20 -08:00
Lachlan Sneff
f9d7d56195
Add documentation and make load safe
2019-02-21 14:00:33 -08:00
Lachlan Sneff
c78d4a8674
Fix test compilation 2
2019-02-21 12:55:03 -08:00
Lachlan Sneff
2234f357b7
Merge branch 'master' into feature/cache-rework
2019-02-21 11:54:57 -08:00
Lachlan Sneff
f18da0690e
Fix test compilation
2019-02-21 11:54:39 -08:00
Lachlan Sneff
7fa818ea06
Finalize new cache api
2019-02-21 11:47:28 -08:00
losfair
7c439932f1
Block and conditional branch.
2019-02-21 22:04:43 +08:00
losfair
63b3f41f05
Handle unreachable and fix return.
2019-02-21 21:14:10 +08:00
losfair
6f97ebd5f7
Remove a hack in parser.
2019-02-21 21:12:58 +08:00
Brandon Fish
ac57a1bc71
Add C API module_instantiate function
2019-02-20 23:08:23 -06:00
Lachlan Sneff
336c1d9c5f
Fix lint
2019-02-20 17:00:48 -08:00
Lachlan Sneff
9f40eedba8
Get caching working again
2019-02-20 16:41:41 -08:00
Mackenzie Clark
1a951a9abf
stub wasm32-unknown-emscripten target imports ( #193 )
2019-02-20 14:05:12 -08:00
Syrus Akbary
a418595f2f
Merge pull request #135 from wasmerio/feature/c-api
...
C API
2019-02-20 11:51:45 -08:00
Brandon Fish
b073145dbb
Clone import in instantiate to prevent import move
2019-02-20 09:52:42 -06:00
losfair
aaabbf169c
Operator::Br and control stack fixes
2019-02-20 23:21:33 +08:00
losfair
61c83507a4
Control frames, jumps & stack unwinding.
2019-02-20 22:56:32 +08:00
Jordan Danford
64519b1581
Fix formatting and grammar in documentation
2019-02-19 17:01:44 -07:00
Lachlan Sneff
82eea00a02
Saved
2019-02-19 15:36:22 -08:00
Lachlan Sneff
3c7dc200fa
close to working
2019-02-19 09:58:01 -08:00
losfair
93d2713bde
Operators.
2019-02-19 20:25:09 +08:00
losfair
5583e96d96
Mitigate a bug that causes incorrect code generation.
...
Still need to figure out why R8 and higher registers don't work.
2019-02-19 19:19:40 +08:00
Brandon Fish
d2f3023191
Allow specifying optional max value in limits
2019-02-19 00:05:08 -06:00
Brandon Fish
380d766943
Convert from Box into/from raw to pointer ref-deref to fix free issue
2019-02-18 23:30:08 -06:00
Lachlan Sneff
e381bbd07b
Use ModuleInfo instead of ModuleInner when possible
2019-02-18 11:56:20 -08:00
Brandon Fish
2ed6e82354
Merge branch 'master' into feature/c-api
2019-02-17 17:20:47 -06:00
Brandon Fish
123d55cb4a
Remove commented out code, cleanup build warnings
2019-02-17 17:10:15 -06:00
Brandon Fish
ee81560e06
Cleanup tests
2019-02-17 16:51:59 -06:00
Brandon Fish
a77d1be983
Remove unused API functions
2019-02-17 14:48:30 -06:00
Brandon Fish
36767e0bd6
Move ctx pointer to first parameter to fix test
2019-02-17 14:39:26 -06:00
Brandon Fish
7bb947aba7
Add func signature lookup functions
2019-02-17 14:12:05 -06:00
David McNeil
a9b1c6c85e
Fix emscripten environment ( #172 )
...
Dynamically determine abortOnCannotGrowMemory and add
_emscripten_get_heap_size and _emscripten_resize_heap
2019-02-16 15:01:01 -07:00
Brandon Fish
56079ad589
Add compile Module function
2019-02-15 19:47:00 -06:00
Brandon Fish
9ee86138b9
Impl Error for CallError
2019-02-15 19:16:19 -06:00
Brandon Fish
768a2fae18
Merge branch 'master' into feature/c-api
2019-02-15 19:12:30 -06:00
Lachlan Sneff
108973dabe
Start producing object files with llvm
2019-02-15 16:02:20 -08:00
Christopher Serr
cb29261ec7
Use repr(transparent) for single element structs ( #187 )
...
The ABI of aggregates such as single element structs is not required to
be the same as the single elements themselves. This is especially true
for f64 vs. #[repr(c)] struct F(f64); on Windows. Therefore the macro
has been tweaked so S1 uses repr(transparent) which is made for exactly
for this use case.
Closes #183
2019-02-15 15:11:06 -08:00
Mackenzie Clark
2d2d708500
Validate descriptor max on creating new table or memory ( #186 )
2019-02-15 13:14:42 -08:00
Mackenzie Clark
b68b109b7d
Implement error for remaining errors and the amalgamation error ( #184 )
2019-02-15 08:15:57 -08:00
Brandon Fish
3ebb80e50e
Update imports and add func_new
2019-02-15 09:40:28 -06:00
Mackenzie Clark
39ef47ebb1
Implement Error for CompilerError ( #181 )
2019-02-14 21:08:35 -08:00
Mackenzie Clark
09ba27390c
Implement Error for Creation Error ( #180 )
2019-02-14 19:22:19 -08:00
Mackenzie Clark
6e87676160
Impl error for link error ( #182 )
2019-02-14 18:40:52 -08:00
Mackenzie Clark
24d028e2a2
impl error trait for ResolveError ( #179 )
2019-02-14 18:19:18 -08:00
Lachlan Sneff
73b4f7d337
Implement memory and global operations
2019-02-14 18:08:20 -08:00
Lachlan Sneff
2d87f64f82
Merge master into feature/llvm-backend
2019-02-14 15:47:28 -08:00
Lachlan Sneff
8827830aba
implement load* and store* instructions
2019-02-14 15:13:58 -08:00
Mackenzie Clark
0c7532b1ba
remove unnecessary print statements ( #177 )
2019-02-14 11:11:35 -08:00
losfair
bb52a4e6eb
Now we can run add
!
2019-02-15 02:21:52 +08:00
losfair
1526d35872
Emit a Return opcode if the last one is not return.
2019-02-15 02:21:04 +08:00
Mackenzie Clark
6a1fdb7f91
add windows exception handling in C ( #175 )
2019-02-14 09:58:33 -08:00
Brandon Fish
bfd5e21605
Add export_name and export_func
2019-02-14 00:00:39 -06:00
Brandon Fish
93979aeae2
Add get exports from instance
2019-02-13 20:02:11 -06:00
losfair
8d8db4aa09
Starting integration.
2019-02-14 00:53:36 +08:00
losfair
7df7204e4b
codegen: More opcodes
2019-02-14 00:53:06 +08:00
losfair
43df3dd546
Use System V calling convention and implement a few opcodes.
2019-02-13 20:04:10 +08:00
losfair
a69c5b4a14
stack: Helper functions and unified return types
2019-02-13 20:03:54 +08:00
Lachlan Sneff
2572a0259b
Get control flow working (fingers crossed)
2019-02-12 18:02:00 -08:00
Syrus
b6416068a8
Use vec.push instead of .insert for vmctx arg
2019-02-12 11:17:09 -08:00
Syrus
b7c3cc09d1
Fixed typed func implementation
2019-02-12 11:14:20 -08:00
Syrus
44d1a0d1f9
Fixed debug function context position
2019-02-12 10:49:43 -08:00
Syrus
f52c4ce5cc
Merge branch 'master' into feature/ctx-first-arg
2019-02-12 10:28:25 -08:00
Syrus
c40195cf77
Fixed spectests
2019-02-12 10:04:11 -08:00
losfair
4ebb22f8bc
Calling conventions, value stack, and runtime stack layout.
2019-02-12 23:15:57 +08:00
Brandon Fish
7f5ca34138
Merge branch 'master' into feature/c-api
2019-02-11 23:17:26 -06:00
Brandon Fish
27cbfc0b0b
Add documentation to API functions
2019-02-11 23:14:32 -06:00
Lachlan Sneff
5ee19e55a5
Add some branching instructions
2019-02-11 19:34:04 -08:00
Brandon Fish
34c45aee3d
Update last error for every error result
2019-02-11 20:08:54 -06:00
Brandon Fish
019ef9ea01
Consolidate result type to one enum
2019-02-11 19:07:28 -06:00
losfair
2fbb5e3332
Codegen backend for x64.
2019-02-12 00:52:17 +08:00
losfair
ffc1bde3d8
Cleanup & add imports.
2019-02-12 00:52:01 +08:00
losfair
bbb27bedbe
Code generation framework.
2019-02-12 00:51:49 +08:00
losfair
af19f5c097
Update dependencies.
2019-02-12 00:51:26 +08:00
losfair
f735471bac
Merge remote-tracking branch 'private/master' into feature/dynasm-backend
2019-02-11 18:38:00 +08:00
Brandon Fish
b70e319f5c
Add initial error messaging
2019-02-10 17:57:23 -06:00
Brandon Fish
66bf13c9dd
Add memory data function
2019-02-10 15:20:35 -06:00
Brandon Fish
a502da58e3
Fix import object destroy
2019-02-10 14:27:08 -06:00
Brandon Fish
7ef472dae2
Add instance context memory
2019-02-10 14:24:36 -06:00
Brandon Fish
0cfe864fe6
Add Memory data length
2019-02-10 14:14:42 -06:00
Syrus
4311a37def
Fixed simple spectests example compilation
2019-02-09 20:13:58 -08:00
Brandon Fish
2fa9cec0ed
Add include guard
2019-02-09 18:07:05 -06:00
Lachlan Sneff
327e3a4a1a
Implement many wasm instructions
2019-02-09 15:53:40 -08:00
Brandon Fish
a0288c87ac
Add Memory Grow C API
2019-02-09 17:53:03 -06:00
Brandon Fish
94c5acedbf
Add basic Global API
2019-02-09 17:39:15 -06:00
Syrus
227d5e24cf
Moved ctx to first argument in Cranelift backend
2019-02-09 14:18:53 -08:00
Syrus
6c7fd55b87
Moved ctx to be the first argument in emscripten
2019-02-09 13:58:18 -08:00
Syrus
393b7dbdf3
Moved ctx in func macro to be first arg
2019-02-09 13:33:22 -08:00
Mackenzie Clark
4ef7dc339c
optimize imports ( #170 )
2019-02-09 13:31:28 -08:00
Brandon Fish
8364c39b4c
Add Table grow function
2019-02-09 13:58:50 -06:00
Brandon Fish
4e5e525626
Add basic Table functions
2019-02-09 13:37:07 -06:00
Brandon Fish
c3707efa08
Update for merge from master
2019-02-09 13:09:54 -06:00
Brandon Fish
bda6451fb6
Merge branch 'master' into feature/c-api
2019-02-09 13:08:30 -06:00
Mackenzie Clark
e7c3b99ba9
add lua integration test ( #109 )
2019-02-08 17:47:51 -08:00
Lachlan Sneff
aa90a33501
Make module info store FuncSig, not Arc<FuncSig>
2019-02-08 14:19:58 -08:00
Mackenzie Clark
9a56680281
fix windows linking and appveyor build ( #166 )
2019-02-08 13:51:29 -08:00
Lachlan Sneff
1886b3d3c1
Naive short circuiting implementation for user panics and results. ( #167 )
...
* Add panic and result catching
* exit process on panic and user runtime error
* Complete initial implementation
2019-02-08 13:08:03 -08:00
Lachlan Sneff
4e1bc483a8
Fix emscripten setup, nginx works ( #165 )
...
* Fix emscripten setup, nginx works
* Remove commented-out code
* Re-enable nginx integration test
2019-02-08 10:55:32 -08:00
Mackenzie Clark
351b4feeeb
implement with_size_protect ( #163 )
...
* implement with_size_protect
* no more conditional compilation
2019-02-08 10:32:20 -08:00
losfair
9649219578
Initial work on WebAssembly parser for Dynasm backend.
2019-02-08 23:56:14 +08:00
Mackenzie Clark
46ac4e9e1a
reorganize signal module and leave stubs in windows ( #162 )
2019-02-07 17:08:42 -08:00
Mackenzie Clark
9719781eee
create platform mods for syscalls and stub for windows ( #161 )
...
* create platform mods for syscalls and stub for windows
* missing constants and duplicate use statements
2019-02-07 16:56:44 -08:00
Mackenzie Clark
f8e2b25137
consolidate shared functions and optimize use statements ( #159 )
2019-02-07 15:24:22 -08:00
Mackenzie Clark
25d438f346
create an alias for pid_t which does not exist on libc windows ( #160 )
2019-02-07 15:12:27 -08:00
Lachlan Sneff
8d2c1956d7
Fix runtime error catching ( #157 )
2019-02-07 14:44:28 -08:00
Mackenzie Clark
ea2bd80089
refactor getenv for windows ( #156 )
2019-02-07 14:23:13 -08:00
Brandon Fish
7574652bb1
Re-enable all passing emtests for CI
2019-02-07 14:55:06 -06:00
Syrus Akbary
1c1318623e
Merge pull request #155 from wasmerio/fix/signature-index-wrong-map
...
Fix signature index issue
2019-02-07 11:58:11 -08:00
Syrus
14806cb604
Fixed formatting and removed print debug statement
2019-02-07 11:37:15 -08:00
Mackenzie Clark
ce03e4464c
fill unsetenv for windows ( #150 )
...
* fill unsetenv
* update usage of read_string_from_wasm
* convert helper to return String
* correct usage of helper fn, cargo fmt, and check in lock file change
2019-02-07 10:51:19 -08:00
Lachlan Sneff
dbea7b3abe
Merge branch 'master' into fix/signature-index-wrong-map
2019-02-07 10:46:35 -08:00
Lachlan Sneff
e147983ece
fix
2019-02-07 10:45:48 -08:00
Mackenzie Clark
663de770bf
stub emscripten env calls for windows ( #151 )
2019-02-07 10:16:55 -08:00
Mackenzie Clark
4ab8bd69be
install errno on all platforms ( #152 )
2019-02-07 10:02:41 -08:00
Mackenzie Clark
bca702794c
assign to the protect enum ( #153 )
2019-02-07 09:04:57 -08:00
Mackenzie Clark
83df3ad35f
fix putenv and setenv for windows ( #140 )
2019-02-06 18:57:11 -08:00
Mackenzie Clark
ac286b708b
create the windows io mod and link printf ( #144 )
2019-02-06 17:56:01 -08:00
Mackenzie Clark
0a7b9b26b8
let the compiler deduce types in syscalls ( #145 )
2019-02-06 17:06:05 -08:00
Mackenzie Clark
f13a45a5bc
link time function and create alias for clockid_t ( #146 )
2019-02-06 16:40:02 -08:00
Lachlan Sneff
8fe9b7eac2
Add caching. ( #134 )
...
* Allow a module to have a different signature registry than the process-specific
* Add core ability to build compiled code caches
* Remove timing printouts
* Serialize/Deserialize memories to reduce copies
* Work more on api
* Relocate local functions relatively before external functions
* Fix incorrect definition in test
* merge errors caused by merge
* Fix emscripten compile
* Fix review comments
2019-02-06 16:26:45 -08:00
Lachlan Sneff
2f2f86a4de
Add feature flag to output debug information while running wasm ( #147 )
...
* Generate debug info during execution
* feature cfg debug output
2019-02-06 15:43:27 -08:00
Brandon Fish
2b55606d3c
Add at_init emscripten_environ_constructor
2019-02-06 00:11:31 -06:00
Brandon Fish
b86acab3e4
Fix debug statement
2019-02-05 23:48:05 -06:00
Brandon Fish
3cd81d4119
Fix lua emscripten imports
2019-02-05 23:39:12 -06:00
Brandon Fish
9d16faab9d
Make memalign optional if the wasm doesn't export it
2019-02-05 23:24:07 -06:00
Syrus Akbary
0f0e1d0aa5
Merge branch 'master' into feature/em-missing-imports
2019-02-05 17:30:38 -07:00
Mackenzie Clark
7bd609fd58
memory fixes for windows ( #138 )
2019-02-05 16:07:55 -08:00
Brandon Fish
c11f18b09c
Update signatures and add missing imports
2019-02-05 17:25:51 -06:00
Lachlan Sneff
c10383c382
Fix example
2019-02-05 12:01:31 -08:00
Lachlan Sneff
271e68d88b
Run fmt
2019-02-05 11:56:36 -08:00
Lachlan Sneff
308d9dde3f
Fix compilation
2019-02-05 11:54:30 -08:00
Lachlan Sneff
cee248ae89
Update emscripten memory macro
2019-02-05 10:35:15 -08:00
Lachlan Sneff
8a8290b155
Add touch-ups to new memory api
2019-02-05 10:20:04 -08:00
Lachlan Sneff
f75006c062
Merge branch 'fix/emscripten-translate' of github.com:wasmerio/wasmer into fix/emscripten-translate
2019-02-04 23:08:46 -08:00
Lachlan Sneff
00db5410c5
Change memory access api again
2019-02-04 23:07:58 -08:00
Brandon Fish
309246e0d6
Add validate function and test
2019-02-05 00:01:01 -06:00
Brandon Fish
8d8dea7ec8
Implement basic C API memory functions
2019-02-04 21:46:47 -06:00
Brandon Fish
2defd27fac
Also generate C++ bindings
2019-02-04 19:54:12 -06:00
Brandon Fish
6ed72a50ce
Add instance_destroy back to test
2019-02-04 19:49:28 -06:00