Skip to content

1.44.0.0

Compare
Choose a tag to compare
@Unisay Unisay released this 04 Apr 08:12
b86b253

plutus-core

Fixed

  • Fixed a bug in PIR's callsite inliner that caused it to skip valid inlining in certain cases.

plutus-ledger-api

No changes.

plutus-tx

Removed

  • Removed Data.AssocMap.toDataList because it suffers from the bug described in #6085.

Added

  • PlutusTx.Data.List.destructList, which takes a list along with a list of
    desired indices, and generates variables bound to the elements at those indices.

  • PlutusTx.Data.List.caseList and caseList', for matching on Lists.

Changed

  • PlutusTx.Lift.liftCode and related functions now apply the default PIR and UPLC
    optimizations during code lifting. To disable these optimizations, use liftCodeUnopt
    and related functions.

  • PlutusTx.Prelude no longer re-exports PlutusTx.List. There are now two separate
    list modules: PlutusTx.List and PlutusTx.Data.List. Pick the one that fits your
    use case and import it explicitly.

  • PlutusTx.Prelude no longer re-exports PlutusTx.Foldable or PlutusTx.Traversable.
    These typeclasses are generally discouraged due to their performance overhead.
    For example, instead of using PlutusTx.Foldable.foldMap, consider rewriting
    your code using PlutusTx.List.foldr.

  • PlutusTx.Prelude now re-exports BuiltinBool, BuiltinList, BuiltinPair,
    ToData, FromData and UnsafeFromData.

plutus-tx-plugin

Added

  • Plinth compiler flag inline-callsite-growth, for setting the inlining threshold
    for callsites. 0 disables inlining a binding at a callsite if it increases the AST size;
    n allows inlining if the AST size grows by no more than n. Keep in mind that
    doing so does not mean the final program will be bigger, since inlining can often
    unlock further optimizations.

plutus-executables

No changes.

Full Changelog: 1.43.0.0...1.44.0.0