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
rvcas
298e8068ee
chore: remove program_builder
2023-03-30 21:15:27 -04:00
KtorZ
1d3315005c
Support some single-character escape sequences in UPLC
...
Fixes #472 .
This also partially addresses #195 . However, as pointed out in one of
the comment, there's no 'official rule' when it comes to what should
be considered valid escape sequences. Haskell relies mostly on the
AttoParsec library and Rust also has its own set of rules.
This is in particular true for unicode escape sequences, but there is
a common middleground for some usual single character escapes such as
\n or \\. So we now at least support these.
For more complicated escape sequence, please refer to #195 for now and
keep the discussion going there.
2023-03-30 11:50:59 +02:00
Kasey White
aa29636d50
fix: scope issue with ir_stack being incremented wrongly with assignment
...
Also fixed scope of constructor tag and void in whens
2023-03-28 21:15:22 -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
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
Kasey White
bb820ebdd8
fix: trace and scope issues
...
fix scope issues involving fieldsexpose and other destructureing pattern
fix trace to extract string from term.
2023-03-21 12:38:13 -04:00
Kasey White
6e5b24a937
refactor the rest of the term builders to use more concise code
2023-03-21 00:50:13 -04:00
Kasey White
50db958d06
update codegen to use more streamlined uplc building methods
2023-03-21 00:50:13 -04:00
Kasey White
ef3862ade8
refactor: uplc code gen uses shorthand methods
2023-03-21 00:50:13 -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
5e3a902c75
fix: add back some extra info on display
2023-03-17 09:35:10 -04:00
rvcas
f8545854fc
feat: json output for uplc eval
2023-03-08 10:19:36 +01:00
rvcas
bd7b8792bf
feat: introduce EvalResult type
2023-03-08 10:19:36 +01:00
rvcas
4f1d14f2a0
feat: introduce miette into uplc
2023-03-08 10:19:35 +01:00
KtorZ
cb11b21c9f
Update dependencies
...
In particular, tempfile >= 3.4.0 to remove the vulnerability on remove_dir_all
2023-03-08 10:17:22 +01:00
rvcas
8f765bfd52
fix: some breaking changes from pallas v0.18
2023-03-06 13:17:14 -05:00
rvcas
1902a2d56c
chore: update all deps
2023-03-06 13:13:59 -05:00
rvcas
1f8535e76e
chore: update some deps
2023-03-06 11:09:44 -05:00
rvcas
0066cc61cc
Release 0.0.29
...
aiken@0.0.29
aiken-lang@0.0.29
aiken-lsp@0.0.29
aiken-project@0.0.29
uplc@0.0.29
Generated by cargo-workspaces
2023-02-23 19:04:18 -05:00
KtorZ
fbf65de1dc
Update default cost models for Aiken
...
Closes #396
2023-02-22 17:03:48 +01:00
KtorZ
00e9dabe82
Add missing Plutus builtins to Aiken's lang.
2023-02-22 12:53:03 +01:00
Kasey
f3cdc05875
fix: the refactor on discharge value env ( #393 )
2023-02-18 20:49:29 -05:00
KtorZ
014c7a3d73
Fix error display in tx simulate.
2023-02-15 09:42:46 +01:00
KtorZ
428b5f2b37
Align output of `tx simulate` with other Aiken's commands.
...
And also return a structured output as JSON, so it's more easily used
by other tools.
```
Parsing script context
Simulating 78ec148ea647cf9969446891af31939c5d57b275a2455706782c6183ef0b62f1
Redeemer Spend → 0
{"mem":151993,"cpu":58180696}
```
2023-02-14 16:50:55 +01:00
KtorZ
34596b3084
Fix collecting withdrawal scripts in eval_phase_one
...
The current implementation assumed that ALL withdrawals present in a
transaction had to be locked by a script and failed otherwise. But a
transaction can actually be composed of both. So instead of failing,
we should rather just ignore withdrawals that can't be referenced by
redeemers.
2023-02-14 15:58:34 +01:00
Kasey White
e92d9af3c2
fix: changed how list_access_to_uplc handles discards fixing unit test 55
...
Also fix incorrect error message in runtime in machine
2023-02-11 04:30:18 -05:00
Kasey White
0269409fa1
case where removing a lam with 0 occurrences is not safe
...
Since a function call can have arbitrary other calls that lead to error and that is difficult to detect.
2023-02-10 19:24:47 -05:00
rvcas
c1d67e95e1
feat: fix errors and add tests for BigInt changes
2023-02-09 15:01:30 -05:00
KtorZ
bd4aeb779c
Implement integer_log2 on BigInt
...
Comparing it with the Haskell's implementation.
2023-02-09 18:14:00 +01:00
KtorZ
e76d26eb3c
Fixup: follow compiler.
2023-02-09 16:09:49 +01:00
rvcas
cfbe5fd3cc
feat: use BigInt in constant integer
2023-02-09 09:46:42 -05:00
rvcas
ec58279424
test(machine): integer overflow
2023-02-09 09:44:06 -05:00
Kasey White
986a6009f7
fix: Various fixes for FieldsExpose, ListAccessor, TupleAccessor
2023-02-09 00:09:23 -05:00
alessandrokonrad
221f1afbfe
Changed imports
2023-02-08 16:28:59 +01:00
alessandrokonrad
74b3507777
Added tag/constructor conversion tests
2023-02-08 16:26:58 +01:00
Ales
242eaa8b67
Merge pull request #347 from spacebudz/constr
...
Fix constructor tag range
2023-02-08 14:52:50 +01:00
alessandrokonrad
ce648b7483
Fixed schnorr and limiting it to 32 bytes messages for now
2023-02-08 08:04:24 -05:00
alessandrokonrad
3012a0b41d
Fix constructor tag range
2023-02-08 13:14:26 +01:00
alessandrokonrad
7c9443d87f
Changed to prehash function
2023-02-07 22:53:30 +01:00
rvcas
08e8347317
chore: rename feature flag to native-secp256k1
2023-02-07 00:25:22 -05:00
rvcas
67a2674d27
feat: allow verify functions to build for wasm
2023-02-07 00:25:22 -05:00
Kasey White
f1b24a5f6d
fix: the following issues
...
fix conversion from inner opaque type for when and assignment
This fixes Clause being used in cases where ListClause or TupleClause should be used
Reset defined and zero arg functions between each code gen
Fixes for optimizations when encountering shadowed variables
2023-02-05 20:35:39 -05:00
Kasey White
c32a9d7b6f
commit working changes so far
2023-02-05 20:35:39 -05:00
rvcas
31cd19f198
feat: use secp256k1 to implement verify for ecdsa and schnorr
2023-02-04 22:07:56 -05:00
rvcas
cde3e31723
feat: fill in todo for verify ecdsa and schnorr costing
2023-02-04 22:07:56 -05:00
rvcas
09d8d683b6
fix: switch to error from secp256k1
2023-02-04 22:07:56 -05:00
rvcas
fb69a2c8a9
fix: switch to rust bindings for bitcoin-secp256k1
2023-02-04 22:07:56 -05:00
rvcas
c2ff9389c5
feat(runtime): implement verifyEcdsaSecp256k1Signature
2023-02-04 22:07:56 -05:00
rvcas
d224fe5356
feat(runtime): set force count and arg typechecking for the elliptic curve builtins
2023-02-04 22:07:56 -05:00
rvcas
fb37521857
feat: make a transparent machine error for signature::Error
2023-02-04 22:07:56 -05:00
rvcas
7bffb994fc
feat: add k256 for elliptic curve algos
2023-02-04 22:07:56 -05:00
Niels Mündler
700e9cab5b
Add missing carets when dumping builtin list
2023-02-02 17:32:03 -05:00
rvcas
c9d0ce0392
chore: fmt
2023-02-01 23:49:33 -05:00
Kasey White
1843b7e73b
clippy fix and remove some prints
2023-02-01 23:49:33 -05:00
Kasey White
9dc2bac2c3
fix:minor optimization fixes
...
Unique only comparison for equals led to strange results
Fixed by interning in a different spot
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
Kasey White
3123ad9079
change eval_builtin_app to return Rc so that ifthenelse and chooselist are faster
2023-02-01 18:53:11 -05:00
Kasey White
456b08a205
minor performance improvements
...
Changed a couple cases where the inner Rc object was cloned to use the Rc object instead
2023-02-01 18:53:11 -05:00
rvcas
a365649360
chore: clippy autofix
2023-02-01 18:53:11 -05:00
rvcas
9c4e921e79
feat: more Rc in machine
2023-02-01 18:53:11 -05:00