637ff1e316
feat(interface-types) Rename call
to call-core
, and remove call-export
.
2020-03-09 14:33:17 +01:00
c295adbaa8
Prepare for 0.15.0 release
2020-03-04 12:26:19 -08:00
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
c157bdaf63
test(interface-types) Test when lowering or lifting fails because of the value.
2020-03-03 17:10:10 +01:00
6576dfd64b
test(interface-types) Add test cases for errors.
2020-03-03 17:04:26 +01:00
30e72eb796
feat(interface-types) Implement lifting and lowering instructions.
2020-03-03 16:57:05 +01:00
c0933c52ca
feat(interface-types) Fix clippy errors and warnings.
2020-02-26 17:02:52 +01:00
bff63e3fad
Merge branch 'master' into feat-interface-types-update-to-last-standard-version
2020-02-26 16:22:56 +01:00
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
f951b6aa53
feat(interface-types) Remove abandonned instructions.
2020-02-26 15:48:00 +01:00
350a30507f
fix(interface-types) arg.get
's index is of type u32
.
2020-02-26 15:42:29 +01:00
3653c42e23
test(interface-types) Test adapter to binary.
2020-02-26 15:38:59 +01:00
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
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
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