Commit Graph

3147 Commits

Author SHA1 Message Date
11687c57ca feat(interface-types) Encodes/decodes the record.lower instruction. 2020-04-02 12:05:22 +02:00
b8ef82d1d0 test(interface-types) Rename test cases. 2020-04-02 11:59:35 +02:00
a1551b52af test(interface-types) Rename a test case. 2020-04-02 11:58:05 +02:00
aab82c122d feat(interface-types) Implement From<&Vec<InterfaceValue>> for RecordType. 2020-04-02 11:55:54 +02:00
3411ac7a1c feat(interface-types) Move serde::InterfaceTypeIterator into values::FlattenInterfaceValueIterator. 2020-04-02 11:55:20 +02:00
5ba6fda1c9 chore(interface-types) Improve code readibility of string instructions. 2020-04-02 11:51:34 +02:00
976bf9b6a3 Move integration tests to tests dir in workspace root 2020-04-01 17:09:51 -07:00
0527b50af3 Improve consistency of names, reuse more code, and reorganize a bit 2020-03-31 16:00:52 -07:00
bde319d9fb Fix bug and un-deprecate Instance::call 2020-03-31 14:06:30 -07:00
836711f7cd Implement Instance::call in terms of the exports API 2020-03-31 12:40:55 -07:00
50fcd57e45 Improve consistency and add misc clean ups 2020-03-31 12:37:50 -07:00
1a17cbb17e test(interface-types) Deserialize WIT record to Rust struct. 2020-03-31 14:44:04 +02:00
02b7e21345 feat(interface-types) Implement the record.lift instruction. 2020-03-31 12:34:32 +02:00
0af1076eee feat(interface-types) Encodes/decodes the record.lift instruction. 2020-03-31 08:17:52 +02:00
3655ef8bb7 chore(interface-types) Reorganize the serde module. 2020-03-31 08:02:46 +02:00
ee57b47770 feat(interface-types) Improve the Deserializer API. 2020-03-31 07:47:54 +02:00
c87c2ef33b feat(interface-values) Improve the TypeMismatch error. 2020-03-31 07:47:15 +02:00
403d4b4c8b Merge branch 'master' into feature/update-api 2020-03-30 17:40:18 -07:00
7ca721bd83 Update from feedback
Deprecate more methods on `Instance`, add `into_iter` method on
`Exports`, add FuncSig to ImportType and other updates.
2020-03-30 17:38:51 -07:00
154dcba42c feat(interface-types) Implement Serde deserializing for WIT records to Rust values.
WIT values are native Rust values. But records are represented as a
vector of WIT values. In order to provide a super neat API to the
user, Serde is used to deserialize this vector of WIT values to a
large variety of Rust values.
2020-03-30 15:42:35 +02:00
a99ae6bdb2 feat(interface-types) Add the Record WIT value. 2020-03-30 08:32:31 +02:00
c4c4adb7bf Merge branch 'master' into feature/llvm-target-triple 2020-03-28 11:55:37 -07:00
baa74d7385 Merge pull request #1335 from Hywan/fix-runtime-c-api-1314
fix(runtime-c-api) Change mutability of `memory` to`const` in `wasmer_memory_data_length`
2020-03-28 10:41:33 -07:00
b7ad8b2c7a Merge pull request #1337 from Hywan/fix-interface-types-remove-as
feat(interface-types) Better handling of i32 to usize casts
2020-03-28 10:41:06 -07:00
5b7a06c07b Use the inkwell package on crates.io!! 2020-03-27 15:47:50 -07:00
7cd9e82015 Simplify ImportType 2020-03-27 14:00:02 -07:00
5bd6b161d5 Create a valid target triple in the LLVM Module. 2020-03-27 13:54:18 -07:00
a0dca15fbc Add misc. fixes and updates from feedback 2020-03-27 13:25:51 -07:00
2276d16f36 Merge branch 'master' into fix-runtime-c-api-1314 2020-03-27 07:48:23 +01:00
3eff8c1973 Convert usages of Instance::{func,dyn_func} to exports.get 2020-03-26 18:13:45 -07:00
2fb8f8197b Deprecate Instance::func and Instance::dyn_func 2020-03-26 17:11:37 -07:00
a18371eb91 Implement instance.exports field syntax 2020-03-26 16:24:23 -07:00
bd9226eb68 feat(interface-types) Introduce RecordType for InterfaceType and Type.
The `Type::Record` variant now is defined by `RecordType`. In
addition, `InterfaceType` has a new variant: `Record`, that is also
defined by `RecordType`. Encoders and decoders are updated to consider
`RecordType`, which removes code duplication and simplify code.
2020-03-26 13:35:24 +01:00
3c02c501ed chore(interface-types) Move the instruction.rs module in instructions/mod.rs. 2020-03-26 11:24:10 +01:00
734795c1f4 test(interface-types) Test Type::Record. 2020-03-26 11:18:24 +01:00
bbb4f1fc0f feat(interface-types) Introduce the record type.
This patch updates the `Type` type to be an enum with 2 variants:
`Function` and `Record`, resp. to represent:

1. `(@interface type (func (param i32 i32) (result string)))`
2. `(@interface type (record string i32))`

This patch updates the binary encoder and decoder, along with the WAT
encoder and decoder.
2020-03-26 10:54:58 +01:00
6e5d9624f1 feat(interface-types) Simplify code by implementing From<TryFromIntError>. 2020-03-26 10:49:49 +01:00
25cd6cd24a feat(interface-types) Add the NegativeValue instruction error. 2020-03-26 08:31:06 +01:00
f3be7981d2 test(interface-types) Test negative pointer or length in string.lift_memory. 2020-03-26 08:30:32 +01:00
86b545fd49 fix(interface-types) Avoid integer overflows in string instructions. 2020-03-26 08:27:51 +01:00
0e70e538cc fix(interface-types) Instruction::CallCore.function_index is a u32. 2020-03-26 07:53:44 +01:00
b0879d1d12 fix(interface-types) Cast index to usize to compare index to length.
The index is bound to `u32::max_value()`. The invocation inputs'
length is bound to `usize::max_value()`, which can be
`u64::max_value`. Consequently, casting the invocation inputs' length
to `u32` can lead to an integer overflow. It is better to cast `index`
to `usize` when comparing with the invocation inputs' length.
2020-03-26 07:46:59 +01:00
6eaf87d651 chore(runtime-c-api) Update C/C++ headers. 2020-03-26 07:32:57 +01:00
9826ff3813 fix(runtime-c-api) Change mutability of memory for const in wasmer_memory_data_length. 2020-03-26 07:30:34 +01:00
4a86cd16f9 Merge branch 'master' into feat-interface-types-new-types-and-instructions 2020-03-26 07:26:37 +01:00
c14c88fb72 Improve high level API test 2020-03-25 16:14:04 -07:00
cc13e45215 Add skeleton of external API and tests 2020-03-24 18:59:09 -07:00
697da669a1 Minor code update, move conditional block inwards 2020-03-24 16:00:32 -07:00
ce1b1f67cf Update opt name in CompilerConfig, enable IR verification in spectests 2020-03-24 15:46:58 -07:00
403e14bc1e Add CompilerConifg opt to disable IR verification in debug mode 2020-03-24 14:52:02 -07:00