Commit Graph

248 Commits

Author SHA1 Message Date
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
cc4fba4455
Document import scheme and doc comment style (#268) 2022-06-29 22:23:33 +03:00
Mike Voronov
0bdd573de7
Enable derive serde feature for data-store crate (#278) 2022-06-23 15:57:57 +03: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
090eceef85
Get rid of unconditional logging code (#276)
The `log_instruction` macro unconditionally pre-formatted some string to
be logged, even if logging is disabled, making whole AquaVM very slow.

After getting it fixed, native execution time dropped from 5sec to
thousands of milliseconds.
2022-06-22 16:25:22 +07:00
Ivan Boldyrev
6df2b9d084
Introduce TracePos type for trace positions (#273)
Many internal structures refer to trace positions; this is an important type of values. In the code, it is sometimes `u32`, sometimes `usize`. While such variables usually have "_pos" suffix, having a dedicated type does improve code with type guarantees.
2022-06-10 12:29:56 +07: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
56609c276f
Set an empty subtrace on a fold lore absent in trace (#270)
In the `FoldFSM` and related functions.

Closes #222
2022-06-01 22:00:05 +07:00
Ivan Boldyrev
1c70a3d17d
Make clippy happier by resolving some warnings (#271)
1. Use $crate inside macros.
2. Remove unused lifetime.
3. Use write! instead of String::push_str + format! to reduce allocation.
2022-05-31 18:44:45 +07:00
Ivan Boldyrev
1c0ff2c979
air-beautifier lib and air-beautify binary (#266)
The `air-beautify` util takes an AIR script input with Lisp-like syntax
and transforms it into experimental indentation-based syntax.

Closing #184.
2022-05-20 21:07:22 +07:00
Ivan Boldyrev
3c23ab735c
Refactor call triplets (#269)
Older grammar allowed some variabilty in triple format.  Now, the only
format allowed is:

  `peer_id (service_id function_name)`

As less errors can happen during parsing of the triplet, the code was
simplified further .

Closes #267.
2022-05-19 19:59:08 +07:00
vms
99d7aa0d93 Fix Display impl for next 2022-05-19 09:53:32 +03:00
Mike Voronov
24f0d66bed
Rename subtree to subgraph (#265)
Intially, a fold instruction was designed based on idea that its iterable can't expand,
so AIR was considered as a subtree. But after introducing recursive streams in #225, it's
no more a subtree, but a subgraph.
2022-05-17 15:53:33 +03:00
Ivan Boldyrev
dbd42cdf3d Fix Display of Fail::Literal
The error message was displayed without quotes.
2022-05-17 15:35:37 +07:00
Ivan Boldyrev
ec3d3a4e6f Fix Display of Value::LastError with lambda
There was a small typo in the `fn display_last_error`.

Closes #263
2022-05-17 12:57:27 +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
Mike Voronov
da95089513
Update readme (#260)
Co-authored-by: boneyard93501 <4523011+boneyard93501@users.noreply.github.com>
2022-05-14 17:12:48 +03:00
Valery Antopol
74ddf26b6a
update faas (#259) 2022-04-26 16:54:24 +03:00
Mike Voronov
b23f1076ea
Add developer notes about PR reviewing (#255) 2022-04-26 16:22:15 +03:00
Valery Antopol
44c87097c7
remove patch (#258) 2022-04-26 13:29:16 +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
3f510e1581
Improve scope error handling (#251) 2022-04-21 18:01:06 +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
Mike Voronov
69a42cf111
Introduce new for non iterable scalars (#248) 2022-04-20 11:43:46 +03:00
Pavel
c2bfad7f79
Marine-js stage 2: move avm-related helpers to appropriate package (#239) 2022-04-18 15:38:19 +03:00
Mike Voronov
06d275ea16
Improve non iterable scalar scoping (#243) 2022-04-15 22:25:03 +03:00
Mike Voronov
f1600075d8
set stack limit to 50 MiB (#244) 2022-04-15 18:22:42 +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
Mike Voronov
262beec170
use Rust 2022-02-24 in CI (#233) 2022-03-15 20:45:15 +03:00
Mike Voronov
c4249e0118
add a list of changes to the next hardfork (#232) 2022-03-14 15:58:31 +03:00
Mike Voronov
b29883e990
Refactor tests (#231) 2022-03-10 16:06:43 +03:00
Mike Voronov
914ad74516
Make fold by streams truly deterministic (#228) 2022-03-10 01:32:07 +03:00
Mike Voronov
a64a4fc0a6
support empty array literal in fold (#230) 2022-03-07 13:50:08 +03:00
Mike Voronov
c00b453a48
Remove RefCell from streams (#227) 2022-03-03 19:09:48 +03:00
Mike Voronov
9ae79f44ff
bump version to 0.21 (#226) 2022-02-26 00:54:11 +03:00
Mike Voronov
cc54e4c383
Introduce recursive streams (#225) 2022-02-25 23:55:40 +03:00
Mike Voronov
ac050abc8a
Fix ap trace handler behaviour (#224) 2022-02-25 10:24:28 +03:00
Valery Antopol
39da1c98bb
Use js marine runtime instead of wasm-bindgen (#209) 2022-02-18 19:04:40 +03:00
Mike Voronov
78a2bc9d58
Fix tetraplets json path (#220) 2022-02-18 18:00:42 +03:00
Mike Voronov
f994ce73c8
Check scalars in lamda were defined in script (#218) 2022-02-17 23:39:01 +03:00
Mike Voronov
1ca121cf93
fix data handling in Ap (#217) 2022-02-17 13:37:36 +03:00
Mike Voronov
9fb085b6d6
Check call arguments at the beggining (#215) 2022-02-16 23:34:15 +03:00
Mike Voronov
3219570006
switch to marine without mem limits (#213) 2022-01-31 18:46:15 +03:00
Mike Voronov
4f90f194c7
Implement scalars in lambda for streams (#212) 2022-01-26 17:16:59 +03:00
Mike Voronov
58aef82b1e
Add API for returning interpreter memory size (#210) 2022-01-26 13:37:22 +03:00
Mike Voronov
6df4e470d3
Bump AquaVM to 0.20.0 (#208) 2021-12-29 21:24:03 +03:00