Commit Graph

3319 Commits

Author SHA1 Message Date
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
KtorZ 7c3c5a500f
pin textplots-rs fork to a specific revision & version.
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-11 14:32:21 +01:00
KtorZ 3bce2e2d78
chore: Release
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-11 14:26:12 +01:00
KtorZ b26b599a97
Update blueprint test vectors following 58d782fa
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-11 14:21:52 +01:00
KtorZ 172f7e1e01
Fill-in CHANGELOG for #1074.
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-11 14:20:02 +01:00
KtorZ 3c2b631813
Add 'Collecting' step to 'check' command output + warning for suspicious test filter
Fixes #1092.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-11 14:17:28 +01:00
KtorZ 58d782fa78
Scope type-aliases per module in blueprint.
Similarly to how we're already doing it for non-alias types.

  Fix #1074.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-11 12:55:45 +01:00
Matthias Benkort 94246bdb2b
Merge pull request #1093 from aiken-lang/benchmarks-wrapup
Wrapping-up benchmarks
2025-02-09 17:04:39 +01:00
KtorZ a6cdb5583d
Make nix build optional.
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:57:43 +01:00
KtorZ d53f770d90
minor tweaks and proof-reading.
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:53:58 +01:00
KtorZ 451179fd49
Update CHANGELOG w.r.t benchmarks
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:28:42 +01:00
KtorZ 8edd8d37db
fix benchmark output when either the sampler or bench fails
This is likely even better than what was done for property testing. We
  shall revise that one perhaps one day.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:23:01 +01:00
KtorZ b4aa877d6a
rework benchmarks output
Going for a terminal plot, for now, as this was the original idea and it is immediately visual. All benchmark points can also be obtained as JSON when redirecting the output, like for tests. So all-in-all, we provide a flexible output which should be useful. Whether it is the best we can do, time (and people/users) will tell.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:22:58 +01:00
KtorZ 41440f131b
rework sizing of benchmarks, taking measures at different points
The idea is to get a good sample of measures from running benchmarks
  with various sizes, so one can get an idea of how well a function
  performs at various sizes.

  Given that size can be made arbitrarily large, and that we currently
  report all benchmarks, I installed a fibonacci heuristic to gather
  data points from 0 to the max size using an increasing stepping.

  Defined as a trait as I already anticipate we might need different
  sizing strategy, likely driven by the user via a command-line option;
  but for now, this will do.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:02 +01:00
KtorZ 2dbc33e91f
fuse together bench & test runners, and collect all bench measures.
This commit removes some duplication between bench and test runners,
  as well as fixing the results coming out of running benchmarks.

  Running benchmarks is expected to yield multiple measures, for each of
  the iteration. For now, it'll suffice to show results for each size;
  but eventually, we'll possibly try to interpolate results with
  different curves and pick the best candidate.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:02 +01:00
KtorZ a7f4ecef9d
more aesthetic changes.
In particular, using a concrete enum instead of a string to avoid an
  unnecessary incomplete pattern-match, and remove superfluous comments.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:02 +01:00
KtorZ 37f721ff06
fixup aesthetics
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:01 +01:00
KtorZ 2a1253cb52
Add additional test to check for Sampler alias formatting.
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:01 +01:00
KtorZ 428d30c3bb
refactor and fix benchmark type-checking
Fixes:

  - Do not allow bench with no arguments; this causes a compiler panic
    down the line otherwise.

  - Do not force the return value to be a boolean or void. We do not
    actually control what's returned by benchmark, so anything really
    works here.

  Refactor:

  - Re-use code between test and bench type-checking; especially the
    bits related to gathering information about the via arguments.
    There's quite a lot and simply copy-pasting everything will likely
    cause issues and discrepency at the first change.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:01 +01:00
KtorZ 0a4d60b821
minor aesthetic changes in test framework.
Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:01 +01:00
KtorZ 497f663513
actually fail if a (seeded) sampler return None
This is not supposed to happen, as only replayed sampler/fuzzer can
  stop.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:01 +01:00
KtorZ d87e7f808f
remove duplicate entry in CHANGELOG
likely due to an wrong merge conflict resolution.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:01 +01:00
KtorZ 782c3274f8
remove unnecessary intermediate variables
Introduced in some previous commits, so basically reverting that.

Signed-off-by: KtorZ <5680256+KtorZ@users.noreply.github.com>
2025-02-09 16:18:00 +01:00