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
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
Ivan Enderlin
cda53a57b5
feat(interface-types) Replace nom by wast for decoding WIT's text format.
2020-02-20 14:43:58 +01:00
Ivan Enderlin
00e36508d6
feat(interface-types) Parse Adapter
in the WAT decoders.
2020-02-19 17:41:06 +01:00
Ivan Enderlin
2e78cf1fc0
feat(interface-types) Parse Import
in the WAT decoders.
2020-02-19 17:20:18 +01:00
Ivan Enderlin
c97122899d
feat(interface-types) Start implementing the WAT decoder.
2020-02-19 16:12:06 +01:00
Ivan Enderlin
cc93f3197b
Merge branch 'master' into feat-interface-types-encoders-binary
2020-02-18 09:57:29 +01:00
Ivan Enderlin
d6cd1fa6c4
doc(interface-types) Add a README.md
file.
2020-02-17 14:48:58 +01:00
Ivan Enderlin
306d19274b
test(interface-types) Test roundtrip: AST to binary to AST.
2020-02-17 13:55:59 +01:00
Ivan Enderlin
8736f0548e
test(interface-types) Fix one bug and write the test suite.
2020-02-17 13:55:59 +01:00
Ivan Enderlin
1149158589
feat(interface-types) Add the binary encoder.
2020-02-17 13:55:59 +01:00
Ivan Enderlin
0c4c9107d5
fix(interface-types) Remove a dbg!
macro.
2020-02-14 12:19:29 +01:00
Ivan Enderlin
eb2f9db230
feat(interface-types) Forbids unsafe code.
2020-02-13 14:36:17 +01:00
Ivan Enderlin
9559747394
doc(interface-types) Add #[deny(missing_docs)]
.
2020-02-13 14:34:45 +01:00
Ivan Enderlin
ae6e26158f
chore(interface-types) Simplify code.
2020-02-13 14:26:50 +01:00
Ivan Enderlin
6891517c8b
chore(encoders) Changing unimplemented!()
to todo!()
.
2020-02-13 14:24:07 +01:00
Ivan Enderlin
13cee90d17
feat(encoders) Implement ToString
instead of From<…> for String
.
2020-02-13 14:19:31 +01:00
Ivan Enderlin
722727bd56
chore(decoders) Simplify code.
2020-02-13 13:56:30 +01:00
Ivan Enderlin
d8f923091f
chore(decoders) Simplify code.
2020-02-13 13:54:26 +01:00
Ivan Enderlin
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
Ivan Enderlin
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
Ivan Enderlin
1ad42d81cb
doc(interface-types) Improve documentation of decoders::binary::leb
.
2020-02-13 11:41:02 +01:00
Ivan Enderlin
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
Ivan Enderlin
13b9cb3995
doc(interface-types) Improve the documentation of the interpreter
module.
2020-02-12 17:37:06 +01:00
Ivan Enderlin
6b0e43b7c4
doc(interface-types) Improve the documentation of the instruction
module.
2020-02-12 16:01:33 +01:00
Ivan Enderlin
b3c102da37
doc(interface-types) Improve documentation of the instruction
module.
...
Also, rename `RepeatWhile` to `RepeatUntil`.
2020-02-12 15:59:41 +01:00
Ivan Enderlin
98c73099c3
doc(interface-types) Improve documentation of the macros
module.
2020-02-12 15:52:15 +01:00
Ivan Enderlin
c5b963b81b
doc(interface-types) Improve documentation of the wat
module.
2020-02-10 17:12:32 +01:00
Ivan Enderlin
55ae0e474e
doc(interface-types) Add a doctest for decoders::binary::parse
.
2020-02-10 16:48:25 +01:00
Ivan Enderlin
98fb0697d1
test(interface-types) Test the parse
parser.
2020-02-10 16:39:34 +01:00
Ivan Enderlin
9fda6f9451
doc(interface-types) Improve documentation of the binary
module.
2020-02-10 16:39:06 +01:00
Ivan Enderlin
2fc1fbb7ec
doc(interface-types) Improve documentation of the ast
module.
2020-02-10 15:44:28 +01:00
Ivan Enderlin
d667cb8e2f
doc(interface-types) Improve documentation of the ast
module.
2020-02-10 15:41:41 +01:00
Ivan Enderlin
36c7dbd92f
feat(interface-types) Rename ImportedFunction
to Import
.
...
So that we are consistent with `Export`.
2020-02-10 15:41:10 +01:00
Ivan Enderlin
32325c1861
doc(interface-types) Improve module descriptions.
2020-02-10 15:27:04 +01:00
Ivan Enderlin
d63508f19e
doc(interface-types) Improve documentation of the stack
module.
2020-02-10 15:23:28 +01:00