Commit Graph

151 Commits

Author SHA1 Message Date
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
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
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
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
db369da96e feat: Make traces produced by expect dependent on
the value of the tracing flag.
2023-06-23 14:03:23 -04:00
microproofs
626033ff9b fix: attempt to convert from opaque before doing monomorphization 2023-06-22 18:20:31 -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
rvcas
cf6d04e95b chore: some clippy warnings 2023-06-02 19:47:52 -04:00
microproofs
8f0cf289b4 fixes:
fix: rearrange clauses and fill in gaps now handles nested patterns in a uniform way
fix: discards in records was being sorted incorrectly leading to type issues
chore: remove some filter maps in cases where None is impossible anyway
chore: some refactoring on a couple functions to clean up
2023-06-02 18:38:21 -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
49898f7420 fix: to_data_builtin to operate on arg not func result 2023-05-08 16:15:09 -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
9bb1a88f23 fix: expect [] on a non-empty list now fails. 2023-04-21 17:39:21 -04:00
rvcas
70f12d3fc5 chore: new branch with some things from the bumpalo branch 2023-04-13 01:28:27 -04:00
Kasey White
1e35281650 clause guard with discard is now handled 2023-04-12 08:26:03 +02:00
Kasey White
efb901f3b4 fix: issue with modifying a functions dependencies and adding a function that depended on it causing infinite loops 2023-04-09 17:43:56 -04:00
Kasey White
a17ebf301f fix: now we monomorphize __expect_type functions 2023-04-09 17:43:56 -04:00
Kasey White
9d9f8a914a fix generics causing a free unique due to ordering in expect_type 2023-04-09 17:43:56 -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
4ff0504d58 feat: change define_ir_processor to handle code_gen_functions
Also flattened out that function by using let else
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
6c932bb562 expect on map and list now use a function that gets instantiated as air in code gen functions 2023-04-09 17:43:56 -04:00
Kasey White
abd97f0ade changed assert_on_list from being defined at uplc level to being defined at air level to enable proper hoisting 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
rvcas
1444c9328d fix some typos 2023-04-07 16:51:18 -04:00
Kasey White
8fad5b77c6 chore: add some unit tests to stack 2023-03-30 11:32:18 -04:00
rvcas
80f2fd746d test(gen_uplc::scope): more replace unit tests
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00
rvcas
e5980c5a96 feat(gen_uplc::scope): use some assumptions to simplify replace 2023-03-27 20:00:32 -04:00
Kasey White
c8ac9aa165 test: add replace same value unit test 2023-03-27 20:00:32 -04:00
rvcas
5453572fc0 test(gen_uplc::scope): common ancestor method
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00
Kasey White
822bb4242a fix: function hoisting errors --
One involving zero args being hoisted instead of compiled and replaced.
Second involving not updating a function's dependeny function scope. Which then hoisted to a lower scope and caused free unique
2023-03-27 20:00:32 -04:00
rvcas
96b7fb1c50 chore: make clippy happy 2023-03-27 20:00:32 -04:00
Kasey White
51a6589aac 2 acceptance tests left to fix 2023-03-27 20:00:32 -04:00
Kasey White
eef34b8f4b feat: all compiler errors fixed
Co-authored-by: Lucas Rosa <x@rvcas.dev>
2023-03-27 20:00:32 -04:00
Kasey White
25ff8acb1e feat: one more function to finish up 2023-03-27 20:00:32 -04:00
Kasey White
77afa76163 feat: refactor handle_each_clause
fix expect type ordering on constr type checking
2023-03-27 20:00:32 -04:00
rvcas
f07a959ab8 feat: almost done
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00
rvcas
709ee914ed feat: another round of functions using AirStack
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00
rvcas
489dd235ff feat(gen_uplc): finished up a few more functions
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
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