Commit Graph

58 Commits

Author SHA1 Message Date
microproofs
62963f7fc2 feat: finish curry optmization, improve inline optimization further, and add a subtract integer to add integer conversion 2024-03-04 10:52:56 -05:00
microproofs
7d8fdc0f22 prevent curried function hoisting if occurrences is 0 2024-03-04 10:52:56 -05:00
microproofs
258b5abf23 now currying works 2024-03-04 10:52:56 -05:00
microproofs
3b55a32583 finish up curry optimization on builtins 2024-03-04 10:52:56 -05:00
microproofs
58d586c5cf large refactor to reduce complexity 2024-03-04 10:52:56 -05:00
microproofs
8f84eb382f commit some changes so far 2024-03-04 10:52:56 -05:00
microproofs
9a52258e14 chugging along with a small refactor and some more work toward currying 2024-03-04 10:52:56 -05:00
microproofs
2f72510102 chore: Add back curry code removed in a previous commit 2024-03-04 10:52:56 -05:00
rvcas
589bb9a4b3 chore: change how we depend on pallas 2024-01-24 21:26:48 -05:00
microproofs
394cac86b8 feat: expect on a type now can take in a msg when in trace mode 2024-01-04 16:03:51 -05:00
microproofs
6a10be3e82 chore: remove redundant clone 2023-12-15 21:58:02 -05:00
microproofs
a0ec92897b chore: clean up pr 2023-12-15 21:58:02 -05:00
microproofs
2cd1379aec for now comment out curry code so the rest of the changes
can be merged to main
2023-12-15 21:58:02 -05:00
microproofs
c0c9f2f432 commit latest changes 2023-12-15 21:58:02 -05:00
microproofs
058a190294 feat: implement curried tree pruning 2023-12-15 21:58:02 -05:00
microproofs
51079b8590 fix: builtin_force_reducer wasn't handling double forces correctly 2023-12-15 21:58:02 -05:00
microproofs
4015550f55 start testing the first stage of currying builtins 2023-12-15 21:58:02 -05:00
microproofs
249581e1bc chore: continuing progress on implementing currying optimization for builtins
Introduced some new abstractions to make a different number of args easier to deal with
2023-12-15 21:58:02 -05:00
microproofs
8fdedb754e chore: continue more on curry optimizations 2023-12-15 21:58:02 -05:00
microproofs
88e21449c5 chore: comment fixes 2023-12-15 21:58:02 -05:00
microproofs
5c688b1404 Feat: refactor optimizations to use tree traversal algorithm
This makes each optimization a single function that acts on an existing tree traversal function
2023-12-15 21:58:02 -05:00
microproofs
7427bac4a0 chore: remove unused code 2023-11-06 15:37:04 -05:00
microproofs
598ec5eaef Use a better algorithm for inlining single occurrences 2023-11-06 15:37:04 -05:00
microproofs
4dd17dacf3 chore: rename uplc builder builtins 2023-10-22 17:08:48 -04:00
microproofs
9335522df4 Make change @ktorz suggested 2023-10-07 19:42:24 -04:00
microproofs
98cb01413b chore: prevent strings from being inlined and replicated 2023-10-07 19:42:24 -04:00
microproofs
fb2ca0e3e0 inline is actually cheaper in a lot of cases 2023-09-29 17:47:39 -04:00
microproofs
a2068ff062 fix: optmizer should never inline recursive functions
chore: some renames
2023-09-29 17:47:39 -04:00
microproofs
335560b81f Add placeholders for new terms in optimize
Update tests to check optimization is applied properly
2023-09-29 17:47:39 -04:00
microproofs
5e2a78173b optimization: increase the cases that inline_basic_reduce can handle 2023-09-29 17:47:39 -04:00
Pi Lanningham
f464eb3702 Cargo fmt + clippy, with latest rust 2023-08-07 19:00:39 -04:00
microproofs
36c80f36c1 fix tests 2023-08-07 12:02:44 -04:00
microproofs
f5c7d222aa optmization fix 2023-08-07 12:02:44 -04:00
microproofs
960a15c4ec checkpoint - fixing tests and stuff 2023-08-07 12:02:44 -04:00
rvcas
8a7df7f66b test: add empty list test 2023-07-04 17:19:29 -04:00
microproofs
a5245fdc6b chore: couple more identity tests in optimize step 2023-06-10 00:01:54 -04:00
microproofs
340ed3b6a5 fix: case where identity function was used as a param.
This was causing a free unique. The fix is after stripping applied usage of identity,
we then check if it is passed around and if so we leave in the function declaration.
2023-05-16 16:21:37 -04:00
microproofs
c3eab4cc2a chore: fix up when tuple deconstruction test
add inline test for optimization tests
add some more builder functions
2023-05-11 18:06:46 -04:00
microproofs
0c3dc0580a chore: add if_else optimization test 2023-05-09 19:09:24 -04:00
microproofs
6456001cbc fix: the uplc optimization tests were missing intern
add builtin force reduce tests
2023-05-09 18:55:53 -04:00
microproofs
419b946a82 fix: wrap_data_reduce optimization should leave constr data
and unconstr data untouched.
2023-05-09 16:56:50 -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
b108c0f610 chore: add optimization test on unwrap data 2023-04-27 12:17:57 -04:00
microproofs
c3184c544c fix: wrap data reduce had the wrong argument called in recursively, thus skipping over cases that should have been reduced
chore: Add unit tests on for uplc optimizations
2023-04-26 17:22:16 -04:00
microproofs
ae68ae9afb fix: wrong var usage on inline_direct_reduce, now it properly looks at applied func not arg 2023-04-25 01:57:04 -04:00
microproofs
016634fc38 fix: inline_direct_reduce now works properly 2023-04-21 16:01:54 -04:00
microproofs
0b7d217bd0 convert acceptance test 8 2023-04-21 16:01:54 -04:00
microproofs
23a7e7e680 chore: convert acceptance test 5
Also constructors with no fields are now converted to a constant data term.
2023-04-19 16:08:55 -04:00
microproofs
9de713803a feat: Add wrap data reduce which helps prevent unnecessary wrap to unwrap and vice versa.
fix: in inline_reduce the wrong arg name was used. arg instead of argument

refactor var occurences
2023-04-19 16:08:55 -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