Deploying to gh-pages from @ IntersectMBO/plutus@de34c0757c43232fa81dea6c36cff6a844a326fb 🚀
Home /
Input Output /
plutus
Dec 06, 5-6 AM (0)
Dec 06, 6-7 AM (0)
Dec 06, 7-8 AM (0)
Dec 06, 8-9 AM (0)
Dec 06, 9-10 AM (0)
Dec 06, 10-11 AM (0)
Dec 06, 11-12 PM (0)
Dec 06, 12-1 PM (0)
Dec 06, 1-2 PM (0)
Dec 06, 2-3 PM (0)
Dec 06, 3-4 PM (0)
Dec 06, 4-5 PM (0)
Dec 06, 5-6 PM (0)
Dec 06, 6-7 PM (0)
Dec 06, 7-8 PM (0)
Dec 06, 8-9 PM (0)
Dec 06, 9-10 PM (0)
Dec 06, 10-11 PM (0)
Dec 06, 11-12 AM (0)
Dec 07, 12-1 AM (0)
Dec 07, 1-2 AM (0)
Dec 07, 2-3 AM (0)
Dec 07, 3-4 AM (0)
Dec 07, 4-5 AM (0)
Dec 07, 5-6 AM (0)
Dec 07, 6-7 AM (0)
Dec 07, 7-8 AM (0)
Dec 07, 8-9 AM (0)
Dec 07, 9-10 AM (0)
Dec 07, 10-11 AM (0)
Dec 07, 11-12 PM (0)
Dec 07, 12-1 PM (0)
Dec 07, 1-2 PM (0)
Dec 07, 2-3 PM (0)
Dec 07, 3-4 PM (0)
Dec 07, 4-5 PM (0)
Dec 07, 5-6 PM (0)
Dec 07, 6-7 PM (0)
Dec 07, 7-8 PM (0)
Dec 07, 8-9 PM (0)
Dec 07, 9-10 PM (0)
Dec 07, 10-11 PM (0)
Dec 07, 11-12 AM (2)
Dec 08, 12-1 AM (0)
Dec 08, 1-2 AM (0)
Dec 08, 2-3 AM (0)
Dec 08, 3-4 AM (0)
Dec 08, 4-5 AM (2)
Dec 08, 5-6 AM (2)
Dec 08, 6-7 AM (1)
Dec 08, 7-8 AM (0)
Dec 08, 8-9 AM (1)
Dec 08, 9-10 AM (0)
Dec 08, 10-11 AM (0)
Dec 08, 11-12 PM (0)
Dec 08, 12-1 PM (0)
Dec 08, 1-2 PM (1)
Dec 08, 2-3 PM (0)
Dec 08, 3-4 PM (0)
Dec 08, 4-5 PM (0)
Dec 08, 5-6 PM (0)
Dec 08, 6-7 PM (0)
Dec 08, 7-8 PM (0)
Dec 08, 8-9 PM (0)
Dec 08, 9-10 PM (0)
Dec 08, 10-11 PM (1)
Dec 08, 11-12 AM (0)
Dec 09, 12-1 AM (1)
Dec 09, 1-2 AM (0)
Dec 09, 2-3 AM (0)
Dec 09, 3-4 AM (0)
Dec 09, 4-5 AM (0)
Dec 09, 5-6 AM (0)
Dec 09, 6-7 AM (0)
Dec 09, 7-8 AM (0)
Dec 09, 8-9 AM (0)
Dec 09, 9-10 AM (2)
Dec 09, 10-11 AM (0)
Dec 09, 11-12 PM (3)
Dec 09, 12-1 PM (10)
Dec 09, 1-2 PM (1)
Dec 09, 2-3 PM (1)
Dec 09, 3-4 PM (1)
Dec 09, 4-5 PM (0)
Dec 09, 5-6 PM (0)
Dec 09, 6-7 PM (0)
Dec 09, 7-8 PM (0)
Dec 09, 8-9 PM (0)
Dec 09, 9-10 PM (0)
Dec 09, 10-11 PM (0)
Dec 09, 11-12 AM (3)
Dec 10, 12-1 AM (0)
Dec 10, 1-2 AM (0)
Dec 10, 2-3 AM (0)
Dec 10, 3-4 AM (0)
Dec 10, 4-5 AM (0)
Dec 10, 5-6 AM (0)
Dec 10, 6-7 AM (0)
Dec 10, 7-8 AM (0)
Dec 10, 8-9 AM (0)
Dec 10, 9-10 AM (0)
Dec 10, 10-11 AM (2)
Dec 10, 11-12 PM (0)
Dec 10, 12-1 PM (0)
Dec 10, 1-2 PM (0)
Dec 10, 2-3 PM (0)
Dec 10, 3-4 PM (0)
Dec 10, 4-5 PM (0)
Dec 10, 5-6 PM (1)
Dec 10, 6-7 PM (0)
Dec 10, 7-8 PM (0)
Dec 10, 8-9 PM (2)
Dec 10, 9-10 PM (2)
Dec 10, 10-11 PM (0)
Dec 10, 11-12 AM (0)
Dec 11, 12-1 AM (0)
Dec 11, 1-2 AM (1)
Dec 11, 2-3 AM (1)
Dec 11, 3-4 AM (1)
Dec 11, 4-5 AM (2)
Dec 11, 5-6 AM (0)
Dec 11, 6-7 AM (0)
Dec 11, 7-8 AM (0)
Dec 11, 8-9 AM (0)
Dec 11, 9-10 AM (0)
Dec 11, 10-11 AM (0)
Dec 11, 11-12 PM (1)
Dec 11, 12-1 PM (0)
Dec 11, 1-2 PM (0)
Dec 11, 2-3 PM (0)
Dec 11, 3-4 PM (0)
Dec 11, 4-5 PM (0)
Dec 11, 5-6 PM (0)
Dec 11, 6-7 PM (0)
Dec 11, 7-8 PM (1)
Dec 11, 8-9 PM (0)
Dec 11, 9-10 PM (0)
Dec 11, 10-11 PM (0)
Dec 11, 11-12 AM (0)
Dec 12, 12-1 AM (0)
Dec 12, 1-2 AM (0)
Dec 12, 2-3 AM (0)
Dec 12, 3-4 AM (0)
Dec 12, 4-5 AM (0)
Dec 12, 5-6 AM (0)
Dec 12, 6-7 AM (0)
Dec 12, 7-8 AM (0)
Dec 12, 8-9 AM (1)
Dec 12, 9-10 AM (1)
Dec 12, 10-11 AM (1)
Dec 12, 11-12 PM (1)
Dec 12, 12-1 PM (3)
Dec 12, 1-2 PM (11)
Dec 12, 2-3 PM (0)
Dec 12, 3-4 PM (0)
Dec 12, 4-5 PM (0)
Dec 12, 5-6 PM (0)
Dec 12, 6-7 PM (0)
Dec 12, 7-8 PM (1)
Dec 12, 8-9 PM (2)
Dec 12, 9-10 PM (1)
Dec 12, 10-11 PM (1)
Dec 12, 11-12 AM (0)
Dec 13, 12-1 AM (0)
Dec 13, 1-2 AM (0)
Dec 13, 2-3 AM (0)
Dec 13, 3-4 AM (0)
Dec 13, 4-5 AM (0)
Dec 13, 5-6 AM (0)
69 commits this week
Dec 06, 2025
-
Dec 13, 2025
add Plutus Benchmarks (customSmallerIsBetter) benchmark result for de34c0757c43232fa81dea6c36cff6a844a326fb
Deploying to gh-pages from @ IntersectMBO/plutus@de34c0757c43232fa81dea6c36cff6a844a326fb 🚀
very minor edits to docs landing page, mainly to remove a double-negative -- an extra instance of the word (#7487)
Co-authored-by: Joseph Fajen <[email protected]>
very minor edits to docs landing page, mainly to remove a double-negative -- an extra instance of the word
docs(spec): add Array data constructor to Plutus Core specification
Update LaTeX specification documents to document the new Array constructor: builtins1.tex: - Add Array (Vector Data) to Data type definition - Update set-theoretic denotation with Array component - Add injection (inj_A) and projection (proj_A) functions - Add is_A to boolean test functions - Add (Array ...) to concrete syntax - Update chooseData from 6 to 7 arguments with t_A branch - Add arrayData and unArrayData builtins to table data-cbor.tex: - Add Array to Data type definition - Add encoder: Array uses CBOR tag 128 + indefinite list - Add decoder case for tag 128
Deploying to gh-pages from @ IntersectMBO/plutus@14c309acef0b4558dfc3bb9ddfa2ccf65f04e41b 🚀
feat(plutus-ir): update rewrite rules for array support
Update PlutusIR rewrite rules to handle the new 7-argument ChooseData builtin. Ensures optimization passes correctly transform array-related code patterns.
test: update golden tests for array feature
Regenerate all golden test files affected by the array feature: - Budget changes from ChooseData parameter addition - UPLC and PIR output with array constructors - Type synthesis tests for new builtins - Evaluation trace changes from updated cost models Golden files updated include test suites, benchmarks, examples, and stdlib tests across plutus-core, plutus-tx-plugin, plutus-benchmark, and cardano-constitution packages.
test: add conformance tests for array builtins
Add comprehensive conformance tests for ArrayData, UnArrayData, and updated ChooseData builtin. Tests cover success cases, error handling, and budget validation to ensure consistent behavior across Plutus implementations. Tests include array construction, deconstruction, and proper error messages when UnArrayData receives non-Array data.
feat(metatheory): add array support to Agda formalization
Extend Agda metatheory with Array constructor and array builtins. Update CEK machine semantics, builtin signatures, and all generated Haskell code from Agda to maintain formal correspondence between specification and implementation. This ensures the array feature is fully formalized and verified in the Plutus metatheory.
feat(ledger-api): expose array builtins in ledger API
Update evaluation contexts across all Plutus versions (V1, V2, V3) to include the new array builtins. This makes ArrayData and UnArrayData available to on-chain validators and scripts. Add plutus-core dependency to analyse-script-events for array support in script analysis tooling.
feat(plutus-tx): add PlutusTx support for Array data
Add PlutusTx compiler support for array builtins and update IsData instances to handle Array constructor. This enables Haskell smart contract code to use array data representations with automatic compilation to Plutus Core. Update AssocMap to work with the new 7-argument ChooseData.
feat(costing): add cost models for array builtins
Add costing functions and models for ArrayData, UnArrayData, and updated ChooseData (now 7-argument). Cost models derived from benchmark data provide accurate execution cost estimates for array operations. Update all three cost model variants (A, B, C) with identical parameters for consistency across evaluation contexts.
feat(builtins): add ArrayData and UnArrayData builtins
Implement ArrayData (tag 101) and UnArrayData (tag 102) builtins for constructing and deconstructing Array data. These builtins enable efficient conversion between Vector and Data representation. Update ChooseData to handle the new Array constructor by adding a seventh branch parameter, maintaining backwards compatibility with proper error handling for non-Array data in UnArrayData.
feat(core): add Array data constructor and CBOR encoding
Add Array as a new Data constructor using Vector for efficient array representation. This enables compact encoding of homogeneous data sequences and improves performance for array-heavy smart contracts. The Array constructor uses CBOR tag 128 for encoding, following the CBOR specification for alternative array representations. This provides better memory efficiency compared to linked lists for large sequential data structures.
Deploying to gh-pages from @ IntersectMBO/plutus@14c309acef0b4558dfc3bb9ddfa2ccf65f04e41b 🚀
Remove unnecessary Set₁ in translation relations
Use Fin instead of nested Maybe for representing variables in Untyped syntax
Add notes about renaming and lifting
add Plutus Benchmarks (customSmallerIsBetter) benchmark result for 14c309acef0b4558dfc3bb9ddfa2ccf65f04e41b
Deploying to gh-pages from @ IntersectMBO/plutus@14c309acef0b4558dfc3bb9ddfa2ccf65f04e41b 🚀
Tmp: scaleValue costing