Salim Shaaban Salim
89cd327c97
Print correct version of bin tools ( #183 )
...
* Print correct version of bin tools
Not something important, but I use these tools for some testing and
they print wrong version with --version flag.
2019-07-03 11:12:32 -07:00
Dan Gohman
c0ba4753eb
Enable wasi-common by default ( #177 )
...
This removes the --wasi-common, as it's now on by default, and adds a
--wasi-c option to enable the wasi-c implementation.
2019-06-25 02:05:49 -07:00
Jakub Konka
ce8912abf3
Use preopen_dir handlers exposed in wasi-common
2019-06-19 07:12:00 -07:00
Jakub Konka
e530a582af
Fix preopening dirs on Windows
2019-06-03 13:23:07 -07:00
Dan Gohman
635be8a032
Make the wasmtime-wasi-c dependency conditional on Unix.
2019-06-03 13:23:07 -07:00
Dan Gohman
06b6ec42b9
Provide the C WASI implementation as an option.
...
This adds the C WASI implementation as a new crate, wasmtime-wasi-c,
and adds a command-line flag to the wasmtime command-line driver to
select which WASI implementation to use.
2019-06-03 13:23:07 -07:00
Jakub Konka
e8142f076d
Migrate to wasi-common crate
2019-06-03 13:23:07 -07:00
Jef
9bf6d73210
Integrate Lightbeam ( #51 )
...
* Integrate lightbeam
2019-04-05 12:42:54 -07:00
bjorn3
3ae7c60b13
Update src/wasmtime.rs
...
Fix spelling error.
Co-Authored-By: sunfishcode <sunfish@mozilla.com >
2019-03-27 10:58:43 -07:00
Dan Gohman
b2fefe7714
WASI prototype design, implementation, and documentation.
...
This adds documents describing the WASI Core API, and an implementation in
Wasmtime.
2019-03-27 10:58:43 -07:00
Yury Delendik
ddbc00752e
Generate debug info for LLDB/GDB ( #50 )
...
* Transform DWARF sections into native format for wasm2obj and wasmtime.
Generate DWARF sections based on WASM DWARF.
Ignore some of debug_info/debug_line for dead code.
* Fix test
2019-03-06 16:03:32 -08:00
Dan Gohman
04d4b20df4
Fix clippy.toml paths and a few clippy lints.
2019-03-01 15:49:29 -08:00
Dan Gohman
5f201f6d73
Rename Instance to InstanceHandle.
2019-02-26 08:54:36 -08:00
Dan Gohman
077ee717a8
Make Instance a refcounting handle around InstanceContents.
2019-02-26 08:54:36 -08:00
Dan Gohman
602e81a895
Minor code reorganization.
2019-02-01 18:20:59 -08:00
Dan Gohman
ddb8453b0d
Move wasmtime's instantiation test into a separate file.
2019-02-01 18:20:59 -08:00
Dan Gohman
72ee874986
Factor out a function for reading a wasm file.
2019-02-01 18:20:59 -08:00
Dan Gohman
8b140cc748
Create a Context class to group together various state objects.
2019-02-01 18:20:59 -08:00
Dan Gohman
00a4e93bcd
Add a concept of "global exports".
...
This adds a feature which allows one to look up an export by name
without knowing what module it's in -- `lookup_global_export` on an
`InstanceContents`.
The main expected use for this is to support APIs where module A
imports a function from module B, and module B needs to access module
A's memory. B can't import it from A in the normal way, because that
would create a dependency cycle. So for now, allow B to look up A's
exported memory dynamically with `lookup_global_export`.
In the future, with reference types and possibly host bindings, we'll be
able to pass references to memory as arguments, which will obviate the
need for this mechanism.
2019-01-22 16:32:07 -08:00
Dan Gohman
35d7f78a11
Handle errors cleanly in the wast runner.
2019-01-03 14:16:48 -08:00
Dan Gohman
f6c2fe7d2d
Update to Rust 2018 Edition.
2019-01-03 12:58:11 -08:00
Dan Gohman
529de7ca60
Tidy up unneeded '&'s.
2019-01-03 12:03:52 -08:00
Dan Gohman
7592c99f3b
Refactor the compilation and instantiation pipeline.
...
wasmtime-execute is now wasmtime-jit. Move `JITCode` and the TargetIsa
into a new `Compiler` type. `InstancePlus` is no more, with trampoline
functionality now handled by `Compiler`.
2019-01-03 11:47:55 -08:00
Dan Gohman
450a279e18
Rename wasmtime's logfile names.
2019-01-03 11:47:40 -08:00
Dan Gohman
a5a23d8c4a
Factor WasmNamespace out of lib/wast and into lib/execute as Namespace.
...
This makes it usable for things other than just wast tests.
2018-12-24 22:08:36 -08:00
Dan Gohman
3f24098edc
Implement the remaining valid spec tests.
...
And lots of other miscellaneous changes. Rename InstanceWorld to
InstancePlus and reorganize its contents. This still isn't a great name,
but at least now it has a clear purpose.
2018-12-12 11:49:02 -08:00
Dan Gohman
56850d481d
Initial support for function, table, memory, and global imports.
2018-12-11 12:49:14 -08:00
Dan Gohman
7dcca6be5b
Improve error handling, and start refactoring Instance.
...
Introduce proper error handling in several places, and perform a first
pass at refactoring Instance to make it easier to use.
2018-12-07 23:51:23 -05:00
Dan Gohman
fe562297a7
Rename wasmtime's --function to --invoke.
...
This highlights the similarity with the `invoke` command in `wast` files.
2018-12-07 06:25:23 -05:00
Dan Gohman
a635861425
Report traps in functions invoked from the command line.
2018-12-06 23:56:45 -05:00
Dan Gohman
dca7729313
Improve error handling and misc cleanups.
2018-12-06 23:03:12 -05:00
Dan Gohman
08488591a9
Fix clippy warning namespaces.
2018-12-06 23:02:42 -05:00
Dan Gohman
d9b4bd1de8
Support imports.
2018-12-06 23:02:19 -05:00
Dan Gohman
8170a9db79
Update to the rustfmt in rust 1.31, which is now stable.
2018-12-06 22:59:46 -05:00
Dan Gohman
57635eb62b
Implement minimal call_indirect signature checking.
2018-12-05 11:32:28 -05:00
Dan Gohman
04b7f0c0df
Fix the description of the wasmtime program.
2018-12-05 02:25:34 -05:00
Dan Gohman
7faa15d7ac
More infrastructure.
...
Improve handling of memory.grow/size, add a standalone wast runner,
test harness improvements.
2018-12-05 02:25:34 -05:00
Dan Gohman
bd69768e0d
Improve infrastructure.
...
Do more encapsulation of raw pointers, use more PrimaryMaps instead of
Vecs, add a table.rs for managing table storage.
2018-12-05 02:25:34 -05:00
Dan Gohman
099f85f821
Rename main.rs to wasmtime.rs.
2018-12-05 02:25:34 -05:00
Dan Gohman
8dbd4b8d7c
Start a wast testing harness and add some tests.
...
This implements a minimal wast testing harness in tests/wast.rs, which
runs the wast tests under tests/wast.
It also adds tests for trapping in a variety of ways, and fixes several
bugs exposed by those tests.
2018-12-05 02:25:34 -05:00
Dan Gohman
f44fe25f9c
Rewrite linear memory handling in terms of simple mmap/VirtualAlloc.
...
The memmap crate doesn't make it straightforward to have part of the
region be writeable and part readonly. Since this is a fairly boutique
use case, and we don't need all that much code, just use the low-level
APIs directly.
Also, introduce a concept of "tunables" for adjusting the parameters of
the runtime.
2018-12-05 02:25:34 -05:00
Frank Rehberger
ec940ee8af
Migrating to wabt::wat2wasm ( #29 )
...
* Add test_environ_translate
* Migrating to wabt::wat2wasm
2018-11-30 10:44:44 -06:00
Dan Gohman
b3d831015c
Add basic logging support to the wasmtime binary.
2018-11-29 15:38:12 -08:00
Frank Rehberger
4ac41213ad
Add test_environ_translate
2018-11-28 04:33:14 -08:00
Geoffroy Couprie
bf5a06bc95
separate the context intialization from the function execution ( #21 )
...
the start function is called from the initialization phase
2018-11-27 05:33:56 -08:00
Dan Gohman
74ccddcd64
Update to Cranelift 0.24.
2018-11-25 05:08:29 -08:00
Geoffroy Couprie
7fca0792dd
add a way to provide imported functions during relocation
...
They are provided as a closure taking the module (&str) and function name (&str) as arguments,
returning an address (Option<isize>)
2018-11-16 09:56:36 -08:00
Nathan Froyd
5f11f44482
add a --target option to wasm2obj
2018-10-10 08:10:09 -07:00
Dan Gohman
5a96e022db
Update to the rustfmt in rust 1.29, which is now stable.
2018-10-09 14:36:48 -07:00
Sergey Pepyakin
7b222190f5
Implement tables and call_indirect ( #12 )
...
* Implement tables and call_indirect
* Restore comment about sig checking.
* Widen callee index on 64bit platforms.
2018-08-15 16:25:49 -07:00