Home / Input Output / plutus
Jun 05, 2-3 AM (0)
Jun 05, 3-4 AM (0)
Jun 05, 4-5 AM (0)
Jun 05, 5-6 AM (0)
Jun 05, 6-7 AM (0)
Jun 05, 7-8 AM (0)
Jun 05, 8-9 AM (0)
Jun 05, 9-10 AM (0)
Jun 05, 10-11 AM (0)
Jun 05, 11-12 PM (0)
Jun 05, 12-1 PM (0)
Jun 05, 1-2 PM (0)
Jun 05, 2-3 PM (0)
Jun 05, 3-4 PM (0)
Jun 05, 4-5 PM (0)
Jun 05, 5-6 PM (0)
Jun 05, 6-7 PM (0)
Jun 05, 7-8 PM (0)
Jun 05, 8-9 PM (0)
Jun 05, 9-10 PM (0)
Jun 05, 10-11 PM (0)
Jun 05, 11-12 AM (0)
Jun 06, 12-1 AM (0)
Jun 06, 1-2 AM (0)
Jun 06, 2-3 AM (0)
Jun 06, 3-4 AM (0)
Jun 06, 4-5 AM (0)
Jun 06, 5-6 AM (0)
Jun 06, 6-7 AM (0)
Jun 06, 7-8 AM (0)
Jun 06, 8-9 AM (0)
Jun 06, 9-10 AM (0)
Jun 06, 10-11 AM (0)
Jun 06, 11-12 PM (0)
Jun 06, 12-1 PM (0)
Jun 06, 1-2 PM (0)
Jun 06, 2-3 PM (0)
Jun 06, 3-4 PM (0)
Jun 06, 4-5 PM (0)
Jun 06, 5-6 PM (0)
Jun 06, 6-7 PM (0)
Jun 06, 7-8 PM (0)
Jun 06, 8-9 PM (0)
Jun 06, 9-10 PM (0)
Jun 06, 10-11 PM (0)
Jun 06, 11-12 AM (0)
Jun 07, 12-1 AM (0)
Jun 07, 1-2 AM (0)
Jun 07, 2-3 AM (0)
Jun 07, 3-4 AM (0)
Jun 07, 4-5 AM (0)
Jun 07, 5-6 AM (0)
Jun 07, 6-7 AM (0)
Jun 07, 7-8 AM (0)
Jun 07, 8-9 AM (0)
Jun 07, 9-10 AM (0)
Jun 07, 10-11 AM (0)
Jun 07, 11-12 PM (0)
Jun 07, 12-1 PM (0)
Jun 07, 1-2 PM (0)
Jun 07, 2-3 PM (0)
Jun 07, 3-4 PM (0)
Jun 07, 4-5 PM (0)
Jun 07, 5-6 PM (0)
Jun 07, 6-7 PM (0)
Jun 07, 7-8 PM (0)
Jun 07, 8-9 PM (0)
Jun 07, 9-10 PM (0)
Jun 07, 10-11 PM (0)
Jun 07, 11-12 AM (0)
Jun 08, 12-1 AM (0)
Jun 08, 1-2 AM (0)
Jun 08, 2-3 AM (0)
Jun 08, 3-4 AM (0)
Jun 08, 4-5 AM (1)
Jun 08, 5-6 AM (0)
Jun 08, 6-7 AM (0)
Jun 08, 7-8 AM (1)
Jun 08, 8-9 AM (1)
Jun 08, 9-10 AM (0)
Jun 08, 10-11 AM (2)
Jun 08, 11-12 PM (0)
Jun 08, 12-1 PM (0)
Jun 08, 1-2 PM (0)
Jun 08, 2-3 PM (0)
Jun 08, 3-4 PM (0)
Jun 08, 4-5 PM (0)
Jun 08, 5-6 PM (0)
Jun 08, 6-7 PM (0)
Jun 08, 7-8 PM (0)
Jun 08, 8-9 PM (0)
Jun 08, 9-10 PM (0)
Jun 08, 10-11 PM (0)
Jun 08, 11-12 AM (0)
Jun 09, 12-1 AM (0)
Jun 09, 1-2 AM (0)
Jun 09, 2-3 AM (0)
Jun 09, 3-4 AM (0)
Jun 09, 4-5 AM (0)
Jun 09, 5-6 AM (2)
Jun 09, 6-7 AM (0)
Jun 09, 7-8 AM (2)
Jun 09, 8-9 AM (0)
Jun 09, 9-10 AM (2)
Jun 09, 10-11 AM (0)
Jun 09, 11-12 PM (0)
Jun 09, 12-1 PM (0)
Jun 09, 1-2 PM (0)
Jun 09, 2-3 PM (0)
Jun 09, 3-4 PM (0)
Jun 09, 4-5 PM (3)
Jun 09, 5-6 PM (0)
Jun 09, 6-7 PM (0)
Jun 09, 7-8 PM (0)
Jun 09, 8-9 PM (0)
Jun 09, 9-10 PM (0)
Jun 09, 10-11 PM (0)
Jun 09, 11-12 AM (0)
Jun 10, 12-1 AM (0)
Jun 10, 1-2 AM (0)
Jun 10, 2-3 AM (0)
Jun 10, 3-4 AM (0)
Jun 10, 4-5 AM (0)
Jun 10, 5-6 AM (0)
Jun 10, 6-7 AM (1)
Jun 10, 7-8 AM (0)
Jun 10, 8-9 AM (1)
Jun 10, 9-10 AM (0)
Jun 10, 10-11 AM (1)
Jun 10, 11-12 PM (0)
Jun 10, 12-1 PM (0)
Jun 10, 1-2 PM (0)
Jun 10, 2-3 PM (1)
Jun 10, 3-4 PM (1)
Jun 10, 4-5 PM (0)
Jun 10, 5-6 PM (0)
Jun 10, 6-7 PM (1)
Jun 10, 7-8 PM (1)
Jun 10, 8-9 PM (1)
Jun 10, 9-10 PM (1)
Jun 10, 10-11 PM (0)
Jun 10, 11-12 AM (0)
Jun 11, 12-1 AM (0)
Jun 11, 1-2 AM (0)
Jun 11, 2-3 AM (0)
Jun 11, 3-4 AM (0)
Jun 11, 4-5 AM (1)
Jun 11, 5-6 AM (0)
Jun 11, 6-7 AM (0)
Jun 11, 7-8 AM (1)
Jun 11, 8-9 AM (5)
Jun 11, 9-10 AM (0)
Jun 11, 10-11 AM (0)
Jun 11, 11-12 PM (0)
Jun 11, 12-1 PM (0)
Jun 11, 1-2 PM (3)
Jun 11, 2-3 PM (0)
Jun 11, 3-4 PM (0)
Jun 11, 4-5 PM (0)
Jun 11, 5-6 PM (0)
Jun 11, 6-7 PM (0)
Jun 11, 7-8 PM (0)
Jun 11, 8-9 PM (0)
Jun 11, 9-10 PM (0)
Jun 11, 10-11 PM (0)
Jun 11, 11-12 AM (0)
Jun 12, 12-1 AM (0)
Jun 12, 1-2 AM (0)
Jun 12, 2-3 AM (0)
33 commits this week Jun 05, 2026 - Jun 12, 2026
refactor(testlib): add ite helper, split sop/builtin boolean constants
Rename true/false to sopTrue/sopFalse (the sum-of-products Bool encoding) and add
builtinTrue/builtinFalse (the builtin bool constant), so the two encodings are
named explicitly. Add an `ite` helper for the forced ifThenElse application and
use it across the CaseOfCase, EvaluateBuiltins and Simplify specs, dropping the
local `ite` in Simplify.
refactor(testlib): use Transform.Lib helpers in CaseOfCase/EvaluateBuiltins
Replace raw constructors with the shared helpers (app, builtin, force, case_,
con, text, constr, true, false, err) and chained `app` for mkIterApp, in the two
modules that already import Transform.Lib. Only mkConstant @Bool / @() /
@BS.ByteString stay raw, as Lib has no equivalent (con/text cover Integer/Text).
Make default builtins 32-bit-correct (wasm32): bounds-check index/length narrowing
On 32-bit targets (notably wasm32) several builtin denotations narrow an
Integer index/length to the platform Int before bounds-checking, which
wraps and silently diverges from 64-bit evaluation. Gate the fixes behind
WORD_SIZE_IN_BITS so 64-bit platforms compile the original code unchanged:
no semantics, cost, or golden change on any platform the node runs on.

Affected: sliceByteString, indexByteString, readBit, indexArray,
integerToByteString (hardcoded 8-byte word), and the PlutusTx wrappers.

Fixes #7808.
refactor(testlib): replace freshNames helpers with fresh.<hint> dot-syntax
Use OverloadedRecordDot for fresh-name generation in the Transform.* specs:
fresh.a in place of the freshNames2..8 ladder and name. The Unique is derived
from the hint text, so one hint denotes one variable.

Complete the Transform.Lib migration for floatDelay4, and reword the true/false
and fresh-name docs per review.
chore: extract UPLC term constructors into Transform.Lib
Move helpers (`var`, `lam`, `app`, `delay`, `case_`, `builtin`,
`addInteger`) from `Transform.Inline.Spec` into a new shared
`Transform.Lib` module, extend with `force`, `con`, `err`, `headList`,
`ite`, `true`, `false`, `constr`, and a `T` alias for
`Term Name DefaultUni DefaultFun ()`.

Migrate `Transform.Simplify.Spec` to use these helpers throughout,
replacing inline `LamAbs ()` / `Apply ()` / `Force ()` / `Delay ()` /
`Var ()` / `Builtin ()` / `Error ()` / `mkConstant @Integer ()` /
`Constr ()` / `Case () _ (V.fromList _)` constructors and per-test
`plus`/`con` duplicates. Inline trivial `let one = con 1` /
`two = con 2` / `three = con 3` bindings.

Local bindings that shadowed top-level helpers are renamed to
semantic identifiers describing their role (`dupLam`, `forceAddLam`,
`applyLam`, `delayLam`, `trueBranch`, `falseBranch`).

No behaviour change; all goldens unchanged.