aquavm/CHANGELOG.md
2021-11-24 17:57:14 +03:00

5.9 KiB

Version 0.17.0 (2021-11-24)

PR 172:
A new instruction intended to restrict a scope of variables was introduced to AquaVM.

PR 168:
AIR parser and AST was highly refactored to be more suitable to the scalar/stream restriction scheme used in AIR instructions.

PR 164:
SecurityTetraplet was decoupled with marine-rs-sdk to have the only one definition in AquaVM that then exported by marine-rs-sdk.

PR 162:
The scalar scoping scheme was improved in order to support more than two scope levels.

Version 0.16.0 (2021-10-18)

PR 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, PR 152, PR 153 PR 160
Some parts of the interpreter has been refactored to make it more modular.

PR 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:

  • 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
Senders in RequestSentBy could be different now.

PR 138
The computation algo for subtrace_len was completely refactored.

PR 136
serde and serde_json crates were used without locking their version

PR 133
fixed bug with applying json path to an empty stream

PR 132
fix bug with json flattening

Version 0.14.0 (2021-08-24)

PR 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)

Version 0.10.7 (2021-07-01)

  • add support of a particle file vault (PR 120)

Version 0.10.6 (2021-06-10)

  • fixed the error message for incorrect json path in %last_error% (PR 119)

Version 0.10.5 (2021-06-10)

  • json path applied to scalar values becomes non-joinable (PR 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).

Version 0.10.3-0.10.1 (2021-06-04)

  • improved logger initialization and interface for wasm-bindgen target (PR 116, PR 115).

Version 0.10.0 (2021-06-09)

  • %last_error% becomes an object of type
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).

Version 0.1.3 (2020-11-11)

  • Switched to the new LALRPOP parser (PR 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)

  • Iterator in the Fold becomes resolvable (PR 23)

Version 0.1.2 (2020-10-29)

  • Added new data format (PR 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):
    • 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