Commit Graph

405 Commits

Author SHA1 Message Date
Kasey White 00cc9f93d5 start making data with builtins 2022-08-29 14:07:13 -04:00
Kasey White 1a09a34873 mknil builtins 2022-08-29 14:07:13 -04:00
Kasey White c34344ce21 add a few additional data builtins 2022-08-29 14:07:13 -04:00
Kasey White c9c8e6e554 add unmap and other builtins to deconstruct data 2022-08-29 14:07:13 -04:00
Kasey White 73e367ad53 add a data builtin and do ex_mem for pairs, list, data 2022-08-29 14:07:13 -04:00
rvcas 45e22c1ea8
Release 0.0.10
aiken@0.0.10
flat-rs@0.0.10
uplc@0.0.10

Generated by cargo-workspaces
2022-08-27 16:45:04 -04:00
zypeh 03847259f7 Removing whitespace 2022-08-27 10:59:48 -04:00
zypeh b474abdb9b Rewrite test in proptest, remove quickcheck dep 2022-08-27 10:59:48 -04:00
Kasey White 8eb2d24704 fix clippy check 2022-08-25 19:36:03 -04:00
zypeh aeae9aa51e zigzag zagzig 2022-08-25 19:36:03 -04:00
zypeh b81986c44c Adding more tests 2022-08-25 19:36:03 -04:00
zypeh ef81427b62 Fixed bug if byte array exceed 255 bytes 2022-08-25 19:36:03 -04:00
zypeh 10461779af Moved the test and use compiler specific function 2022-08-25 19:36:03 -04:00
zypeh 7cff93e718 Code linting 2022-08-25 19:36:03 -04:00
zypeh 40fd4ae447 Adding test cover the write_blk encode function 2022-08-25 19:36:03 -04:00
zypeh 9ded4d79d5 Move test to tests directory 2022-08-25 19:36:03 -04:00
zypeh f997a6250c Eliminate the recursive call 2022-08-25 19:36:03 -04:00
Kasey White 09ae98065c remaining buitlins for list and integer
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-24 00:06:17 -04:00
Kasey White 3f6ad6be60 verify signature changed name and cost 2022-08-24 00:06:17 -04:00
Kasey White c03d3e3604
fix budget restriction back to protocol params (#39) 2022-08-21 16:52:31 -04:00
rvcas 2b27261711
Release 0.0.9
aiken@0.0.9
uplc@0.0.9

Generated by cargo-workspaces
2022-08-17 22:48:06 -04:00
rvcas 8ed87c5f17 chore: fix clippy issues 2022-08-17 22:40:32 -04:00
Kasey White 2bb482d9ec Using rc we now get code that runs much faster and
can run jpg contract with no inputs
2022-08-17 22:40:32 -04:00
Kasey White fb81955f51 start changing machine to use rc instead of box (does compile) 2022-08-17 22:40:32 -04:00
Kasey White c050a5647f remove some unnecessary clones with more optimizations to come 2022-08-17 22:40:32 -04:00
rvcas c3f0814c9b
Release 0.0.8
aiken@0.0.8
uplc@0.0.8

Generated by cargo-workspaces
2022-08-12 19:45:20 -04:00
Kasey White f3ace55355 Implement more builtins for bytestring and integer
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-10 12:23:34 -04:00
Kasey White 11ee99c199 Add several builtins for strings and bytestring
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-07 22:21:58 -04:00
rvcas 4d04942a5e
Release 0.0.7
aiken@0.0.7
flat-rs@0.0.7
uplc@0.0.7

Generated by cargo-workspaces
2022-08-05 13:15:26 -04:00
rvcas b83394be74 feat: decode proto list and proto pair
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-08-05 00:38:41 -04:00
rvcas e8f783e7bb feat: decode plutus data 2022-08-05 00:38:41 -04:00
rvcas fa3c88a31e feat: add from_cbor and from_hex 2022-08-05 00:38:41 -04:00
rvcas e6be899b2a feat: fill in encode constant todos 2022-08-05 00:38:41 -04:00
rvcas 61b70e7e3d feat: encode plutus data 2022-08-05 00:38:41 -04:00
Kasey White d14920265e flat encoding for list and pairs
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-05 00:38:41 -04:00
rvcas 198dae7f5d feat: impl display for Program and Term where T: Binder 2022-08-05 00:38:41 -04:00
rvcas e70881c27c feat: add some missing enum members to constant 2022-08-05 00:38:41 -04:00
rvcas 8e8f1270b5 feat: to_cbor and to_hex for Program 2022-08-03 17:17:15 -04:00
rvcas 339e638705 feat: impl eval for Program<DeBruijn> 2022-08-02 19:04:25 -04:00
rvcas 207f9e5ab0
Release 0.0.6
aiken@0.0.6
flat-rs@0.0.6
uplc@0.0.6

Generated by cargo-workspaces
2022-08-02 14:04:30 -04:00
Kasey White a3a175d74b switch to stack model for plutus eval
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-28 02:48:08 -04:00
Kasey White 4acbd704e0 fix compilation issue 2022-07-27 11:27:27 -04:00
Kasey White 234ab7c7cb Try out recursion for environment and frames
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-27 11:27:27 -04:00
Kasey White be38d1eebe fix fmt error 2022-07-24 19:58:20 -04:00
Kasey White 2552a9c203 Finish docs for decoder 2022-07-24 19:58:20 -04:00
Kasey White ac3ab5b47a chore: start decoding docs and fix wording for encode docs 2022-07-24 19:58:20 -04:00
Kasey White 3aaec0936d chore: create docs for encoding 2022-07-24 19:58:20 -04:00
Kasey White b3cb9c4510 use expect instead of unwrap 2022-07-24 19:51:57 -04:00
rvcas 2a85567154 chore: clippy 2022-07-24 19:51:57 -04:00
rvcas 9e62181caa feat: new Error not a constant 2022-07-24 19:51:57 -04:00
rvcas 77a7b11467 feat: finish to_ex_mem for constant
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
rvcas f332dfeb38 feat: 3 new error cases and more generic pretty printing 2022-07-24 19:51:57 -04:00
Kasey White 598c5364fe implement force for builtins
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas 22f90bf07f feat: impl ifThenElse kinda
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
rvcas 83b9294ac1 chore: print runtime 2022-07-24 19:51:57 -04:00
rvcas b7e6f7b27f feat: add default builtin costs
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
Kasey White 9f977f7e58 add costing capability for builtins
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
Kasey White 84df3be139 start filling in builtin cost model
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
Kasey White a5140513de fix: debruijn index - 1
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas d55409d8c5 feat: basic builtin execution
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
Kasey White 9ea57aa461 Add some runtime types 2022-07-24 19:51:57 -04:00
Kasey White 045dc8fed8 add builtin cost model
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas e8aa013aa4 chore: set to zero in spend loop 2022-07-24 19:51:57 -04:00
Kasey White 93f7849fc0 Finish machine evaluation for all terms except builtin
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
Kasey White 0e2214a908 Implement apply evaluate
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas 650a789194 chore: step and maybe spend
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
Kasey White 0bf93e59b5 add evaluation for terms
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas 795d9ee028 feat: clean up the machine a bit 2022-07-24 19:51:57 -04:00
Kasey White de476c801b Add costing to steps 2022-07-24 19:51:57 -04:00
Kasey White 7b8018447f create initial enums and function of the UPLC cek interpreter 2022-07-24 19:51:57 -04:00
MitchTurner 0ea42ab7e7
Remove commented code related to closed story (#23)
Co-authored-by: Turner <mitch@tpfs.io>
2022-07-10 12:32:36 -07:00
MitchTurner ada7b00b49
Expand builder (#20)
* Add bool method

* Add proptest

* Add some more consts and stuff

* Refactor Lambda stuff out

* REfactor

* Convert bytestring test to prop test

* Add string constant

* Add char stuff, despite it not being ready

* Add unit

* Add var

* Add delay

* Add apply

* Add force

* Add error

* Add builtin

* Add example, remove feature

* Rename some stuff

Co-authored-by: Turner <mitch@tpfs.io>
2022-07-01 20:50:58 -07:00
Turner 7f70ae0f74 Remove experimentation in features 2022-06-29 14:02:57 -04:00
Turner a238dc58a6 Move program builder to uplc crate 2022-06-29 14:02:57 -04:00
Turner f8aae49fce Appease Clippy-sama 2022-06-29 14:02:57 -04:00
Turner 6748395d9e Remove TODOs 2022-06-29 14:02:57 -04:00
Turner 35bdd542f1 Add test for nested lambdas 2022-06-29 14:02:57 -04:00
Turner 888e64d485 Refactor Lambda too 2022-06-29 14:02:57 -04:00
Turner c7dfd01a5e Refactor 2022-06-29 14:02:57 -04:00
Turner 41a7b73877 Add test for lambda and some edge cases for constant 2022-06-29 14:02:57 -04:00
Turner e667fc3613 Add passing tests for builder 2022-06-29 14:02:57 -04:00
rvcas 4db39c8790
Release 0.0.5
aiken@0.0.5
uplc@0.0.5

Generated by cargo-workspaces
2022-06-27 11:46:21 -04:00
Kasey White 302da5e20d Fix clippy warning 2022-06-26 21:38:27 -04:00
Kasey White 4eafdd2d39 fix issue with same names causing 0 index debruijn for var 2022-06-26 21:38:27 -04:00
Turner 027daf30ea Add TODO for failing test with link to bug 2022-06-26 19:03:17 -04:00
Turner 19fd6a0e8c Add comment explaining why that test is only one-way 2022-06-26 19:03:17 -04:00
Turner 1b00e4d416 Sanitize fibonacci program to make round-trip tests happy, isolate unsanitary code 2022-06-26 19:03:17 -04:00
Turner 787f345275 Add new uplc case to test, it is failing 2022-06-26 19:03:17 -04:00
Turner 5ba7349f4a Refactor tests, move them into integ folder 2022-06-26 19:03:17 -04:00
rvcas 38e78cafeb
chore: readmes in uplc and cli 2022-06-18 23:15:05 -04:00
rvcas 0dd5cf2cb6
Release 0.0.4
aiken@0.0.4

Generated by cargo-workspaces
2022-06-18 23:06:15 -04:00
rvcas 7129ad6202
feat: remove authors from cli help 2022-06-18 23:06:05 -04:00
rvcas 5bd848b0b8
Release 0.0.3
aiken@0.0.3
uplc@0.0.3

Generated by cargo-workspaces
2022-06-18 22:55:04 -04:00
rvcas 6aae184848 feat: new fmt command and pretty printing works 2022-06-18 22:54:26 -04:00
rvcas 6a39d4349a feat: everything lines up 2022-06-18 22:54:26 -04:00
Kasey White d18ac475d1 modification to pretty printing for constants and nesting 2022-06-18 22:54:26 -04:00
rvcas 672c7037f6 fix: add new assert 2022-06-18 22:54:26 -04:00
rvcas 7e86a71772 feat: more pretty printing logic 2022-06-18 22:54:26 -04:00
rvcas 5a6ba40557 feat: start pretty printing 2022-06-18 22:54:26 -04:00
rvcas cbea795f68
feat: only need to compare unique and index 2022-06-17 15:39:31 -04:00
rvcas b8c5c268d4
feat: add conversion to tests 2022-06-16 16:54:34 -04:00
rvcas 59a8f6477b
feat: convet a named debruijn to a name 2022-06-15 20:12:12 -04:00
rvcas 7693da4bbf
Release 0.0.2
aiken@0.0.2

Generated by cargo-workspaces
2022-06-14 19:16:18 -04:00
rvcas f8284ebaa0
chore: reset aiken version 2022-06-14 19:15:59 -04:00
rvcas 8d12332fa8
chore: version for uplc dep 2022-06-14 19:14:13 -04:00
rvcas 575585205b
Release 0.0.2
aiken@0.0.2
flat-rs@0.0.2
uplc@0.0.2

Generated by cargo-workspaces
2022-06-14 19:12:46 -04:00
rvcas f7fba12a5f
chore: flat is taken in crates.io 2022-06-14 19:11:00 -04:00
rvcas f511dce353
chore 2022-06-14 18:55:59 -04:00
rvcas c210803adf
chore: add package description 2022-06-14 18:51:25 -04:00
rvcas 969cc80abf
chore: prepare to publish 2022-06-14 18:46:18 -04:00
rvcas dc4246244d
chore: document somethings 2022-06-14 17:27:27 -04:00
rvcas 984c253f31
feat: rename to aiken and add e2e tests for uplc 2022-06-11 23:22:24 -04:00
Kasey White 1ef116fcda fix: parse negative numbers and empty bytestrings 2022-06-10 17:23:36 -04:00
rvcas 2afded2d27
fix: builtin parsing 2022-06-10 11:48:46 -04:00
rvcas b05f0846a8
fix: moving to a parser that can handle left recursion 2022-06-10 01:55:28 -04:00
rvcas 86089b4bee
fix: different attempt 2022-06-09 00:44:52 -04:00
rvcas 474df4a3ae
fix: different attempt 2022-06-08 23:22:34 -04:00
rvcas 74df7f8a7c
fix: potential fix for left recursion 2022-06-08 22:21:22 -04:00
rvcas 1c8f3a736b
feat: new uplc parser 2022-06-08 21:51:04 -04:00
Kasey White 33fcb77681 fix: put byte_array final pos incrementer in wrong scope 2022-06-08 15:42:58 -04:00
Kasey White be477917f2 fix: fixed edge cases to get flat encode and decode working with stress test case 2022-06-08 03:33:09 -04:00
rvcas 21d713ece3
feat: change term parsing order 2022-06-07 22:02:20 -04:00
rvcas b47030b86d
feat: better clap commands 2022-06-06 23:55:01 -04:00
Kasey White 895f279be0 fix: parser fixes for spacing 2022-06-06 23:28:36 -04:00
rvcas 60a920a0ac
fix: more subtle things 2022-06-06 22:51:09 -04:00
rvcas 4c45c95620
fix: var parsing 2022-06-06 22:40:15 -04:00
rvcas d4251206e7
feat: fake named debruijn 2022-06-05 22:47:04 -04:00
rvcas 349364d867
chore: builtins implement Copy 2022-06-04 14:06:46 -04:00
rvcas 1ecd47a361
feat: clean up errors 2022-06-04 14:01:45 -04:00
rvcas 377c5c206c
feat: better errors for debruijn converter 2022-06-04 12:16:56 -04:00
rvcas 2f51b23e7e
feat: debruijn conversions and binder
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-06-04 11:15:34 -04:00
rvcas 2ad630de90
feat: use a stack for scope 2022-06-04 00:29:30 -04:00
rvcas 946937f945
feat: more debruijn stuff 2022-06-03 22:00:16 -04:00
rvcas f8edb5d519
feat: start debruijn conversion
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-06-03 00:36:39 -04:00
rvcas 83d6b5243e
feat: get program ready for debruijn 2022-06-02 21:39:09 -04:00
rvcas c7037ff8d9
feat: get string interning working
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-06-01 01:11:30 -04:00
Kasey White 581b8fc85d feat: flat tweaks and string interning
Co-authored-by: rvcas <x@rvcas.dev>
2022-05-31 22:57:55 -04:00
rvcas 31e7d63d9a
chore: use ref to get slice 2022-05-30 18:26:49 -04:00
rvcas 3f1ddef635
chore: slight clean up 2022-05-30 18:05:50 -04:00
Kasey White 83a784c745 add simple test for decoding 2022-05-30 17:12:32 -04:00
Kasey White d4b659c04e feat: finish up most of decoding (integer, decodeListWith, Term, Program, Version, Constant, Builtin) 2022-05-30 16:49:43 -04:00
rvcas bf3b984405
fix: add back the decoder lifetime 2022-05-30 10:49:23 -04:00
Kasey White 4fb508e3b2 Add decoding for bytestring, string, char, bool, and filler 2022-05-30 02:32:39 -04:00
rvcas 9d8afee3d2
chore: impl todo for filler decode 2022-05-29 21:53:13 -04:00
rvcas 0a476d0592
feat: prepare decoding traits and make new Flat trait 2022-05-28 20:12:03 -04:00
Kasey White 41487733f7 feat: builtin encoding
Co-authored-by: rvcas <x@rvcas.dev>
2022-05-28 00:23:34 -04:00
Kasey White c01469ea51 feat: spec complaint program encoding
Co-authored-by: rvcas <x@rvcas.dev>
2022-05-27 22:37:08 -04:00
Kasey White 2e130ac5f0 add integer based on plutus core manual information 2022-05-24 04:55:10 -04:00
rvcas b345afd12f
feat: we're flat encoding plutus core 2022-05-23 12:45:13 -04:00
Kasey White 344620136f use encode_list_with with safe_encode_bits func 2022-05-23 12:20:04 -04:00
Kasey White c38da6426f implement encode_constant and add term tags for encoding 2022-05-23 02:22:37 -04:00
Kasey White 52f9f5ab41 feat: start on encoding constants with Flat Encoder 2022-05-22 20:29:59 -04:00
Kasey White fdfaf91bcf feat: create encoding for char, string, byte array 2022-05-22 18:16:42 -04:00
rvcas 52523516fe
feat: u8 2022-05-22 12:56:28 -04:00
rvcas 33fee5b3e0
chore: switch to a mono repo 2022-05-22 12:40:52 -04:00