Home / Input Output / plutus
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)
Jun 12, 3-4 AM (0)
Jun 12, 4-5 AM (0)
Jun 12, 5-6 AM (1)
Jun 12, 6-7 AM (1)
Jun 12, 7-8 AM (2)
Jun 12, 8-9 AM (0)
Jun 12, 9-10 AM (0)
Jun 12, 10-11 AM (2)
Jun 12, 11-12 PM (3)
Jun 12, 12-1 PM (3)
Jun 12, 1-2 PM (2)
Jun 12, 2-3 PM (1)
Jun 12, 3-4 PM (0)
Jun 12, 4-5 PM (0)
Jun 12, 5-6 PM (0)
Jun 12, 6-7 PM (0)
Jun 12, 7-8 PM (0)
Jun 12, 8-9 PM (0)
Jun 12, 9-10 PM (0)
Jun 12, 10-11 PM (0)
Jun 12, 11-12 AM (0)
Jun 13, 12-1 AM (0)
Jun 13, 1-2 AM (0)
Jun 13, 2-3 AM (0)
Jun 13, 3-4 AM (0)
Jun 13, 4-5 AM (0)
Jun 13, 5-6 AM (0)
Jun 13, 6-7 AM (0)
Jun 13, 7-8 AM (0)
Jun 13, 8-9 AM (0)
Jun 13, 9-10 AM (0)
Jun 13, 10-11 AM (0)
Jun 13, 11-12 PM (0)
Jun 13, 12-1 PM (0)
Jun 13, 1-2 PM (0)
Jun 13, 2-3 PM (0)
Jun 13, 3-4 PM (0)
Jun 13, 4-5 PM (0)
Jun 13, 5-6 PM (0)
Jun 13, 6-7 PM (0)
Jun 13, 7-8 PM (0)
Jun 13, 8-9 PM (0)
Jun 13, 9-10 PM (0)
Jun 13, 10-11 PM (0)
Jun 13, 11-12 AM (0)
Jun 14, 12-1 AM (0)
Jun 14, 1-2 AM (0)
Jun 14, 2-3 AM (0)
Jun 14, 3-4 AM (0)
Jun 14, 4-5 AM (0)
Jun 14, 5-6 AM (0)
Jun 14, 6-7 AM (0)
Jun 14, 7-8 AM (0)
Jun 14, 8-9 AM (0)
Jun 14, 9-10 AM (0)
Jun 14, 10-11 AM (0)
Jun 14, 11-12 PM (0)
Jun 14, 12-1 PM (0)
Jun 14, 1-2 PM (0)
Jun 14, 2-3 PM (0)
Jun 14, 3-4 PM (0)
Jun 14, 4-5 PM (0)
Jun 14, 5-6 PM (0)
Jun 14, 6-7 PM (0)
Jun 14, 7-8 PM (0)
Jun 14, 8-9 PM (0)
Jun 14, 9-10 PM (0)
Jun 14, 10-11 PM (0)
Jun 14, 11-12 AM (0)
Jun 15, 12-1 AM (0)
Jun 15, 1-2 AM (0)
Jun 15, 2-3 AM (0)
Jun 15, 3-4 AM (0)
Jun 15, 4-5 AM (0)
Jun 15, 5-6 AM (0)
Jun 15, 6-7 AM (0)
Jun 15, 7-8 AM (0)
Jun 15, 8-9 AM (0)
Jun 15, 9-10 AM (1)
Jun 15, 10-11 AM (0)
Jun 15, 11-12 PM (1)
Jun 15, 12-1 PM (0)
Jun 15, 1-2 PM (5)
Jun 15, 2-3 PM (0)
Jun 15, 3-4 PM (0)
Jun 15, 4-5 PM (0)
Jun 15, 5-6 PM (0)
Jun 15, 6-7 PM (0)
Jun 15, 7-8 PM (0)
Jun 15, 8-9 PM (0)
Jun 15, 9-10 PM (0)
Jun 15, 10-11 PM (0)
Jun 15, 11-12 AM (0)
Jun 16, 12-1 AM (0)
Jun 16, 1-2 AM (0)
Jun 16, 2-3 AM (0)
Jun 16, 3-4 AM (0)
Jun 16, 4-5 AM (0)
Jun 16, 5-6 AM (0)
Jun 16, 6-7 AM (0)
Jun 16, 7-8 AM (0)
Jun 16, 8-9 AM (0)
Jun 16, 9-10 AM (1)
Jun 16, 10-11 AM (0)
Jun 16, 11-12 PM (1)
Jun 16, 12-1 PM (1)
Jun 16, 1-2 PM (2)
Jun 16, 2-3 PM (1)
Jun 16, 3-4 PM (1)
Jun 16, 4-5 PM (2)
Jun 16, 5-6 PM (0)
Jun 16, 6-7 PM (0)
Jun 16, 7-8 PM (0)
Jun 16, 8-9 PM (0)
Jun 16, 9-10 PM (0)
Jun 16, 10-11 PM (0)
Jun 16, 11-12 AM (0)
Jun 17, 12-1 AM (0)
Jun 17, 1-2 AM (0)
Jun 17, 2-3 AM (0)
Jun 17, 3-4 AM (0)
Jun 17, 4-5 AM (0)
Jun 17, 5-6 AM (0)
Jun 17, 6-7 AM (0)
Jun 17, 7-8 AM (0)
Jun 17, 8-9 AM (1)
Jun 17, 9-10 AM (0)
49 commits this week Jun 10, 2026 - Jun 17, 2026
Suppress generated-code warnings in the PlinthPlugin test
The AsData-generated code uses head/tail and emits pattern synonyms
without signatures, tripping -Werror=x-partial and
-Werror=missing-pattern-synonym-signatures. These are inherent to the plugin
output, so suppress them on the test module (the plugin firing is confirmed by
the generated code compiling at all).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Add activation test for the PlinthPlugin deriving plugin
Adds AsData.Spec to frontend-plugin-tests: a module compiled with
-fplugin PlinthPlugin that derives 'AsData via PlinthPlugin' and uses the
generated Circle/Rectangle pattern synonyms. If the plugin does not fire, the
deriving clause survives to the renamer and the module fails to compile, so
compilation itself proves the plugin works; the HUnit case additionally
exercises the generated synonyms at runtime.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Fix 9.6 overlapping-patterns + unused Hsc import in Type.Type
On GHC 9.6, UserTyVar/KindedTyVar already exhaust HsTyVarBndr, so the
catch-all tripped -Werror=overlapping-patterns; move it into the >=9.10
branch (where it covers HsBndrWildCard). That leaves PlinthPlugin.Hsc unused
on 9.6, so CPP-guard its import too.

Verified locally with plutus's -Wall -Werror set on both GHC 9.6.7 and 9.12.2.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Conform PlinthPlugin modules to plutus -Wall -Werror
The vendored plinth-plugin suppressed these warnings in its own cabal;
plutus-tx-plugin builds with -Wall -Werror, so: remove unused imports
(CPP-guarding Bag, still needed by the 9.6 makeLHsDecl branch), give the
Config/Flag derivings explicit 'stock' strategies, suppress -Wx-partial on
the three generators (the head calls are non-empty by construction), and
drop the unwired FromData stub.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Add Plinth parsed-AST deriving plugin to plutus-tx-plugin
Ports the PlinthPlugin parsed-result plugin (from the ghc-plinth standalone
effort) into plutus-tx-plugin. It expands data declarations written with
`deriving … via PlinthPlugin` into AsData pattern synonyms, Optics prisms,
and Match functions at parse time, alongside the existing core Plinth.Plugin.

The modules carry CPP shims so they build on both GHC 9.6 and 9.12 (the
versions plutus supports). PlinthPlugin and PlinthPlugin.Via (the
`data Via = PlinthPlugin` sentinel) are exposed; the rest are internal. The
version banner now reads Paths_plutus_tx_plugin.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
uplc-evaluator: bound service teardown, add timeout safety net
Test teardown ran terminateProcess followed by an unbounded
waitForProcess, so a spawned service that missed SIGTERM hung the run
until the 2h CI cap (plutus-private#2257). Bound the wait and escalate to
SIGKILL, add a per-test tasty timeout as a safety net, and a regression
test that drives a SIGTERM-ignoring process.
Certifier: Generate one Proof .agda file per certified pass (#7814)
In an Agda certificate, all work for type-checking the translation relation proofs is done in the top-level agda module. This PR instead constructs a module per pass which has the corresponding translation relation proof. This is useful for performance debugging when type-checking an agda certificate, as we can see a break-down of the decision procedure's performance.

So in addition to Pass_xyz/AST.agda, there is now also Passxyz/Proof.agda. The top-level module simply imports the proofs and constructs the certificate proof (a big tuple).