Dan Gohman
e876f0fb1d
Add some Cargo.toml keywords.
2019-01-03 14:25:33 -08:00
Dan Gohman
40acc1f340
Add crate version identifiers.
2019-01-03 14:16:48 -08:00
Dan Gohman
a41bc1fe1e
Fix unused use warnings.
2019-01-03 14:16:48 -08:00
Dan Gohman
ca2fdc5ccb
Update no_std support.
...
This `no_std` support isn't complete though, as some dependencies
don't support it.
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
701b1998e9
Avoid creating slices with null pointers.
2019-01-03 12:05:17 -08:00
Dan Gohman
df7724ce2b
Update Cargo.toml authors fields.
2019-01-03 12:04:37 -08:00
Dan Gohman
c66a3c23f3
Tidy up some documentation comments.
2019-01-03 12:03:43 -08:00
Dan Gohman
3ce2127bfa
Eliminate the intermediate "base" global variables.
2019-01-03 12:03:33 -08:00
Dan Gohman
1ae5c13b8c
Signature ID loads are readonly.
2019-01-03 12:03:14 -08:00
Dan Gohman
3270369a69
Restructure VMContext to eliminate a level of indirection.
2019-01-03 12:02:35 -08:00
Dan Gohman
482a054c75
Move the signature_ids field first.
2019-01-03 11:49:15 -08:00
Dan Gohman
e8e8f453a4
Refactor out the code for creating the signature_ids base global value.
2019-01-03 11:49:04 -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
f997cde2db
Don't create Static memories larger than the Tunables' static bound size.
2018-12-24 22:08:36 -08:00
Dan Gohman
4d4ecfd812
Bump version to 0.1.0
2018-12-17 13:45:12 -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
6dd39dee6a
Update to Cranelift 0.26.0.
2018-12-11 13:21:03 -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
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
96941a59af
Implement call_indirect signature checking.
...
The call_indirect.wast spec test now passes.
2018-12-05 11:32:35 -05:00
Dan Gohman
57635eb62b
Implement minimal call_indirect signature checking.
2018-12-05 11:32:28 -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
4c47ce9b53
Add support for math libcalls.
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
fe1643733b
Remove use of offset_of! from wasmtime-environ.
...
wasmtime-environ is meant to support cross compilation, so it shouldn't
have dependencies on target layout of structs. This moves the layout
back into wasmtime-execute, and adds a system of asserts for checking
that wasmtime-environ's offsets stay in sync.
2018-12-05 02:25:34 -05:00
Dan Gohman
e940c97664
Tidy.
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
d5ed424b33
Add tunables.rs.
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
Dan Gohman
ff25397c9e
Fix the type of the heap bound variable.
2018-11-29 19:28:35 -08:00
Dan Gohman
b7d43edfd3
Be more careful about integer overflow when computing relocs.
2018-11-29 10:28:18 -08:00
Dan Gohman
862d859587
Add a LICENSE file to each crate.
2018-11-29 05:57:32 -08:00
Dan Gohman
8e1e75f1f4
Fix rustfmt diffs.
2018-11-27 05:41:19 -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
95fba6a9de
Update to Cranelift 0.25.
2018-11-26 22:50:07 -08:00
Dan Gohman
e8201d0f93
Begin work on no_std support.
...
This adds no_std support to a bunch of things, but more work is needed.
2018-11-26 04:52:39 -08:00
Dan Gohman
74ccddcd64
Update to Cranelift 0.24.
2018-11-25 05:08:29 -08:00
Dan Gohman
0a0108f959
Update to Cranelift 0.22.
2018-11-25 05:08:29 -08:00
Dan Gohman
d72ebe53d4
Use the correct base address for memories.
2018-11-02 16:18:18 -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
Dan Gohman
ecae909b9e
Add the "wasm" category in Cargo.toml files.
2018-08-28 21:03:07 -07:00
Dan Gohman
da4382802a
Add a LICENSE file to published crates.
...
The individual crates are published separately from the main repository
on crates.io. To ensure that a copy of the LICENSE file accompanies all
published copies of the code, give each crate its own LICENSE file.
2018-08-28 21:02:18 -07:00
Dan Gohman
fb7153ccf4
Update to cranelift 0.20.0.
...
The biggest change is the split from FunctionIndex to
DefinedFuncIndex to FuncIndex. Take better advantage of this by
converting several Vecs to PrimaryMaps.
Also, table_addr can now handle indices of the table index type,
so we don't need to explicitly uextend them anymore.
2018-08-28 20:56:58 -07:00
Dan Gohman
d3fcb596b3
Support multiple memory spaces.
2018-08-28 16:54:28 -07:00
Dan Gohman
4e24064251
grow_memory is renamed to memory.grow in the spec.
2018-08-28 16:54:28 -07:00