Commit Graph

19 Commits

Author SHA1 Message Date
microproofs 8a1c824dd7 chore: add specific error for when the validator returns false 2023-10-04 11:08:22 -04:00
microproofs 47596f0324 feat: Remove tuple_index and record_access in favor of faster more direct functions for
accessing an item in a tuple or a field in a record
2023-09-28 01:05:05 -04:00
microproofs a4aa51ed2d WIP: first part of mutual recursion is done.
This involves creating the function definition and detecting cycles.
The remaining part is to "fix" the call sites
of the mutually recursive functions
2023-09-25 21:16:19 -04:00
rvcas d808197507
chore: clippy fix 2023-09-13 18:17:59 -04:00
microproofs 2456801b17 fix list clauses with guards and add more tests 2023-08-16 21:59:25 -04:00
Pi Lanningham 09f889b121 Add codegen for recursive statics case
We also flip the recursive_statics fields to recursive_nonstatics; This makes the codegen a little easier.  It also has a hacky way to hard code in some recursive statics for testing
2023-08-07 19:00:39 -04:00
Pi Lanningham 586a2d7972 Add recursive_static_params to AIR
Any methods to a recursive function that are unchanged and forwarded
don't need to be applied each time we recurse; instead, you can
define a containing lambda, reducing the number of applications
dramatically when recursing
2023-08-07 19:00:39 -04:00
microproofs 6eeb282dee Now code gen is finished and we just have testing 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 9bb1a88f23 fix: expect [] on a non-empty list now fails. 2023-04-21 17:39:21 -04:00
Kasey White f8483da4e0 Code gen now handles expecting on validator args in the air stack.
Thus allowing us to use code gen created functions to expect on data types including recursive ones.
Some minor tweaks to the air.
Added a uplc optimization for later.
2023-04-09 17:43:56 -04:00
Kasey White bc7b07c1d9 fix: expect_type now works on recursice constructors and validator args are now handled by air 2023-04-09 17:43:56 -04:00
Kasey White ddf0fbfa0a fix: expect void now checks for unit instead of expecting data
Args in validator are now fully expected on.
Add new air FieldsEmpty to make checking for empty constructors easier
2023-04-09 17:43:56 -04:00
Kasey White 8fad5b77c6 chore: add some unit tests to stack 2023-03-30 11:32:18 -04:00
Kasey White 51a6589aac 2 acceptance tests left to fix 2023-03-27 20:00:32 -04:00
rvcas 33a3c5dc13 feat(gen_uplc): introduce scope new type
* new module scope which holds some ancestor logic
* rework some things to truly hide scope increments

Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00
rvcas ca0d896b8d feat: start using AirStack methods
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00
rvcas 3e6f688e2d feat: refactor some methods and modules
* move uplc::ast::builder to uplc::builder
* rename aiken_lang::uplc to aiken_lang::gen_uplc
* move aiken_lang::air and aiken_lang::builder to aiken_lang::gen_uplc
  as submodules

Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00