184 Commits

Author SHA1 Message Date
renovate[bot]
839c3200a9
chore(deps): update rust crate serde to 1.0.159 (#565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 02:34:34 +07:00
renovate[bot]
648f297a2b
fix(deps): update rust crate marine-rs-sdk to 0.7.1 (#568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-09 16:27:37 +01:00
raftedproc
658daf1d3f
feat(trace-handler): TracePos becomes a wrapper for u32 alias [fixes VM-267] (#544) 2023-04-05 11:50:15 +03:00
Ivan Boldyrev
73c1ba70cc
feat(aquavm-air-cli)!: Usability enhancements (#540)
* Fix aquavm-air-cli release-please config
* Print a prompt when AIR is read from stdin
* Make `run --plain --data` arg optional
* Rename `... --data` to `... --current-data`
* Update AIR cli README
2023-03-27 16:27:01 +07:00
fluencebot
28cf5045b6
chore: release master (#542)
* chore: release master

* chore: Bump air-interpreter version to 0.39.0
2023-03-23 17:37:30 +07:00
Ivan Boldyrev
d5028942e4
feat(interpreter-data)!: New data format for calls (#501)
BREAKING CHANGE:
1. Call values in the trace have CID references to structures that have call arguments' hash and CID references to values and tetraplets.
2. If call value is unused, it is serialized with `Unused` variant, and CID references are not stored.

Previous data scheme was (Scalar as an example, other cases are similar):

```
Scalar(CID<JValue>) ---<value_store>----> JValue
```

New data scheme is much more sophisticated:

```
Scalar(CID<ServiceResultAggregate>) ---+
                                       |
  +----<service_result_store>----------+
  |
  +-------> ServiceResultAggregate:
               value_cid ------------<value_store>----> JValue
               tetraplet_cid --------<tetraplet_store>----> SecurityTetraplet
               argument_hash: String
```
`Stream` variant is similar, however, `Unused` is different: it has value CID only, but the value is not stored into the `value_store`:

```
Unused(Rc<CID<JValue>>) ---> X
```

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-03-21 19:12:04 +07:00
raftedproc
631abd4ec4
chore(execution-engine): this commit adds a set of trace-related negative tests for UncatchableError [fixes VM-263] (#532)
chore(execution-engine): this commit adds a set of trace-related
negative tests for UncatchableError [fixes VM-263]
2023-03-21 00:31:36 +03:00
renovate[bot]
2c8d02d271
chore(deps): update rust crate serde to 1.0.158 (#536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-21 00:28:18 +07:00
renovate[bot]
282ff9de70
chore(deps): update rust crate thiserror to 1.0.40 (#537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-20 23:23:46 +07:00
Anatolios Laskaris
0a524a5863
chore: Remove versions from dev deps (#526)
Remove versions from dev deps
2023-03-20 14:44:07 +02:00
raftedproc
548e458f1c
chore(execution-engine): this removes useless InvalidCanonStreamInData error (#529) 2023-03-17 17:15:28 +03:00
Mike Voronov
93c54431b9
chore(execution-engine): remove unnecessary value_to_pos logic (#527)
remove unncessary value_to_pos logic
2023-03-16 21:12:43 +03:00
raftedproc
f1975becb3
chore(execution-engine): a set of trace-unrelated negative tests for UncatableError [fixes VM-263] (#519) 2023-03-16 19:06:26 +03:00
fluencebot
eb55564369
chore: release master (#524)
* chore: release master

* chore: Bump air-interpreter version to 0.38.0
2023-03-15 17:32:29 +02:00
Anatoly Laskaris
5d2d9a9a60 Fix test-utils version 2023-03-15 17:30:04 +02:00
Anatolios Laskaris
a22e2dd3fb
chore: Revert "chore: release master (#520)" (#523)
Revert "chore: release master (#520)"

This reverts commit 7aa5d4bef5a86085dc9ead723e8799a89bd544e7.
2023-03-15 17:21:47 +02:00
fluencebot
7aa5d4bef5
chore: release master (#520)
* chore: release master

* chore: Bump air-interpreter version to 0.38.0
2023-03-15 17:35:44 +03:00
Ivan Boldyrev
a96a52db27
chore: fix some Cargo.tomls (#521)
* chore: fix some Cargo.tomls

* chore: publish `air-testing-framework`

As it is a dev dependency to `aquavm-air` crate.
2023-03-15 21:28:10 +07:00
Valery Antopol
126d5507c8
feat(avm)!: integrate Marine 0.26.0 (#461) 2023-03-15 17:11:53 +03:00
fluencebot
3ac1d03868
chore: release master (#515)
* chore: release master

* chore: Bump air-interpreter version to 0.37.1
2023-03-15 19:29:59 +07:00
Anatolios Laskaris
8cf969762a
chore: Rename air-parser (#518)
* Rename air-parser

* Fix

* Set version

* Fix

* Fix?

* Fix?

* Fix
2023-03-15 14:10:25 +02:00
Ivan Boldyrev
79ac153f1d
feat(tools): merge some tools into the air CLI tool (#509)
* feat(tools): merge some tools into the `air` CLI tool

`air-beautify` and `air-trace` are merged into a single `air` tool.  Its
crate name is `fluence-air-cli` as otherwise it confilicts with `air`
interpreter crate.  The tool has subcommands `beautify`, `run`
and `stats`.

* Add one-letter aliases to `air` CLI subcommands

+ `air beautify` => `air b`
+ `air run` => `air r`
+ `air stats` => `air s`

---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-03-15 16:59:30 +07:00
raftedproc
790d3c2119
chore(execution-engine): unused ApResultNotCorrespondToInstr cleanup (#513)
Remove `UncatchableError::ApResultNotCorrespondToInstr`

This transformation is valid only if `MergerApResult` has only two
variants mentioned in previos version.

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-03-14 23:23:12 +03:00
fluencebot
d99272f9d3
chore: release master (#491) 2023-03-14 19:08:48 +03:00
raftedproc
4f1a617bf5
chore(execution-engine): VM execution step negative tests [fixes VM-262] (#511) 2023-03-13 16:34:37 +03:00
renovate[bot]
62da247c3a chore(deps): update rust crate semver to 1.0.17 (#510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 15:59:38 +03:00
renovate[bot]
eb1425de25
chore(deps): update rust crate serde to 1.0.155 (#508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 14:35:50 +07:00
renovate[bot]
f87d1cb373
chore(deps): update rust crate thiserror to 1.0.39 (#507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-11 13:28:33 +03:00
renovate[bot]
16265f97b0
chore(deps): update rust crate serde to 1.0.154 (#506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-11 13:28:15 +03:00
Ivan Boldyrev
271b74d8f2
fix(air): demote some AquaVM logging statements (#505)
Users complain that `warn` level produces lot of unnecessary logs.

+ join behavior logging is demoted to `trace`;
+ xor logging is demoted to `trace`;
+ service error logging is demoted to `debug`.
2023-03-11 01:09:23 +07:00
raftedproc
cb9c426a35
chore(execution-engine): Some stream-related LambdaError are unjoinab… (#503)
chore(execution-engine): Some stream-related LambdaError are unjoinable b/c: canon stream replaces normal stream, when canon stream  is used, it is materialized and its size is known
2023-03-10 12:46:20 +03:00
raftedproc
47a7a87925
chore(execution-engine): replace IncompatibleJValueType with more specific FoldIteratesOverNonArray in fold (#502) 2023-03-09 14:37:39 +03:00
raftedproc
56d3ab254e
chore(execution-engine) This commit adds a dedicated triplet resolution error for call (#500) 2023-03-07 20:26:25 +03:00
renovate[bot]
c985e39824
chore(deps): update rust crate serde_json to 1.0.94 (#499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-07 11:04:55 +03:00
Mike Voronov
95b2d154ff
feat(execution-engine)!: make StreamDontHaveSuchGeneration uncatchable… (#492)
`StreamDontHaveSuchGeneration` is a catchable error that could be caught by a xor instruction and then handled by a user. But it makes no sense because this error could arise only iff smth went wrong during merging or when data is corrupted.
2023-03-02 22:22:13 +03:00
raftedproc
5813c80ca2
fix: negative tests for prepare_step and farewell_step [fixes VM-251] (#489)
fix(execution-engine): negative tests for prepare_step and farewell_step [fixes VM-251]
2023-03-02 13:44:10 +03:00
raftedproc
7f6a69851f
fix: Rename CallResultsNotEmpty into UnprocessedCallResult (#490)
fix(execution-engine): rename CallResultsNotEmpty into UnprocessedCallResult
2023-03-01 20:36:35 +03:00
fluencebot
357ae63732
chore: release master (#488)
* chore: release master

* chore: Bump air-interpreter version to 0.35.5
2023-02-27 17:24:49 +03:00
mikhail-1e20
9d739906ff
docs: README re-organized (#477)
* docs: README re-organized

* add repository structure

* fix docs

* docs: A few minor fixes following an earlier discussion

---------

Co-authored-by: vms <michail.vms@gmail.com>
2023-02-22 19:54:47 +03:00
renovate[bot]
e700d7126b
chore(deps): update rust crate once_cell to 1.17.1 (#476)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-21 20:29:54 +03:00
renovate[bot]
91189a1d9d
chore(deps): update rust crate serde_json to 1.0.93 (#462)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-13 12:17:52 +03:00
Mike Voronov
87f7e2f361
feat(execution-engine)!: make fold convergent wrt errors (#351)
fold over a stream was not convergent when errors are produced inside a fold body. After iteration, it produces if there were several errors, only the last one is bubbled up. But on the same peer, there could different last (and first) errors, and it'll become non-convergent and moreover non-deterministic.

After this PR fold won't bubble any errors to make execution convergent and deterministic. To obtain errors from a fold body one should wrap this body into xor and push errors into some stream. Then fold over this stream and handle errors.
2023-02-09 17:09:24 +03:00
fluencebot
5aa3c75875
chore: release master (#454)
* chore: release master

* chore: Bump air-interpreter-wasm version to 0.35.4
2023-02-08 15:28:17 +03:00
Anatolios Laskaris
e168d2a55e
chore(ci): Revert previous release, prepare for new release [fixed FLU-271] (#453)
* Add versions everywhere

* Revert "chore(air-trace): release master (#452)"

This reverts commit 3452b6b24d5b838241a353ff3a7a536899421fed.

* Fix

* Fix versions
2023-02-08 12:08:51 +02:00
Mike Voronov
367546b82c
feat(trace-handler): improve data deserialization version check (#451) 2023-02-07 21:07:02 +03:00
renovate[bot]
84af9c6185
chore(deps): update rust crate serde_json to 1.0.92 (#448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-06 16:44:20 +03:00
Ivan Boldyrev
5fdc8e68ac
feat(tools): VM-194 performance metering (#440)
* Experimental performance metering
* Average on repeated runs with `--repeat` option
* Add "version" field to the report
The version is got from `air/Cargo.toml`.

* Allow disabling preparing binaries
with the `--no-prepare-binaries` option.

* Human-readable execution time in the report

* Add dashboard benchmark
* Human-readable text report
2023-02-03 23:26:06 +07:00
Anatolios Laskaris
603785f6c0
chore(deps): Bump fluence-app-service to 0.23.0 (#427) 2023-01-09 16:57:30 +02:00
Ivan Boldyrev
8f587b7803
feature(execution-engine): Canon data with CID (#419)
* Use CID values for tetraplets and `canon` vectors.

* Rename `cid_store` to `value_store`

It is consistent with the new `tetraplet_store` and `canon_store`
fields.

* Make canon data more typeful

The `CanonResult` doesn't take a JSON value anymore that is further
deserialized elsewhere, but is a struct that has all data deserialized.

* Typeful `CID` type

The `CID` type has a phantom type paramter defining its value's type.

* Group cid stores and trackers

Group cid stores into `CidInfo` struct, and trackers into `ExecutionCidState` struct.
2023-01-09 13:22:57 +07:00
renovate[bot]
9b1e4d1bd8
chore(deps): update rust crate once_cell to 1.17.0 (#424)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 20:49:27 +07:00