- Rename data's
cid_store
field tovalue_store
. - Canon data is stored with CIDs. Values, tetraplets and canon elements
are stored as CIDs resolved with data's
value_store
,tetraplet_store
andcanon_store
fields respectively. - Group stores in the data into
cid_info: CidInfo
field.
PR 414:
Remove the InterpreterOutcome::cid
as it is not really neaded,
but makes integration more difficult.
PR 401:
Call result values are stored as CIDs in the data trace. These CIDs refer
to a new cid_store
data's field that maps a CID string to a value.
PR 298: Reduce stream scopes in order to prohibit nondeterministic behaviour
PR 366:
Save order between current generations
PR 362:
Partially revert PR 340 due to fixes in PR 358
PR 360:
Allow using stream without insertion
PR 358:
Implement a temporary fix for fold with canon
PR 340:
Change behaviour of folds over streams
PR 335:
Introduce never
instruction
PR 332:
Fix bug with incorrect positions in canon
instruction
PR 314:
The length functor was introduced
PR 307:
bug with iteration over empty canonicalized stream was fixed
PR 305:
bug with absence of join behaviour for canonicalized streams in fold instructions was fixed
PR 303:
unsafe code for LambdaAST
creation was removed
PR 301:
bug with adding just executed values to a restricted stream was fixed
PR 292:
Introduced a new canon
instruction
PR 296:
A bug with an inappropriate check of states in the Ap
merger was fixed
PR 294:
Accompanying to air-interpreter update that makes interface more handy for air-trace
PR 287:
Memory leak introduced by switching to reactor/command model in WASI fixed
PR 276:
AquaVM performance was improved by removing excess logging
PR 273:
Introduced TracePos
for TraceHandler
positions
PR 270:
A bug with empty subtrace lore in TraceHandler was fixed
PR 253:
Introduced %ttl% keyword
PR 250:
Introduced %timestamp% keyword
PR 248:
Introduced new for scalars
PR 244:
Stack size was increased to 50 MiB
PR 243:
Clean scalars at the end of scope, only one next in a fold over scalar is possible now
PR 231:
Test refactoring
PR 228:
Improve stream determinism
PR 225:
Introduce recursive streams
PR 224 PR 220 PR 217 PR 215 PR 212 PR 207:
Various bugs were fixed
PR 210:
Add API for returning AquaVM consumed memory size
PR 205:
Supported scalars in fail
instructions.
PR 202 PR 198:
AquaVM errors mechanism was completely refactored.
PR 207:
Fixed bug with empty array in match
.
PR 196:
Introduced fail instruction.
PR 194:
Added variables names in resolve errors.
PR 192:
Added a possibility to use scalars in lambdas.
PR 190, PR 186, PR 185, PR 182, PR 181:
Bug fixing.
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.
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.
- 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 theinvoke
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
- 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
- improve the error message of the invalid executed state error (PR 121)
- add support of a particle file vault (PR 120)
- fixed the error message for incorrect json path in
%last_error%
(PR 119)
- json path applied to scalar values becomes non-joinable (PR 118)
%last_error%
includespeer_id
now, that contains id of a peer where an error occurred (PR 117).
%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).
-
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)
- 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
andinterpreter
. To build it for the FCE target thefce
feature should be specified (fce build --features fce
)
- 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 subgraph is completed
- if