136 Commits

Author SHA1 Message Date
Ivan Enderlin
6fcd45bce3 doc(interface-types) Add links to WIT instructions. 2020-03-24 12:48:33 +01:00
Ivan Enderlin
cd58af2633 doc(interface-types) Update supported instructions. 2020-03-24 12:47:39 +01:00
Ivan Enderlin
50201a5e0b 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
a1f0a556e5 fix(interface-types) Use same stack order than Wasm invocation rule. 2020-03-23 14:34:57 +01:00
Ivan Enderlin
693b210638 fix(interface-types) Stack pops items in the same order than Wasm invocation rule. 2020-03-23 14:32:26 +01:00
Syrus Akbary
c01afac783
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
03910a51fb Merge branch 'master' into feat-interface-types-better-error 2020-03-12 14:52:15 +01:00
Ivan Enderlin
b78a6f47ab chore(interface-types) Simplify code. 2020-03-12 14:51:18 +01:00
Ivan Enderlin
f46099c67b feat(interface-types) Implement Error on errors. 2020-03-12 14:49:43 +01:00
Ivan Enderlin
64729aa8f4 feat(interface-types) Use include ranges to read the memory. 2020-03-12 14:39:15 +01:00
Ivan Enderlin
20085e84a6 doc(interface-types) Update the state of supported instructions. 2020-03-12 13:57:57 +01:00
Mark McCaskey
fffdba395d Prepare for 0.16.2 release 2020-03-11 19:15:31 -07:00
Mark McCaskey
dc9cc3292c Prepare for 0.16.1 release 2020-03-11 16:00:21 -07:00
Mark McCaskey
d7d5f5b894 Prepare for 0.16.0 release 2020-03-11 11:15:07 -07:00
Ivan Enderlin
7d6bc577b7 feat(interface-types) Reformat the instructions. 2020-03-10 17:49:35 +01:00
Ivan Enderlin
f0c97a1b81 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
52312ff0ad feat(interface-types) Remove the 'input lifetime on Instruction. 2020-03-10 10:37:09 +01:00
Ivan Enderlin
717914f82b Merge branch 'master' into feat-interface-types-instructions-string-and-memory 2020-03-10 10:33:56 +01:00
Ivan Enderlin
1b0bda82dd feat(interface-types) Rename write-utf8 to string-to-memory. 2020-03-10 10:25:58 +01:00
bors[bot]
674d18ed66
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
39d491e465 feat(interface-types) read-utf8 is renamed memory-to-string. 2020-03-09 15:06:35 +01:00
Ivan Enderlin
3cc4c6142c doc(interface-types) Improve the README.md. 2020-03-09 14:53:11 +01:00
Ivan Enderlin
637ff1e316 feat(interface-types) Rename call to call-core, and remove call-export. 2020-03-09 14:33:17 +01:00
Mark McCaskey
c295adbaa8 Prepare for 0.15.0 release 2020-03-04 12:26:19 -08:00
Ivan Enderlin
de53659ee7 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
c157bdaf63 test(interface-types) Test when lowering or lifting fails because of the value. 2020-03-03 17:10:10 +01:00
Ivan Enderlin
6576dfd64b test(interface-types) Add test cases for errors. 2020-03-03 17:04:26 +01:00
Ivan Enderlin
30e72eb796 feat(interface-types) Implement lifting and lowering instructions. 2020-03-03 16:57:05 +01:00
Ivan Enderlin
c0933c52ca feat(interface-types) Fix clippy errors and warnings. 2020-02-26 17:02:52 +01:00
Ivan Enderlin
bff63e3fad Merge branch 'master' into feat-interface-types-update-to-last-standard-version 2020-02-26 16:22:56 +01:00
Ivan Enderlin
4e82d59ea1 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
f951b6aa53 feat(interface-types) Remove abandonned instructions. 2020-02-26 15:48:00 +01:00
Ivan Enderlin
350a30507f fix(interface-types) arg.get's index is of type u32. 2020-02-26 15:42:29 +01:00
Ivan Enderlin
3653c42e23 test(interface-types) Test adapter to binary. 2020-02-26 15:38:59 +01:00
Ivan Enderlin
4b7cd3a875 doc(interface-types) Fix a typo. 2020-02-26 15:34:04 +01:00
Ivan Enderlin
45283d4f52 test(interface-types) Fix all tests based on previous commits. 2020-02-26 15:32:14 +01:00
Mark McCaskey
ce21910077 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
0c5d46eec9 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
c64febdad6 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
Ivan Enderlin
d1ed647efc feat(interface-types) Forwarded adapters have been removed. 2020-02-24 15:56:11 +01:00
Ivan Enderlin
8538e3be33 feat(interface-types) The “helper adapter” has been removed. 2020-02-24 15:49:03 +01:00
Ivan Enderlin
ac68325cc9 feat(interface-types) Update interface types.
According to the last working notes, new interface types are s8, s16,
s32, s64, u8, u16, u32, u64, f32, f64, string, anyref, i32, and i64.

Their binary reprensentations are changing too, from 0x00 to 0x0d.
2020-02-24 15:37:03 +01:00
Ivan Enderlin
6b667805d7
Merge branch 'master' into doc-readme-logo 2020-02-21 13:41:35 +01:00
Ivan Enderlin
1e52d4b9b2 doc(readme) Fix logo. 2020-02-21 13:39:43 +01:00
Ivan Enderlin
48f8823879 Merge branch 'master' into feat-interface-types-decoders-wat 2020-02-21 12:24:52 +01:00
Ivan Enderlin
80d0b5116f doc(interface-types) Add intra links. 2020-02-21 12:23:58 +01:00
Ivan Enderlin
0afd308c44 feat(interface-types) Add the parse public API.
Also rename `kw` to `keyword`.
2020-02-21 12:23:20 +01:00
Mark McCaskey
1374bf0806 Prepare for 0.14.0 release 2020-02-20 13:15:29 -08:00
Ivan Enderlin
2ef13cdc81 fix(interface-types) Remove #[allow(unused)]. 2020-02-20 15:16:35 +01:00
Ivan Enderlin
5e00153d29 feat(interface-types) Decode instructions in WIT's text format. 2020-02-20 15:13:11 +01:00