microproofs
29599879b2
one minor tail fix in clause pattern
2023-08-07 12:02:44 -04:00
microproofs
6a1b2db698
use retain instead of position
2023-08-07 12:02:44 -04:00
microproofs
7bf22fa58b
fix multivalidator issue
2023-08-07 12:02:44 -04:00
microproofs
281a8363c0
fixes to tuples and usage of discard.
...
Also a fix to tail and its type in when list pattern matches
2023-08-07 12:02:44 -04:00
microproofs
bfa4cc2efc
fix: some function dependency tree path was not being updated in order
...
fix: revert to old implicit way of casting to data for now
2023-08-07 12:02:44 -04:00
microproofs
a45ff692a6
last changes for today
2023-08-07 12:02:44 -04:00
microproofs
db79468435
remove old stuff
2023-08-07 12:02:44 -04:00
microproofs
aca79bd728
remove warning
2023-08-07 12:02:44 -04:00
microproofs
3189a60bdb
fixes to how we sort dependencies.
...
Also update dependency path based on a functions path.
2023-08-07 12:02:44 -04:00
microproofs
80b950b8aa
fix edge case with assign and pattern matching
2023-08-07 12:02:44 -04:00
microproofs
186e1235fd
checkpoint
2023-08-07 12:02:44 -04:00
microproofs
1ee7492f1f
fix tuple clause
2023-08-07 12:02:44 -04:00
microproofs
49a0a91103
fix tests again
2023-08-07 12:02:44 -04:00
microproofs
f5c7d222aa
optmization fix
2023-08-07 12:02:44 -04:00
microproofs
5aecb96668
constants are back. I had broke them when switching how data casting works
2023-08-07 12:02:44 -04:00
microproofs
0b8266dfd1
some type conversion fixes
2023-08-07 12:02:44 -04:00
microproofs
02948616cd
some more fixes involving clauses
2023-08-07 12:02:44 -04:00
microproofs
a689b8748f
fix: working on minor edge cases
...
fix: zero arg function dependencies should not count as hoisted
fix: tuple index was receiving the wrong type
2023-08-07 12:02:44 -04:00
microproofs
4e3ced5b75
fix and clean up tests and handle
...
one edge case on rearrange clauses
2023-08-07 12:02:44 -04:00
microproofs
018453f6b1
fix expect on tuple type using the wrong internal type
2023-08-07 12:02:44 -04:00
microproofs
f03ed41e03
fix some unnecessary lambdas in assign
2023-08-07 12:02:44 -04:00
microproofs
03dd13dc7d
fixing list condition edge cases and clean up rearrange list clauses
2023-08-07 12:02:44 -04:00
microproofs
e8fa8f5423
fixing list clause issues
2023-08-07 12:02:44 -04:00
microproofs
c6f90a999b
checkpoint
2023-08-07 12:02:44 -04:00
microproofs
389699f485
fix to subject type for assignment on single clause
2023-08-07 12:02:44 -04:00
microproofs
dcb3a9b45b
some type and expect fixes
2023-08-07 12:02:44 -04:00
microproofs
3545bad3c4
fix typing to constr
2023-08-07 12:02:44 -04:00
microproofs
52ebc9b6c1
some more fixes
2023-08-07 12:02:44 -04:00
microproofs
58b327e5b3
fixing bugs and edge cases
2023-08-07 12:02:44 -04:00
microproofs
2f4319f162
fix: tuples and list patterns had a few issues
2023-08-07 12:02:44 -04:00
microproofs
960a15c4ec
checkpoint - fixing tests and stuff
2023-08-07 12:02:44 -04:00
microproofs
72b6f0f847
all but six tests passing
2023-08-07 12:02:44 -04:00
microproofs
6eeb282dee
Now code gen is finished and we just have testing
2023-08-07 12:02:44 -04:00
microproofs
518bea5be4
feat: fixed up generate and generate test
...
last step is checking on uplc code gen
2023-08-07 12:02:44 -04:00
microproofs
18ea44adb0
chore: rename unwrapData and wrapData
...
add validator cast function for extra validator params
2023-08-07 12:02:44 -04:00
microproofs
55dd1a1a56
out with the old code and in with the air tree
2023-08-07 12:02:44 -04:00
microproofs
02ce3761ae
final checkpoint
2023-08-07 12:02:44 -04:00
microproofs
8641c305f4
feat: airtree now hoists function. Now all that is left is finishing uplc gen
2023-08-07 12:02:44 -04:00
microproofs
5ad8b520fd
checkpoint
2023-08-07 12:02:44 -04:00
microproofs
5a51764cff
remove some warnings
2023-08-07 12:02:44 -04:00
microproofs
a099c01734
feat: add support for hoisting code gen functions
...
fix: code gen vars should be module functions
fix: missed a recursive call in do_find_air_tree_node under binop
2023-08-07 12:02:44 -04:00
microproofs
c0f09856d3
feat: Here's a first, we hoisted some user functions onto the validator
2023-08-07 12:02:44 -04:00
microproofs
62660e04b5
checkpoint;
...
Remaining work is on function hoisting. Functions have been defined and monomorphized
2023-08-07 12:02:44 -04:00
microproofs
ae9de11e77
big checkpoint:
...
feat: add monomorphize and other useful tree function abstractions
feat: started testing function hositing result so far
2023-08-07 12:02:44 -04:00
microproofs
947c118175
checkpoint
2023-08-07 12:02:44 -04:00
microproofs
9704cafefe
a checkpoint for function hoisting start and type fix
2023-08-07 12:02:44 -04:00
microproofs
55ae708e3e
checkpoint: start on function hoisting
2023-08-07 12:02:44 -04:00
microproofs
2b7e7ead1c
feat: add support for validator arguments
...
feat: finish expect type on data constr
fix: tuple clause was exposing all items regardless of discard
fix: tuple clause was not receiving complex_clause flag
fix: condition for assert where constructor had 0 args was tripping assert
fix: had to rearrange var and discard assignment to ensure correct val is returned
fix: binop had the wrong type
2023-08-07 12:02:44 -04:00
microproofs
7d4e136467
checkpoint
2023-08-07 12:02:44 -04:00
microproofs
fd83c9a739
feat: fix up generic type functions to work with the new air tree functions
...
chore: remove commented code
2023-08-07 12:02:44 -04:00
microproofs
b3714ca9d0
fix: list clause guard for final clause needs to use list accessor
2023-08-07 12:02:44 -04:00
microproofs
2c61ecd4bb
feat: finish up nested clauses
2023-08-07 12:02:44 -04:00
microproofs
a3afb62861
chore: fixing nested clauses to match aiken stack air
2023-08-07 12:02:44 -04:00
microproofs
95af421f95
feat: finish tuple conditions
2023-08-07 12:02:44 -04:00
microproofs
05b6b2a97d
chore: rename some functions
2023-08-07 12:02:44 -04:00
microproofs
c025073056
fix: List clauses were destructuring the next element unnecessarily
...
feat: finish nested constructor clauses
2023-08-07 12:02:44 -04:00
microproofs
f6e163d16d
feat: start on nested clauses
...
chore: remove then field from list clause guard and clause guard
2023-08-07 12:02:44 -04:00
microproofs
5bcc425f0f
feat: changed air expressions clause guard
...
and list clause guard to air statements
2023-08-07 12:02:44 -04:00
microproofs
023be88bf6
chore: another checkpoint
...
fix: guard clause to properly check condition
2023-08-07 12:02:44 -04:00
microproofs
f94c8213b6
checkpoint
2023-08-07 12:02:44 -04:00
microproofs
0854d71836
chore: another checkpoint and renamed ClauseProperties fields
2023-08-07 12:02:44 -04:00
microproofs
d731757123
feat: start on clauses in when conditions
...
**checkpoint**
2023-08-07 12:02:44 -04:00
microproofs
96959011e9
feat: finish up build. just have helper methods
...
feat: Create an air and AirTree iterator.
This allows us to iterate forwards or backwards over the tree as a vec.
chore: moved around some functions
2023-08-07 12:02:44 -04:00
microproofs
ba3265054c
chore: move tree to gen_uplc2 and create a duplicate air file without scope
2023-08-07 12:02:44 -04:00
microproofs
7cee9a4d15
chore: move assignment_air_tree and expect_type to gen_uplc
...
feat: add is_primitive check to types
2023-08-07 12:02:44 -04:00
microproofs
cd726b561e
feat: add removal of discard lets
...
chore: Name change for AirTree sequence
feat: finish up assignment constructor and list for airtree builder
2023-08-07 12:02:44 -04:00
microproofs
59362e3d8c
feat: almost done assignment have tuple and constr left
...
feat: modified the AirTree structure to have statements, sequences, and expressions
feat: changed the hoist_over function to be universal
2023-08-07 12:02:44 -04:00
microproofs
65bb7e48e2
feat: start on build assignment
...
feat: implement assignment hoisting
2023-08-07 12:02:44 -04:00
microproofs
c359bd35d7
feat: update tree to allow for let hoisting
...
feat: start on build for when expressions
feat: add builder methods for AirTree
2023-08-07 12:02:44 -04:00
microproofs
83ade9335f
feat: implement most of airtree build
2023-08-07 12:02:44 -04:00
microproofs
5e097d42ba
feat: add AirTree types and builder functions
2023-08-07 12:02:44 -04:00
Olof Blomqvist
d25bb9ae60
format
2023-08-04 14:56:16 -04:00
Olof Blomqvist
4e4a477ff1
meh
2023-08-04 14:56:16 -04:00
Olof Blomqvist
17eef195a9
fix diagnostics and formatting on windows vscode
2023-08-04 14:56:16 -04:00
rvcas
266b6bbb7d
fix(exhaustiveness): for constructor use correct name because import aliases
2023-08-03 16:28:47 -04:00
rvcas
60ac8ab591
fix(exhaustiveness): adjust helper method to get contructors properly
2023-08-03 16:14:42 -04:00
KtorZ
675b737898
Check exhaustiveness behavior on pattern guards.
2023-08-02 10:40:59 +02:00
KtorZ
4f7f39292d
Fix subtle bug in pattern rendering
...
When rendering missing or redundant patterns, linked-list would
wrongly suggest the last nil constructor as a pattern on non-empty
list.
For example, before this commit, the exhaustivness checker would yield:
```
[(_, True), []]
```
as a suggestion, for being the result of being a list pattern with a
single argument being `(_, True) :: Nil`. Blindly following the
compiler suggestion here would cause a type unification error (since
`[]` doesn't unify with a 2-tuple).
Indeed, we mustn't render the Nil constructor when rendering non-empty
lists! So the correct suggestion should be:
```
[(_, True)]
```
2023-08-02 10:31:35 +02:00
KtorZ
00b255e960
Remove now-dead code.
2023-08-02 09:22:21 +02:00
rvcas
f3cab94ae1
test(check): a bunch of tests for the new exhaustiveness stuff
2023-08-01 21:13:50 -04:00
rvcas
75e18d485d
fix: redundant might be wildcard which doesn't match technically
2023-08-01 21:13:50 -04:00
rvcas
a6b230aad4
fix: exhaustiveness on types from other modules
2023-08-01 21:13:50 -04:00
rvcas
7e531d0da1
fix: wrong var for name in UnknownModule error
2023-08-01 21:13:50 -04:00
rvcas
b6ac39f322
feat(exhaustiveness): show both clauses in redundant error
2023-08-01 21:13:50 -04:00
rvcas
ef2fc57ca9
feat(exhaustiveness): check tuple patterns
2023-08-01 21:13:50 -04:00
rvcas
f1100e901d
feat(exhaustiveness): pretty print missing patterns
2023-08-01 21:13:50 -04:00
rvcas
de2791fe82
feat(tipo): add new error for redundant clauses
2023-08-01 21:13:50 -04:00
rvcas
0061bcf78d
feat: add support for list patterns
2023-08-01 21:13:50 -04:00
rvcas
e8a71cd63b
chore: rename usefulness module
2023-08-01 21:13:50 -04:00
rvcas
03efb46e6f
feat(exhaustiveness): algorithm U borrowed from elm
2023-08-01 21:13:50 -04:00
microproofs
55887d3a45
fix: decode should always print to textual
2023-08-01 00:47:29 -04:00
Cainã Costa
49cc76cf77
chore: cargo fmt
2023-07-25 14:00:29 -04:00
Cainã Costa
2cecb099d7
feat: add a generator for shell completions
2023-07-25 14:00:29 -04:00
rvcas
152e847e26
chore: no longer need this env var
2023-07-24 10:30:02 -04:00
Cainã Costa
d19a39239d
fix: fix clippy error
2023-07-24 10:24:37 -04:00
Pi Lanningham
27c0f25606
Add a blueprint hash command
...
Similar to blueprint address and blueprint policy, this just prints the
hash of the validator; useful if you need the hash, and you don't want
to pipe the address to a bech32 decoder and juggle the hex.
2023-07-21 22:57:31 -04:00
rvcas
be7a441205
fix(uplc): pair type formatting closes #680
2023-07-19 13:49:05 -04:00
rvcas
97acd6d7bd
chore: Release
2023-07-15 21:37:10 -04:00
rvcas
77a627817b
chore: prepare changelog for release
2023-07-15 21:34:41 -04:00
rvcas
1b8e94fe32
feat: expect boolean sugar
2023-07-15 20:50:02 -04:00