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
waalge
dbd4fe2aab
fix rust version
2023-09-28 13:30:34 -04:00
waalge
37ec2b121b
rev
2023-09-28 13:30:34 -04:00
waalge
3c11c95e01
insert into rust
2023-09-28 13:30:34 -04:00
microproofs
47596f0324
feat: Remove tuple_index and record_access in favor of faster more direct functions for
...
accessing an item in a tuple or a field in a record
2023-09-28 01:05:05 -04:00
microproofs
1bcc9e8524
fix: expect on tuples from data now checks for no more items after the last
2023-09-26 12:49:50 -04:00
microproofs
1ca3499128
chore: rename type
2023-09-25 21:16:19 -04:00
microproofs
534eb62a07
fix: There was a stack overflow due to passing unbound types to a function
2023-09-25 21:16:19 -04:00
microproofs
1cab479b81
fix: dependency hoisting for cyclic functions
...
Add more tests
2023-09-25 21:16:19 -04:00
microproofs
2f80d07132
fix: minor stuff including fixing the var name used in modify_cyclic_calls
...
and carefully controling the functions we add to sorted dependencies
2023-09-25 21:16:19 -04:00
microproofs
f4310bcf33
feat: finished up mutual recursion
...
Now we "handle" vars that call the cyclic function.
That includes vars in the cyclic function as well as in other functions
"handle" meaning we modify the var to be a call that takes in more arguments.
2023-09-25 21:16:19 -04:00
microproofs
ae3053522e
feat: Update cyclic functions to be aware of being in a cycle.
...
Finish the creation of cyclic functions
The last part is to update vars that call into a function in the cycle
2023-09-25 21:16:19 -04:00
microproofs
794fc93084
remove unused structs
2023-09-25 21:16:19 -04:00
microproofs
0b38855ce4
add new enum for hoistablefunctions
2023-09-25 21:16:19 -04:00
microproofs
ced818c455
checkpoint commit
2023-09-25 21:16:19 -04:00
microproofs
0fb9837ddf
chore: change UserFunction to HoistableFunction to prepare for mututal recursion
2023-09-25 21:16:19 -04:00
microproofs
74b8ab62b2
chore: add comments
2023-09-25 21:16:19 -04:00
microproofs
a4aa51ed2d
WIP: first part of mutual recursion is done.
...
This involves creating the function definition and detecting cycles.
The remaining part is to "fix" the call sites
of the mutually recursive functions
2023-09-25 21:16:19 -04:00
microproofs
5b018b7c07
test: add a test around a tuple of constructors when with many conditions
2023-09-20 16:20:42 -04:00
KtorZ
ee4001d2c8
chore: Release
2023-09-20 18:03:46 +02:00
KtorZ
f379039efc
Fix record shorthand causing parsing ambiguity in if/else expressions.
...
Fixes #735 .
2023-09-15 09:41:00 +02:00
rvcas
1dea348a2e
chore: rust rover error
2023-09-13 21:29:05 -04:00
rvcas
7b915b7dcf
chore: allow clippy::arc_with_non_send_sync in tests
2023-09-13 19:07:45 -04:00
rvcas
d808197507
chore: clippy fix
2023-09-13 18:17:59 -04:00
rvcas
9a4f181a0f
chore: clippy fix
2023-09-13 17:19:31 -04:00
KtorZ
c711a97e69
Throttle calls to package registry for version resolution
...
The 'HEAD' call that is done to resolve package revisions from
unpinned versions is already quite cheap, but it would still be better
to avoid overloading Github with such calls; especially for users of a
language-server that would compile on-the-fly very often. Upstream
packages don't change often so there's no need to constantly check the
etag.
So we now keep a local version of etags that we fetched, as well as a
timestamp from the last time we fetched them so that we only re-fetch
them if more than an hour has elapsed. This should be fairly resilient
while still massively improving the UX for people showing up after a
day and trying to use latest 'main' features.
This means that we now effectively have two caching levels:
- In the manifest, we store previously fetched etags.
- In the filesystem, we have a cache of already downloaded zip archives.
The first cache is basically invalidated every hour, while the second
cache is only invalidated when a etag changes. For pinned versions,
nothing is invalidated as they are considered immutable.
2023-09-13 17:17:32 -04:00
KtorZ
15efeb3069
Remove unused code & data-type 'UseManifest'
...
If it's unused, it shall be gone. It obfuscate what functions are
doing and require managing extra complexity for no reason.
2023-09-13 17:17:32 -04:00