- the interpreter become async, now it's a pure function without any imports from a peer. Instead of calling import `call_service` from a peer, it now returns call results in the outcome structure, and receives their result in the `invoke` export.
- data structure now includes a new field to track last call request id to give peer more freedom.
- AVM server was completely refactored to support the new interpreter model and to expose a new trait storing data for a node.
- introduced a new CRDT-like data format for streams:
- call results contains different values for streams and scalars
- introduced a new state for fold whose iterables are streams
- merging scheme was rewritten, and became lazy
- refactor the internal value mechanism
- introduced a new instruction `(ap` responsible for applying json path to scalars and save results as a new scalar or add it to a stream. In the second case it'll produce a new state in a data.
- introduced a new string literal `[]` represents empty array
- improved logger initialization and interface for wasm-bindgen target ([PR 116](https://github.com/fluencelabs/aquavm/pull/116), [PR 115](https://github.com/fluencelabs/aquavm/pull/115)).
## Version 0.10.0 (2021-06-09)
-`%last_error%` becomes an object of type
```rust
pub struct LastError {
/// text representation of an instruction that caused the last error
pub instruction: String,
/// text representation of an error message
pub msg: String,
}
```
and it's possible to address its fields separately: `%last_error%.$.instruction`, `%last_error%.$.msg` ([PR 112](https://github.com/fluencelabs/aquavm/pull/112)).
- interpreter decoupled into two crates: `interpreter-lib` and `interpreter`. To build it for the FCE target the `fce` feature should be specified (`fce build --features fce`)