Home /
Input Output /
plutus
Feb 16, 9-10 PM (0)
Feb 16, 10-11 PM (0)
Feb 16, 11-12 AM (0)
Feb 17, 12-1 AM (4)
Feb 17, 1-2 AM (0)
Feb 17, 2-3 AM (2)
Feb 17, 3-4 AM (0)
Feb 17, 4-5 AM (0)
Feb 17, 5-6 AM (1)
Feb 17, 6-7 AM (1)
Feb 17, 7-8 AM (0)
Feb 17, 8-9 AM (8)
Feb 17, 9-10 AM (1)
Feb 17, 10-11 AM (1)
Feb 17, 11-12 PM (1)
Feb 17, 12-1 PM (7)
Feb 17, 1-2 PM (2)
Feb 17, 2-3 PM (0)
Feb 17, 3-4 PM (1)
Feb 17, 4-5 PM (1)
Feb 17, 5-6 PM (8)
Feb 17, 6-7 PM (1)
Feb 17, 7-8 PM (0)
Feb 17, 8-9 PM (1)
Feb 17, 9-10 PM (2)
Feb 17, 10-11 PM (4)
Feb 17, 11-12 AM (0)
Feb 18, 12-1 AM (2)
Feb 18, 1-2 AM (1)
Feb 18, 2-3 AM (0)
Feb 18, 3-4 AM (2)
Feb 18, 4-5 AM (0)
Feb 18, 5-6 AM (0)
Feb 18, 6-7 AM (0)
Feb 18, 7-8 AM (0)
Feb 18, 8-9 AM (4)
Feb 18, 9-10 AM (0)
Feb 18, 10-11 AM (0)
Feb 18, 11-12 PM (0)
Feb 18, 12-1 PM (0)
Feb 18, 1-2 PM (10)
Feb 18, 2-3 PM (1)
Feb 18, 3-4 PM (0)
Feb 18, 4-5 PM (1)
Feb 18, 5-6 PM (7)
Feb 18, 6-7 PM (3)
Feb 18, 7-8 PM (0)
Feb 18, 8-9 PM (1)
Feb 18, 9-10 PM (0)
Feb 18, 10-11 PM (3)
Feb 18, 11-12 AM (2)
Feb 19, 12-1 AM (1)
Feb 19, 1-2 AM (0)
Feb 19, 2-3 AM (0)
Feb 19, 3-4 AM (0)
Feb 19, 4-5 AM (0)
Feb 19, 5-6 AM (0)
Feb 19, 6-7 AM (0)
Feb 19, 7-8 AM (0)
Feb 19, 8-9 AM (2)
Feb 19, 9-10 AM (1)
Feb 19, 10-11 AM (1)
Feb 19, 11-12 PM (0)
Feb 19, 12-1 PM (2)
Feb 19, 1-2 PM (3)
Feb 19, 2-3 PM (3)
Feb 19, 3-4 PM (0)
Feb 19, 4-5 PM (2)
Feb 19, 5-6 PM (1)
Feb 19, 6-7 PM (1)
Feb 19, 7-8 PM (0)
Feb 19, 8-9 PM (0)
Feb 19, 9-10 PM (2)
Feb 19, 10-11 PM (0)
Feb 19, 11-12 AM (1)
Feb 20, 12-1 AM (0)
Feb 20, 1-2 AM (1)
Feb 20, 2-3 AM (0)
Feb 20, 3-4 AM (0)
Feb 20, 4-5 AM (2)
Feb 20, 5-6 AM (0)
Feb 20, 6-7 AM (0)
Feb 20, 7-8 AM (0)
Feb 20, 8-9 AM (18)
Feb 20, 9-10 AM (3)
Feb 20, 10-11 AM (0)
Feb 20, 11-12 PM (9)
Feb 20, 12-1 PM (3)
Feb 20, 1-2 PM (1)
Feb 20, 2-3 PM (1)
Feb 20, 3-4 PM (0)
Feb 20, 4-5 PM (1)
Feb 20, 5-6 PM (1)
Feb 20, 6-7 PM (3)
Feb 20, 7-8 PM (0)
Feb 20, 8-9 PM (2)
Feb 20, 9-10 PM (0)
Feb 20, 10-11 PM (3)
Feb 20, 11-12 AM (0)
Feb 21, 12-1 AM (1)
Feb 21, 1-2 AM (0)
Feb 21, 2-3 AM (0)
Feb 21, 3-4 AM (0)
Feb 21, 4-5 AM (0)
Feb 21, 5-6 AM (0)
Feb 21, 6-7 AM (1)
Feb 21, 7-8 AM (0)
Feb 21, 8-9 AM (0)
Feb 21, 9-10 AM (0)
Feb 21, 10-11 AM (0)
Feb 21, 11-12 PM (0)
Feb 21, 12-1 PM (0)
Feb 21, 1-2 PM (0)
Feb 21, 2-3 PM (0)
Feb 21, 3-4 PM (0)
Feb 21, 4-5 PM (1)
Feb 21, 5-6 PM (0)
Feb 21, 6-7 PM (0)
Feb 21, 7-8 PM (0)
Feb 21, 8-9 PM (0)
Feb 21, 9-10 PM (0)
Feb 21, 10-11 PM (0)
Feb 21, 11-12 AM (0)
Feb 22, 12-1 AM (0)
Feb 22, 1-2 AM (2)
Feb 22, 2-3 AM (0)
Feb 22, 3-4 AM (0)
Feb 22, 4-5 AM (0)
Feb 22, 5-6 AM (0)
Feb 22, 6-7 AM (0)
Feb 22, 7-8 AM (0)
Feb 22, 8-9 AM (0)
Feb 22, 9-10 AM (0)
Feb 22, 10-11 AM (0)
Feb 22, 11-12 PM (0)
Feb 22, 12-1 PM (0)
Feb 22, 1-2 PM (0)
Feb 22, 2-3 PM (1)
Feb 22, 3-4 PM (0)
Feb 22, 4-5 PM (1)
Feb 22, 5-6 PM (1)
Feb 22, 6-7 PM (3)
Feb 22, 7-8 PM (1)
Feb 22, 8-9 PM (0)
Feb 22, 9-10 PM (2)
Feb 22, 10-11 PM (1)
Feb 22, 11-12 AM (0)
Feb 23, 12-1 AM (0)
Feb 23, 1-2 AM (0)
Feb 23, 2-3 AM (0)
Feb 23, 3-4 AM (1)
Feb 23, 4-5 AM (0)
Feb 23, 5-6 AM (0)
Feb 23, 6-7 AM (0)
Feb 23, 7-8 AM (0)
Feb 23, 8-9 AM (0)
Feb 23, 9-10 AM (12)
Feb 23, 10-11 AM (0)
Feb 23, 11-12 PM (0)
Feb 23, 12-1 PM (0)
Feb 23, 1-2 PM (0)
Feb 23, 2-3 PM (1)
Feb 23, 3-4 PM (1)
Feb 23, 4-5 PM (1)
Feb 23, 5-6 PM (0)
Feb 23, 6-7 PM (0)
Feb 23, 7-8 PM (0)
Feb 23, 8-9 PM (0)
Feb 23, 9-10 PM (0)
182 commits this week
Feb 16, 2026
-
Feb 23, 2026
completeness for inline checker
completeness for inline checker
feat(cost-model): update benchmark data and cost models for string builtins
Re-run string builtin benchmarks with the unified 4-byte worst-case generator and fit new cost model parameters. Add cost model variants D and E that use byte-based costing via TextCostingByteLength. Update conformance test budgets to reflect the new model parameters.
refactor(benchmarks): unify Text benchmarks on 4-byte worst-case generator
Replace per-function text generators with a unified 4-byte character generator that produces worst-case inputs for all string builtins. This ensures benchmark measurements reflect the most expensive case (4-byte UTF-8 characters) rather than an ASCII-biased average. Extract shared Nop overhead subtraction into Common module to reduce duplication across benchmark suites.
feat(benchmarks): add 1-byte ASCII benchmark variants for string builtins
Add EncodeUtf81Byte, AppendString1Byte, and EqualsString1Byte benchmarks using ASCII text generators. These produce a second data series for costing analysis, confirming that byte-based sizing gives consistent costs regardless of character width.
docs(cost-model): add string builtin visualization pages to portal
Add interactive cost model visualization pages for AppendString, EqualsString, EncodeUtf8, and DecodeUtf8 with configurable data sources (branch selector, custom CSV/JSON URLs). Includes a local dev server (serve.sh) that serves docs with /data/ mapped to the local cost-model data directory. Fix axis labels from "byte-words" to "characters" for string builtins that take Text inputs (AppendString, EqualsString, EncodeUtf8).
feat(builtins): add byte-based costing for string builtins
Introduce TextCostingByteLength newtype that measures Text memory by UTF-8 byte length (in 4-byte half-words) instead of character count. This correctly reflects that ASCII text is 4x cheaper to process than worst-case 4-byte characters. String builtins (AppendString, EqualsString, EncodeUtf8, DecodeUtf8) now use variant-aware denotations: semvar A/B/C retains the original character-count costing, while semvar D/E uses byte-based costing. Golden signature tests are split per-variant accordingly.
test: regenerate benchmark goldens after deriveOrd changes
Updated sizes reflect smaller generated code from using (<>) directly for lexicographic ordering in TH-derived compare implementations.
refactor(test): organize deriveEq golden files by GHC version
Move existing deriveEq golden files into 9.6/ subdirectories and wrap tests with testNestedGhc for GHC-version-specific output.
test(plutus-ledger-api): add golden tests for deriveOrd
Add Spec.Ord.Golden with golden tests for deriveOrd on Extended and ProtocolVersion. Wire into the test suite.
test(plutus-tx): add golden and property tests for deriveOrd
Add Ord.Spec with golden tests for TH-generated code and property tests verifying Ord laws. Wire into the test suite. Use testNestedGhc for GHC-version-specific golden file organization.
feat(plutus-ledger-api): use deriveOrd for Extended and ProtocolVersion
Replace the hand-written Ord instance for Extended in V1.Interval with a TH-derived one. Add deriveOrd for ProtocolVersion in V3.Contexts.
feat(plutus-tx): use deriveOrd for These
Replace the hand-written Ord instance for These with a TH-derived one, matching the existing deriveEq pattern.
feat(plutus-tx): implement deriveOrd Template Haskell
Add Ord.Class and Ord.TH modules that provide a TH-based deriveOrd analogous to deriveEq. Refactor PlutusTx.Ord to use deriveOrd for all standard type instances (tuples, Bool, Maybe, Either, etc.) instead of hand-written implementations. Add Monoid instance for Ordering (needed by (<>) in generated compare code). Add HLint suppressions for Ord.Class.
add Plutus Benchmarks (customSmallerIsBetter) benchmark result for 704c30de8eadd9d4eb4497fe379fcd6ffae9c1da
Deploying to gh-pages from @ IntersectMBO/plutus@704c30de8eadd9d4eb4497fe379fcd6ffae9c1da 🚀