Commit Graph

25 Commits

Author SHA1 Message Date
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
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
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
dbd42cdf3d Fix Display of Fail::Literal
The error message was displayed without quotes.
2022-05-17 15:35:37 +07:00
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
7e0c87d72a Introduce %ttl% (#253) 2022-04-21 11:44:18 +03:00
490791b177 introduce %timestamp% (#250) 2022-04-20 23:05:37 +03:00
69a42cf111 Introduce new for non iterable scalars (#248) 2022-04-20 11:43:46 +03:00
06d275ea16 Improve non iterable scalar scoping (#243) 2022-04-15 22:25:03 +03:00
b29883e990 Refactor tests (#231) 2022-03-10 16:06:43 +03:00
a64a4fc0a6 support empty array literal in fold (#230) 2022-03-07 13:50:08 +03:00
f994ce73c8 Check scalars in lamda were defined in script (#218) 2022-02-17 23:39:01 +03:00
58aef82b1e Add API for returning interpreter memory size (#210) 2022-01-26 13:37:22 +03:00
e6193ea4de Implement fail with scalars (#205) 2021-12-29 19:51:18 +03:00
63160dd0f0 Refactor last error (#202) 2021-12-28 16:59:55 +03:00
f69b5aa728 Refactor execution errors (#198) 2021-12-21 11:37:35 +03:00
8dbae91bda Introduce fail instruction (#196) 2021-12-16 21:34:27 +03:00
1d8182d497 Support scalars in lambda (#192) 2021-12-15 12:46:09 +03:00
1141c8e42a Fix empty array parsing in match/mismatch instructions (#190) 2021-12-13 15:54:10 +03:00
5cd45385b4 Introduce restriction operator for streams (#172) 2021-11-24 17:57:14 +03:00
9f47eb9b83 Refactor AIR parser (#168) 2021-11-12 14:12:50 +03:00
1c55d34981 Use custom logic for lambda instead of json path (#154) 2021-10-18 23:23:30 +03:00
f291c77d26 Update crate info; housekeeping (#153) 2021-10-05 20:08:10 +03:00
e99c352a95 Decouple log targets to a separate crate (#152) 2021-10-05 16:55:04 +03:00