1.66.0.0
plutus-core
Added
- Add RecInline optimization pass that inlines eligible mutually recursive pir function binds.
Changed
- The parser for textual Plutus Core in the
uplcexecutable now requires all
keys in a literal built-invalueto be in strictly ascending lexicographic
order; furthermore all currency quantities in a literalvaluemust be
non-zero and lie in the range [-2^127, ..., 2^127 -1]. This makes it behave
in the same way as theflatdecoder and theunvalueDatafunction.
Fixed
- The UPLC
FloatDelaycompiler pass could produce unsound transformations, this is now fixed.
plutus-ledger-api
Added
- Exported
inclusiveLowerBoundandinclusiveUpperBoundfrom
PlutusLedgerApi.V1.Interval,PlutusLedgerApi.V1.Data.Interval,
and all re-exporting modules (PlutusLedgerApi.V1/V2/V3and the
PlutusLedgerApi.Data.V1/V2/V3counterparts). These helpers
normaliseLowerBound/UpperBoundvalues into an equivalent
inclusiveExtended a, removing the need for validator authors to
re-implement the same closure handling locally.
Changed
-
PlutusLedgerApi.V1.Data.Value.valueOfrewritten to walk the underlyingBuiltinListdirectly viaunsafeDataAsMap/unsafeDataAsB/unsafeDataAsIand short-circuit on the first match. The previous implementation went throughMap.lookup, which materialised aMaybeonly to deconstruct it immediately. Semantics are unchanged. -
Optimised
unionWithinPlutusLedgerApi.V1.Data.Value: same semantics and signature, but the merge now runs in two outer passes instead of three. A constant-factor speedup, not an algorithmic one.
plutus-tx
No changes.
plutus-tx-plugin
No changes.
plutus-executables
No changes.
plutus-metatheory
No changes.
Full Changelog: 1.65.0.0...1.66.0.0