Commit Graph

144 Commits

Author SHA1 Message Date
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
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