rvcas
90aea6476a
feat: uplc g1 and g2 literal parsing
2023-11-15 15:55:56 -05:00
microproofs
0d2ac952d0
feat: implemented the Bls381-12 builtins and types
...
also implemented Keccak256 and Blake2b_224
TODO: cost model, flat serialization, pretty
Co-authored-by: rvcas <x@rvcas.dev>
2023-11-15 15:55:56 -05: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
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
8d107b1293
fix(build): --uplc must use Program<Name> to pretty print
2023-06-07 16:25:59 -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
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
70f12d3fc5
chore: new branch with some things from the bumpalo branch
2023-04-13 01:28:27 -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
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
rvcas
c3870e340e
feat(codegen): support multi-validators
...
* rename force_wrap to force
* add a bunch of builder methods to Term<Name>
* refactor one tiny location to show off builder methods
* split generate into `generate` and `generate_test`
* create wrap_as_multi_validator function
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-17 18:40:44 -04:00
rvcas
bd7b8792bf
feat: introduce EvalResult type
2023-03-08 10:19:36 +01:00
rvcas
cfbe5fd3cc
feat: use BigInt in constant integer
2023-02-09 09:46:42 -05:00
Kasey White
1843b7e73b
clippy fix and remove some prints
2023-02-01 23:49:33 -05:00
Kasey White
fdf89b7326
implement optimizations
...
-Force usage on builtins
-Inline vars used once
-Lambdas that use a var as an arg
-Lambdas that use a const as an arg
2023-02-01 23:49:33 -05:00
rvcas
a365649360
chore: clippy autofix
2023-02-01 18:53:11 -05:00
rvcas
c8efe60843
feat: use Rc for more things, fib_iter runs almost 3 seconds faster now
2023-02-01 18:53:11 -05:00
rvcas
eda3194cf0
feat: trying Rc for Name
2023-02-01 18:53:11 -05:00
KtorZ
cab59c188a
Define serde's Serialize/Deserialize for Program<DeBrujin>
...
This will be useful to re-use this behavior in other structure that contains a Program<DeBruijn> without having to manually serialize or deserialize the entire structure.
2023-01-31 15:39:40 +01:00
Kasey White
a08c615da4
checkpoint
2022-12-27 19:35:08 -05:00
rvcas
f250d3df84
feat: eval should take initial budget
2022-12-08 19:24:20 -05:00
rvcas
86ea41adc3
feat: start when expressions
2022-12-05 14:18:44 -05:00
Kasey White
8b24a66b7e
add field access and list patterns are finished
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 14:18:44 -05:00
alessandrokonrad
28b9fed8e5
added i128 integer support
2022-10-17 08:35:45 -04:00
rvcas
caa88dab12
fix: valid condition for a script
2022-09-19 16:00:25 -04:00
rvcas
f10e3836ad
feat: new error for bad term
2022-09-19 11:04:21 -04:00
alessandrokonrad
1148863a43
Allow to set initial budget
2022-09-19 12:02:41 +02:00
rvcas
68fc0f643e
feat: add some v1 methods so that cost_mdls can be optional
2022-09-18 15:16:41 -04:00
Kasey White
472cea6c41
parameratize cost model
2022-09-17 21:12:48 -04:00
rvcas
cf27c0c755
feat: apply redeemers and datum to script
2022-09-14 18:51:08 -04:00
Lucas
6d6f671f4f
eval with inputs ( #56 )
2022-09-08 18:20:52 -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
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
339e638705
feat: impl eval for Program<DeBruijn>
2022-08-02 19:04:25 -04:00
rvcas
9e62181caa
feat: new Error not a constant
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
rvcas
22f90bf07f
feat: impl ifThenElse kinda
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
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
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
0e2214a908
Implement apply evaluate
...
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
7b8018447f
create initial enums and function of the UPLC cek interpreter
2022-07-24 19:51:57 -04:00
rvcas
cbea795f68
feat: only need to compare unique and index
2022-06-17 15:39:31 -04:00
rvcas
59a8f6477b
feat: convet a named debruijn to a name
2022-06-15 20:12:12 -04:00
rvcas
dc4246244d
chore: document somethings
2022-06-14 17:27:27 -04:00