rvcas
d18caaeecb
feat(cli): support mainnet address output
...
closes #832
2024-02-27 21:55:18 -05:00
rvcas
2018a18d15
fix: error message for bls elements in a type def
...
closes #840
2024-02-27 21:21:18 -05:00
KtorZ
46c357df7b
Fix Int/BigInt pivot
...
We've been wrongly representing large ints as BigInt, causing them to
behave differently in the VM through builtins like 'serialise_data'.
Indeed, we expect anything that fits in 8 bytes to be encoded as Major
Type 0 or 1. But we were switching to encoding as Major type 6
(tagged, PosBigInt, NegBigInt) for much smaller values! Anything
outside of the range [-2^32, 2^32-1] would be treated as big int
(positive or negative).
Why? Because we checked whether a value i would fit in an i64, and if
it didn't we treated it as big int. But the reality is more subtle...
Fortunately, Rust has i128 and the minicbor library implements TryFrom
which enforces that the value fits in a range of [-2^64, 2^64 - 1], so
we're back on track easily.
2024-02-25 14:09:56 -05:00
rvcas
8d59ba1c77
chore: update the conformance tests
2024-02-20 13:05:28 -05:00
rvcas
a15fead982
chore: remove unused import
2024-02-20 13:05:28 -05:00
rvcas
20917bbd5b
feat(machine): fix Value::Constr fields order
...
cc @MicroProofs
2024-02-20 13:05:28 -05:00
rvcas
028528899c
feat(runtime): implement byteStringToInteger and add conformance tests
2024-02-20 13:05:28 -05:00
rvcas
da6e5ec6d1
feat: implement integerToByteString
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2024-02-20 13:05:28 -05:00
rvcas
c7dd4d0e48
feat(aiken-lang): expose integerToByteString and byteStringToInteger
2024-02-20 13:05:28 -05:00
rvcas
fc3bc4d9ff
feat(cost_model): add costing for integerToByteString and byteStringToInteger
2024-02-20 13:05:28 -05:00
rvcas
70d4d7fdeb
feat(runtime): add force count and arity for integerToByteString and byteStringToInteger
2024-02-20 13:05:28 -05:00
rvcas
b0eade209b
feat(DefaultFunction): add IntegerToByteString and ByteString
2024-02-20 13:05:28 -05:00
rvcas
0ccfe60072
feat: support nested void matching
2024-02-13 21:29:24 -05:00
rvcas
ac0c73a56a
chore: clippy fixes
2024-02-13 20:26:12 -05:00
rvcas
3582c5569d
fix: no single when clause warning sometimes
...
While looking at some code, I noticed that this
warning would show up even if an error for a
non-exhaustive when/is shows up for the same when/is
expression. This isn't a useful situation to show this
warning because things are not exhaustive yet so we should
let the user finish and only provide the errors. If things
are exhaustive then the code proceeds and if a warning was set
when there's only one clause pattern then this warning message
can be pushed because that's when it's actually useful.
2024-02-13 20:12:40 -05:00
rvcas
4c5a449d83
chore: improve a comment/doc
2024-02-13 19:46:34 -05:00
microproofs
6e2f9b9eb9
fix tests
2024-02-07 12:48:07 -05:00
microproofs
056e3d76ea
change check_validator_args to check type after each arg
2024-02-07 12:48:07 -05:00
microproofs
6c6be3f53d
got past the errors and warnings
2024-02-07 12:37:37 -05:00
microproofs
51f1da2505
Removed AirStatements and AirExpressions
...
Still a WIP
2024-02-07 12:37:37 -05:00
microproofs
b807d58e89
fix first compiler pass of errors
2024-02-07 12:37:37 -05:00
microproofs
dc195b22d4
missed another hoist over
2024-02-07 12:36:35 -05:00
microproofs
713b16e25d
we now build forwards when it comes to piplines and expressions
...
so this test got reordered
2024-02-07 12:36:35 -05:00
microproofs
d1c784ed49
few more hoist over fixes
2024-02-07 12:36:35 -05:00
microproofs
3938d74bb6
missed a hoist over
2024-02-07 12:36:35 -05:00
microproofs
6b97ab71fe
fix up code gen tests
2024-02-07 12:36:35 -05:00
microproofs
4ab3b61200
In most cases the context isn't need so I made the code more explicit about that
2024-02-07 12:36:35 -05:00
microproofs
575dde9885
fix: issue with reordering statements caused clause props to not be updated
2024-02-07 12:36:35 -05:00
microproofs
8702c736d0
fix warning
2024-02-07 12:36:35 -05:00
microproofs
806a74c192
fix all current errors
2024-02-07 12:36:35 -05:00
microproofs
9f96e4bc5a
fix first compiler pass of errors
2024-02-07 12:36:35 -05:00
KtorZ
a12c374258
Start turning AirTree statements into expressions (let)
...
Still many places to fix, WIP.
2024-02-07 12:36:35 -05:00
KtorZ
3c8460e6af
Allow annotating Data for blueprint
...
This commit allows Data to be optionally annotated with a
phantom-type. This doesn't change anything in codegen but we can now
leverage this information to generate better blueprint schemas.
2024-02-07 11:48:52 -05:00
KtorZ
20ce19dfb1
Fix error hint when expecting 0 generic parameters.
2024-02-07 11:48:52 -05:00
microproofs
0e2995e16e
fix test
2024-02-07 11:48:52 -05:00
microproofs
3b4c6cb2aa
fix: missing message error term in one place for type is void
2024-02-07 11:48:52 -05:00
microproofs
e25be7643e
discards will now check for type too.
2024-02-07 11:48:52 -05:00
microproofs
982eff449e
chore: Release
2024-01-31 13:48:20 -05:00
microproofs
551941392e
fix: assert had one minor edge case due to final clauses with lists
2024-01-31 00:05:09 -05:00
microproofs
444bccf19c
fix: change list_access_to_uplc to properly handle list discards
2024-01-30 23:53:33 -05:00
microproofs
a83220c8d9
fix: module_name was being overrided by the moduleselect field
2024-01-30 23:52:50 -05:00
Kuly14
81e93b4309
Introduce cli aliases for check and build subcommands
2024-01-30 12:32:17 -05:00
rvcas
3a7a0c1971
chore: remove unused deps
2024-01-30 12:28:18 -05:00
microproofs
8584adc1b7
chore: Release
2024-01-25 15:10:11 -05:00
microproofs
78d2049d7b
fix: Using the wrong match string for discards in FieldsExpose
...
Also need to return a lambda wrapped term from list_access_to_uplc under all conditions
2024-01-25 14:18:36 -05:00
rvcas
defd36ad8c
chore: Release
2024-01-25 11:07:32 -05:00
rvcas
1ab6d050af
chore: bump pallas
2024-01-25 11:07:18 -05:00
rvcas
589bb9a4b3
chore: change how we depend on pallas
2024-01-24 21:26:48 -05:00
microproofs
ae0b428658
update tests to account for new verbose tracing
2024-01-24 16:29:40 -05:00
microproofs
00e1942999
another test fix
2024-01-24 16:29:40 -05:00
microproofs
dc61e11813
fix test
2024-01-24 16:29:40 -05:00
microproofs
36a0b317ad
fix condition to account for tail presence
2024-01-24 16:29:40 -05:00
microproofs
3c81ebf137
updating more of the tests
2024-01-24 16:29:40 -05:00
microproofs
51f1f2b67f
change redundant if branches
2024-01-24 16:29:40 -05:00
microproofs
e523ae63f3
fixed some of the tests
2024-01-24 16:29:40 -05:00
microproofs
3a44c45b48
fix: one builtin error wasn't be caught with a messaged exception
2024-01-24 16:29:40 -05:00
microproofs
eda4e259d6
minor fix and some refactoring on the if statements
2024-01-24 16:29:40 -05:00
microproofs
82fc82ceee
fix: used wrong index in tupleAcessor
2024-01-24 16:29:40 -05:00
microproofs
956c3d6cf0
feat: refactor code gen to avoid builtin errors when tracing is turned on
2024-01-24 16:29:40 -05:00
KtorZ
54a1b50138
Make behavior between curly- and paren-delimited blocks consistent.
...
Note that the formatter rewrite parens-block sequences as curly-block
sequences anyway. Albeit weird looking syntax, they are valid
nonetheless.
I also clarified a bit the hints and description of the
'illegal::return' error as it would mistakenly say 'function' instead
of 'block'.
2024-01-20 10:37:07 +01:00
KtorZ
bf96c3afd2
Add more tests & rename 'Invalid' -> 'Unfinished'
2024-01-20 10:26:33 +01:00
Matthias Benkort
cb6fd59dbd
Fix minor typo in error label
2024-01-20 09:58:36 +01:00
rvcas
25a837ab3f
feat: parser and check fixes
...
- do not erase sequences if the sole expression is an assignment
- emit parse error if an assignment is assigned to an assignment
- do not allow assignments in logical op chains
2024-01-19 14:32:21 -05:00
KtorZ
8a90e9eda0
Improve behavior and reporting of tests expected to fail
...
Fixes #786 .
2024-01-19 18:20:58 +01:00
KtorZ
2b4137dc24
Revert "minor refactor"
...
This reverts commit 21f0b3a6220fdafb8f6aad6855de89d8cdde0e1b.
Rationale:
The absence of clause guard was here done *on purpose*. Indeed,
introducing a clause guard here forces either duplication or the use
of a wildcard which is not "future proof".
Should we make a change to that one day (e.g. add a new variant to
TraceLevel), we won't get any compiler warning and we'll very likely
forget to update that particular section of the code.
So as much as possible, enforce complete pattern-match on variants
make for code that is easier to maintain in the long-run.
2024-01-19 14:31:09 +01:00
microproofs
af90b38bf8
minor refactor
2024-01-19 14:31:04 +01:00
KtorZ
6fa272bd34
Remove compiler-generated helper 'global' traces in compact mode.
...
Since there's no line number to show here, we don't have much choice. And the alternative of showing shorter traces as code is just ugly as hell.
2024-01-19 14:30:44 +01:00
KtorZ
42fdecf41f
Fix coloring output of multi-line traces.
2024-01-19 14:30:44 +01:00
KtorZ
3d131a5d09
Fix CLI docs for traces.
2024-01-19 14:30:16 +01:00
KtorZ
59c784778e
Convert span's start to line number + col
...
This requires to make line numbers a first-class citizen in the module
hierarchy but it is fortunately not _too involved_.
2024-01-19 14:30:15 +01:00
KtorZ
e67d5863a1
Introduce 'compact' trace level verbosity
...
For now, it only shows the span start. We'll change that in the next commit to show a line number and a column.
2024-01-19 14:30:15 +01:00
KtorZ
627c6b576e
Move line_numbers under 'aiken-lang'
...
And add some unit tests to ensure things are working properly.
2024-01-19 14:30:15 +01:00
microproofs
f79b37d551
Replace 'bool' with 'TraceLevel' in codegen
...
Co-authored-by: KtorZ <matthias.benkort@gmail.com>
2024-01-19 14:30:15 +01:00
KtorZ
d27ea98a8f
Rework tracing arguments to --keep-traces & --trace-level
...
This allows for a more fine-grained control over how the traces are showed. Now users can instrument the compiler to preserve only their user-defined traces, or the only the compiler, or all, or none. We also want to add another trace level on top of that: 'compact' to only show line numbers; which will work for both user-defined and/or compiler-generated traces.
2024-01-19 14:30:15 +01:00
microproofs
86146ae7f4
adding codegen traces
2024-01-19 14:30:14 +01:00
Matthias Benkort
81e29539c8
Merge pull request #803 from aiken-lang/780-possible-bug-with-test-github-action-version-generated-by-aiken-new
...
fix: aiken new github action version
2024-01-19 14:27:38 +01:00
KtorZ
0e2b8ae251
Bump pallas dependencies to include flat bigint patch
...
Fixes #796 .
2024-01-18 18:26:21 +01:00
microproofs
1796147264
fix: aiken new github action version
2024-01-18 12:10:06 -05:00
microproofs
06672fce05
add new test
2024-01-13 19:29:34 -05:00
microproofs
d26524048e
fix: headlist builtin on assoc lists
...
implement chooseunit for 0 args
2024-01-13 19:29:34 -05:00
microproofs
c7af27a6ba
fix: generic edge case with tuples that allowed 2 tuples and 3 tuples to use the same monomorphized function.
...
Also massively reduced the space taken up by generics in scripts when using generics with list and tuples
2024-01-13 17:46:32 -05:00
Niels Mündler
f934e87b1d
Reuse "convert_tag_to_constr"
2024-01-13 13:23:58 -05:00
Niels Mündler
cda1716d47
Unify construction of PlutusData objects from int + fields
2024-01-13 13:23:58 -05:00
Niels Mündler
742a728d53
Fix conformance test to make a point
2024-01-13 13:23:58 -05:00
Niels Mündler
316842876d
Fix PlutusData Constr test case
2024-01-13 13:23:58 -05:00
Niels Mündler
4bd8ab890a
Add reverse mapping for PlutusData constr
2024-01-13 13:23:58 -05:00
Niels Mündler
0ae631a1fe
Fix parsing Constr PlutusData
2024-01-13 13:23:58 -05:00
microproofs
4a8fecb70a
fix: satisfy clippy's demands
2024-01-11 14:53:02 -05:00
rvcas
8b62873ef5
fix(format): post trace sequences getting wrapped in curlies closes #781
2024-01-09 22:39:55 -05:00
microproofs
ff462fa8ea
don't need clippy macro anymore :)
2024-01-08 18:08:50 -05:00
microproofs
f722af1149
fix: accidentally put quotes around tail_name
2024-01-08 18:08:50 -05:00
microproofs
2216f387c3
refactor: change codegen uplc to have more type safety
...
Also refactor list_access_to_uplc
2024-01-08 18:08:50 -05:00
Mitchell Turner
7992a50bec
Make foreign `Language` type publicly available ( #793 )
...
* Make foreign type public available
* Fix formatting
2024-01-08 13:31:21 -08:00
KtorZ
30a6b77116
Get rid of 'VoidMsg' in favor of an 'Option'.
2024-01-04 16:03:51 -05:00
microproofs
c50a9cb5bd
refactor: convert msgs to use AirMsg type instead of AirTree
2024-01-04 16:03:51 -05:00
microproofs
394cac86b8
feat: expect on a type now can take in a msg when in trace mode
2024-01-04 16:03:51 -05:00
microproofs
4fc65cc600
feat: change expect from data on constrs to take in a message term
2024-01-04 16:03:51 -05:00
microproofs
43e84d7af7
fixing gen_uplc tets
2024-01-04 16:03:51 -05:00
microproofs
c7a1ff0959
refactor how tracing is popped off to be in one location in uplc_gen
2024-01-04 16:03:51 -05:00
microproofs
355e38d6e2
feat: expects now print the line of code that failed
2024-01-04 16:03:51 -05:00
microproofs
412945af3a
update aiken code gen test
2024-01-04 16:03:51 -05:00
microproofs
aa51ce3e3e
feat: add code messages when using expects on constrs
2024-01-04 16:03:51 -05:00
microproofs
71cfb6f6af
feat: Add specific messages for using expect with booleans
...
TODO: fill out the rest of the expects with messages
2024-01-04 16:03:51 -05:00
Niels Mündler
7b452c21f0
Fix formatting
2023-12-29 22:57:10 -05:00
Niels Mündler
4c60be368e
Add command line option to shrink uplc
2023-12-29 22:57:10 -05:00
Niels Mündler
b6acdde552
Use to_i64 for clarity
2023-12-19 12:20:10 -05:00
Niels Mündler
d06f2f6008
Formatting
2023-12-19 12:20:10 -05:00
Niels Mündler
eefd26c6fa
Add acceptance tests for this tricky case
2023-12-19 12:20:10 -05:00
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
KtorZ
28b699c86a
Merge unused imported constructors and unused imported type with unused imported value
...
This was somewhat weirdly done, with a boolean 'imported' set on the
formers; but an explicit new warning for values. I don't see the point
of distinguishing them so I just merged them all into a single
warning.
I have however preserved the 'UnusedType' and 'UnusedConstructor'
warnings since they were ALSO used for unused private constructors or
types.
2023-10-22 00:27:33 +02:00
KtorZ
5f8e256050
Present aiken-lsp & fill-in CHANGELOG
2023-10-21 21:39:30 +02:00
KtorZ
17832fc5af
Fix clippy warnings: remove redundant closures & guards.
2023-10-21 21:27:31 +02:00
KtorZ
c0513da032
Add quickfix for unknown constructors.
2023-10-21 14:24:47 +02:00
KtorZ
f6eff7ec58
Fix incoherent 'UnknownVariable' being returned in type-check
...
I initially removed the 'UnkownTypeConstructor' since it wasn't used anywhere and was in fact dead-code. On second thoughts however, it is nicer to provide a slightly better error message when a constructor is missing as well as some valid suggestion. Prior to that commit, we would simply return a 'UnknownVariable' and the hint might suggest lowercase identifiers; which is wrong.
2023-10-21 14:10:45 +02:00
KtorZ
5986163ba7
Add quickfix for unknown alias & data types.
2023-10-21 13:57:06 +02:00
KtorZ
d965467a53
Fix insertion of unqualified import when first
...
I previously missed a case and it causes qualified imports to be added at the end if they are lexicographically smaller than ALL other qualified imports. No big deal, but this is now fixed.
2023-10-21 13:56:15 +02:00
KtorZ
c550b4766d
Implement quickfix for 'UnknownModule'.
2023-10-21 12:59:48 +02:00
KtorZ
e48ac6b592
Relocate and refactor quickfix code into its own module
...
We're going to have more quickfixes, to it's best not to overload the
'server' module. Plus, there's a lot of boilerplate around the
quickfixes so we might want to factor it out.
2023-10-21 12:00:58 +02:00
KtorZ
763516eb96
Refactor and relocate document edits function for imports.
...
It's a bit 'off-topic' to keep these in aiken-lang as those functions are really just about lsp. Plus, it removes a bit some of the boilerplate and make the entire edition more readable and re-usable. Now we can tackle other similar errors with the same quickfix.
2023-10-21 11:31:01 +02:00
KtorZ
699d0a537c
Use (untyped) AST to find the right insert location for imports.
...
This removes the need to rely on the formatter to clear things up
after insert a new import. While this is not so useful for imports, I
wanted to experiment with the approach for future similar edits (for
example, when suggesting an inline rewrite).
2023-10-21 10:43:00 +02:00
KtorZ
66ade8e3e3
Implement simple code action quickfix for unknown variable.
2023-10-20 18:01:07 +02:00
KtorZ
c4221730bf
Define 'ExtraData' trait for errors
...
This should allow passing some extra information to LSP diagnostic in order to provide quickfix actions, such as auto-imports.
2023-10-20 18:00:12 +02:00
KtorZ
41e26b216b
Some LSP improvements regarding hovering
...
- Resolve module select properly
- Add some type annotations to _some patterns_ such as assignments
2023-10-19 20:04:10 +02:00
rvcas
e5801f9c19
feat: support doc comments for functions args and validator params
...
- Add support to the formatter for these doc comments
- Add a new field to `Arg` `doc: Option<String>`
- Don't attach docs immediately after typechecking a module
- instead we should do it on demand in docs, build, and lsp
- the check command doesn't need to have any docs attached
- doing it more lazily defers the computation until later making
typechecking feedback a bit faster
- Add support for function arg and validator param docs in
`attach_module_docs` methods
- Update some snapshots
- Add put_doc to Arg
closes #685
2023-10-16 13:38:23 -04:00
rvcas
10b9dc2042
chore: remove unused constants
2023-10-13 16:56:03 -04:00
microproofs
596ce49327
fix: mixed up operators for ConstAboveDiagonal and ConstBelowDiagonal
...
Closes #618
2023-10-13 11:40:07 -04:00
rvcas
e8bcbecf31
chore: avoid cloning name
2023-10-12 17:50:44 -04:00
rvcas
55f89a7ff4
fix: incorrect 'unused::constructor'
...
`ExprTyper` was not incrementing the usage of a constructor
when infering `RecordAccess`.
closes #554
2023-10-12 17:44:57 -04:00
rvcas
52dfc13f8f
chore: explain a weird if condition
2023-10-12 17:24:11 -04:00
microproofs
c764a6f99c
fix: reset option should not reset special functions in only a multivalidator
2023-10-07 19:42:24 -04:00
microproofs
4649a5a9d2
fix: don't reset the used special functions
2023-10-07 19:42:24 -04:00
microproofs
8964675670
feat: Add tracing for common multivalidator issues
2023-10-07 19:42:24 -04:00
microproofs
a86f08c6d1
update tests for new trace reduction
2023-10-07 19:42:24 -04:00
microproofs
7a6ddc45a0
feat: Rework codegen traces to prevent repeated messages from taking up uplc script space
2023-10-07 19:42:24 -04:00
microproofs
44021cde19
Detect when fields_expose is unnecessary in clause_pattern
2023-10-07 19:42:24 -04:00
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
KtorZ
c2bf6e5682
Add missing keywords to documentation generator.
2023-10-06 14:46:34 +02:00
KtorZ
a524836c94
Add compiler version & system information to panic error message
...
So that we stop constantly asking people about it.
2023-10-06 14:46:11 +02:00
KtorZ
524d0dadf5
Add compiler's version to blueprint.
2023-10-06 14:17:55 +02:00
KtorZ
d56d5180cf
Move compile-time build info to aiken-project
...
So that we can use it as part of the blueprints.
2023-10-06 14:08:47 +02:00
microproofs
8a1c824dd7
chore: add specific error for when the validator returns false
2023-10-04 11:08:22 -04:00
rvcas
135dbd8335
feat: handle pipe fn infer TODOs
...
This improves error messages for `a |> b(x)`.
We need to do a special check when looping over the args
and unifying. This information is within a function that does not belong
to pipe typer so I used a closure to forward along a way to add
metadata to the error when the first argument in the loop has a
unification error. Simply adding the metadata at the pipe typer
level is not good enough because then we may annotate regular
unification errors from the args.
2023-10-03 01:17:15 -04:00
microproofs
fb6cbbec8b
chore: Release
2023-09-29 22:08:09 -04:00
microproofs
add513790d
hotfix: cyclic functions hoisted as a dependency used the wrong key to modify its own cyclic_calls
2023-09-29 22:01:43 -04:00
microproofs
82ceb5b696
chore: Release
2023-09-29 19:39:28 -04:00
microproofs
83f0dd2cbe
chore: fix blueprint validator tests
2023-09-29 17:47:39 -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