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