Commit Graph

1848 Commits

Author SHA1 Message Date
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