Release Notes - v0.9.0
v0.9.0
Section titled “v0.9.0”Title: Improve bounded processing and contextual evaluation
Version: v0.9.0
Release: v0.9.0
Comparison: v0.8.1…v0.9.0
Recommended Network Compatibility ⚠️
Section titled “Recommended Network Compatibility ⚠️”| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
This release strengthens input and output safety, adds validated evaluation with cancellation and metrics, and makes replay execution more predictable.
Safety and Formatting
Section titled “Safety and Formatting”- Improved FLAT decoding and text parsing with default limits of
16 MiBfor input,1,048,576program nodes,524,288elements per collection, and protocol-dependent limits for constructor fields. Plutigo now rejects oversized input, node counts, and collection widths before processing.PrettyWithLimitsandPrettyTermWithLimitsaccept configurable depth and output bounds, whilePrettyandPrettyTermuse safe defaults and return an empty string when a limit fails.NameToDeBruijnnow uses constant-time depth-map lookups and restores shadowed names correctly.
Evaluation and Replay
Section titled “Evaluation and Replay”- Expanded
cek.EvaluateTextwith caller-supplied ledger language and protocol context, phase-one validation, execution-version gating, cancellation, andMachine.RunContext. Plutigo now validatesEvalContextand machine cost models, rejects invalid costs, and saturates budget and cost arithmetic instead of allowing wraparound. Optional CEK metrics report steps, maximum frame depth, and per-builtin call counts and budgets. Replay loading and execution now accept context and limits, enforce corpus and case budgets before decoding, propagate cancellation, and prevent canceled cases from passing. Consumer documentation and runnable examples cover the updated APIs, usage examples reflect the new behavior, and PV11 built-in availability has conformance coverage. Breaking change:NewMachinenow requires a non-nil, validEvalContext, and replay loading and execution APIs require context and limits.
Docs authored by Doc Holiday