Commit Graph

3341 Commits

Author SHA1 Message Date
KtorZ 983902fca8
add extra regression test from stdlib.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 23:02:13 +01:00
KtorZ 660ff7fa31
adjust spans & tweak errors for maximum UX
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 23:02:13 +01:00
KtorZ b9052949f7
hide internal functions from suggested hints on unknown modules/constructor/value.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 21:52:45 +01:00
KtorZ 3db9828fe8
allow use of types as namespaces for constructing values.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 21:52:45 +01:00
KtorZ c66bca5829
remove unused value constructors from modules type info
This is a mildly scaring change, as it may horribly break things down
  the line if we have ever relied on that information... However, the
  value constructors inside each module are meant to reflect the own
  module public API, and shouldn't be populated with Prelude stuff. Not
  only does that mean this information is duplicated for all modules
  (possibly significantly slowing things down), but it may also cause
  weird scoping issues (e.g. one accessing a Prelude's constructor
  through some random module).

  Hence why I am isolating this change in this single commit, so it's
  easier to troubleshoot if that ends up causing weird issues.

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 21:37:19 +01:00
KtorZ 79a7d80c7f
Fix dependency namespacing in 'checks' tests.
We were mixing module names and package names in a very weird way but it was somehow working. However, the generated ASTs would vastly differ from what we would typically get from running those tests on a standard project -- which defies a bit the purpose of those tests.

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 21:37:19 +01:00
KtorZ 81713d93a0
allow types to be used as namespace in patterns.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 21:37:19 +01:00
KtorZ c556ada7d5
introduce namespace enum to distinguish module select from type constructor select in patterns.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-15 15:49:22 +01:00
Matthias Benkort f786e80924
Merge pull request #1117 from aiken-lang/fix-10999
Fix #1099
2025-03-06 18:42:43 +01:00
KtorZ 56e2c195cf
Fix #1099.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-06 18:05:41 +01:00
KtorZ 4ee7a48aab refresh benchmarks.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-05 09:26:06 -05:00
rvcas 3055fc5be1 chore: update changelog 2025-03-02 22:20:18 -05:00
rvcas fc8c196e14 chore: fix issues for Pi 2025-03-02 22:20:18 -05:00
rvcas ee4655328d chore: update changelog 2025-03-02 22:20:18 -05:00
rvcas 0b1297f3b7 feat: add silent flag to all warning supression 2025-03-02 22:20:18 -05:00
Matthias Benkort 97c382715f
Merge pull request #1114 from aiken-lang/fixes
Fix #1111 & #1113
2025-03-02 13:51:28 +01:00
KtorZ 862fc490c1
Use error's description for snapshot assertions + sort reported expected tokens
Turns out the snapshot test would randomly fail because the expected
  tokens are a HashSet, which is unordered by construction. So, using
  the auto-derived `Debug` instance to compare it with snapshot would
  only succeed if the tokens happened to be in the same order in the
  HashSet, which only happens by accident.

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-02 13:45:05 +01:00
KtorZ eadbc60a72
Fill-in changelog.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-02 13:31:04 +01:00
KtorZ 9b8137c056
Better trace parsing + default behaviour.
Somehow, we allow traces with no continuation after and currently
  default to a Todo. That todo is completely invisible from a user
  standpoint and return a generic `a`.

  So it is pretty easy for someone to think their program is okay,
  compiles, and have no issues, while simply crashing at runtime because
  of an invisible todo.

  Hence, I've changed that to default to `Void` instead, which is more
  sensible as a default for an empty trace.

  Also, I've made the parser fail with one puts a colon for label, but
  doesn't add any value to display.

  Fixes #1113.

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-02 13:31:04 +01:00
KtorZ 222d244bcf
Do not allow empty continuation for backpassed assignments
Fixes #1111.

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-03-02 12:56:41 +01:00
Matthias Benkort b8bd91a589
Merge pull request #1112 from aiken-lang/fix_changelog
chore: changelog was messed up
2025-03-02 12:56:25 +01:00
rvcas b9ef61e8e1
chore: changelog was messed up 2025-02-26 10:16:00 -05:00
Pi Lanningham 900bf91216 Version 1.1.13 2025-02-26 10:07:00 -05:00
Matthias Benkort 586f848929
Merge pull request #1107 from aiken-lang/lsp-fixes 2025-02-23 01:14:16 +01:00
KtorZ 3c8bc7ebb6
Also suggest qualified imports as quickfix when relevant.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-02-22 19:14:37 +01:00
KtorZ c3f571334c
Add utility to print trace line in LSP server output.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-02-22 19:14:37 +01:00
KtorZ 1e64dc9aeb
Tweak progress line title in LSP
Has somewhat always been bothering me that it says 'compiling Aiken', which means kind of nothing in this context.

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-02-22 19:14:37 +01:00
KtorZ 9f24a5c577
Fix wrong use of 'UnknownVariable' instead of 'UnknownTypeConstructor'
While the feedback for human users is mostly the same, it does in fact
  matter for the LSP since the quickfix will be different depending on
  whether we look for a top-level identifier or if we look for a
  constructor.

  The typical case we see in the stdlib is the `VerificationKey` and
  `Script` constructors for `Credential`, often being mixed with
  their types counterparts in aiken/crypto!

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-02-22 19:14:37 +01:00
KtorZ a89694ed75
Use less vertical space for type-constructor hint;
Also, show it actually for UnknownTypeConstructor, and not
  UnknownVariable. There's currently an error that wrongly assign an
  'UnknownVariable' in place where it should be an
  'UnknownTypeConstructor'. Fix coming in the next commit.

Signed-off-by: KtorZ <matthias.benkort@gmail.com>
2025-02-22 17:52:21 +01:00
rvcas 62a4901252 chore: update changelog 2025-02-21 15:28:51 -05:00
rvcas e589c46905 chore: update changelog 2025-02-21 15:28:51 -05:00
rvcas 2fbbc56777 chore: reintroduce bench graph borders 2025-02-21 15:28:51 -05:00
Pi Lanningham 725c6a67aa Changelog entry 2025-02-21 14:53:41 -05:00
rvcas fb0e2b61ff fix: skip confirmation 2025-02-21 13:21:15 -05:00
Simon Gellis 216c5c31ec chore: bump pallas to 0.32.0 2025-02-19 19:45:02 -05:00
rvcas d9a32c72eb feat: new github action for tagging releases 2025-02-19 10:29:49 -05:00
Pi Lanningham 0da4f70c39 chore: Release 2025-02-18 15:24:16 -05:00
Pi Lanningham 2971d82ff3 Update the changelog 2025-02-18 15:22:19 -05:00
rvcas 7472428fed chore: don't use fork for now 2025-02-18 15:08:35 -05:00
Pi Lanningham cc729a70ca Add changelog entry 2025-02-17 19:58:26 -05:00
Pi Lanningham 3b21648cf9 make EvalResult fields public 2025-02-17 19:58:26 -05:00
Pi Lanningham 18f15d2ac5 fix: clippy 2025-02-17 19:58:26 -05:00
Pi Lanningham 4adf6f27ad Avoid wiping out traces when accessing logs
The clones are cheap enough here that we likely don't need to worry about the cost of cloning; and this removes a significant foot-gun where you can wipe out the logs/labels by accessing the other field.
2025-02-17 19:58:26 -05:00
Pi Lanningham 8115443990 fix: clippy 2025-02-17 19:58:26 -05:00
Pi Lanningham ec6f1f84e2 fix: formatting 2025-02-17 19:58:26 -05:00
Pi Lanningham 17a75d2481 Return an EvalResult alongside the redeemer
This refactors things so that eval_phase_two can expose logs even when the script succeeds.

It also enriches traces to be either Logs or Labels, so that we can tell the difference between the two when inspecting the traces.
2025-02-17 19:58:26 -05:00
waalge e9bacf8f41 fix: nix builds
Required pinning hash of git dependency textplots
2025-02-15 10:00:24 -05:00
Calvin Koepke 90867f240b fix: better error logging when decoding tx_bytes by era 2025-02-14 17:01:30 -05:00
rvcas 21c6a6a71d
chore: remove stats from readme, it's cute but wastes space 2025-02-12 11:55:18 -05:00
rvcas bf4fc5eb87
chore: fix badge styles 2025-02-12 11:54:15 -05:00