Skip to content

1.66.0.0

Choose a tag to compare

@zeme-wana zeme-wana released this 15 Jul 20:25
91e8c2a

plutus-core

Added

  • Add RecInline optimization pass that inlines eligible mutually recursive pir function binds.

Changed

  • The parser for textual Plutus Core in the uplc executable now requires all
    keys in a literal built-in value to be in strictly ascending lexicographic
    order; furthermore all currency quantities in a literal value must be
    non-zero and lie in the range [-2^127, ..., 2^127 -1]. This makes it behave
    in the same way as the flat decoder and the unvalueData function.

Fixed

  • The UPLC FloatDelay compiler pass could produce unsound transformations, this is now fixed.

plutus-ledger-api

Added

  • Exported inclusiveLowerBound and inclusiveUpperBound from
    PlutusLedgerApi.V1.Interval, PlutusLedgerApi.V1.Data.Interval,
    and all re-exporting modules (PlutusLedgerApi.V1/V2/V3 and the
    PlutusLedgerApi.Data.V1/V2/V3 counterparts). These helpers
    normalise LowerBound/UpperBound values into an equivalent
    inclusive Extended a, removing the need for validator authors to
    re-implement the same closure handling locally.

Changed

  • PlutusLedgerApi.V1.Data.Value.valueOf rewritten to walk the underlying BuiltinList directly via unsafeDataAsMap / unsafeDataAsB / unsafeDataAsI and short-circuit on the first match. The previous implementation went through Map.lookup, which materialised a Maybe only to deconstruct it immediately. Semantics are unchanged.

  • Optimised unionWith in PlutusLedgerApi.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