Commit Graph

459 Commits

Author SHA1 Message Date
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 fb6cbbec8b chore: Release 2023-09-29 22:08:09 -04:00
microproofs 82ceb5b696 chore: Release 2023-09-29 19:39:28 -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
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
KtorZ ee4001d2c8
chore: Release 2023-09-20 18:03:46 +02:00
KtorZ 9782c094b7
Fix clippy suggestions. 2023-09-08 16:21:07 +02:00
microproofs 819a0a20e6 add tests for case and constr
Fix a minor issue with decoding order
2023-09-03 11:52:49 -04:00
microproofs c9b01ab365 chore: fill in cost model
test: Add case and constr eval tests
2023-09-03 11:52:49 -04:00
microproofs 85901dc141 chore: update cost model with placeholders for new terms to pass tests 2023-09-03 11:52:49 -04:00
microproofs 40e1d39f8b Add placeholders for cost model 2023-09-03 11:52:49 -04:00
microproofs 33d6d3049e add compute for the new terms constr and case 2023-09-03 11:52:49 -04:00
microproofs e566c4e1de feat(uplc): add Case and Const terms
- parsering
- interning
- flat encoding and decoding
- pretty printing
- debruijn conversion

Co-authored-by: Lucas Rosa <x@rvcas.dev>
2023-09-03 11:52:49 -04:00
rvcas fb967d4c7b
fix: uplc formatter of Data closes #716 2023-08-31 17:20:48 -04:00
waalge cd3a02416f chore: rm unused pub function 2023-08-29 22:30:06 -04:00
waalge 756e16c14b fix: rename assert to expect 2023-08-29 22:30:06 -04:00
rvcas b075d85b40
chore: Release 2023-08-24 15:05:12 -06:00
rvcas a7062ccb88
chore: fix versions 2023-08-24 15:04:19 -06:00
rvcas 747e057d05
fix: tags 2023-08-24 15:00:09 -06:00
KtorZ 2f0211a7b1
Bump all version manually because cargo workspaces didn't work. 2023-08-22 13:27:10 +02:00
microproofs 89c55a23fa chore: Release 2023-08-19 20:17:00 -04:00
KtorZ 051e9a6851 Add some utility functions for displaying Term/PlutusData
This is useful with the blueprint stuff, where Term are often just plain PlutusData.
2023-08-19 13:39:39 -04:00
rvcas 690e41261e
chore: Release 2023-08-16 23:30:21 -04:00
rvcas 2600937447
chore: cargo fmt 2023-08-16 22:56:22 -04:00
logicalmechanism 649039c993 tx simulate still need fee work 2023-08-16 22:37:00 -04:00
logicalmechanism 050c41c8dc tx simulate returns a vector of exbudgets now 2023-08-16 22:37:00 -04:00
microproofs 4a1ae9f412 set eval to public 2023-08-12 16:42:23 -04:00
microproofs ca4a9fcd3d chore: make eval function and SlotConfig public 2023-08-11 20:33:08 -04:00
microproofs 8af253e1df chore: make slot_to_begin_posix_time a public function 2023-08-11 20:05:22 -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
microproofs 6eeb282dee Now code gen is finished and we just have testing 2023-08-07 12:02:44 -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 621017bd93
chore: Release 2023-07-14 10:55:13 -04:00
Pi Lanningham 723c347a1a Clippy
Clippy has a build failure locally, for some reason, so I have to use CICD to find these
2023-07-09 23:16:01 -04:00
Pi Lanningham 189150612c cargo fmt :| 2023-07-09 23:16:01 -04:00
Pi Lanningham 26a4c57805 Clippy cleanup 2023-07-09 23:16:01 -04:00
Pi Lanningham c4690c6e00 Data parsing, tests 2023-07-09 23:16:01 -04:00
Pi Lanningham 6d9a95ef2d Add all but data parsing
Updates the parsing to the standard, *except* for Data, since that'll be more involved
2023-07-09 23:16:01 -04:00
Pi Lanningham a48c45b737 Formatting 2023-07-09 23:16:01 -04:00
Pi Lanningham ecff82659d Tweak pretty-printing
This pretty printing now (mostly) matches https://github.com/input-output-hk/plutus/issues/4751#issuecomment-1538377273; the only concern is whether the PlutusData stuff should be upstreamed to pallas, and whether pallas has a way to print BigInts easier
2023-07-09 23:16:01 -04:00
KtorZ 2a747305f7
Fixes evaluation of large positive bigint in the UPLC machine
Fixes #511.
2023-07-05 18:52:14 +02:00
rvcas 8a7df7f66b
test: add empty list test 2023-07-04 17:19:29 -04:00
microproofs 42544af799 fix: safe encode bits to check for 2^num_bits <= byte we are encoding
fix: I thought namedDeBruijn takes advantage of Binder for encoding and decoding.
It does not...
fix: Debruijn was being converted to NamedDeBruijn incorrectly
2023-06-30 23:06:38 -04:00
rvcas 90ff211205
chore: Release 2023-06-23 19:41:14 -04:00
microproofs 93135cebbb fix: redeemers in the script context are sorted by redeemer ptr not data hash 2023-06-16 12:24:44 -04:00
rvcas 85d82e5aec
chore: Release 2023-06-13 21:24:41 -04:00
microproofs 379c2fe2bf chore: Release 2023-06-13 20:32:22 -04:00
microproofs a5245fdc6b chore: couple more identity tests in optimize step 2023-06-10 00:01:54 -04:00
microproofs c5af6e0be3 chore: Release 2023-06-08 19:34:51 -04:00
rvcas 8d107b1293
fix(build): --uplc must use Program<Name> to pretty print 2023-06-07 16:25:59 -04:00
rvcas cb9a140601
chore: Release 2023-06-02 00:34:07 -04:00
rvcas 335cc0c8bc
feat(cli): rework uplc subcommands
closes #553

* rename flat to encode
* rename unflat to decode
* alias both to their old names
* both only print to stdout
  use can pipe to file
* split cbor and hex flags
* hex flag works for either cbor or flat
* encode takes --to flag
  [name, named-debruijn, debruijn]
* decode takes --from flag
  [name, named-debruijn, debruijn]
2023-06-01 23:50:59 -04:00
Niels Mündler 00ac6b6c56 Fix dumping of builtin pairs 2023-05-25 18:03:24 -04:00
rvcas a124a16a61
feat(tests): implement a way to express that tests can fail 2023-05-25 16:54:53 -04:00
microproofs 8e60234562 chore: Release 2023-05-17 18:04:45 -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
rvcas f2d8c8938c
chore: Release 2023-05-14 21:25:29 -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
rvcas 1fb31e246c
fix: better conditional comp for wasm 2023-05-11 16:59:54 -04:00
rvcas e1a75391a1
chore: Release 2023-05-09 23:16:59 -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 d2dbae1cbf fix:
Negative numbers now show up as a constant instead of 0 - that number

Expect on constructors without field maps no longer panics

Expect on constructors with discard as assigned field names now no longer throws free unique
2023-04-30 14:44:54 -04:00
microproofs b1728b57b8 chore: Release 2023-04-28 17:11:56 -04:00
microproofs 0d0c96deda commit validator changes and tests 2023-04-28 17:05:46 -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
microproofs 7dd13f8d73 feat: add end to end tests to replace acceptance tests with strict uplc comparison.
Add acceptance tests 1,2, 6 as end to end tests
2023-04-19 16:08:55 -04:00
rvcas 3182dac908
chore: Release 2023-04-17 10:53:30 -04:00
rvcas e3f2fb5393
fix: need to return deserialization error here 2023-04-17 10:50:40 -04:00
rvcas 3d0fa1a5f6
chore: Release 2023-04-16 16:49:08 -04:00
rvcas 63ddef7efb
chore: Release 2023-04-13 13:37:12 -04:00
rvcas 12e8ebdf4f
chore: revert version bumps 2023-04-13 13:03:43 -04:00
KtorZ 067e39286d
Bump versions to 1.0.0-alpha, update CHANGELOG. 2023-04-13 17:35:21 +02:00
KtorZ e2c78bdd3b
Add min rust-version to crates
So that people runs into better errors if they try installing from source with an 'obsolete' rust compiler.
2023-04-13 17:24:44 +02:00
rvcas ccc450659a chore: switch discharge value back to the recursive form for simplicity 2023-04-13 01:28:27 -04:00
microproofs 564939ab61 feat
* remove more Rc's
* reconstruct Value::Builtin only when needed

Co-authored-by: Lucas Rosa <x@rvcas.dev>
2023-04-13 01:28:27 -04:00
microproofs 09a6ea51d6 feat(machine): reduce term allocations
* remove term from VBuiltin
* and also means we don't need the useless wrapping

Co-authored-by: Lucas Rosa <x@rvcas.dev>
2023-04-13 01:28:27 -04:00
rvcas 70f12d3fc5 chore: new branch with some things from the bumpalo branch 2023-04-13 01:28:27 -04:00
Kasey White e69a70f49c remove final wrapper and replace with equivalent air elements 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 a1b3ae52d8 fix: optimization that was being ignored 2023-04-09 17:43:56 -04:00
KtorZ 9033b44044
Implement quick builder on PlutusData.
In the same spirit of the existing Term builder; I also added a `data`
  method to lift a `PlutusData` into a `Term<T>` and generalized a bit
  the builder to only require a `Term<Name>` when necessary and remain
  generic otherwise.

  The `PlutusData` builder could potentially be upstreamed to pallas
  diretly.
2023-04-08 08:57:03 +02:00
rvcas 1444c9328d
fix some typos 2023-04-07 16:51:18 -04:00
KtorZ 057102c491
Add function to uplc::parser for string escape
Was originally written as a way to fix a failing property test on the
  program_builder; but the program builder is now gone. This function
  is still useful to have around.
2023-04-05 14:27:20 +02:00