Home / aiken-lang / aiken
Mar 12, 1-2 PM (0)
Mar 12, 2-3 PM (1)
Mar 12, 3-4 PM (0)
Mar 12, 4-5 PM (0)
Mar 12, 5-6 PM (0)
Mar 12, 6-7 PM (0)
Mar 12, 7-8 PM (0)
Mar 12, 8-9 PM (0)
Mar 12, 9-10 PM (0)
Mar 12, 10-11 PM (0)
Mar 12, 11-12 AM (0)
Mar 13, 12-1 AM (0)
Mar 13, 1-2 AM (0)
Mar 13, 2-3 AM (0)
Mar 13, 3-4 AM (0)
Mar 13, 4-5 AM (0)
Mar 13, 5-6 AM (0)
Mar 13, 6-7 AM (0)
Mar 13, 7-8 AM (0)
Mar 13, 8-9 AM (0)
Mar 13, 9-10 AM (0)
Mar 13, 10-11 AM (0)
Mar 13, 11-12 PM (1)
Mar 13, 12-1 PM (0)
Mar 13, 1-2 PM (0)
Mar 13, 2-3 PM (0)
Mar 13, 3-4 PM (0)
Mar 13, 4-5 PM (0)
Mar 13, 5-6 PM (0)
Mar 13, 6-7 PM (0)
Mar 13, 7-8 PM (0)
Mar 13, 8-9 PM (0)
Mar 13, 9-10 PM (0)
Mar 13, 10-11 PM (0)
Mar 13, 11-12 AM (0)
Mar 14, 12-1 AM (0)
Mar 14, 1-2 AM (0)
Mar 14, 2-3 AM (0)
Mar 14, 3-4 AM (0)
Mar 14, 4-5 AM (0)
Mar 14, 5-6 AM (0)
Mar 14, 6-7 AM (0)
Mar 14, 7-8 AM (0)
Mar 14, 8-9 AM (0)
Mar 14, 9-10 AM (0)
Mar 14, 10-11 AM (0)
Mar 14, 11-12 PM (0)
Mar 14, 12-1 PM (0)
Mar 14, 1-2 PM (0)
Mar 14, 2-3 PM (0)
Mar 14, 3-4 PM (0)
Mar 14, 4-5 PM (0)
Mar 14, 5-6 PM (0)
Mar 14, 6-7 PM (0)
Mar 14, 7-8 PM (0)
Mar 14, 8-9 PM (0)
Mar 14, 9-10 PM (0)
Mar 14, 10-11 PM (1)
Mar 14, 11-12 AM (0)
Mar 15, 12-1 AM (0)
Mar 15, 1-2 AM (0)
Mar 15, 2-3 AM (0)
Mar 15, 3-4 AM (0)
Mar 15, 4-5 AM (0)
Mar 15, 5-6 AM (0)
Mar 15, 6-7 AM (0)
Mar 15, 7-8 AM (0)
Mar 15, 8-9 AM (0)
Mar 15, 9-10 AM (13)
Mar 15, 10-11 AM (0)
Mar 15, 11-12 PM (0)
Mar 15, 12-1 PM (0)
Mar 15, 1-2 PM (3)
Mar 15, 2-3 PM (23)
Mar 15, 3-4 PM (0)
Mar 15, 4-5 PM (1)
Mar 15, 5-6 PM (0)
Mar 15, 6-7 PM (0)
Mar 15, 7-8 PM (0)
Mar 15, 8-9 PM (0)
Mar 15, 9-10 PM (0)
Mar 15, 10-11 PM (0)
Mar 15, 11-12 AM (0)
Mar 16, 12-1 AM (0)
Mar 16, 1-2 AM (0)
Mar 16, 2-3 AM (1)
Mar 16, 3-4 AM (0)
Mar 16, 4-5 AM (0)
Mar 16, 5-6 AM (0)
Mar 16, 6-7 AM (0)
Mar 16, 7-8 AM (0)
Mar 16, 8-9 AM (0)
Mar 16, 9-10 AM (0)
Mar 16, 10-11 AM (0)
Mar 16, 11-12 PM (0)
Mar 16, 12-1 PM (0)
Mar 16, 1-2 PM (0)
Mar 16, 2-3 PM (0)
Mar 16, 3-4 PM (0)
Mar 16, 4-5 PM (0)
Mar 16, 5-6 PM (0)
Mar 16, 6-7 PM (0)
Mar 16, 7-8 PM (0)
Mar 16, 8-9 PM (2)
Mar 16, 9-10 PM (2)
Mar 16, 10-11 PM (4)
Mar 16, 11-12 AM (4)
Mar 17, 12-1 AM (2)
Mar 17, 1-2 AM (3)
Mar 17, 2-3 AM (0)
Mar 17, 3-4 AM (0)
Mar 17, 4-5 AM (0)
Mar 17, 5-6 AM (0)
Mar 17, 6-7 AM (0)
Mar 17, 7-8 AM (1)
Mar 17, 8-9 AM (0)
Mar 17, 9-10 AM (0)
Mar 17, 10-11 AM (0)
Mar 17, 11-12 PM (0)
Mar 17, 12-1 PM (0)
Mar 17, 1-2 PM (0)
Mar 17, 2-3 PM (0)
Mar 17, 3-4 PM (0)
Mar 17, 4-5 PM (0)
Mar 17, 5-6 PM (0)
Mar 17, 6-7 PM (0)
Mar 17, 7-8 PM (0)
Mar 17, 8-9 PM (0)
Mar 17, 9-10 PM (0)
Mar 17, 10-11 PM (0)
Mar 17, 11-12 AM (0)
Mar 18, 12-1 AM (0)
Mar 18, 1-2 AM (0)
Mar 18, 2-3 AM (0)
Mar 18, 3-4 AM (0)
Mar 18, 4-5 AM (0)
Mar 18, 5-6 AM (0)
Mar 18, 6-7 AM (0)
Mar 18, 7-8 AM (0)
Mar 18, 8-9 AM (0)
Mar 18, 9-10 AM (0)
Mar 18, 10-11 AM (0)
Mar 18, 11-12 PM (0)
Mar 18, 12-1 PM (0)
Mar 18, 1-2 PM (0)
Mar 18, 2-3 PM (0)
Mar 18, 3-4 PM (0)
Mar 18, 4-5 PM (0)
Mar 18, 5-6 PM (0)
Mar 18, 6-7 PM (0)
Mar 18, 7-8 PM (0)
Mar 18, 8-9 PM (0)
Mar 18, 9-10 PM (0)
Mar 18, 10-11 PM (0)
Mar 18, 11-12 AM (0)
Mar 19, 12-1 AM (0)
Mar 19, 1-2 AM (0)
Mar 19, 2-3 AM (0)
Mar 19, 3-4 AM (0)
Mar 19, 4-5 AM (0)
Mar 19, 5-6 AM (0)
Mar 19, 6-7 AM (0)
Mar 19, 7-8 AM (0)
Mar 19, 8-9 AM (0)
Mar 19, 9-10 AM (0)
Mar 19, 10-11 AM (0)
Mar 19, 11-12 PM (0)
Mar 19, 12-1 PM (0)
Mar 19, 1-2 PM (0)
62 commits this week Mar 12, 2026 - Mar 19, 2026
tidy evaluation results tests and unify .failed and .failed_with_lang
  There's no point keeping two functions here; it should really just always require the language / plutus version. Also, the 'can_error' boolean is just confusing and as it just reverse the result; which we can simply get by negating it.

  Technically, booleans aren't allowed for Plutus V3, but we use them for tests. So that's now a 'flag' on the function.

Signed-off-by: KtorZ <[email protected]>
Add language-aware script success criteria (PlutusV1/V2 vs V3)
The existing `failed()` method applies the same strict success check
(must return Bool(true) or Unit) to all Plutus language versions. This
diverges from the Haskell reference implementation.

Haskell's `processLogsAndErrors` in `PlutusLedgerApi.Common.Eval` only
checks for `EvaluationFailure` for PlutusV1/V2 — any non-error return
value is considered success. The strict Bool(true)/Unit requirement only
applies to PlutusV3.

This adds `failed_with_lang()` which takes a `Language` parameter and
applies version-appropriate success criteria:

- PlutusV1/V2: success = execution completed without error (any return
  value accepted)
- PlutusV3: success = must return Bool(true) or Unit (strict, same as
  existing `failed(false)`)

Real-world impact: PlutusV2 oracle scripts (e.g., Liqwid Finance oracle
on preview testnet) return Data values rather than Bool(true)/Unit, and
are incorrectly rejected by the current implementation.
cleanup redundancy and duplication around UPLC/program generation
  The code is sufficiently complexe already, and the addition of the
  source map context makes it a bit more. That's okay. But duplicating
  entire chunks of logic with no changes when we have generics, is not!

  There's a similar cleanup to be done around the 'coverage' command,
  which is, in most part, a duplicate of the `check` command.

  Note that this changes also drop the 'finalize_minimal' and make the
  `no_optimize` flag now unused. It is not a mistake. That flag should
  not exist and shall be removed in upcoming commits.

Signed-off-by: KtorZ <[email protected]>
Address PR review: fix 5 source-map and coverage issues
1. Preserve term context through DeBruijn round-trip in optimizer
   (afterwards, run_once_pass) by collecting and restoring contexts
   instead of replacing with C::default().

2. Fix source-map index stability by visiting function before argument
   in Apply traversal, so wrapping a term doesn't shift existing indices.

3. Propagate fuzzer sampling errors in coverage instead of silently
   breaking, which could produce false success with empty reports.

4. Aggregate property test iterations by base name for fail-once
   semantics — the property passes if ANY iteration fails, not each
   independently.

5. Include configured directory prefix in sourceMapFile references so
   they resolve relative to the blueprint location.