Home / Input Output / plutus
Jan 08, 3-4 PM (0)
Jan 08, 4-5 PM (0)
Jan 08, 5-6 PM (0)
Jan 08, 6-7 PM (0)
Jan 08, 7-8 PM (0)
Jan 08, 8-9 PM (0)
Jan 08, 9-10 PM (0)
Jan 08, 10-11 PM (0)
Jan 08, 11-12 AM (0)
Jan 09, 12-1 AM (0)
Jan 09, 1-2 AM (0)
Jan 09, 2-3 AM (0)
Jan 09, 3-4 AM (0)
Jan 09, 4-5 AM (0)
Jan 09, 5-6 AM (0)
Jan 09, 6-7 AM (0)
Jan 09, 7-8 AM (0)
Jan 09, 8-9 AM (0)
Jan 09, 9-10 AM (0)
Jan 09, 10-11 AM (0)
Jan 09, 11-12 PM (2)
Jan 09, 12-1 PM (0)
Jan 09, 1-2 PM (0)
Jan 09, 2-3 PM (0)
Jan 09, 3-4 PM (0)
Jan 09, 4-5 PM (0)
Jan 09, 5-6 PM (0)
Jan 09, 6-7 PM (0)
Jan 09, 7-8 PM (0)
Jan 09, 8-9 PM (1)
Jan 09, 9-10 PM (0)
Jan 09, 10-11 PM (0)
Jan 09, 11-12 AM (1)
Jan 10, 12-1 AM (0)
Jan 10, 1-2 AM (2)
Jan 10, 2-3 AM (5)
Jan 10, 3-4 AM (1)
Jan 10, 4-5 AM (0)
Jan 10, 5-6 AM (3)
Jan 10, 6-7 AM (0)
Jan 10, 7-8 AM (1)
Jan 10, 8-9 AM (0)
Jan 10, 9-10 AM (0)
Jan 10, 10-11 AM (0)
Jan 10, 11-12 PM (0)
Jan 10, 12-1 PM (0)
Jan 10, 1-2 PM (0)
Jan 10, 2-3 PM (0)
Jan 10, 3-4 PM (0)
Jan 10, 4-5 PM (0)
Jan 10, 5-6 PM (0)
Jan 10, 6-7 PM (0)
Jan 10, 7-8 PM (0)
Jan 10, 8-9 PM (0)
Jan 10, 9-10 PM (0)
Jan 10, 10-11 PM (0)
Jan 10, 11-12 AM (0)
Jan 11, 12-1 AM (0)
Jan 11, 1-2 AM (0)
Jan 11, 2-3 AM (0)
Jan 11, 3-4 AM (1)
Jan 11, 4-5 AM (0)
Jan 11, 5-6 AM (4)
Jan 11, 6-7 AM (0)
Jan 11, 7-8 AM (0)
Jan 11, 8-9 AM (0)
Jan 11, 9-10 AM (0)
Jan 11, 10-11 AM (0)
Jan 11, 11-12 PM (0)
Jan 11, 12-1 PM (0)
Jan 11, 1-2 PM (0)
Jan 11, 2-3 PM (0)
Jan 11, 3-4 PM (0)
Jan 11, 4-5 PM (0)
Jan 11, 5-6 PM (0)
Jan 11, 6-7 PM (0)
Jan 11, 7-8 PM (0)
Jan 11, 8-9 PM (0)
Jan 11, 9-10 PM (0)
Jan 11, 10-11 PM (0)
Jan 11, 11-12 AM (3)
Jan 12, 12-1 AM (0)
Jan 12, 1-2 AM (0)
Jan 12, 2-3 AM (0)
Jan 12, 3-4 AM (0)
Jan 12, 4-5 AM (1)
Jan 12, 5-6 AM (0)
Jan 12, 6-7 AM (1)
Jan 12, 7-8 AM (4)
Jan 12, 8-9 AM (2)
Jan 12, 9-10 AM (1)
Jan 12, 10-11 AM (2)
Jan 12, 11-12 PM (1)
Jan 12, 12-1 PM (10)
Jan 12, 1-2 PM (0)
Jan 12, 2-3 PM (1)
Jan 12, 3-4 PM (0)
Jan 12, 4-5 PM (2)
Jan 12, 5-6 PM (0)
Jan 12, 6-7 PM (7)
Jan 12, 7-8 PM (3)
Jan 12, 8-9 PM (3)
Jan 12, 9-10 PM (0)
Jan 12, 10-11 PM (0)
Jan 12, 11-12 AM (0)
Jan 13, 12-1 AM (1)
Jan 13, 1-2 AM (2)
Jan 13, 2-3 AM (1)
Jan 13, 3-4 AM (3)
Jan 13, 4-5 AM (2)
Jan 13, 5-6 AM (1)
Jan 13, 6-7 AM (1)
Jan 13, 7-8 AM (0)
Jan 13, 8-9 AM (0)
Jan 13, 9-10 AM (1)
Jan 13, 10-11 AM (3)
Jan 13, 11-12 PM (5)
Jan 13, 12-1 PM (6)
Jan 13, 1-2 PM (2)
Jan 13, 2-3 PM (4)
Jan 13, 3-4 PM (0)
Jan 13, 4-5 PM (5)
Jan 13, 5-6 PM (2)
Jan 13, 6-7 PM (1)
Jan 13, 7-8 PM (1)
Jan 13, 8-9 PM (3)
Jan 13, 9-10 PM (0)
Jan 13, 10-11 PM (1)
Jan 13, 11-12 AM (0)
Jan 14, 12-1 AM (0)
Jan 14, 1-2 AM (0)
Jan 14, 2-3 AM (2)
Jan 14, 3-4 AM (4)
Jan 14, 4-5 AM (1)
Jan 14, 5-6 AM (1)
Jan 14, 6-7 AM (0)
Jan 14, 7-8 AM (1)
Jan 14, 8-9 AM (0)
Jan 14, 9-10 AM (1)
Jan 14, 10-11 AM (3)
Jan 14, 11-12 PM (1)
Jan 14, 12-1 PM (3)
Jan 14, 1-2 PM (1)
Jan 14, 2-3 PM (4)
Jan 14, 3-4 PM (0)
Jan 14, 4-5 PM (1)
Jan 14, 5-6 PM (0)
Jan 14, 6-7 PM (1)
Jan 14, 7-8 PM (0)
Jan 14, 8-9 PM (0)
Jan 14, 9-10 PM (0)
Jan 14, 10-11 PM (0)
Jan 14, 11-12 AM (0)
Jan 15, 12-1 AM (0)
Jan 15, 1-2 AM (0)
Jan 15, 2-3 AM (0)
Jan 15, 3-4 AM (0)
Jan 15, 4-5 AM (0)
Jan 15, 5-6 AM (1)
Jan 15, 6-7 AM (1)
Jan 15, 7-8 AM (2)
Jan 15, 8-9 AM (2)
Jan 15, 9-10 AM (4)
Jan 15, 10-11 AM (1)
Jan 15, 11-12 PM (12)
Jan 15, 12-1 PM (2)
Jan 15, 1-2 PM (3)
Jan 15, 2-3 PM (2)
Jan 15, 3-4 PM (0)
161 commits this week Jan 08, 2026 - Jan 15, 2026
chore(cost-model): regenerate cost models with 20 above-diagonal samples
Updated valueContains cost model parameters based on benchmark run with expanded above-diagonal coverage (3→20 samples).

Cost parameter changes:

- Above-diagonal constant: 233391 → 246085 (+5.4%)

- Below-diagonal intercept: 658617 → 686640 (+4.3%)

- Slope parameters adjusted for better fit
Improve parser error handling with Megaparsec best practices (#7505)
Remove redundant try wrappers:
- symbol is auto-backtracking since Megaparsec 4.4.0
- Removed 10 redundant try wrappers from keyword and delimiter parsing
- Fixed duplicate "constr" entry bug

Add strategic labels for better error messages:
- Use <?> operator for two-level labeling (delimiters + keywords)
- Replace explicit fail with <?> in type parser (more idiomatic)
- Labels provide clearer context in parse errors

Refactor to use between combinator:
- Cleaner, more declarative code structure
- Standard Megaparsec pattern for delimited parsing
- Eliminates intermediate bindings

Expand test coverage:
- Add 6 new error message tests covering common error scenarios
- Extract testParseError helper to reduce duplication
- Organize error tests into dedicated test group
- Verify labels appear correctly in error messages

All 2,973 tests pass (781 UPLC + 1,864 PLC + 328 PlutusIR)
Address review: increase above-diagonal samples from 3 to 20
Kenneth requested more data points above the diagonal for a better
average of the constant-cost region.

Changes:
- Increased from 3 to 20 above-diagonal samples
- Added variety in container/contained size ratios:
  * Small containers (4-16 entries) with larger contained
  * Medium containers (25-100 entries) with larger contained
  * Large containers (150-1024 entries) with much larger contained
- Total benchmark points: ~570 (550 below + 20 above diagonal)
fix(cost-model): add true above-diagonal samples to valueContains benchmark
Two different "diagonal" concepts were confused:
1. Value structure diagonal (numPolicies vs tokensPerPolicy)
2. Costing diagonal (container totalSize vs contained totalSize)

The previous `aboveDiagonalCombos` tested #1 but the cost model needs #2.

Changes:
- Remove misleading `aboveDiagonalCombos` variable
- Add true above-diagonal samples where contained size > container size
- Update comments to clarify both diagonal concepts
- Generate 3 independent (container, contained) pairs for the constant-cost region

Closes #7525