Commit Graph

3078 Commits

Author SHA1 Message Date
KtorZ
87f4ed359b Update changelog: set a release date. 2024-06-06 11:19:33 +02:00
Matthias Benkort
71ed844db0 Merge pull request #952 from aiken-lang/auto-merge-imports 2024-06-05 10:11:12 +02:00
KtorZ
d7ec2131ef Automatically merge import lines from same module.
I slightly altered the way we parse import definitions to ensure we
  merge imports from the same modules (that aren't aliased) together.

  This prevents an annoying warning with duplicated import lines and
  makes it just more convenient overall.

  As a trade-off, we can no longer interleave import definitions with
  other definitions. This should be a minor setback only since the
  formatter was already ensuring that all import definitions would be
  grouped at the top.

  ---

  Note that, I originally attempted to implement this in the formatter
  instead of the parser. As it felt more appropriate there. However, the
  formatter operates on (unmutable) borrowed definitions, which makes it
  annoyingly hard to perform any AST manipulations. The `Document`
  returns by the format carries a lifetime that prevents the creation of
  intermediate local values.

  So instead, slightly tweaking the parser felt like the right thing to
  do.
2024-06-04 10:48:42 +02:00
KtorZ
7f4ca60d9a refresh README. 2024-05-31 09:48:14 +02:00
Matthias Benkort
00cd7ce97f Update README.md 2024-05-31 09:23:49 +02:00
Matthias Benkort
5e1908897f Update README.md 2024-05-31 09:22:01 +02:00
KtorZ
2070576e46 New LSP quickfix for 'use let' warning. 2024-05-30 19:30:41 +02:00
KtorZ
e9e26b969a Preserve warning display rework, but without breaking the LSP quickfixes. 2024-05-30 19:20:11 +02:00
KtorZ
649e5163fc Fix parsing of single hex-digits. 2024-05-30 17:19:48 +02:00
KtorZ
5694d9f9cb Introduce 'fail once' and alter behavior of 'fail' keyword for properties. 2024-05-30 17:18:50 +02:00
Matthias Benkort
28515e70ec Merge pull request #950 from hadelive/k256-error
Fix k256 error does not implement clone
2024-05-30 13:42:57 +02:00
Matthias Benkort
4c1bee5091 Merge pull request #949 from hadelive/minimal-pallas-deps
Minimal pallas dependencies
2024-05-30 13:42:45 +02:00
hade
740e140c89 fix: custom k256 error 2024-05-30 16:13:51 +07:00
hade
b367ec2113 fix: fmt check 2024-05-30 16:09:32 +07:00
hade
ad3c9f24b7 chore: minimal pallas dependencies 2024-05-30 15:09:05 +07:00
rvcas
c9a15194a0 chore: some dist settings 2024-05-23 21:38:47 -04:00
rvcas
cb8f51d7a5 chore: remove npm flow 2024-05-23 21:27:36 -04:00
rvcas
2f9f554e78 feat: npm publish flow 2024-05-23 21:16:13 -04:00
rvcas
cb4c01f46b chore: remove msi and update cargo dist 2024-05-23 21:07:44 -04:00
rvcas
338fc0eba6 chore: Release 2024-05-23 16:45:10 -04:00
rvcas
2605dc6aa4 chore: update changelog 2024-05-23 16:44:50 -04:00
rvcas
ed73df302a fix: completions should not work on windows 2024-05-23 16:43:56 -04:00
rvcas
ff50d4d2cf chore: Release 2024-05-23 16:23:59 -04:00
rvcas
3f46559dbe chore: update changelog 2024-05-23 16:21:16 -04:00
microproofs
2c8abe4a69 update changelog 2024-05-23 16:15:30 -04:00
microproofs
59cfa209d7 change uplc version number based on plutus version 2024-05-23 15:04:59 -04:00
KtorZ
e2bc3a9fc4 Update blueprint generation to work with Pairs.
Closes #938.
2024-05-23 18:15:46 +02:00
KtorZ
c48f15a957 revert #903 'feat: Emit keyword'
While we agree on the idea of having some ways of emitting events, the
  design hasn't been completely fleshed out and it is unclear whether
  events should have a well-defined format independent of the framework
  / compiler and what this format should be.

  So we need more time discussing and agreeing about what use case we
  are actually trying to solve with that.

  Irrespective of that, some cleanup was also needed on the UPLC side
  anyway since the PR introduced a lot of needless duplications.
2024-05-23 17:22:12 +02:00
KtorZ
e1f39ae539 Oversight: fix missing 'AList' -> 'Pairs' conversion. 2024-05-23 17:08:33 +02:00
KtorZ
5ce30b2632 Rename AList -> Pairs due to popular demand. 2024-05-23 16:45:40 +02:00
KtorZ
8e0f32a577 Fix negative evaluation costs
Whoopsie.
2024-05-23 11:21:47 +02:00
microproofs
3d06129d9b add test for curry optimization that is a reduced case of #945 2024-05-22 15:46:32 -04:00
rvcas
c3ad52b50f feat: add compiler version to aiken.toml 2024-05-22 15:35:57 -04:00
microproofs
d6cc450ce4 The actual issue with #945 is that the curry builtin reducer could sometimes place fully applied builtins that could evaluate and fail above where they were actually used. This happened with builtins that were called with the same constants enough times for the curry builtin to try hoist to a higher scope. This is now fixed by detecting which builtins are safe to evaluate in advance before we hoist fully applied builtins 2024-05-22 15:22:31 -04:00
rvcas
c1a913f420 fix(config): add default for plutus version 2024-05-22 13:59:56 -04:00
rvcas
7f38b55c1c fix: comments in record patterns closes #946 2024-05-22 12:26:36 -04:00
microproofs
c16bd06e97 make sure traverse_uplc_with_helper is always passing the arg to lambda before running the with function.
Breaks #945 again
2024-05-22 11:58:05 -04:00
rvcas
edf82f773c chore: update snapshots 2024-05-22 11:30:02 -04:00
rvcas
f5c4f4cb37 chore(plutus_version): use a cuter name in the config field 2024-05-21 17:13:12 -04:00
microproofs
489eff7f5b Closes #945
Switch to depth first optimization passes instead of breadth first for inlining. Need to think more on how to do breadth first optimization passes
2024-05-21 17:12:57 -04:00
rvcas
e28b0df840 fix: add v3 mapping for builtin semantics relates to #907 2024-05-21 17:06:18 -04:00
rvcas
050d003b27 feat: use plutus version in convert command
relates to #907
2024-05-21 17:05:02 -04:00
rvcas
f306f1715a feat: use plutus version in address command
relates to #907
2024-05-21 17:04:25 -04:00
rvcas
3bc3792aa3 feat: add plutus version to aiken.toml
relates to #907
2024-05-21 17:02:20 -04:00
rvcas
4ca73c4cdf fix: closes #898
This is the best we can do for this without
rearchitecting when we rewrite backpassing to
plain ol' assignments. In this case, if we see
a var and there is no annotation (thus probably not a cast),
then it's safe to rewrite to a `let` instead of an `expect`.
This way, we don't get a warning that is **unfixable**.
We are not trying to solve every little warning edge
case with this fix. We simply just can't allow there
to be a warning that the user can't make go away through
some means. All other edge cases like pattern matching on
a single contructor type with expect warnings can be fixed
via other means.
2024-05-21 15:21:24 -04:00
microproofs
c1c2cd97b7 New test 103 and clippy fixes 2024-05-21 11:56:12 -04:00
KtorZ
a3c14d881d Merge branch 'fix/scope-when-backtracking' 2024-05-16 23:43:00 +02:00
KtorZ
7ff6eba869 Prefer '.clone_from' over mutating a clone.
Clippy says it's more efficient. I trust clippy. Clippy good.
2024-05-16 23:42:53 +02:00
KtorZ
ea3e79c132 Renamed 'unseed' -> 'not_yet_inferred' 2024-05-16 23:33:23 +02:00
KtorZ
27b3536f09 Also preserve warnings when resetting scope for backtracking.
This is crucial as some checks regarding variable usages depends on
  warnings; so we may accidentally remove variables from the AST as a
  consequence of backtracking for deep inferrence.
2024-05-16 23:20:52 +02:00