Ivan Enderlin
5275f3f306
feat(interface-types) Add the NegativeValue
instruction error.
2020-03-26 08:31:06 +01:00
Ivan Enderlin
c35996c233
test(interface-types) Test negative pointer or length in string.lift_memory
.
2020-03-26 08:30:32 +01:00
Ivan Enderlin
bf7f7cf927
fix(interface-types) Avoid integer overflows in string instructions.
2020-03-26 08:27:51 +01:00
Ivan Enderlin
2074ce8bce
fix(interface-types) Instruction::CallCore.function_index
is a u32
.
2020-03-26 07:53:44 +01:00
Ivan Enderlin
b63ce1be6c
fix(interface-types) Cast index to usize
to compare index to length.
...
The index is bound to `u32::max_value()`. The invocation inputs'
length is bound to `usize::max_value()`, which can be
`u64::max_value`. Consequently, casting the invocation inputs' length
to `u32` can lead to an integer overflow. It is better to cast `index`
to `usize` when comparing with the invocation inputs' length.
2020-03-26 07:46:59 +01:00
Ivan Enderlin
63f824a240
doc(interface-types) Add strign.size
in the list of supported instructions.
2020-03-24 15:35:01 +01:00
Ivan Enderlin
55a5b97443
feat(interface-types) Implement the string.size
instruction.
2020-03-24 15:33:42 +01:00
Ivan Enderlin
50a6d9d92c
feat(interface-types) Add the Stackable::peek1
method.
...
This method allows to peek the last item on the stack (if any) by
reference.
2020-03-24 15:32:54 +01:00
Ivan Enderlin
1475428a54
doc(interface-types) Add string.*
instructions.
2020-03-24 13:29:38 +01:00
Ivan Enderlin
7a2db276f3
feat(interface-types) Implement the string.(lift|lower)_memory
instructions.
...
The `string.lift_memory` instruction replaces `memory-to-string`, and
`string.lower_memory` replaces `string-to-memory`.
2020-03-24 13:25:06 +01:00
Ivan Enderlin
0506449aa4
feat(interface-types) Rename lowering_lifting
module to numbers
.
2020-03-24 13:10:21 +01:00
Ivan Enderlin
0b10f71517
doc(interface-types) Add links to WIT instructions.
2020-03-24 12:48:33 +01:00
Ivan Enderlin
700963474a
doc(interface-types) Update supported instructions.
2020-03-24 12:47:39 +01:00
Ivan Enderlin
9af32b273c
feat(interface-types) Implement [siu](NN|MM).from_*
instructions.
...
Basically the `x-to-y` instructions have been renamed `y.from_x`. This
patch updates the instruction. The binary representation isn't
specified yet, so it's just arbitrary values.
2020-03-24 12:43:57 +01:00
Ivan Enderlin
6b5975ea47
fix(interface-types) Use same stack order than Wasm invocation rule.
2020-03-23 14:34:57 +01:00
Ivan Enderlin
c66bed67af
fix(interface-types) Stack pops items in the same order than Wasm invocation rule.
2020-03-23 14:32:26 +01:00
Syrus Akbary
d12097bb88
Merge pull request #1298 from Hywan/doc-interface-types
...
doc(interface-types) Update the state of supported instructions
2020-03-12 09:00:53 -07:00
Ivan Enderlin
7afafe5909
Merge branch 'master' into feat-interface-types-better-error
2020-03-12 14:52:15 +01:00
Ivan Enderlin
24a2f41c9f
chore(interface-types) Simplify code.
2020-03-12 14:51:18 +01:00
Ivan Enderlin
43fb922de8
feat(interface-types) Implement Error
on errors.
2020-03-12 14:49:43 +01:00
Ivan Enderlin
c41979400e
feat(interface-types) Use include ranges to read the memory.
2020-03-12 14:39:15 +01:00
Ivan Enderlin
c5db156b25
doc(interface-types) Update the state of supported instructions.
2020-03-12 13:57:57 +01:00
Mark McCaskey
5c70502e23
Prepare for 0.16.2 release
2020-03-11 19:15:31 -07:00
Mark McCaskey
80b59cb7e8
Prepare for 0.16.1 release
2020-03-11 16:00:21 -07:00
Mark McCaskey
157007415f
Prepare for 0.16.0 release
2020-03-11 11:15:07 -07:00
Ivan Enderlin
7d473b7bdc
feat(interface-types) Reformat the instructions.
2020-03-10 17:49:35 +01:00
Ivan Enderlin
864ac79123
feat(interface-types) Use better errors.
...
The new `errors` module contains structure to represent errors,
instead of using basic strings. The first usage is in the interpreter
itself.
2020-03-10 17:49:35 +01:00
Ivan Enderlin
8bd3345a79
feat(interface-types) Remove the 'input
lifetime on Instruction
.
2020-03-10 10:37:09 +01:00
Ivan Enderlin
47b63bc9c6
Merge branch 'master' into feat-interface-types-instructions-string-and-memory
2020-03-10 10:33:56 +01:00
Ivan Enderlin
a93421f6c2
feat(interface-types) Rename write-utf8
to string-to-memory
.
2020-03-10 10:25:58 +01:00
bors[bot]
f89e2c1b89
Merge #1281
...
1281: feat(interface-types) Rename `call` to `call-core`, and remove `call-export` r=syrusakbary a=Hywan
The latest standard removes `call-export` and has a single `call-core` instruction.
Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2020-03-09 18:03:28 +00:00
Ivan Enderlin
2d6b987791
feat(interface-types) read-utf8
is renamed memory-to-string
.
2020-03-09 15:06:35 +01:00
Ivan Enderlin
57b1501247
doc(interface-types) Improve the README.md
.
2020-03-09 14:53:11 +01:00
Ivan Enderlin
f342670532
feat(interface-types) Rename call
to call-core
, and remove call-export
.
2020-03-09 14:33:17 +01:00
Mark McCaskey
f38c45e373
Prepare for 0.15.0 release
2020-03-04 12:26:19 -08:00
Ivan Enderlin
db99d2cabd
feat(interface-types) Implement s64-to-i32x
and u64-to-i32x
...
Actually, `s64-to-i32` and `u64-to-i32` already error when overflow
happens.
2020-03-03 17:17:26 +01:00
Ivan Enderlin
c617b1fa16
test(interface-types) Test when lowering or lifting fails because of the value.
2020-03-03 17:10:10 +01:00
Ivan Enderlin
cac6b4ae01
test(interface-types) Add test cases for errors.
2020-03-03 17:04:26 +01:00
Ivan Enderlin
87a3606836
feat(interface-types) Implement lifting and lowering instructions.
2020-03-03 16:57:05 +01:00
Ivan Enderlin
78f2fb580c
feat(interface-types) Fix clippy errors and warnings.
2020-02-26 17:02:52 +01:00
Ivan Enderlin
2a8e3f984d
Merge branch 'master' into feat-interface-types-update-to-last-standard-version
2020-02-26 16:22:56 +01:00
Ivan Enderlin
55029b7c36
feat(interface-types) Implement lifting and lowering instructions.
...
List from https://github.com/WebAssembly/interface-types/blob/master/proposals/interface-types/working-notes/instr.md .
2020-02-26 16:20:39 +01:00
Ivan Enderlin
8dacaab080
feat(interface-types) Remove abandonned instructions.
2020-02-26 15:48:00 +01:00
Ivan Enderlin
09498ee286
fix(interface-types) arg.get
's index is of type u32
.
2020-02-26 15:42:29 +01:00
Ivan Enderlin
766312fd90
test(interface-types) Test adapter to binary.
2020-02-26 15:38:59 +01:00
Ivan Enderlin
330dbac96b
doc(interface-types) Fix a typo.
2020-02-26 15:34:04 +01:00
Ivan Enderlin
d4c01e8ddc
test(interface-types) Fix all tests based on previous commits.
2020-02-26 15:32:14 +01:00
Mark McCaskey
9117ea7344
Prepare for 0.14.1 release
...
0.14.1 differs from 0.14.0 primarily in that the GNU/Linux build is
built on Ubuntu 16.04 instead of 18.04, meaning we'll use an earlier
version of GLIBC.
2020-02-24 13:20:12 -08:00
Ivan Enderlin
f9ef4a650b
feat(interface-types) Re-implement interface kinds.
...
Adopt a flat structure: Flat resolved imports, flat resolved exports,
flat resolved types etc.
Also, use the latest textual format for adapters & co.
2020-02-24 18:12:01 +01:00
Ivan Enderlin
410d8d4476
feat(interface-types) Re-implement Type
.
...
The semantics of “types” have changed since the previous draft. Now, a
type is like a regular WebAssembly type but with Interface Types.
2020-02-24 16:23:31 +01:00