Commit Graph

101 Commits

Author SHA1 Message Date
4b7cd3a875 doc(interface-types) Fix a typo. 2020-02-26 15:34:04 +01:00
45283d4f52 test(interface-types) Fix all tests based on previous commits. 2020-02-26 15:32:14 +01:00
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
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
d1ed647efc feat(interface-types) Forwarded adapters have been removed. 2020-02-24 15:56:11 +01:00
8538e3be33 feat(interface-types) The “helper adapter” has been removed. 2020-02-24 15:49:03 +01:00
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
6b667805d7 Merge branch 'master' into doc-readme-logo 2020-02-21 13:41:35 +01:00
1e52d4b9b2 doc(readme) Fix logo. 2020-02-21 13:39:43 +01:00
48f8823879 Merge branch 'master' into feat-interface-types-decoders-wat 2020-02-21 12:24:52 +01:00
80d0b5116f doc(interface-types) Add intra links. 2020-02-21 12:23:58 +01:00
0afd308c44 feat(interface-types) Add the parse public API.
Also rename `kw` to `keyword`.
2020-02-21 12:23:20 +01:00
1374bf0806 Prepare for 0.14.0 release 2020-02-20 13:15:29 -08:00
2ef13cdc81 fix(interface-types) Remove #[allow(unused)]. 2020-02-20 15:16:35 +01:00
5e00153d29 feat(interface-types) Decode instructions in WIT's text format. 2020-02-20 15:13:11 +01:00
cda53a57b5 feat(interface-types) Replace nom by wast for decoding WIT's text format. 2020-02-20 14:43:58 +01:00
00e36508d6 feat(interface-types) Parse Adapter in the WAT decoders. 2020-02-19 17:41:06 +01:00
2e78cf1fc0 feat(interface-types) Parse Import in the WAT decoders. 2020-02-19 17:20:18 +01:00
c97122899d feat(interface-types) Start implementing the WAT decoder. 2020-02-19 16:12:06 +01:00
cc93f3197b Merge branch 'master' into feat-interface-types-encoders-binary 2020-02-18 09:57:29 +01:00
d6cd1fa6c4 doc(interface-types) Add a README.md file. 2020-02-17 14:48:58 +01:00
306d19274b test(interface-types) Test roundtrip: AST to binary to AST. 2020-02-17 13:55:59 +01:00
8736f0548e test(interface-types) Fix one bug and write the test suite. 2020-02-17 13:55:59 +01:00
1149158589 feat(interface-types) Add the binary encoder. 2020-02-17 13:55:59 +01:00
0c4c9107d5 fix(interface-types) Remove a dbg! macro. 2020-02-14 12:19:29 +01:00
eb2f9db230 feat(interface-types) Forbids unsafe code. 2020-02-13 14:36:17 +01:00
9559747394 doc(interface-types) Add #[deny(missing_docs)]. 2020-02-13 14:34:45 +01:00
ae6e26158f chore(interface-types) Simplify code. 2020-02-13 14:26:50 +01:00
6891517c8b chore(encoders) Changing unimplemented!() to todo!(). 2020-02-13 14:24:07 +01:00
13cee90d17 feat(encoders) Implement ToString instead of From<…> for String. 2020-02-13 14:19:31 +01:00
722727bd56 chore(decoders) Simplify code. 2020-02-13 13:56:30 +01:00
d8f923091f chore(decoders) Simplify code. 2020-02-13 13:54:26 +01:00
3f0c32bf44 fix(decoders) Remove the unsafe block in the string parser.
Instead of using `str::from_utf8_unchecked`, this patch updates the
code to use `str::from_utf8` and handles the error appropriately.
2020-02-13 13:52:23 +01:00
370fd6d866 feat(decoders) Improve LEB parser in the binary module.
The LEB parser is renamed `uleb`. It now checks for overflow, and
badly-formed bits, resp. `TooLarge` or `Eof`. More test cases are
added, whose from the DWARF 4 standard.
2020-02-13 13:36:18 +01:00
1ad42d81cb doc(interface-types) Improve documentation of decoders::binary::leb. 2020-02-13 11:41:02 +01:00
b7941f4019 feat(interface-types) Ensure ast::Type is always well-formed.
As @MarkMcCaskey noted, `Type` can be corrupted because `field_names`
and `field_types` must have the same length. This patch removes the
public visibility, and adds methods like `new`, `add_field`,
`field_names` and `field_types` to encapsulate `Type` internal data.
2020-02-13 11:24:29 +01:00
13b9cb3995 doc(interface-types) Improve the documentation of the interpreter module. 2020-02-12 17:37:06 +01:00
6b0e43b7c4 doc(interface-types) Improve the documentation of the instruction module. 2020-02-12 16:01:33 +01:00
b3c102da37 doc(interface-types) Improve documentation of the instruction module.
Also, rename `RepeatWhile` to `RepeatUntil`.
2020-02-12 15:59:41 +01:00
98c73099c3 doc(interface-types) Improve documentation of the macros module. 2020-02-12 15:52:15 +01:00
c5b963b81b doc(interface-types) Improve documentation of the wat module. 2020-02-10 17:12:32 +01:00
55ae0e474e doc(interface-types) Add a doctest for decoders::binary::parse. 2020-02-10 16:48:25 +01:00
98fb0697d1 test(interface-types) Test the parse parser. 2020-02-10 16:39:34 +01:00
9fda6f9451 doc(interface-types) Improve documentation of the binary module. 2020-02-10 16:39:06 +01:00
2fc1fbb7ec doc(interface-types) Improve documentation of the ast module. 2020-02-10 15:44:28 +01:00
d667cb8e2f doc(interface-types) Improve documentation of the ast module. 2020-02-10 15:41:41 +01:00
36c7dbd92f feat(interface-types) Rename ImportedFunction to Import.
So that we are consistent with `Export`.
2020-02-10 15:41:10 +01:00
32325c1861 doc(interface-types) Improve module descriptions. 2020-02-10 15:27:04 +01:00
d63508f19e doc(interface-types) Improve documentation of the stack module. 2020-02-10 15:23:28 +01:00
e098934328 doc(interface-types) Improve documentation of the crate itself. 2020-02-10 15:22:56 +01:00