microproofs
46c7cb797a
fixing more pair issues
2024-05-04 14:04:12 -04:00
microproofs
ebe415cfc9
fix errors
2024-05-04 14:04:12 -04:00
KtorZ
5c59b816ea
Add parser for 'Pair' pattern
...
And a few more tests along the way for others. Note that it is important here that we try to parse for a 'Pair' BEFORE we try to parse for a constructor pattern. Because the latter would swallow any Pair pattern.
2024-05-04 14:04:12 -04:00
KtorZ
91a7e77ab4
Add 'Pair' pattern and rework internals to use it.
...
Currently, pattern-matching on 'Pair' is handled by treating Pair as a
record, which comes as slightly odd given that it isn't actually a
record and isn't user-defined. Thus now, every use of a record must
distinguish between Pairs and other kind of records -- which screams
for another variant constructor instead.
We cannot use `Tuple` either for this, because then we have no ways to
tell 2-tuples apart from pairs, which is the whole point here. So the
most sensical thing to do is to define a new pattern `Pair` which is
akin to tuples, but simpler since we know the number of elements and
it's always 2.
2024-05-04 14:04:12 -04:00
KtorZ
897b5d1d7e
Ensure type-aliases pretty-printing also work with Pair.
2024-05-04 14:04:12 -04:00
KtorZ
3020af7cd7
Revert 'unify' implementation back to its more elegant form
...
And add support for Pair.
2024-05-04 14:04:12 -04:00
KtorZ
cbf3ef2854
Add new Prelude alias: 'Map'
2024-05-04 14:04:12 -04:00
microproofs
d7574e738f
fix: remaining cargo tests
2024-05-04 14:04:12 -04:00
microproofs
999e408a28
fix some more tests
2024-05-04 14:04:12 -04:00
microproofs
7b5ad961e2
fix: found issue with record access on Pairs
2024-05-04 14:04:12 -04:00
microproofs
cb1ca84dad
fixing more tests
2024-05-04 14:04:12 -04:00
microproofs
30dd1f60e7
small simplification
2024-05-04 14:04:12 -04:00
microproofs
75b076552c
feat: Do a major overhaul on how we check types to allow for match patterns instead of if statements
...
Also fix one more test
2024-05-04 14:04:12 -04:00
microproofs
3c332ca42a
Few more places in codegen where we need to be able to deal with Pair records
2024-05-04 14:04:12 -04:00
microproofs
26f68c2fb4
fix: found various unify and type issues while running tests
2024-05-04 14:04:12 -04:00
microproofs
fd226be51f
add Pair type to prelude
2024-05-04 14:04:12 -04:00
microproofs
a8c8cf41cf
Finishing up codegen changes for pair
2024-05-04 14:04:12 -04:00
microproofs
963d275bb8
continue progress on pair adding
2024-05-04 14:04:12 -04:00
microproofs
21b60896f0
remove wild card match from tree functions
...
Start working on supporting Pair clauses
2024-05-04 14:04:12 -04:00
microproofs
f950ae7d3d
WIP: add new opcodes to Air and AirTree and update parts of codegen to handle the new pair type
2024-05-04 14:04:12 -04:00
microproofs
9e78f0fc2a
update for latest main
2024-05-04 14:04:12 -04:00
microproofs
61a021f9e3
update pair to handle alias
2024-05-04 14:04:12 -04:00
microproofs
d05d8e7de6
Start working on separating pairs from 2 tuples in Aiken
...
co-authored-by: KtorZ <matthias.benkort@gmail.com>
2024-05-04 14:04:12 -04:00
KtorZ
db8eb6a108
Provide more context for some panics
...
Actually ran into them both, will open issues about those in a bit.
2024-05-01 12:04:47 +02:00
KtorZ
925a11be69
Check for args length when comparing types. Duh!
...
Fixes #917 .
2024-05-01 10:48:15 +02:00
microproofs
945a3f743b
feat: builtin wrapper reduction optimization
2024-04-26 19:24:04 +02:00
Micah Kendall
ff4ddfbe1b
Simplifying PR per reviewers request
2024-04-12 21:40:27 -04:00
Micah Kendall
d39dbd6697
fmt
2024-04-12 21:40:27 -04:00
Micah Kendall
d25b8f91c7
feat: Emit keyword
2024-04-12 21:40:27 -04:00
rvcas
17ddbfaafa
chore: remove dbg
2024-04-08 14:30:07 -04:00
rvcas
5fc338a1eb
test: add some snapshot tests for export type
2024-04-08 14:30:07 -04:00
rvcas
5cb1e23008
fix: program generate should only run after params and args are validated
2024-04-08 14:30:07 -04:00
rvcas
cac119338d
feat(blueprint): a memoized program that only runs code gen every other time
2024-04-08 14:30:07 -04:00
rvcas
aa3896e92a
feat(export): allow trace levels to be controlled
2024-04-08 14:30:07 -04:00
rvcas
79ccc55499
feat(cli): print Export json to stdout
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2024-04-08 14:30:07 -04:00
rvcas
dac3308620
feat(Project::export): use Export::from_function and transpose
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2024-04-08 14:30:07 -04:00
rvcas
8ed930ac5a
feat: implement Export object based on blueprint
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2024-04-08 14:30:07 -04:00
rvcas
3cdb21ad6b
feat(blueprint): make a helper public
2024-04-08 14:30:07 -04:00
rvcas
a11b1fa56a
chore: cleanup validator creator method
2024-04-08 14:30:07 -04:00
rvcas
9322020a5e
feat(blueprint): re-export Error
2024-04-08 14:30:07 -04:00
rvcas
f50f7e42db
feat(project): create export type
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2024-04-08 14:30:07 -04:00
rvcas
9d49be46b8
chore: add some docs to the uplc crate
2024-04-08 14:30:07 -04:00
rvcas
033cc26313
fix: with_project no longer needs a seed
2024-04-08 14:30:07 -04:00
rvcas
1d462314c4
feat: use new generate_raw function
2024-04-08 14:30:07 -04:00
rvcas
7d67f1497c
feat(export): implement basic command functionality
2024-04-08 14:30:07 -04:00
rvcas
b63bd9b9e0
feat(cli): add empty export commands
2024-04-08 14:30:07 -04:00
rvcas
b27fcf38e5
fix(check): collapse_links on tuple_index access closes #905
2024-04-02 19:45:16 -04:00
rvcas
7c5b9aa35e
feat(lsp): find_node for TypedArgVia
2024-04-02 19:22:19 -04:00
rvcas
d22ee6e086
chore: remove useless clone
2024-04-02 19:04:33 -04:00
rvcas
e02bc2a58a
feat(lsp): find_node should traverse tail of list
2024-04-02 17:55:04 -04:00