Niels Mündler
fb56700bde
Fix and re-enable pretty print test for bigint
2023-12-19 12:20:10 -05:00
Niels Mündler
89e518f878
Deduplicate code
2023-12-19 12:20:10 -05:00
Niels Mündler
ba76c1d2cf
Adjust acceptance tests and fix IData and UData
2023-12-19 12:20:10 -05:00
Niels Mündler
022503e254
Fix to_pallas_bigint
2023-12-19 12:20:10 -05:00
Niels Mündler
1b1636ab0e
Fix parsing of negative bigint
2023-12-19 12:20:10 -05:00
Niels Mündler
0cfcd78039
Use more clear functions
2023-12-15 21:59:57 -05:00
Niels Mündler
8c619954d3
Add conformance test for big ints
2023-12-15 21:59:57 -05:00
Niels Mündler
ceb6d63e95
Add parsing for big builtins
2023-12-15 21:59:57 -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
rvcas
07122aaa88
feat: allow importing off validators in validators/tests/*
2023-12-11 18:27:08 -05:00
Niels Mündler
b25e82ed36
Handle errors and format
2023-12-08 12:19:22 -05:00
Niels Mündler
772e73ae48
Fix parsing of hex encoded escaped bytes
2023-12-08 12:19:22 -05:00
Niels Mündler
3ac35f4e00
Make sure that new issue is covered by testcase
2023-12-08 12:19:22 -05:00
Niels Mündler
d0bc782f75
Fix pretty prenting of strings in complex data structures
2023-12-08 12:19:22 -05:00
KtorZ
92488e535a
Fix type definitions for g1 & g2 elements.
2023-12-08 16:58:12 +01:00
microproofs
825e65d7a3
fix: zero arg functions were being compiled without the trace messages
...
Now traces are added before evaluating
2023-12-06 10:31:48 -05:00
rvcas
2647e4aae6
chore: Release
2023-12-04 22:14:03 -05:00
rvcas
0a1e0d7bee
feat: remove flat-rs crate and use it through pallas_codec
2023-12-04 22:01:51 -05:00
rvcas
b17b7f287c
chore: update to pallas v0.20.0
2023-12-04 21:44:19 -05:00
rvcas
c50d4d1396
fix: forgot to handle None case for other_fun in validator
2023-11-29 21:24:30 -05:00
rvcas
1503b525b2
feat(lsp): implement quickfix for utf8 byte array is valid hex string warning
2023-11-28 21:02:15 -05:00
rvcas
858a9621fc
fix: due to how error code now get printed match_code for quickfix was always false
2023-11-28 21:00:17 -05:00
rvcas
1f411cde0e
chore: needless dbg
2023-11-28 20:59:23 -05:00
rvcas
2dab62857f
chore: useless rebinding
2023-11-28 19:46:08 -05:00
rvcas
832ca81a8c
fix(lsp): when desugaring and/or chains we should use the whole span of the chain for the generated BinOp locations
2023-11-28 19:19:56 -05:00
rvcas
7015a9badc
feat(lsp): hover support for the optional multi validator fn
2023-11-28 19:18:29 -05:00
rvcas
2159053cb5
fix: using the word pattern here reads better and applies more broadly like for lists
2023-11-28 16:15:24 -05:00
rvcas
a46a7e82b7
feat: implement hover on when clause patterns
2023-11-28 16:13:08 -05:00
rvcas
f7dd2de17b
feat: implement hover info for tuple, list, and contructor pattern elements
2023-11-28 16:12:37 -05:00
rvcas
6ce30bd949
fix: allow spread operator on positional constructors closes #677
2023-11-27 23:11:17 -05:00
rvcas
d5820bb20a
fix: restore printing of some error messages
...
We rely on some errors to just bubble up and get printed.
By matching on result at the top level like this we blocked some
error messages from being able to be printed. For me this showed up
when `cargo run -- new thing/thing` printed nothing even when there
was an existing `thing` folder. It has already been the pattern for
sometime for some subcommands to handle calling process::exit(1) in
situations where it needs to handle error reporting more specially. It
may seem lame, hacky, or repetitive but it's easy to maintain and read.
2023-11-27 21:48:56 -05:00
rvcas
2980e8e21d
fix: use a distinct warning for discarded let assignments to avoid confusion closes #763
2023-11-27 21:23:10 -05:00
KtorZ
40c0fa7d77
Add --watch flag to the 'build' and 'docs' commands too.
2023-11-25 15:14:09 +01:00
KtorZ
7645a9460f
Display error codes better.
...
This is a *slight* hack / abuse of the code() method as we are now
doing a bit of formatting within that function. Yet, we only do so at
the very top-level (i.e. project's Error) because we can't actually
fiddle with how miette presents errors.
2023-11-25 15:14:09 +01:00
KtorZ
6c039708c3
Rework 'watch_project' to reuse 'with_project'
...
Also removed the 'clear' flag to do it by default instead of clogging
the terminal view.
This now works pretty nicely, and the logic is back under
`aiken_project`.
2023-11-25 14:48:22 +01:00
KtorZ
777d30b8ac
Rework 'with_project' to avoid early process exit.
2023-11-25 13:26:24 +01:00
KtorZ
4adedaac15
Remove unnecessary 'Rc' in function signature.
2023-11-25 13:09:26 +01:00
KtorZ
1ca81ec133
Turn evaluation hints into strings earlier, to make project's Error thread-safe.
2023-11-24 09:44:05 +01:00
Pi Lanningham
d04094560b
Add an example usage in the check command
...
Feel free to do this differently, I just implemented it because i'm actually using it heh
2023-11-24 08:37:54 +01:00
Pi Lanningham
4bb424ba78
Fix a small bug with the filtering
2023-11-24 08:37:54 +01:00
Pi Lanningham
5945a9515b
Disable the doctest, since I don't have an impl of EventListener I can use
2023-11-24 08:37:54 +01:00
Pi Lanningham
5068da3a17
Refactor into cargo-project
...
Rather than have this logic in the aiken binary, this provides a generic
mechanism to do "something" on file change events. KtorZ is going to
handle wiring it up to the CLI in the best way for the project.
I tried to write some tests for this, but it's hard to isolate the
watcher logic without wrestling with the borrow checker, or overly
neutering this utility.
2023-11-24 08:37:54 +01:00
Pi Lanningham
771f6d1601
Formatting and check
2023-11-24 08:37:54 +01:00
Pi Lanningham
689a41ded4
Implement a basic watch command
...
This adds the following command
```
aiken watch
```
There are some open questions to answer, though:
- I really like the ergonomics of `aiken watch`; but it also makes sense
as a flag to `aiken check` or `aiken build` etc.; should we just
support the flag, the command, or both?
- Right now I duplicated the with_project method, because it forces
process::exit(1); Should we refactor this, and if so, how?
- Are there other configuration options we want?
2023-11-24 08:37:53 +01:00
microproofs
45177cd08b
fix: add missing type checks for the new bls primitives
2023-11-23 13:00:24 -05:00
microproofs
63f96d13ca
fix: clippy warning
2023-11-22 19:17:45 -05:00
microproofs
78b0789cbc
chore: unit test for pub in validator module warnings closes #681
2023-11-22 18:02:21 -05:00
rvcas
abd18656e3
fix: unable to have newline after expect bool shortcut
2023-11-20 11:44:16 -05:00
rvcas
2ed91780f4
fix: call arg should be top level
2023-11-20 11:44:16 -05:00
rvcas
7118253401
fix: if branches, final_else, and anon fns should all be "top level"
2023-11-20 11:44:16 -05:00
rvcas
7680d33663
fix: panic in formatter when substracting u8 0 - 1
2023-11-20 11:44:16 -05:00
rvcas
6869f73033
fix: sequence formatting when not top level
2023-11-20 11:44:16 -05:00
microproofs
1567e42875
chore: fill in machine todos and cost model for case and constr
...
This allows for several more tests to pass
**Had to remove case-7 since it was incorrectly passing before**
2023-11-17 19:52:03 -05:00
rvcas
0382e5ce12
chore: this comment doesn't make sense
2023-11-17 18:41:28 -05:00
rvcas
df992cba67
chore: remove check_type
2023-11-17 13:58:13 -05:00
rvcas
9ab458dcc6
feat: delay typemismatch errors in the machine runtime
...
to pass 2 of the conformance tests, we need to make sure
that we aren't typechecking builtin arguments as arguments
are applied. This switches push to by removing the call to check_type
and then reworking all the associated unwrap methods on Value
so that they return the same errors that were being returned before.
2023-11-17 13:58:13 -05:00
rvcas
ed909055b5
chore: temp remove conformance tests that are failing
2023-11-15 15:55:56 -05:00
rvcas
308fb47e40
fix: don't panic on invalid hex strings
2023-11-15 15:55:56 -05:00
rvcas
dfa0378404
chore: explain a todo in the machine
2023-11-15 15:55:56 -05:00
rvcas
3f8f624a7b
fix(uplc): more whitespace characters
2023-11-15 15:55:56 -05:00
rvcas
58d98b3325
fix(uplc): parser should accept single quote in var name and comments
2023-11-15 15:55:56 -05:00
rvcas
b6f6064aaf
test: add all plutus conformance tests
2023-11-15 15:55:56 -05:00
rvcas
b80db2f7f8
fix(bls): wrong types for equals functions
2023-11-15 15:55:56 -05:00
rvcas
d53d2665b2
test(bls): g1 and g2 formatting
2023-11-15 15:55:56 -05:00
rvcas
c910e0054e
test(bls): constant parsing tests
2023-11-15 15:55:56 -05:00
rvcas
7073fd29b3
test(bls): literal parsing tests
2023-11-15 15:55:56 -05:00
microproofs
8b89ba3b93
feat: implement bls primitives in code gen
2023-11-15 15:55:56 -05:00
microproofs
d51374aac1
feat: add conversion to data and from data for new primitive types
2023-11-15 15:55:56 -05:00
rvcas
3675762c3e
feat(bls): aiken level g1 and g2 literals
2023-11-15 15:55:56 -05:00
rvcas
90aea6476a
feat: uplc g1 and g2 literal parsing
2023-11-15 15:55:56 -05:00
rvcas
6ce85e1662
fix: add keccak to TryFrom<u8>
2023-11-15 15:55:56 -05:00
rvcas
49ae8152f8
feat(bls): add new aiken level builtins
2023-11-15 15:55:56 -05:00
rvcas
8a3a465237
feat(bls): add new types to aiken prelude
2023-11-15 15:55:56 -05:00
rvcas
cdcd8172e6
feat(bls): pretty print mlresult type
2023-11-15 15:55:56 -05:00
rvcas
318ae6aad4
feat(bls): finish cost model
2023-11-15 15:55:56 -05:00
rvcas
5243c36ed6
feat(bls): add default costs for the new functions
2023-11-15 15:55:56 -05:00
microproofs
18db1c394a
feat: Implemented builtin semantic versioning
...
feat: impl flat serialization and deserialization for bls constants
feat: started on cost models for the new builtins
Co-authored-by: rvcas <x@rvcas.dev>
2023-11-15 15:55:56 -05:00
rvcas
f101581813
feat(bls): pretty printing for g1 and g1 element
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
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
446ef11606
chore: finishing acceptance test 29
...
and updating acceptance test lock files
2023-11-08 14:31:44 -05:00
microproofs
d50fb99b75
feat: add acceptance tests 28-30
2023-11-08 14:31:44 -05:00
microproofs
7d319077e6
chore: clean up validator comments and
...
commit script context test lockfile
2023-11-06 15:49:13 -05:00
microproofs
2f694b01cb
chore: use insta snapshot for blueprint validator tests
2023-11-06 15:37:04 -05:00
microproofs
4eebd4628b
chore: fix comment
2023-11-06 15:37:04 -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
49bd4ba33d
chore: Release
2023-10-25 19:00:03 -04:00
microproofs
4dd17dacf3
chore: rename uplc builder builtins
2023-10-22 17:08:48 -04:00
waalge
3e283a59ec
Split off builtin function builders
...
- sort alphabetically
- add some of the missing builtins used for ints
- comment on what is "correct" for future additions
- comment on the current remaining missing builtins
- comment on the current incoherent method names
2023-10-22 17:08:48 -04:00
KtorZ
46c58dbd61
Implement quickfixes for redundant imports.
2023-10-22 00:29:09 +02:00