## Version 0.16.0 (2021-10-18) [PR 154](https://github.com/fluencelabs/aquavm/pull/154) The json path crate has been removed and changed to custom lambda scheme that have a subset of functionality of json path used by the Aqua compiler. The flattening sign `!` is still allowed now, but does nothing. [PR 150](https://github.com/fluencelabs/aquavm/pull/150), [PR 152](https://github.com/fluencelabs/aquavm/pull/152), [PR 153](https://github.com/fluencelabs/aquavm/pull/153) [PR 160](https://github.com/fluencelabs/aquavm/pull/160) Some parts of the interpreter has been refactored to make it more modular. [PR 144](https://github.com/fluencelabs/aquavm/pull/144) The interpreter changed to be built with `unwind` panic handler and some other debug options were turned on. ## Version 0.15.0 (2021-10-04) [PR 140](https://github.com/fluencelabs/aquavm/pull/130): - 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. [PR 139](https://github.com/fluencelabs/aquavm/pull/139) Senders in `RequestSentBy` could be different now. [PR 138](https://github.com/fluencelabs/aquavm/pull/138) The computation algo for `subtrace_len` was completely refactored. [PR 136](https://github.com/fluencelabs/aquavm/pull/136) `serde` and `serde_json` crates were used without locking their version [PR 133](https://github.com/fluencelabs/aquavm/pull/133) fixed bug with applying json path to an empty stream [PR 132](https://github.com/fluencelabs/aquavm/pull/132) fix bug with json flattening ## Version 0.14.0 (2021-08-24) [PR 74](https://github.com/fluencelabs/aquavm/pull/74): - 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 ## Version 0.10.8 (2021-07-06) - improve the error message of the invalid executed state error ([PR 121](https://github.com/fluencelabs/aquavm/pull/121)) ## Version 0.10.7 (2021-07-01) - add support of a particle file vault ([PR 120](https://github.com/fluencelabs/aquavm/pull/120)) ## Version 0.10.6 (2021-06-10) - fixed the error message for incorrect json path in `%last_error%` ([PR 119](https://github.com/fluencelabs/aquavm/pull/119)) ## Version 0.10.5 (2021-06-10) - json path applied to scalar values becomes non-joinable ([PR 118](https://github.com/fluencelabs/aquavm/pull/118)) ## Version 0.10.4 (2021-06-09) - `%last_error%` includes `peer_id` now, that contains id of a peer where an error occurred ([PR 117](https://github.com/fluencelabs/aquavm/pull/117)). ## Version 0.10.3-0.10.1 (2021-06-04) - 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)). ## Version 0.1.3 (2020-11-11) - Switched to the new LALRPOP parser ([PR 13](https://github.com/fluencelabs/aquavm/pull/13)): - arguments should be wrapped with square braces [] - empty results in call allowed and lead to forget a call result - Added a few benchmarks - Fixed behaviour of the Xor instruction with inner Par instructions ([PR 19](https://github.com/fluencelabs/aquavm/pull/19)) - Iterator in the Fold becomes resolvable ([PR 23](https://github.com/fluencelabs/aquavm/pull/23)) ## Version 0.1.2 (2020-10-29) - Added new data format ([PR 12](https://github.com/fluencelabs/aquavm/pull/12)): - previously data was a hashmap with variable names to values, and now it is call evidence path that contains call and par evidence states - logger is refactored and supports now several log targets - 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`) ## Version 0.1.1 (2020-10-23) - Added join behaviour ([PR 11](https://github.com/fluencelabs/aquavm/pull/11)): - if `call` uses non existing variable, it is just being passed and isn't executed without any error - `par` becomes completed when at least one of its subtree is completed