Commit Graph

194 Commits

Author SHA1 Message Date
microproofs
67c072a1a9 test: add acceptance test 86
fix: prevent mutual recursion for expect type code gen functions
2023-07-04 12:24:25 -04:00
microproofs
8b3504e9a1 fix: expect _ = ... not including the cast from data logic if the type is data and right hand has a type annotation 2023-06-23 18:39:12 -04:00
microproofs
226556bdd6 fix: builtins using the incorrect data to type conversion when used as a function param. 2023-06-23 14:31:19 -04:00
microproofs
db369da96e feat: Make traces produced by expect dependent on
the value of the tracing flag.
2023-06-23 14:03:23 -04:00
microproofs
dbfa08a5a7 fix: issue with tuple clause
It was not consuming the next case if there was no condition being checked in the clause.
Now it properly always consumes the next clause unless last clause.
2023-06-23 12:36:15 -04:00
microproofs
5362714a63 chore: update tests 2023-06-22 18:20:31 -04:00
microproofs
626033ff9b fix: attempt to convert from opaque before doing monomorphization 2023-06-22 18:20:31 -04:00
microproofs
24f5c4de6b fix: the final clause of a when expecting another clause afterwards in nested list cases.
fix: all elements were being destructured in tuple clauses even if not used
2023-06-19 21:43:38 -04:00
rvcas
37b2f0c239 fix: gift card example stdlib update
closes #596
2023-06-13 00:38:29 -04:00
microproofs
5faa925aea fix: error when using nested boolean checks in when conditions 2023-06-06 03:04:12 -04:00
microproofs
bfd2a50a6b fix: zero arg functions were grabbing extra dependencies they didn't need to
fix: Had the wrong conversion for constant maps to plutus data. Fixed to check for right conversion
2023-06-04 15:23:36 -04:00
microproofs
4838ebd39e feat: record modules are no longer unimplemented for no fields
refactor: remove some clones and use a ref instead
test: add acceptance test 81
2023-05-14 18:30:51 -04:00
microproofs
b36cf1c029 chore: refactor default functions in uplc_code_gen.
feat: Add an identity optimization to remove functions that return the argument only.
2023-05-08 16:15:09 -04:00
microproofs
0d0c96deda commit validator changes and tests 2023-04-28 17:05:46 -04:00
microproofs
c3184c544c fix: wrap data reduce had the wrong argument called in recursively, thus skipping over cases that should have been reduced
chore: Add unit tests on for uplc optimizations
2023-04-26 17:22:16 -04:00
microproofs
b050018a37 test fix: blueprint change 2023-04-25 02:06:56 -04:00
microproofs
672a900243 chore: converted acceptance tests 5-7 2023-04-19 20:03:41 -04:00
microproofs
23a7e7e680 chore: convert acceptance test 5
Also constructors with no fields are now converted to a constant data term.
2023-04-19 16:08:55 -04:00
microproofs
7dd13f8d73 feat: add end to end tests to replace acceptance tests with strict uplc comparison.
Add acceptance tests 1,2, 6 as end to end tests
2023-04-19 16:08:55 -04:00
microproofs
fc1b8738df fix: fixed how the ir was generating for expect Void, expect Bool, let Void
add some acceptance tests for the various scenarios
2023-04-12 22:37:33 -04:00
KtorZ
0846fe2d5f Add new failing test case for 048 (clause guards)
It seems like we don't properly handle clause guards for wildcard
  patterns. Seems like a codegen issue here as the code type-check
  properly.
2023-04-12 08:24:18 +02:00
Kasey White
ff290bc582 add expect false test 2023-04-09 17:43:56 -04:00
Kasey White
02d57cc076 tests pass now after adding in final wrapper as air elements 2023-04-09 17:43:56 -04:00
Kasey White
9e95e24624 now tests are passing 2023-04-09 17:43:56 -04:00
Kasey White
897011e9bc misc changes 2023-04-09 17:43:56 -04:00
Kasey White
f4ba6b8985 fix: unused validator args had an incorrect if check 2023-04-09 17:43:56 -04:00
Kasey White
3f45b524b8 feat: unused validator args are not expect checked 2023-04-09 17:43:56 -04:00
Kasey White
8c8312a412 fix: expect true was always expecting false 2023-04-09 17:43:56 -04:00
KtorZ
23b72e18f3 Add new acceptance test scenario: expect unary constructors.
```
  Error:
    × Main thread panicked.
    ├─▶ at crates/aiken-lang/src/gen_uplc.rs:1852:33
    ╰─▶ called `Option::unwrap()` on a `None` value
  ```
2023-04-09 17:43:56 -04:00
rvcas
1444c9328d fix some typos 2023-04-07 16:51:18 -04:00
KtorZ
814157dd7b Fix formatter inconsistency with record spread patterns. 2023-03-30 13:02:20 +02:00
KtorZ
17431daaa4 Correctly nest multiline pipeline expressions. 2023-03-30 12:48:15 +02:00
rvcas
703429af98 chore: commit plutus.json 2023-03-27 20:00:32 -04:00
Kasey White
b2dcb112c9 fix last 2 acceptance tests 2023-03-27 20:00:32 -04:00
Kasey White
32d34d5fd3 create struct Air Env
refactor out some to_strings
2023-03-27 20:00:32 -04:00
Kasey White
bb820ebdd8 fix: trace and scope issues
fix scope issues involving fieldsexpose and other destructureing pattern
fix trace to extract string from term.
2023-03-21 12:38:13 -04:00
Kasey White
6e5b24a937 refactor the rest of the term builders to use more concise code 2023-03-21 00:50:13 -04:00
Kasey White
50db958d06 update codegen to use more streamlined uplc building methods 2023-03-21 00:50:13 -04:00
KtorZ
a4c7337df2 Add new acceptance scenario 079 (double validators) 2023-03-17 18:40:49 -04:00
rvcas
c3870e340e feat(codegen): support multi-validators
* rename force_wrap to force
* add a bunch of builder methods to Term<Name>
* refactor one tiny location to show off builder methods
* split generate into `generate` and `generate_test`
* create wrap_as_multi_validator function

Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-17 18:40:44 -04:00
KtorZ
660d2199d4 Make blueprint generation deterministic
Sort validators before iterating on them.
2023-03-17 14:57:39 +01:00
KtorZ
c113582404 Support multi-clause patterns as syntactic sugar
And disable multi-patterns clauses. I was originally just controlling
  whether we did disable that from the parser but then I figured we
  could actually support multi-patterns clauses quite easily by simply
  desugaring a multi-pattern into multiple clauses.

  This is only a syntactic sugar, which means that the cost of writing
  that on-chain is as expensive as writing the fully expanded form; yet
  it seems like a useful shorthand; especially for short clause
  expressions.

  This commit however disables multi-pattern when clauses, which we do
  not support in the code-generation. Instead, one pattern on tuples for
  that.
2023-03-16 19:45:41 -04:00
KtorZ
13890874c0 Fix 'run' script, also do 'check' on modules that have validators. 2023-03-16 23:04:24 +01:00
Lucas
fab6d56bf2 Merge branch 'main' into newline-assignment 2023-03-16 15:30:55 -04:00
KtorZ
45575cae96 Fix 'run' script and re-generate blueprint for scenario 077. 2023-03-16 15:29:44 -04:00
KtorZ
20f5baffa7 Enforce newline after assignment / clause.
This leads to more consistent formatting across entire Aiken programs.
  Before that commit, only long expressions would be formatted on a
  newline, causing non-consistent formatting and additional reading
  barrier when looking at source code.

  Programs also now take more vertical space, which is better for more
  friendly diffing in version control systems (especially git).
2023-03-16 19:46:46 +01:00
KtorZ
ae981403c6 Re-introduce field title & description in referenced schemas. 2023-03-12 12:44:49 -04:00
KtorZ
45a463786f Update blueprints from acceptance tests and hello, world. 2023-03-12 12:44:49 -04:00
Kasey White
31c280552d add another validator 2023-03-12 00:25:26 -05:00
Kasey White
4a7bbc23df fix: change in scope was applied in wrong place in pattern_ir for constr expect 2023-03-12 00:25:26 -05:00