7 Commits

Author SHA1 Message Date
Ivan Boldyrev
0d53f2bab1
feat(execution-engine): Rc-based JSON value (#813)
Use custom JSON value type with Rc inside.  It cannot be edited, but producing new values based on child element is very cheap.

This new type is used exclusively in AquaVM internals.  Interface APIs use serde_json's Value or JSON strings, as before.
---------

Co-authored-by: raftedproc <71657594+raftedproc@users.noreply.github.com>
2024-02-13 19:11:21 +07:00
raftedproc
b4cbf8f621
feat(execution-engine)!: canon stream map support [fixes VM-301] (#648)
* feat(execution-engine)!: canon stream map support [fixes VM-301]
	Canon stream map is a CRDT-like map structure that contains a
	canonicalized stream map and allows indexed access to its
	contents. ATM CSM supports both strings and int64 keys.
2023-09-07 11:30:24 +03:00
Mike Voronov
20ae5eeeb9
feat(execution-engine): rename boxed_values into value_types (#664) 2023-08-07 20:00:02 +03:00
Mike Voronov
eca52b7191
feat(execution-engine)!: refactor streams [fixes VM-255] (#621)
Refactored stream and stream generation a lot, it introduces the following changes:
- no generation in data anymore, AquaVM relies on generation inside data to stay valid and places value accordingly to it
- stream is internally divided into previous, current, and new values, before, it was one array for all of them
- recursive streams cursors are refactored and rely on new generation values instead
- the Generation enum was refactored and now contains the source of the generation
2023-08-03 21:07:57 +03:00
Ivan Boldyrev
1d98afeb34
feat(interpreter-data): Introduce source information for canon data (#577)
* `ValueAggregate` refactoring

0. Service results, canon results and literals are constructed as
   separate types that are further wrapped with `ValueAggregate`.
1. `ValueAggregate` is enum that contains all the provenance info.
2. Construction methods get provenance information as well.

* Rename CID state field

Prepare to adding a canon CID field: rename `canon_tracker`/`canon_store`
to `canon_element_tracker`/`canon_element_store`.

* Add canon result store/tracker

* Rename some structs that have CIDs inside

Reflect explicitly that they contain CIDs inside:

`CanonResultAggregate` -> `CanonResultCidAggregate`
`ServiceResultAggregate` -> `ServiceResultCidAggregate`

---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-05-08 19:42:41 +07:00
raftedproc
47a7a87925
chore(execution-engine): replace IncompatibleJValueType with more specific FoldIteratesOverNonArray in fold (#502) 2023-03-09 14:37:39 +03:00
Mike Voronov
1fc132d0d0
chore(execution-engine): rename air folder to instructions (#417) 2022-12-27 18:40:10 +03:00