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
Ivan Enderlin
165a8ca585
feat(interface-types) Forwarded adapters have been removed.
2020-02-24 15:56:11 +01:00
Ivan Enderlin
1f2a5640a6
feat(interface-types) The “helper adapter” has been removed.
2020-02-24 15:49:03 +01:00
Ivan Enderlin
09e57b7156
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
2d7cd2b52a
Merge branch 'master' into doc-readme-logo
2020-02-21 13:41:35 +01:00
Ivan Enderlin
b2b40e7c36
doc(readme) Fix logo.
2020-02-21 13:39:43 +01:00
Ivan Enderlin
5f4862d6da
Merge branch 'master' into feat-interface-types-decoders-wat
2020-02-21 12:24:52 +01:00
Ivan Enderlin
ea855d29bd
doc(interface-types) Add intra links.
2020-02-21 12:23:58 +01:00
Ivan Enderlin
bae5cfbbe3
feat(interface-types) Add the parse
public API.
...
Also rename `kw` to `keyword`.
2020-02-21 12:23:20 +01:00
Mark McCaskey
732a2a3c86
Prepare for 0.14.0 release
2020-02-20 13:15:29 -08:00
Ivan Enderlin
0767560b79
fix(interface-types) Remove #[allow(unused)]
.
2020-02-20 15:16:35 +01:00
Ivan Enderlin
10bcb3dc90
feat(interface-types) Decode instructions in WIT's text format.
2020-02-20 15:13:11 +01:00
Ivan Enderlin
9b98a211cd
feat(interface-types) Replace nom by wast for decoding WIT's text format.
2020-02-20 14:43:58 +01:00
Ivan Enderlin
e90365beb1
feat(interface-types) Parse Adapter
in the WAT decoders.
2020-02-19 17:41:06 +01:00
Ivan Enderlin
d07542fbb4
feat(interface-types) Parse Import
in the WAT decoders.
2020-02-19 17:20:18 +01:00
Ivan Enderlin
b9ce5b7956
feat(interface-types) Start implementing the WAT decoder.
2020-02-19 16:12:06 +01:00
Ivan Enderlin
e17c652b57
Merge branch 'master' into feat-interface-types-encoders-binary
2020-02-18 09:57:29 +01:00
Ivan Enderlin
99ac4ad198
doc(interface-types) Add a README.md
file.
2020-02-17 14:48:58 +01:00
Ivan Enderlin
15ecce7060
test(interface-types) Test roundtrip: AST to binary to AST.
2020-02-17 13:55:59 +01:00
Ivan Enderlin
fdcc511dd8
test(interface-types) Fix one bug and write the test suite.
2020-02-17 13:55:59 +01:00
Ivan Enderlin
50cbe79151
feat(interface-types) Add the binary encoder.
2020-02-17 13:55:59 +01:00
Ivan Enderlin
1f7c268f41
fix(interface-types) Remove a dbg!
macro.
2020-02-14 12:19:29 +01:00
Ivan Enderlin
2b94c65141
feat(interface-types) Forbids unsafe code.
2020-02-13 14:36:17 +01:00
Ivan Enderlin
836c848c61
doc(interface-types) Add #[deny(missing_docs)]
.
2020-02-13 14:34:45 +01:00
Ivan Enderlin
32bf806f9b
chore(interface-types) Simplify code.
2020-02-13 14:26:50 +01:00
Ivan Enderlin
8748597483
chore(encoders) Changing unimplemented!()
to todo!()
.
2020-02-13 14:24:07 +01:00
Ivan Enderlin
ed06fc0482
feat(encoders) Implement ToString
instead of From<…> for String
.
2020-02-13 14:19:31 +01:00
Ivan Enderlin
276478d1ed
chore(decoders) Simplify code.
2020-02-13 13:56:30 +01:00
Ivan Enderlin
6314ebcbd6
chore(decoders) Simplify code.
2020-02-13 13:54:26 +01:00
Ivan Enderlin
ab717513ec
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
9a185a0bf6
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
074108d91b
doc(interface-types) Improve documentation of decoders::binary::leb
.
2020-02-13 11:41:02 +01:00
Ivan Enderlin
80f317a1eb
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
8ba931e33f
doc(interface-types) Improve the documentation of the interpreter
module.
2020-02-12 17:37:06 +01:00
Ivan Enderlin
278a743e60
doc(interface-types) Improve the documentation of the instruction
module.
2020-02-12 16:01:33 +01:00
Ivan Enderlin
ddf6711045
doc(interface-types) Improve documentation of the instruction
module.
...
Also, rename `RepeatWhile` to `RepeatUntil`.
2020-02-12 15:59:41 +01:00
Ivan Enderlin
1749af20f5
doc(interface-types) Improve documentation of the macros
module.
2020-02-12 15:52:15 +01:00