Julius Rakow
21bff51d03
add missing dev-dependency
2018-10-21 20:55:31 +01:00
Sergey Pepyakin
5a54374330
Add no_std check to the Travis CI config
2018-10-20 17:51:21 +02:00
Sergey Pepyakin
baa89afffe
Embed nan-preserving-float crate.
2018-10-20 17:47:32 +02:00
Julius Rakow
8854754ec6
add note about no_std panics of libm to readme
2018-09-14 11:55:47 +02:00
Julius Rakow
0a0f8707c4
use libm for float math in no_std
2018-09-14 11:55:41 +02:00
Julius Rakow
2a6103c29f
remove some trailing whitespace
2018-09-14 11:55:36 +02:00
Julius Rakow
cf67b161ce
simplify float impl macro
2018-09-14 11:55:30 +02:00
Julius Rakow
86b1d3cf56
drop dependency on byteorder/std
2018-08-25 18:46:46 +02:00
Julius Rakow
99eabd7e92
rename the no_std feature to core
2018-08-25 14:19:36 +02:00
Julius Rakow
3b82da15df
add no_std feature and use hashmap_core only on no_std
2018-08-25 01:51:40 +02:00
Julius Rakow
3c75f65105
mention no_std in readme
2018-08-25 01:24:24 +02:00
Julius Rakow
d38d268740
core and alloc all the things
2018-08-25 01:24:19 +02:00
Julius Rakow
33a0e6ec4c
disable std::error in no_std
2018-08-25 01:24:13 +02:00
Julius Rakow
f4173ad8ca
use hashmap_core instead of std::collections::HashMap
2018-08-25 01:24:08 +02:00
Julius Rakow
ffe54f9674
drop dependency on std::io
2018-08-25 01:24:02 +02:00
Julius Rakow
606c006e1c
use parity-wasm/std feature only if std is enabled
2018-08-25 01:23:56 +02:00
Julius Rakow
704f96e2e7
add default-enabled std feature
2018-08-25 01:23:51 +02:00
Guanqun Lu
0409913a26
Typo fixes ( #119 )
...
* typo fixes
* more typo fixes
2018-08-03 16:05:10 +03:00
Guanqun Lu
929ac564a5
we don't need this TODO anymore ( #120 )
2018-08-03 16:04:33 +03:00
Guanqun Lu
8ca6b4b860
Add a section in README to show how to build and test ( #117 )
2018-08-01 12:21:50 +03:00
Sergey Pepyakin
0a34f1d0f6
Bump version to 0.4.0 ( #116 )
2018-07-31 17:05:21 +03:00
Arkadiy Paronyan
118396851a
Allocate memory on demand ( #115 )
...
* Allocate mem on demand
* More control in with_direct_access_mut
2018-07-31 16:25:46 +03:00
Guanqun Lu
5c86c1c753
Bump wabt's version to 0.4 and add two more test cases ( #114 )
...
* bump wabt version to 0.4
It has some interface changes.
* bump up testsuite and add two more test cases
* use the same expect string
2018-07-30 19:43:18 +03:00
Guanqun Lu
43b8d52bca
typo fixes in lib.rs ( #113 )
2018-07-30 15:16:17 +03:00
Arkadiy Paronyan
9ed95e49c1
Avoid allocations on memory operations ( #112 )
2018-07-26 14:50:05 +03:00
Wei Tang
a605175abe
Resumable function invocation ( #110 )
...
* Move call_stack to Interpreter struct
* Accept func and args when creating the Interpreter
* Create a RunState to indicate whether the current interpreter is recoverable
* Add functionality to resume execution in Interpreter level
* Implement resumable execution in func
* Expose FuncInvocation and ResumableError
* Fix missing docs for FuncInvocation
* Add test for resumable invoke and move external parameter passing to start/resume_invocation
* Add comments why assert is always true
* Add note why value stack is always empty after execution
* Use as_func
* Document `resume_execution` on conditions for `is_resumable` and `resumable_value_type`
* Document conditions where NotResumable and AlreadyStarted error is returned
* Warn user that invoke_resumable is experimental
2018-07-09 19:06:44 +03:00
Sergey Pepyakin
df0e3ddd46
Bump version to 0.3.0 ( #107 )
2018-07-04 12:22:08 +03:00
Sergey Pepyakin
dc5052aadb
Export nan_preserving_float ( #109 )
2018-07-04 12:13:57 +03:00
Sergey Pepyakin
5d99077e17
Bump limits arbitrary ( #108 )
2018-07-04 11:18:54 +03:00
Sergey Pepyakin
f6657bace4
Flat Stack ( #98 )
...
* Define Instruction Set.
* WIP
* WIP 2
* Tests
* Working
* Bunch of other tests.
* WIP
* WIP
* Use Vec instead of VecDeque.
* Calibrate the limits.
* Clean
* Clean
* Another round of cleaning.
* Ignore traces.
* Optimize value stack
* Optimize a bit more.
* Cache memory index.
* Inline always instruction dispatch function.
* Comments.
* Clean
* Clean
* Use vector to keep unresolved references.
* Estimate resulting size.
* do refactoring
* Validate the locals count in the begging
* Introduce Keep and DropKeep structs in isa
* Rename/Split Validator into Reader
* Document stack layout
* Remove println!
* Fix typo.
* Use .last / .last_mut in stack
* Update docs for BrTable.
* Review fixes.
* Merge.
* Add an assert that stack is empty after the exec
2018-07-04 10:08:45 +03:00
Sergey Pepyakin
3a96a8399f
Bump version to 0.2.1 ( #106 )
2018-07-02 13:17:36 +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