Commit Graph

55 Commits

Author SHA1 Message Date
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
renovate[bot]
6a2d591721
Update dependency typescript to v4.8.2 (#312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-07 11:32:46 +03:00
Ivan Boldyrev
619e8829a9
Get rid of unsafe code in the interpreter (#303)
* Get rid of unsafe code unless really necessary

* Add lint levels where appropriate

Some crates (air-beautifier, air-testing-framework) have lot of
rust_2018_idioms violations, that will be resolved later.
2022-09-06 00:03:30 +07:00
Anatoly Laskaris
2d400b4028
Bump marine-runtime to 0.20.0 (#299) 2022-09-02 14:32:04 +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
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
Mike Voronov
0d9390d333
make clippy happy (#291) 2022-08-10 12:27:06 +03: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
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
Ivan Boldyrev
4acfb19e08
Add AIR script to the AquaVM's anomaly data (#280)
Save AIR script to AnomlalyData struct.

Increments versions of `avm-data-store` to 0.3.0 and `avm-server` to 0.22.0.
2022-06-30 16:26:37 +07:00
Mike Voronov
3a84ceb863
Add API to save anomaly data (#277)
This PR adds two new methods in DataStore to determine anomaly and collect necessary data. Additionally
    - a generic parameter of DataStore turned to be associative
    - AVMOutcome contains additionally memory_delta and execution_time
2022-06-23 15:24:00 +03:00
Ivan Boldyrev
e0f6fa1b4d
Run tests with sanitizers (#274)
As `wasm32-wasi` target doesn't seem to support sanitizers, we are to
execute tests with native code.  The feature `test_with_native_code` is
introduced for that.

Closes #247.
2022-06-10 12:28:40 +07:00
Ivan Boldyrev
dcfa51c756 Use pooled AVMRunner for tests
Use pooled `avm::server::AVMRunner` instances of
air_iterpreter_server.wasm to reduce tests' running time.  It avoids
repeated WASM loading and compilation.

On my hardware, `cargo test --release` execution time (precompiled)
decreases from almost 6 minutes to 1.5 minutes.
2022-05-16 13:16:28 +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
Pavel
f175b31ffd
Pass updated RunParameters to AquaVM (#256) 2022-04-25 17:36:42 +03:00
Mike Voronov
7e0c87d72a
Introduce %ttl% (#253) 2022-04-21 11:44:18 +03:00
Mike Voronov
490791b177
introduce %timestamp% (#250) 2022-04-20 23:05:37 +03:00
Mike Voronov
5c2b9d442b
Expose max memory size (#242) 2022-04-20 20:21:07 +03:00
Pavel
c2bfad7f79
Marine-js stage 2: move avm-related helpers to appropriate package (#239) 2022-04-18 15:38:19 +03:00
Valery Antopol
5f0e295073
update faas (#240) 2022-04-07 00:18:49 +03:00
Valery Antopol
7f3b44fb9b
bump faas version (#235)
* bump faas version

* bump avm-server-version
2022-03-25 21:53:15 +03:00
Valery Antopol
39da1c98bb
Use js marine runtime instead of wasm-bindgen (#209) 2022-02-18 19:04:40 +03:00
Mike Voronov
3219570006
switch to marine without mem limits (#213) 2022-01-31 18:46:15 +03:00
Mike Voronov
58aef82b1e
Add API for returning interpreter memory size (#210) 2022-01-26 13:37:22 +03:00
Pavel
91021d8b40
AVM client: move embedded wasm into a separate file (#200) 2021-12-28 17:43:54 +03:00
Mike Voronov
bde7193747
bump avm-server (#199) 2021-12-21 14:33:20 +03:00
vms
54e383cdaf introduce farewell step; reafactoring 2021-12-17 22:02:16 +03:00
Mike Voronov
9f91d3161f
bump fluence-faas version (#193) 2021-12-14 14:01:57 +03:00
Mike Voronov
c5c9aefa37
Add test for issue 177 (#183) 2021-11-29 18:35:11 +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
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
37ed77cb81
Bump versions, add description for data-store (#148) 2021-10-04 18:54:07 +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
dependabot[bot]
442e284dff
Bump ansi-regex from 5.0.0 to 5.0.1 in /avm/client (#147)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-01 18:44:22 +03:00
Pavel
1191dc8e03
Update jest to latest version (#146) 2021-10-01 13:01:31 +03:00
Mike Voronov
d77278761f
Change subtrace_len computation algo in FoldFSM (#138) 2021-09-20 14:49:20 +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
3c86d36566
Introduce CRDT data (#74) 2021-08-24 16:14:15 +03:00
vms
e805a861e2 bump avm-server and air-interpreter-interface crates 2021-08-17 21:19:46 +03:00
Mike Voronov
63fb64ac35
update avm-server (#129) 2021-08-17 20:43:55 +03:00
dependabot[bot]
2a5f2e0e2d
Bump path-parse from 1.0.6 to 1.0.7 in /avm/client (#128)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-17 18:15:07 +03:00
Mike Voronov
257ec06e0e
Allow build_wasm.sh work on MacOS (#125) 2021-08-04 16:41:37 +03:00
Pavel
0528eb485a
Build automation (#123)
* preparation

* trying to automate

* fix

* implement logic in powershell

* fix

* tmp

* tmp

* fix

* remove debug stuff

* newline in gitignore

* Remove debug echos
2021-08-03 23:13:47 +03:00
folex
03074be98f
Particle File Vault (#120) 2021-06-30 18:58:54 +03:00
Pavel
7e34cac378
Fix logging interface in avm client (#115) 2021-06-04 17:46:06 +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
dependabot[bot]
d38fba3675
Bump ws from 7.4.5 to 7.4.6 in /avm/client (#109)
Bumps [ws](https://github.com/websockets/ws) from 7.4.5 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.5...7.4.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-01 13:42:48 +03:00