83 Commits

Author SHA1 Message Date
Anatolios Laskaris
0a524a5863
chore: Remove versions from dev deps (#526)
Remove versions from dev deps
2023-03-20 14:44:07 +02: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
fluencebot
d99272f9d3
chore: release master (#491) 2023-03-14 19:08:48 +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
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
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
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
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
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
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
renovate[bot]
fce3262221
chore(deps): update rust crate serde to 1.0.152 (#421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 20:47:04 +07:00
renovate[bot]
58748f48cd
chore(deps): update rust crate semver to 1.0.16 (#405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2022-12-27 01:20:34 +03:00
renovate[bot]
b01ad36cdb
chore(deps): update rust crate serde_json to 1.0.91 (#407)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-27 00:24:38 +03:00
renovate[bot]
d9cfa9cf15
chore(deps): update rust crate thiserror to 1.0.38 (#408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-27 00:19:10 +03:00
Ivan Boldyrev
89f7cd09f7
fix(interpreter-interface): Remove the cid field (#414)
The `InterpreterOutcome::cid` field is not really needed, but makes integration more difficult.
2022-12-26 23:20:11 +07:00
renovate[bot]
9cf326f1dd
chore(deps): update rust crate serde to 1.0.151 (#398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-26 21:45:08 +07:00
Ivan Boldyrev
0226c062f8
feat!(execution-engine): Store call executed values as CIDs in the data (#401)
The trace stores CID strings for call result values.  These strings are to be resolved to real values with `InterpreterData::cid_store` map.
2022-12-26 15:45:14 +07:00
Mike Voronov
9fe7afb897
feat(all): reduce stream usage scope (#298)
This PR intended to reduce stream usage scope in order to make AquaVM truly deterministic.

Refs: #297.

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>
2022-11-30 17:38:32 +03:00
renovate[bot]
d3bda16e71
fix(deps): update all non-major rust dependencies (#369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 12:54:40 +03:00
renovate[bot]
bbc521ce53
fix(deps): update all non-major rust dependencies (#338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-15 21:08:46 +03:00
Mike Voronov
8c3f9a3090
feat(interpreter-data): add interpreter version in data (#367) 2022-10-13 12:50:32 +03:00
Mike Voronov
bf8aee7f15
fix(execution-engine): fix invalid iteration over stream (#362)
This PR is mostly a revertion of #357, that is needed to make stream work correctly in fold itrerations.

Closes #363.
2022-10-11 01:41:22 +03:00
Mike Voronov
c85b2e2fbf
feat(execution-engine): change behaviour of fold over streams (#340)
feat(execution-engine): change behaviour of fold over streams

Change behaviour of fold over streams to make it more similar to pi-calculus channels/names (for more info see #333).

Closes #333.

BREAKING CHANGE:

The new stream behaviour is not compatible with old one, such as
```
(fold $stream iterator
   (seq
       (call ...)
       (next iterator)))
```
will never end after this change (for more info again see #333).
2022-09-28 22:03:54 +03:00
Mike Voronov
20bb230a3a
Introduce never instruction (#335) 2022-09-19 14:36:46 +03:00
renovate[bot]
ad504bce8b
Update all non-major Rust dependencies (#330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-19 14:07:34 +03:00
renovate[bot]
40bb3c843f
Update all non-major Rust dependencies (#323)
* Update all non-major Rust dependencies

* bump fluence-app-service version

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Valery Antopol <valery.antopol@gmail.com>
2022-09-13 19:03:18 +03:00
Mike Voronov
a4011ef038
Introduce length functor (#314) 2022-09-08 16:58:04 +03:00
renovate[bot]
b4195175db
Update all non-major Rust dependencies (#309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>
2022-09-07 12:10:07 +03:00
Mike Voronov
2784d8a51f
bump wasm-bindgen (#316) 2022-09-07 11:38:49 +03:00
Ivan Boldyrev
513eb0e126
Testing framework, chapter I (#293)
Testing framework for AquaVM

Its primary features are:
1. It generates services declaratively by annotation in the comments inserted just after calls.
2. Ephemeral network keeps each node's data and incoming data queue.  The network can be also generated based on peer IDs featured in the script.
3. One can explicitly add additional peers and services.

The example of the script annotations:
```
(seq
  (call "peer_1" ("service" "func") [] var) ; ok=42
  (call "peer_2" ("service" "func") [var]) ; err={"ret_code": 1, "result":"no towel"}
)
```

Passing this script to `air_test_framework::TestExecutor::new(...)` will create a virtual network with peers "peer_1" and "peer_2" (and any peer you provide in the `TestRunParameters`), and the particular calls will return respective values.

Please note that autogenerated services use modified service name as a side channel for finding a correct value: "..{N}" is added to each service name (two dots and serial number).  Be careful with service names taken from a variable.
2022-09-01 18:12:55 +07:00
Mike Voronov
5072fba9d6
Introduce canon instruction (#292) 2022-08-26 00:43:43 +03:00
Ivan Boldyrev
5c7e88e0f2
Refactor avm-server interface mod to new crate (#294)
* Refactor `avm-server` interface mod to new crate (#294)

The new crate name is `avm-interface`.

It allows to build fully native air-trace, including pure WASM build.

* Make fully native air-trace build

Unless `wasm` feature is enabled (default), fully native build is
produced.  You may build WASM air-trace binary with

`cargo build --target wasm32-wasi --no-default-features --release -p air-trace`

* Fix tracing output on native air-trace build

Wrong option was used.
2022-08-19 16:29:21 +07:00
Valery Antopol
52f0390eb8
Update marine-rs-sdk to 0.7.0 to fix memory leak (#287) 2022-07-27 16:40:27 +03:00
Ivan Boldyrev
0eb37800b6
AquaVM benchmarks (#283)
* Fix stale benchmarks
* Data (de)serialization and execution benchmarks:

Two kind of benchmark: relatively short, but with huge call results, and
long trace of small call results.  Moreover, there are two case for each:
with same data to be merged with comparison, and data from different
par branches merged w/o comparison.
2022-07-08 21:07:04 +07:00
Ivan Boldyrev
c3cea695c8
air-trace util for measuring AquaVM performance with tracing crate.
`air-trace run` subcommand allows to run AquaVM on any data, it allows to define most AquaVM inputs, providing defaults for most of them, and sets up either human-readable or JSON tracing output, the latter can be later processed by `air-trace stats`.

Anomaly data input is also supported, that is useful for slow data investigation.

Native execution mode can be used for native profiling.  Please note, however, that current version cannot be built natively on Apple Sillicon processor yet, as invariably depends on the `avm-server` because of leaking types that should be refactored or hidden.  The `--repeat` option can repeat the execution several times for the execution to dominate on input data reading and output.

High-level or rare calls have "info" trace level, instructions are "debug", and sub-instruction calls are "tracing".  Over-detailed tracing can induce overhead that spoils timing data.
2022-07-07 18:44:58 +07:00