283 Commits

Author SHA1 Message Date
raftedproc
c6f157a6e3
feat(air-parser): VM-347 After next validator fold check (#774) 2023-12-28 20:48:16 +03:00
Ivan Boldyrev
f1c7b43a1e
feat(data)!: values are binary blobs (#775)
* Store deserialize values as raw JSON values

Values are parsed on-demand.
---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-12-26 18:42:40 +07:00
renovate[bot]
c9a0b87a4c
fix(deps): update rust crate fluence-keypair to 0.10.4 (#752)
* Update ed25519-dalek and rand_chacha to compatible versions
* Make clippy happier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-12-26 04:13:57 +07:00
Mike Voronov
0a8827bb3c
chore: use resolver 2 and 2021 edition (#769) 2023-12-18 18:48:46 +03:00
Ivan Boldyrev
771d42dec4
feat(data)!: flexible serialization formats (#757)
New crate air_interpreter_sede introduces a flexible serialization and deserialization infrastructure.

Low level API: the Format trait and related. It includes simple and universal mechanisms for serializing any possible (e.g. implementing the Serde traits) value.

High level API: Representation trait and related. It allows declaring representation types that can serialize and deserialize only certain types (for example, InterpreterDataRepr can serialize only the InterpreterData, but deserialize InterpreterData and Versions` types), producing newtype values as serialization results.

The serialized representation of CallResults now contains byte arrays, not strings, because the new infrastructure serializes to byte arrays only.

Also, the basic support for multicodecs is added.
2023-12-15 21:23:09 +07:00
fluencebot
17d7ef6c5a
chore: release master (#751)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.55.0
2023-12-13 00:15:36 +07:00
renovate[bot]
05fda3ee16
fix(deps): update rust crate marine-rs-sdk to 0.10.2 (#733)
---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-12-12 23:24:11 +07:00
Ivan Boldyrev
1673cdf06c
feat(air-parser)!: optimize Instruction type layout (#767)
Instead of being boxed for each node, the `Instruction` type contains a boxed variable-size elements.  Thus `Instruction` is quite lean, and the allocator deals with variable-sized elements.

Total number of allocations is more or less same, but less space is wasted for unused memory: previously the Instruction's size was 112 bytes in WASM, now it is 16.

It reduces memory consumption on large AIR scripts (heap size decreased from 7.7MiB to 4.625MiB in parser-10000-100, and for the new parser-calls-10000-100 benchmark, it decreased from 5.115MiB to 4.375MiB).

This is a breaking change as the API changes (though the code that navigates the parsed tree generally should work as is).
2023-12-12 19:50:41 +07:00
Ivan Boldyrev
2b83ad1755
chore(benchmarks): call-requests and call-results benchmarks (#759) 2023-11-28 00:01:14 +07:00
Ivan Boldyrev
524c30243b
feat(interpreter-cid,interpreter-data)!: Support for multiple hash types in CID verification (#722)
It will allow to change CID hash functions without breaking compatibility or use multiple CID hash functions.
2023-11-23 01:12:42 +07:00
raftedproc
973e8aeea5
chore(tests): etalon benchmarking test for network team convenience (#754) 2023-11-13 21:22:54 +03:00
raftedproc
1b7de5e659
chore(testing-framework): a new behavior to print service call parameters/result out to console (#723) 2023-11-08 14:10:05 +03:00
renovate[bot]
523dd6b219
chore(deps): update rust crate serde_json to 1.0.108 (#742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-03 00:15:56 +07:00
Ivan Boldyrev
15ce40a1cd
feat(interpreter-data)!: allow only deterministic signature algorithms (#734)
Some public signature algorithms require a RNG, but it is not
available in certain environments like smartcontracts.
2023-11-02 21:43:35 +07:00
renovate[bot]
55da7a64aa
chore(deps): update rust crate tracing to 0.1.40 (#745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-29 21:18:50 +07:00
renovate[bot]
9558692421
chore(deps): update rust crate serde to 1.0.190 (#740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-29 20:44:40 +07:00
renovate[bot]
10341c42fd
chore(deps): update rust crate thiserror to 1.0.50 (#744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-29 20:10:26 +07:00
fluencebot
9bac51f24e
chore: release master (#725)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.54.0

* Update minimal version to 0.54.0

---------

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-10-26 20:56:52 +07:00
Ivan Boldyrev
776d81a1db
feat(interpreter-cid)!: use Blake3 for CIDs (#729)
Change to more efficient cryptography hash implementation.
2023-10-23 20:16:15 +07:00
renovate[bot]
f73e220ed1
chore(deps): update rust crate log to 0.4.20 (#661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 13:03:15 +03:00
renovate[bot]
88e7dba5f2
fix(deps): update rust crate fluence-keypair to 0.10.3 (#620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 19:00:15 +03:00
fluencebot
cbc659e939
chore: release master (#721)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.53.0
2023-10-16 17:15:16 +03:00
Ivan Boldyrev
c2108e0fa0
feat(execution-engine,test-utils,interpreter-data,interpreter-cid)!: Rc into CID (#718)
* Hide `Rc` inside `CID` type, making it cheap to clone.
* Introduce `CidRef` type that abstracts on `CID`'s inner type.

This change makes code cleaner, makes memory more optimal (single allocation vs two allocations) and makes it easier to change CID's internal representation from string to binary.
2023-10-16 20:35:42 +07:00
fluencebot
d2ad221597
chore: release master (#720)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.52.0
2023-10-16 16:01:49 +03:00
Mike Voronov
cdcb86cb55
feat(execution-engine)!: intro farewell_if_error_macro (#719)
intro farewell_if_error_macro
2023-10-16 15:13:20 +03:00
fluencebot
0aa23318d9
chore: release master (#716) 2023-10-13 22:21:19 +03:00
Ivan Boldyrev
8a07613027
feat(aquavm-air)!: signature checking (#607) 2023-10-13 22:19:02 +03:00
fluencebot
b6c4eaaddc
chore: release master (#715) 2023-10-13 21:19:14 +03:00
raftedproc
ea80f117a0
fix(execution-engine)!: map with a lens now returns an appropriate tetraplet [fixes VM-331] (#706) 2023-10-13 21:14:14 +03:00
fluencebot
40cad86b49
chore: release master (#707)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.49.0
2023-10-13 20:42:40 +03:00
raftedproc
98870c2ff9
feat(execution-engine)!: fail :error: now bubbles the original error up [fixes VM-342] (#714) 2023-10-13 20:37:27 +03:00
raftedproc
f4caa538e4
fix(execution-engine)!: canon map lens access now returns a correct number of kvpairs in a canon stream (#708) 2023-09-28 11:47:15 +03:00
raftedproc
c52a36c784
fix(execution-engine): ExecutionCtx fmt now prints stream maps out (#705) 2023-09-26 17:21:22 +03:00
fluencebot
8f23d90ece
chore: release master (#698)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.48.0
2023-09-22 00:46:21 +03:00
raftedproc
3a9beed3c5
fix(execution-engine)!: this adds a join behavior for key and value pair used by ap inserting into a map [fixes VM-337] (#701) 2023-09-21 19:56:22 +03:00
raftedproc
45035ccff5
feat(execution-engine)!: this patch prohibits error code = 0 (#702) 2023-09-21 17:33:57 +03:00
renovate[bot]
b713e447fc
fix(deps): update rust crate marine-rs-sdk to 0.10.0 (#640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Valery Antopol <valery.antopol@gmail.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-09-19 17:04:40 +07:00
Ivan Boldyrev
bd80a127ea
feat(parser,execution-engine): allow :error: in fail (#696)
The `(fail :error:)` was previously rejected by parser.  Now it is
executed, but is of limited use.
2023-09-19 14:21:30 +07:00
Ivan Boldyrev
d41f7646d9
chore: Rust channel update dedicated to Software Engineer Day (#699) 2023-09-14 18:55:06 +07:00
Ivan Boldyrev
4e72abe9a7
feat(execution-engine): join behavior for canon (#697)
Implement join behavior for `canon`'s first argument `peer_id`.  It
simplifies generating code in Aqua compiler when `peer_id` is defined
by a variable defined in a `par` branch.

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-09-13 21:20:51 +07:00
renovate[bot]
d9638575bf
chore(deps): update rust crate concat-idents to 1.1.5 (#625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-10 21:50:33 +07:00
fluencebot
244bed3326
chore: release master (#694)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.47.0
2023-09-07 17:56:11 +07:00
raftedproc
b4cbf8f621
feat(execution-engine)!: canon stream map support [fixes VM-301] (#648)
* feat(execution-engine)!: canon stream map support [fixes VM-301]
	Canon stream map is a CRDT-like map structure that contains a
	canonicalized stream map and allows indexed access to its
	contents. ATM CSM supports both strings and int64 keys.
2023-09-07 11:30:24 +03:00
fluencebot
bf64366750
chore: release master (#692)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.46.0
2023-09-05 02:20:03 +02:00
Mike Voronov
b13dd515da
feat(data)!: bump minimal support version (#691)
bump minimal support version
2023-09-05 01:05:38 +02:00
fluencebot
3dd239dc10
chore: release master (#690) 2023-09-05 00:28:26 +02:00
raftedproc
20afb79e3f
feat(execution-engine): a new :error: runtime attribute according with FLIP-11 [fixes VM-329] (#683)
* feat(execution-engine): a new :error: runtime attribute according with FLIP-11 [fixes VM-329]
2023-09-04 22:57:51 +03:00
fluencebot
46142f3163
chore: release master (#688)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.45.0
2023-08-31 17:22:44 +07:00
Anatolios Laskaris
c41c101083
chore: Revert release and fix typo in release-please (#684)
* Fix component name

* Revert "chore: release master (#680)"

This reverts commit d6bd1c0348d163ae9b7d4c45b41399e84fd60ac0.
2023-08-31 10:48:50 +03:00
fluencebot
d6bd1c0348
chore: release master (#680)
* chore: release master

* chore: Bump air-interpreter version to 0.45.0
2023-08-29 19:36:08 +02:00