Commit Graph

139 Commits

Author SHA1 Message Date
Sergey Pepyakin bcc426c6dc Estimate resulting size. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 3f10ba6666 Use vector to keep unresolved references. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 4e9f39444c Clean 2018-06-29 14:20:55 +03:00
Sergey Pepyakin b16feab204 Clean 2018-06-29 14:20:55 +03:00
Sergey Pepyakin d8814faad7 Comments. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin a16e757288 Inline always instruction dispatch function. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin bdbf10ba74 Cache memory index. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 583bb6321e Optimize a bit more. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin c5b859149b Optimize value stack 2018-06-29 14:20:55 +03:00
Sergey Pepyakin bf80ad7373 Ignore traces. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 7f07c1cb4f Another round of cleaning. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 15ec33e0a6 Clean 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 259c59ffa4 Clean 2018-06-29 14:20:55 +03:00
Sergey Pepyakin ae8c834fb1 Calibrate the limits. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 77a836ff11 Use Vec instead of VecDeque. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 029b05278b WIP 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 0d59364e7e WIP 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 875f73e747 Bunch of other tests. 2018-06-29 14:20:55 +03:00
Sergey Pepyakin 40d73f218c Working 2018-06-29 14:20:54 +03:00
Sergey Pepyakin 5dd56d6056 Tests 2018-06-29 14:20:32 +03:00
Sergey Pepyakin 81b832fe56 WIP 2 2018-06-29 14:19:56 +03:00
Sergey Pepyakin 48e4704b5f WIP 2018-06-29 14:19:56 +03:00
Sergey Pepyakin 4b7c3c0c94 Define Instruction Set. 2018-06-29 14:19:23 +03:00
Wei Tang f91dc92119 Update parity-wasm dependency to 0.31 (#105)
* Update parity-wasm dependency to 0.31
* Fix tests
2018-06-29 14:10:04 +03:00
Sergey Pepyakin 2fb793c8b8
Add hfuzz into repo (#103)
* Add fuzzing against spec interpreter.

* Redirect output of spec to /dev/null

* Also stderr

* Refactor

* Oops. Revert to temp file creation.

* Version of libfuzzer pinned

* Add honggfuzz.

* Impl hfuzz

* Update parity-wasm.

* Update honggfuzz to 0.5.9.

* Update parity-wasm

* Stack hash.

* Update script a bit.

* Unpin parity-wasm version

* Indentation
2018-06-25 17:46:13 +03:00
Leonardo Yvens 9db7896e48 implement from and into RuntimeValue for i8, u8, i16 and u16 (#104)
This works under the assumption that these values
are represented as an `I32` in WASM, which seems
reasonable.
2018-06-25 16:59:30 +03:00
Leonardo Yvens 75406dd8ff Use transmute instead of casts In RuntimeValue conversion. (#102)
Casts have arithmetic semantics, and under some build configurations
Rust will panic when encountering an arithmetic overflow.
Use a transmute instead since it's what we mean.
The previous code worked, but still I added a test for good measure.
2018-06-21 15:47:49 +03:00
Sergey Pepyakin 94b797de44
Add some more benches (#97)
* Add rev_complement test

# Conflicts:
#	benches/src/lib.rs
#	benches/wasm-kernel/src/lib.rs

* Add redux_regex test.

# Conflicts:
#	benches/wasm-kernel/Cargo.toml

* Fmt and return an original header

* Use ManuallyDrop

* Really initialize lazy static.
2018-06-19 16:29:33 +03:00
Sergey Pepyakin f305b3cd1f
Fix wasm benches on nightly (#93) 2018-06-12 14:00:57 +03:00
Sergey Pepyakin 724a32ad60
Provide direct access to the underlying buffer (#91)
This allows zero-copy access to the linear memory.
2018-05-31 16:01:15 +02:00
Sergey Pepyakin 6cf0ebc79e
Add a simple bench (#90)
* Add first bench

* Refactor travis.yml

* Use assert_matches!

* sha3_256 → keccak256
2018-05-24 16:31:15 +03:00
Sergey Pepyakin d926993c6c Bump wabt version to 0.3 2018-04-25 18:00:11 +03:00
Sergey Pepyakin 89c3a9286f Bump version 0.2.0 2018-04-25 10:25:33 +03:00
Jef 3890dd379f Preserve signalling bit in NaNs (#87)
* Preserve signalling bit in NaNs

* Fix warnings
2018-04-25 10:18:14 +03:00
Sergey Pepyakin b95e11c414 Bump version to 0.1.3. 2018-04-20 17:59:16 +03:00
Sergey Pepyakin 730c918a80
Don't expand locals. (#86) 2018-04-20 17:55:07 +03:00
Sergey Pepyakin 5cda9a05da Check the signature of host function. (#84) 2018-04-18 17:44:10 +03:00
Jef 22b260a3b9 Optionally deny floating point operations (#83)
* Optionally deny floating point operations

* Deny floating-point parameters and fix docs/indentation

* Test denial of floating-point parameters
2018-04-18 15:09:09 +03:00
Sergey Pepyakin a2aa3ddb25 Update README.md 2018-04-17 09:41:26 +03:00
Sergey Pepyakin 7aecc55173 Bump version to 0.1.2 2018-04-05 13:12:39 +03:00
Pierre Krieger 4c2995ca98 Fix the name of the 32bits feature (#82)
So that it matches the Cargo.toml
2018-04-04 18:14:43 +03:00
Sergey Pepyakin d12a04f8ff
Publish with externvals (#81)
* Publish with_externvals constructor.
* Add examples to Signature::new.
* Use Iterators for ExternVal imports
2018-03-29 18:43:44 +03:00
NikVolf a6b5574704 bump version 2018-03-24 17:57:28 +03:00
Sergey Pepyakin 86bbd96a33
Require func_type (not func) for func import. (#79) 2018-03-22 17:49:30 +03:00
Sergey Pepyakin 654426b147 Rename feature opt-in-32bit 2018-03-21 11:01:13 +03:00
Sergey Pepyakin 527b9e0cbc Prepare for 0.1.0 (#77) 2018-03-21 10:51:51 +03:00
Sergey Pepyakin 522fa20983
Fix br_if and then tee_local validation. (#76) 2018-03-20 13:09:51 +03:00
Sergey Pepyakin 6253dd6fdf Args refactor (#71)
* Refactor TryInto → FromRuntimeValue.

Replace `TryInto<T, E>` with `FromRuntimeValue`.

The main difference is that `FromRuntimeValue` is implemented for the concrete type of the value we create, rather than on `RuntimeValue`. This makes more sense to me and seems more clear.

The `try_into` method is now implemented on `RuntimeValue` itself.

And finally, `FromRuntimeValue` has been made public.

* Impl AsRef<[RuntimeValue]> for RuntimeArgs

This impl can be used as an escape hatch if the user wants to use the inner slice.

* Little doc fixes for RuntimeArgs.
2018-03-14 01:23:12 +03:00
Sergey Pepyakin 9fa933ccd6
Use f32/f64::from_bits. (#72)
And also enable:

- "conversions",
- "float_exprs",
- "float_literals",
- "float_memory",

tests.
2018-03-12 12:37:43 +01:00
Sergey Pepyakin 0c277abacb
Implement Error for Trap (#73) 2018-03-12 12:37:12 +01:00