dependabot[bot]
52795692d6
Bump mio from 0.8.10 to 0.8.11
...
Bumps [mio](https://github.com/tokio-rs/mio ) from 0.8.10 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases )
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11 )
---
updated-dependencies:
- dependency-name: mio
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 10:18:01 -05:00
KtorZ
966a20f691
Fix run_n_times for properties expected to fail.
2024-03-04 23:41:37 +01:00
KtorZ
4d432513e0
Fix interesting case identification for properties expected to fail.
2024-03-04 23:28:45 +01:00
KtorZ
4097d1edb2
Fix negative integer literal parsing in fuzzer DSL.
2024-03-04 23:27:23 +01:00
KtorZ
fbeb611e5f
Show counter examples in green when property is expected to fail.
2024-03-04 20:41:04 +01:00
KtorZ
3e922c0a52
Allow primitive literals, lists and tuples in fuzzer expressions.
2024-03-04 20:41:04 +01:00
rvcas
c7cd89d127
chore: fix fmt
2024-03-04 13:03:07 -05:00
KtorZ
df3baa082e
Remove 'seed' arg from 'with_project' to FinishedTests event
...
Also polish a bit the output of tests, move test result to stdout to allow filtering out warnings by redirecting stderr to /dev/null.
2024-03-04 18:43:51 +01:00
microproofs
c9dd281b45
disable assert that was blocking issue #844
2024-03-04 11:48:22 -05:00
microproofs
27eb1a3e04
Change all uses of interning besides the uplc parser to use the new CodeGenInterner
2024-03-04 11:03:23 -05:00
microproofs
e14f091b86
add back test 93
2024-03-04 10:52:56 -05:00
microproofs
d971d9818b
update tests and ensure identity reducer handles no_inline lambda
2024-03-04 10:52:56 -05:00
microproofs
af6c107187
remove unneeded assert
2024-03-04 10:52:56 -05:00
microproofs
06ca22c26a
update inliner to handle no_inline functions
2024-03-04 10:52:56 -05:00
microproofs
4e928f39db
start adding no inline flag to functions
2024-03-04 10:52:56 -05:00
microproofs
2aaa46e54c
remove print
2024-03-04 10:52:56 -05:00
microproofs
c6ef37cc5c
checkpoint
2024-03-04 10:52:56 -05:00
microproofs
4e0aaf970f
update tests and fix final unique issues
2024-03-04 10:52:56 -05:00
microproofs
62963f7fc2
feat: finish curry optmization, improve inline optimization further, and add a subtract integer to add integer conversion
2024-03-04 10:52:56 -05:00
microproofs
7d8fdc0f22
prevent curried function hoisting if occurrences is 0
2024-03-04 10:52:56 -05:00
microproofs
258b5abf23
now currying works
2024-03-04 10:52:56 -05:00
microproofs
3b55a32583
finish up curry optimization on builtins
2024-03-04 10:52:56 -05:00
microproofs
58d586c5cf
large refactor to reduce complexity
2024-03-04 10:52:56 -05:00
microproofs
8f84eb382f
commit some changes so far
2024-03-04 10:52:56 -05:00
microproofs
9a52258e14
chugging along with a small refactor and some more work toward currying
2024-03-04 10:52:56 -05:00
microproofs
2f72510102
chore: Add back curry code removed in a previous commit
2024-03-04 10:52:56 -05:00
Matthias Benkort
7c2bae0904
Merge pull request #849 from waalge/waalge/bump-rust-1-76-0
...
Waalge/bump rust 1 76 0
2024-03-04 16:18:41 +01:00
waalge
658984e157
Merge remote-tracking branch 'official/main' into waalge/bump-rust-1-76-0
2024-03-04 14:34:14 +00:00
waalge
5d6bcaabe9
bump flake ... but in a way that works for external builds?!
2024-03-04 14:32:27 +00:00
KtorZ
8e8e0de044
cargo fmt --all
2024-03-04 14:46:16 +01:00
Matthias Benkort
6a4841dd7f
Merge pull request #848 from waalge/waalge/bump-rust-1-76-0
...
bump rust version in flake
2024-03-04 14:45:52 +01:00
waalge
69aefc8c48
bump rust version in flake
2024-03-04 13:33:43 +00:00
KtorZ
362acd43a3
Rework and optimize PRNG
...
Using ByteArrays as vectors on-chain is a lot more efficient than relying on actul Data's list of values. From the Rust end, it doesn't change much as we were already manipulating vectors anyway.
2024-03-04 14:27:16 +01:00
KtorZ
dd1c7d675f
Allow Aiken files to have more than one dot-separated suffix.
2024-03-04 00:15:05 +01:00
KtorZ
50faf81c0f
Use u64 for PRNG choices.
2024-03-04 00:14:34 +01:00
Matthias Benkort
b68f99cf24
Merge pull request #835 from aiken-lang/fuzz2
...
Property-based testing framework
2024-03-03 21:18:57 +01:00
KtorZ
c2bc5848dd
Fill-in CHANGELOG.
2024-03-03 21:09:17 +01:00
KtorZ
900b73b21a
cargo fmt --all
2024-03-03 21:05:43 +01:00
KtorZ
fbda31d980
Fix and improve test outputs for prop tests.
2024-03-03 21:00:51 +01:00
KtorZ
7a2537432a
Accept an optional --seed parameter for check, otherwise default to random.
...
Also, show the seed on failure.
2024-03-03 20:36:01 +01:00
KtorZ
a7b9d4bb22
Use u8 for fuzzer choices instead of u32
...
Value is bounded between 0 and 255.
2024-03-03 19:38:49 +01:00
KtorZ
30841fe000
Rework generate_raw to avoid need to intern in prop tests
...
Also, this commit makes `apply_term` automatically re-intern the
program since it isn't safe to apply any term onto a UPLC program. In
particular, terms that introduce new let-bindings (via lambdas) will
mess with the already generated DeBruijn indices.
The problem doesn't occur for pure constant terms like Data. So we
still have a safe and fast version 'apply_data' when needed.
2024-03-03 19:33:27 +01:00
KtorZ
1134b8d7d0
Register tests as callable definitions.
...
Also move the registering of validators into the same place as they
other and define a little cute function to avoid code-duplication.
2024-03-03 19:33:27 +01:00
KtorZ
c2dc47fa0b
Refactor creation of CodeGenerator and management of known data_types and functions.
...
This was a mess to say to the least. The mess started when we wanted
to make all definitions in codegen use immutable maps of references --
which was and still is a good idea. Yet, the population of the data
types and functions definitions was done somehow in a separate step,
in a rather ad-hoc manner.
This commit changes that to ensure the project's data_types and
functions are populated while type checking the AST such that we need
not to redo it after.
The code for registering the data type definitions and function
definitions was also duplicated in at least 3 places. It is now a
method of the TypedModule.
Note: this change isn't only just cosmetic, it's also necessary for
the commit that follows which aims at adding tests to the set of
available function definitions, thus allowing to make property tests
callable.
2024-03-03 19:33:26 +01:00
KtorZ
26e563a9be
Hardened property-based testing framework. More tests, less bugs.
...
Those end-to-end tests are useful. Both for controlling the behavior of the shrinker, but also to double check the reification of Plutus Data back into untyped expressions.
I had to work-around a few things to get opaque type and private types play nice. Also found a weird bug due to how we apply parameters after unique debruijn indexes have been also applied. A work-around is to re-intern the program.
2024-03-03 19:33:26 +01:00
KtorZ
775a34bc47
Remove acceptance_test 095, now done directly from Rust.'
2024-03-03 19:33:26 +01:00
KtorZ
3df5bcd96d
Fix shrinker impl and implement 3rd strategy of bin_search reduction.
2024-03-03 19:33:26 +01:00
KtorZ
70ea3c9598
Write boilerplate code for being able to easily test properties.
...
Loads of plumbing, but we now have at least some nice ways to test property execution and shrinking.
2024-03-03 19:33:26 +01:00
KtorZ
2db15d59be
Rename 'aiken-project::script' into 'aiken-project::test_framework'
2024-03-03 19:33:26 +01:00
KtorZ
bbc9fc5762
Yield proper user-facing error when inferring Fuzzer usage
2024-03-03 19:33:26 +01:00