47 Commits

Author SHA1 Message Date
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
Valery Antopol
74ddf26b6a
update faas (#259) 2022-04-26 16:54:24 +03:00
Valery Antopol
298d796c09
update faas & app-service (#257) 2022-04-26 13:12:10 +03:00
Mike Voronov
7e0c87d72a
Introduce %ttl% (#253) 2022-04-21 11:44:18 +03:00
Mike Voronov
69a42cf111
Introduce new for non iterable scalars (#248) 2022-04-20 11:43:46 +03:00
Mike Voronov
06d275ea16
Improve non iterable scalar scoping (#243) 2022-04-15 22:25:03 +03:00
Mike Voronov
b29883e990
Refactor tests (#231) 2022-03-10 16:06:43 +03:00
Mike Voronov
9ae79f44ff
bump version to 0.21 (#226) 2022-02-26 00:54:11 +03:00
Mike Voronov
6df4e470d3
Bump AquaVM to 0.20.0 (#208) 2021-12-29 21:24:03 +03:00
vms
54e383cdaf introduce farewell step; reafactoring 2021-12-17 22:02:16 +03:00
Mike Voronov
8dbae91bda
Introduce fail instruction (#196) 2021-12-16 21:34:27 +03:00
Mike Voronov
1d8182d497
Support scalars in lambda (#192) 2021-12-15 12:46:09 +03:00
Mike Voronov
e13377c5b0
Add test for par ap behaviour (#175) 2021-11-24 18:47:49 +03:00
Mike Voronov
5cd45385b4
Introduce restriction operator for streams (#172) 2021-11-24 17:57:14 +03:00
Mike Voronov
c3e149f8a2
Bump AVM server version (#167) 2021-11-04 20:05:20 +03:00
Mike Voronov
d9f10cb26d
Deduplicate SecuityTetraplet with marine-rs-sdk (#164) 2021-11-04 16:59:05 +03:00
Mike Voronov
1c55d34981
Use custom logic for lambda instead of json path (#154) 2021-10-18 23:23:30 +03:00
Mike Voronov
4251a36842
decouple instruction tracker to a separate crate (#160) 2021-10-15 14:26:46 +03:00
Mike Voronov
e282a93ce7
Delete double description field from Cargo.toml (#155) 2021-10-15 12:19:33 +03:00
Mike Voronov
582d07d2bb
fix issue 143 (#144) 2021-10-11 12:17:30 +03:00
Mike Voronov
f291c77d26
Update crate info; housekeeping (#153) 2021-10-05 20:08:10 +03:00
Mike Voronov
e99c352a95
Decouple log targets to a separate crate (#152) 2021-10-05 16:55:04 +03:00
Mike Voronov
adba9e8e65
Decouple trace handler (#150) 2021-10-05 14:07:38 +03:00
Mike Voronov
4a4fc0889b
Make interpreter async (#130)
Co-authored-by: folex <0xdxdy@gmail.com>
Co-authored-by: Pavel Murygin <pavel.murygin@gmail.com>
2021-10-04 10:58:00 +03:00
Valery Antopol
bb90dd3693
Remove serde version lock on 1.0.118 and serde_json lock on 1.0.61 (#136) 2021-09-15 16:37:38 +03:00
Mike Voronov
7762e4a599
Treat call service result de errors as local service errors (#134) 2021-09-02 18:01:21 +03:00
Mike Voronov
3c86d36566
Introduce CRDT data (#74) 2021-08-24 16:14:15 +03:00
Mike Voronov
7d98efedf8
move to app-service 0.9.0 (#126) 2021-08-05 22:24:09 +03:00
Mike Voronov
93f71908e0
AIR 0.10.0 (#113)
Co-authored-by: Pavel Murygin <pavel.murygin@gmail.com>
2021-06-03 11:41:25 +03:00
Mike Voronov
519535ccb4
Allow joining by index and key (#110) 2021-06-01 18:43:11 +03:00
folex
ccba158d81
Mark some crates as publish = false + add CI to publish crates (#105) 2021-05-19 12:43:49 +03:00
Mike Voronov
7cb636a02e
Refactor tests (#104) 2021-05-16 22:52:22 +03:00
Mike Voronov
f9a0b24a56
Move to sdk 0.6.5 (#102) 2021-05-13 12:00:56 +03:00
Mike Voronov
2ac0304d3e
Rename Aqua to AIR, move AVM from FCE (#99) 2021-05-10 14:25:34 +03:00