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
Kasey White
f377d60085
ChooseData is now lazy with its branch arguments.
...
This enables calling the un_data builtins directly from choose_data args
2023-03-09 00:31:57 -05:00
KtorZ
dbef4474fa
Add new acceptance scenario: 065
...
-> The provided Plutus code called 'error'.
This scenario _could_ work if `choose_data` was lazy in its arguments.
Which is a reasonable thing to expect from `choose_data`. Since we
don't have any way to introduce on-demand lazyness in the language
(and we are not looking for ways), we need to make a special case for
`choose_data` which is a perfect (and singular) use case for it.
2023-03-09 00:31:57 -05:00
Kasey White
c85240cbed
Fix exception when doing expect boolean = ..
...
Add new Air Assert Bool
Add acceptance test 76
2023-03-08 22:31:30 -05:00
Matthias Benkort
d8934b3d8d
Merge pull request #421 from aiken-lang/monomorph-panic-fix
...
Functions with only a generic return weren't being properly monomorph…
2023-03-08 11:39:50 +01:00
Kasey White
89373c32e6
Functions with only a generic return weren't being properly monomorphized. Fixed that.
2023-03-08 10:31:05 +01:00
rvcas
f8545854fc
feat: json output for uplc eval
2023-03-08 10:19:36 +01:00
rvcas
9b96f7bb2e
chore: commit acceptance test plutus files
2023-03-06 13:26:36 -05:00
Kasey White
f230af436c
fix: scope issue with expect and function calls
...
Add acceptance test 72
2023-03-03 01:00:35 -05:00
Kasey White
5779b77ccc
fix: Had to also check for generic type in return of a function.
...
add check to prevent stack overflow error
Add panic to prevent any other occurrences of stack overflow
2023-03-02 21:49:20 -05:00
Kasey White
26b4156d5a
remove comment
2023-03-02 21:49:20 -05:00
KtorZ
451d9d8493
Add new acceptance test scenario: 068
...
Stack overflow happening during code generation.
2023-03-02 21:49:20 -05:00
KtorZ
65c336cb82
Update blueprint outputs to reflect latest specification.
...
Schemas of datums, redeemers and parameters are now nested under a field 'schema'. This allows to define a field 'purpose' at the same level.
2023-03-02 17:17:27 +01:00
Kasey White
0c1c7da16f
add accpetance test 71
2023-03-01 14:22:59 -05:00
Kasey White
665a8dec67
feat: add support for unconstr_data
...
-Builitins IR now acts like Record IR in terms of argument consumption
-UnConstrData returns as Pair(Data,Data) to conform with how pairs are treated behind the scenes.
2023-02-26 00:13:38 -05:00
KtorZ
81e072a14e
Add new acceptance test scenario: 064
...
- Type mismatch expected 'data' got 'integer'
- Type mismatch expected 'data' got 'list data'
2023-02-26 00:13:38 -05:00
Kasey White
70164282f8
fix: switch from unwrap to if let to allow boolean when
...
fix: test 67 fixed to take in ByteArray instead of string literal
2023-02-20 04:37:33 -05:00
Kasey White
87eb4ca3b4
feat: handle single constr when with multiple branches
...
Add case to acceptance test 40
Add special case for top level single constr in a when.
2023-02-20 02:46:46 -05:00
KtorZ
5132110d4b
Fix acceptance tests to use new syntax.
2023-02-19 10:10:40 +01:00
Kasey
f3cdc05875
fix: the refactor on discharge value env ( #393 )
2023-02-18 20:49:29 -05:00