Commit Graph

20 Commits

Author SHA1 Message Date
dd0c458339 fix: cannon treats ap with different generations as incompatible (#350)
Fixes #348.
2022-09-30 21:43:51 +03:00
2e98712cb2 fix(execution-engine) Restricted stream bugfix (#337)
Use proper stream generation structures for call results merged from current data.

Closes #302.

Co-authored-by: vms <michail.vms@gmail.com>
2022-09-30 03:10:24 +07:00
c85b2e2fbf feat(execution-engine): change behaviour of fold over streams (#340)
feat(execution-engine): change behaviour of fold over streams

Change behaviour of fold over streams to make it more similar to pi-calculus channels/names (for more info see #333).

Closes #333.

BREAKING CHANGE:

The new stream behaviour is not compatible with old one, such as
```
(fold $stream iterator
   (seq
       (call ...)
       (next iterator)))
```
will never end after this change (for more info again see #333).
2022-09-28 22:03:54 +03:00
ad504bce8b Update all non-major Rust dependencies (#330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-19 14:07:34 +03:00
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
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
5072fba9d6 Introduce canon instruction (#292) 2022-08-26 00:43:43 +03:00
dcab0023d8 fix bug with ap merger #295 (#296) 2022-08-18 22:31:29 +03:00
0d9390d333 make clippy happy (#291) 2022-08-10 12:27:06 +03: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
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
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
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
ac050abc8a Fix ap trace handler behaviour (#224) 2022-02-25 10:24:28 +03:00
d300c8b2fc Improve subtrace len compute algo (#186) 2021-12-03 14:29:03 +03:00
fbbe28c5b2 Cleanup fold iterable while exception (#185) 2021-12-02 14:44: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
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