656 Commits

Author SHA1 Message Date
Mike Voronov
75bb33056c
chore: fix code formatting (#653)
formatting
2023-08-03 22:45:21 +03:00
Mike Voronov
791ada3b93
chore(tests): fix publish_version_check test (#651)
fix publish_version_check
2023-08-03 22:28:56 +03:00
Anatolios Laskaris
4444bd0570
chore: Fix polyplets version (#652)
Fix polyplets version
2023-08-03 22:25:53 +03:00
Mike Voronov
1493ae3450
chore(tests): fix version checking tests (#650)
fix version checking tests
2023-08-03 21:58:42 +03:00
Mike Voronov
0655daa89d
feat(execution-engine)!: update minimal interpreter version (#649)
update minimal interpreter version
2023-08-03 21:18:00 +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
renovate[bot]
3843da5cb9
chore(deps): update rust crate bs58 to 0.5.0 (#604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-03 13:02:55 +03:00
Mike Voronov
e41953b495
chore(tests): test case for #644 (#645) 2023-08-01 18:35:44 +03:00
Mike Voronov
f5c19da057
chore(tests): test case for #642 (#643) 2023-08-01 18:24:22 +03:00
Mike Voronov
007f2eab83
chore(execution-engine): fix instruction names while logging (#641)
fix command names while logging
2023-08-01 00:44:02 +03:00
renovate[bot]
786b111642
fix(deps): update rust crate marine-macro to 0.8.0 (#639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 20:10:50 +03:00
raftedproc
8871465324
feat(air-parser): canon stream syntax (#618)
feat(air-parser): improved canon stream syntax support [fixes VM-293]
2023-07-25 12:38:10 +03:00
Mike Voronov
6bd60d48e7
chore(execution-engine): optimize StreamMapKey::from_kvpair (#638)
optimize StreamMapKey::from_kvpair
2023-07-25 11:15:37 +03:00
renovate[bot]
5e147161cf
chore(deps): update baptiste0928/cargo-install action to v2 (#547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-25 08:36:20 +03:00
Ivan Boldyrev
5cbe79d619
chore: run llvm-cov on default features only (#637)
In the PR #607 tests are not compatible with some feautre flags yet.
Disable `llvm-cov`'s `--all-feautres` until all the tests are fixed.
For now, run `llvm-cov` only with default features.
2023-07-21 19:53:56 +03:00
Mike Voronov
6fd0385058
chore(execution-engine): refactor unseen canon stream creation (#636) 2023-07-20 23:11:55 +03:00
Mike Voronov
3fa8be0776
chore(execution-engine): move get_unique_map_keys_stream into StreamMap (#635) 2023-07-19 21:51:20 +03:00
Ivan Boldyrev
c530c93fcb
feat(air-test-utils): print_trace prints values (#633)
As traces contain CIDs for calls and canons, one cannot easily see
values produced.  Print them for convenience.
2023-07-18 19:59:58 +07:00
fluencebot
531956b9ba
chore: release master (#619)
* chore: release master

* chore: Bump air-interpreter version to 0.42.0
air-v0.42.0 air-beautify-wasm-v0.3.1 air-interpreter-v0.42.0 air-test-utils-v0.7.1 avm-client-v0.42.0 air-beautifier-v0.2.0 air-parser-v0.8.0 air-testing-framework-v0.4.0 air-trace-handler-v0.2.2 air-execution-info-collector-v0.7.6 air-interpreter-data-v0.8.1 aquavm-air-cli-v0.3.2
2023-07-17 21:55:56 +07:00
raftedproc
33a9d9f32f
feat(execution-engine)!: add error-code invariant check for match/mismatch (#622) 2023-07-16 17:53:01 +03:00
raftedproc
d195152320
feat(execution-engine)!: unfefined %last_error% now returns an empty … (#628)
feat(execution-engine)!: %last_eror%.$.message and $.error_code now return an empty string and 0 correspondingly [fixes VM-313]
2023-07-14 21:46:28 +03:00
Mike Voronov
d5a3f768af
chore: remove fstrings dep (#627)
* remove fstrings dep

---------

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-07-14 20:02:19 +07:00
Ivan Boldyrev
adcf708c95
fix(air-beautifier): print fold's last_instruction (#630)
It was not printed before by mistake.
2023-07-14 18:40:05 +07:00
Ivan Boldyrev
75f5516c58
feat(aquavm-air)!: ap join behavior (#631)
* feat(aquavm-air)!: `ap` join behavior

Previously, `ap` of an undefined (first) variable was a catchable error.
Now `ap` has join behavior for its first argument.

It should simplify compiling Aqua to AIR.

Closes #632
2023-07-14 17:48:23 +07:00
Anatolios Laskaris
734952d762
chore: Renaming things (#615)
* Migrate aqua-playground to aqua repo

* Rename rust-peer to nox, fluence-cli to flox

* Update

* Fix

* Fix
2023-07-10 09:41:32 +03:00
Mike Voronov
62fdd74805
chore: remove unused dependecies (#626)
remove unused dependecies
2023-07-03 12:31:56 +03:00
raftedproc
fcb4c9dab4
feat(execution-engine)!: stream map to scalar conversion using canon instruction [fixes VM-294] (#610)
feat(execution-engine): Stream Map to Scalar conversion using canon instruction [fixes VM-294]
2023-06-28 13:59:16 +03:00
raftedproc
56a03364b1
chore(execution-engine): additional StreamMap positive tests [fixes VM-295] (#608)
chore(execution-engine): Additional StreamMap positive tests [fixes VM-295]
2023-06-28 12:24:58 +03:00
renovate[bot]
bba1becdce
chore(deps): update rust crate serde to 1.0.164 (#595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 03:47:42 +07:00
renovate[bot]
e90dc9285d
chore(deps): update rust crate lalrpop to 0.20.0 (#596)
* chore(deps): update rust crate lalrpop to 0.20.0

* Update lalrpop-util to compatible version

* Fix code broken by the API change

* Regenerate parsers

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-06-28 03:12:04 +07:00
Mike Voronov
be8c97c35c
chore(tests): add tests for topology hops (#616) 2023-06-27 21:09:10 +03:00
Mike Voronov
dadbba37e9
chore(core): fix variable checking (#617)
fix variable checking
2023-06-27 12:57:16 +03:00
vms
fb5c73136d add AquaVM update guide 2023-06-27 11:23:35 +03:00
fluencebot
e4665a55fa
chore: release master (#614)
* chore: release master

* chore: Bump air-interpreter version to 0.41.0
air-beautify-wasm-v0.3.0 air-testing-framework-v0.3.0 air-interpreter-v0.41.0 aquavm-air-cli-v0.3.1 avm-client-v0.41.0 air-test-utils-v0.7.0 air-v0.41.0
2023-06-23 22:38:43 +07:00
shamsartem
5e36c223a4
feat!: set nodejs target for air-beautify (#613)
* feat: set nodejs target for air-beautify

BREAKING CHANGE: this package is now intended for use in nodejs

* change year

* Update tools/wasm/air-beautify-wasm/src/lib.rs
2023-06-23 16:37:09 +02:00
Ivan Boldyrev
c332cca6b7
chore(testing-framework)!: restore WASM test executor (#609)
* chore(testing-framework)!: fix WASM test runner

Native mode was used before because some package used native runner
for its tests.

This PR allows to explicitly select test runner for tests.  Many testing-framework
types are now parametrized with a runner type with almost compatible defaults.

* chore(testing-framework): Add `ReleaseWasmAirRunner`
* chore(testing-framework)!: Rename `AirScriptExecutor::simple` to `AirScriptExecutor::from_annotated`.
2023-06-23 19:28:28 +07:00
fluencebot
c6627fe437
chore: release master (#553)
* chore: release master

* chore: Bump air-interpreter version to 0.40.0

* feat(aquavm-air): Set minimal supported version to 0.40.0

---------

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
air-utils-v0.1.1 air-test-utils-v0.6.0 avm-client-v0.40.0 air-beautifier-v0.1.4 avm-interface-v0.28.4 air-interpreter-data-v0.8.0 air-interpreter-cid-v0.3.0 air-testing-framework-v0.2.1 air-v0.40.0 air-execution-info-collector-v0.7.5 air-beautify-wasm-v0.2.1 air-trace-handler-v0.2.1 avm-data-store-v0.6.2 aquavm-air-cli-v0.3.0 avm-server-v0.32.0 air-parser-v0.7.5 air-interpreter-interface-v0.14.0 air-interpreter-v0.40.0
2023-06-23 04:45:40 +07:00
Ivan Boldyrev
8ce8af3823
feat(avm-server,air-interpreter,aquavm-air)!: secret key and particle ID arguments (#593)
* feat(avm-server)!: keypair and particle ID arguments

Add `&fluence_keypair::KeyPair` argument to `AVM::call` and
`AVMRunner::call`.  This value is further forwarded in a deconstructed
form to WASM Air interpreter, but is not used there yet. Also,
`AVMRunner::call` gets `particle_id: String` argument.

feat(air-interpreter)!: `invoke` methods have three new arguments:
`key_format: u8`, `secret_key_bytes: Vec<u8>` and `paritcle_id: String`.

feat(aquavm-air): `air::execute_air` has two three arguments:
`key_format: u8`, `secret_key_bytes: Vec<u8>` and `paritcle_id: String`.

feat(aquavm-air-cli)!: add `--random-key`/`--ed25519-key file` options to AIR CLI.

* feat(avm-server)!: Add `RunnerError::KeypairError`

* chore(bench): Add signature performance benchmarks

These benchmarks contain valid signature, so they should work with
verification out of the box.

---------

Co-authored-by: Artsiom Shamsutdzinau <shamsartem@gmail.com>
Co-authored-by: folex <0xdxdy@gmail.com>
2023-06-23 03:12:37 +07:00
Ivan Boldyrev
93c6899429
feat(aquavm-air-cli,performance_metering): memory size in performance report (#600)
* chore(bench): update benchmark data

After recent data format changes.

* feat(aquavm-air-cli): send memory size to logger

* feat(performance_metering): report memory size

`performance_metering` collects memory sizes reported by `air run` and
reports minimal and maximal values.
2023-06-08 20:22:11 +07:00
Anatolios Laskaris
f11ee86baa
chore: Automatically add e2e label on approved PR (#606)
* Automaically add e2e label when PR is approved

* Trigger when e2e label workflow changes

* Fix
2023-06-05 18:29:56 +03:00
raftedproc
9d7d34a452
feat(execution-engine): Stream Map initial support [fixes VM-283,VM-284] (#592)
feat(execution-engine): StreamMap initial support for ap and new instructions [fixes VM-283,VM-284]
2023-06-04 21:14:59 +03:00
Ivan Boldyrev
252d43b348
feat(air-interpreter-signatures): use (de)serialize_with (#605)
* feat(air-interpreter-signatures): use (de)serialize_with

Wrapper types do not hold strings anymore, but use `(de)serialize_with`
serde attributes to parse keys and signatures during parse time.

`PublicKey` and `Signature` traits implement `Deref` trait that returns
the inner value.
2023-06-04 20:06:31 +07:00
Mike Voronov
e1872208cc
chore(ci): remove redundant build.profiler (#597)
remove build.profiler
2023-06-02 22:52:58 +03:00
Ivan Boldyrev
f8b734abde
feat(aquavm-air,air-interpreter-signature,air-interpreter-data)!: Peer signatures (#598)
A peer signs the multiset of call results and canon results it has produced.

New field signatures, a map from peer public key to signature, is added to the interpreter data.

Signatures verification is yet to be done.
2023-05-15 22:21:57 +07:00
renovate[bot]
5e7423bd06
chore(deps): update rust crate clap to 4.2.7 (#594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-15 17:49:03 +07: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
b480e018b4
chore(trace-handler): sub/-trace len dedicated alias to replace usize [fixes VM-282] (#569)
feat(trace-handler): sub/-trace len dedicated alias to replace usize [fixes VM-282]
2023-05-02 16:32:18 +03:00
renovate[bot]
80486ed6ad
chore(deps): update rust crate lalrpop to 0.19.12 (#588)
* chore(deps): update rust crate lalrpop to 0.19.12

* chore(deps): update rust crate lalrpop-util to 0.19.12

* Update generated files

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-05-02 01:39:02 +07:00
renovate[bot]
da58640e31
chore(deps): update rust crate clap to 4.2.5 (#587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-02 00:37:24 +07:00
renovate[bot]
97fc47d45c
chore(deps): update rust crate regex to 1.8.1 (#586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 00:24:32 +07:00