Skip to content

Releases: IntersectMBO/plutus

1.61.0.0

09 Apr 05:25
6d66070

Choose a tag to compare

plutus-core

Added

  • Roundtrip and stable byte encoding tests for all Flat instances across
    flat, plutus-core, plutus-ir, and untyped-plutus-core packages.
  • Standalone encoding generator executable (cabal run flat-encoding-generator)
    for reproducing expected byte constants.

Fixed

  • Fixed consClose in the Flat decoder failing to advance the stream pointer past 1 byte, which corrupted decoder state for Generic-derived Flat instances of large enums (>256 constructors) and caused infinite memory consumption during deserialization.

plutus-ledger-api

No changes.

plutus-tx

No changes.

plutus-tx-plugin

Changed

Fixed

  • Fixed a 3-5x execution cost regression for unsafeFromBuiltinData on multi-constructor
    types when compiling in SumsOfProducts mode (the default). The caseInteger fallback
    now generates equalsInteger/ifThenElse chains instead of building a linked list at
    runtime.

plutus-executables

No changes.

plutus-metatheory

Added

  • Added a compiler certification pass for the force-case-delay optimization.

Changed

  • The certifier can now report execution budget before and after each pass.

Full Changelog: 1.60.0.0...1.61.0.0

1.60.0.0

19 Mar 14:21
d4c877e

Choose a tag to compare

plutus-core

Added

  • A new UPLC optimization pass, turning multi-argument applications into case-constr form.

Changed

  • The uplc executable now accepts serialised scripts (in addition to textual
    and flat-encoded). Use --input-format serialised.

plutus-ledger-api

Added

  • Added ScriptContextBuilder test utility (PlutusLedgerApi.Test.ScriptContextBuilder) to plutus-ledger-api-testlib for constructing realistic ScriptContext values in tests using a composable builder pattern.

Fixed

  • Fixed Show instance for TokenName displaying non-printable token names as
    seemingly empty strings. Token names are now always shown as hex-encoded bytes,
    matching CurrencySymbol (#7638).

plutus-tx

Added

  • asData now generates a destructor function for the data type, in addition to the
    pattern synonyms. For sum types, it is better to use the destructor function than the
    pattern synonyms to match on them.

plutus-tx-plugin

Added

  • Added Plinth.Plugin, which uses a typeCheckResultAction to preserve more
    source locations, resulting in clearer error messages.

Changed

  • Improved compilation error messages by making them more concise and including
    the relevant code snippet.

  • Improved error reporting in the Plinth compiler for certain unsupported Haskell features.
    Requires compiling with plinthc or plc instead of compile.

plutus-executables

No changes.

plutus-metatheory

Added

  • Translation relation and decision procedure for the ApplyToCase pass.

Full Changelog: 1.59.0.0...1.60.0.0

1.59.0.0

03 Mar 00:59
d6c9dcf

Choose a tag to compare

plutus-core

Added

  • Added certifier hints in Haskell and Agda.
    They are useful for certifying certain UPLC optimizations such as inlining, since their translation relations are otherwise computationally difficult to decide.

Changed

  • Relaxed the upper bound for the cardano-crypto-class dependency (< 2.4)

  • Added an Agda checking procedure for the inliner, and updated the UPLC inliner to emit certifier hints.

plutus-ledger-api

Changed

  • Replace hand-written PlutusTx.Eq instances with deriveEq across all V1/V2/V3 types

  • Add PlutusTx.Eq instance for MintValue

  • Replace hand-written PlutusTx.Ord instances with deriveOrd for V1.Extended and V3.ProtocolVersion

plutus-tx

Added

  • A deriveOrd command to derive PlutusTx.Ord instances for datatypes/newtypes, similar to Haskell's
    deriving stock Ord

  • PlutusTx.deriveEq: Template Haskell function to derive PlutusTx.Eq instances
    for datatypes and newtypes, similar to Haskell's deriving stock Eq

plutus-tx-plugin

No changes.

plutus-executables

No changes.

plutus-metatheory

No changes.

Full Changelog: 1.58.0.0...1.59.0.0

1.58.0.0

21 Feb 00:19
1.58.0.0
b7e75c9

Choose a tag to compare

What's Changed

  • Revert pr-preview-action v1.8.1 -> v1.6.3 by @zeme-wana in #7543
  • Release 1.57.0.0 by @ana-pantilie in #7530
  • Update lodash version to 4.17.23 in docusaurus by @zeme-wana in #7544
  • Update lodash-es to 4.17.23 in docusaurus by @zeme-wana in #7547
  • feat(uplc-evaluator): implement file-based benchmarking interface by @Unisay in #7546
  • feat(nix): expose uplc-evaluator executable in nix packages by @Unisay in #7549
  • feat(uplc-evaluator): implement real CEK evaluation with budget tracking by @Unisay in #7550
  • feat(uplc-evaluator): use integer nanoseconds for timing measurements by @Unisay in #7552
  • Fix version dropdown list in haddock site by @zeme-wana in #7554
  • Replace use of tail with drop 1 in PlutusTx/Enum/TH.hs by @zeme-wana in #7553
  • Fix garbled output from concurrent threads in uplc-evaluator by @Unisay in #7555
  • Fix flaky uplc-evaluator integration tests by @Unisay in #7557
  • Metatheory: use Fin instead of nested Maybe for representing variables by @basetunnel in #7486
  • refactor(uplc-evaluator): remove redundant memory_bytes metric by @Unisay in #7556
  • Add plutus-tx tests for compiling to case on built-ins by @basetunnel in #7539
  • Fix uconv to allow an arbitrary number of variables by @ana-pantilie in #7560
  • [certifier] Allow checking procedures by @zliu41 in #7561
  • Kwxm/costing/recost vd uvd by @kwxm in #7563
  • Add --cse-which-subterms flag by @basetunnel in #7511
  • Replace error calls in the plutus CLI AnyProgram IO flow by @Savissy in #7565
  • Bug: Cannot construct a value of type: PlutusTx.Builtins.Internal.BuiltinUnit by @Unisay in #7162
  • Disable uplc-evaluator-integration-tests by @zliu41 in #7567
  • [certifier] Document decision vs. checking procedure tradeoffs by @zliu41 in #7564
  • Fix flaky uplc-evaluator-integration-tests and re-enable by @Unisay in #7569
  • Kwxm/msm/add bound by @kwxm in #7570
  • Re-disable uplc-evaluator-integration-tests by @zliu41 in #7571
  • Release 1.58.0.0 by @zliu41 in #7568

New Contributors

Full Changelog: 1.57.0.0...1.58.0.0

1.57.0.0

26 Jan 13:16
9d9b539

Choose a tag to compare

plutus-core

No changes.

plutus-ledger-api

No changes.

plutus-tx

No changes.

plutus-tx-plugin

No changes.

plutus-executables

No changes.

plutus-metatheory

No changes.

Full Changelog: 1.56.0.0...1.57.0.0

1.56.0.0

12 Dec 11:38
e75d9d7

Choose a tag to compare

plutus-core

Changed

  • Updated benchmark data and cost model parameters for Value-related builtins (lookupCoin, valueContains, valueData, unValueData) based on fresh benchmark measurements.

  • Add support for nothunks == 0.3.*

plutus-ledger-api

Added

  • To v3: numerator,denominator,unsafeRatio

Changed

  • In v3: renamed fromGHC/toGHC to fromRatioHaskell/toRatioHaskell

  • Add support for nothunks == 0.3.*

plutus-tx

Removed

  • PlutusTx.Ratio: half

Added

  • Enum Ratio instance that mimicks Haskell's instance

Changed

  • Renamed Ratio's fromGHC/toGHC to fromRatioHaskell/toRatioHaskell

  • Made the (&&) and (||) operators short-circuit also in the Haskell side.
    uplc code is unaffected and is already short-circuiting.

plutus-tx-plugin

No changes.

plutus-executables

No changes.

plutus-metatheory

No changes.

Full Changelog: 1.55.0.0...1.56.0.0

1.55.0.0

12 Nov 11:32
4a91d93

Choose a tag to compare

plutus-core

Added

  • Implementations of ScaleValue primitives.

Changed

  • Renamed 'Size' types functions to AstSize

  • In #7323 made the Constr, List and Map builtins 7+% faster.

  • Updated the Plutus Core specification to allow names with optional numeric suffixes (e.g., name-42) in #7396, resolving the discrepancy between the formal grammar and the parser implementation.

plutus-ledger-api

Added

  • The two BLS12-381 multi-scalar multiplication functions
    bls12_381_G1_multiScalarMul and bls12_381_G2_multiScalarMul will become
    available on the chain at Protocol Version 11 once a protocol parameter update
    has taken place to add the relevant cost model parameters.

Fixed

  • Allows PlutusV3 scripts with the v1.0.0 Plutus Core language version.

plutus-tx

Changed

  • Renamed 'Size' types functions to AstSize

plutus-tx-plugin

Removed

  • Removed the experimental compiler certification option temporarily due to ghc issues regarding the profiling build of plutus-metatheory.

Changed

  • Renamed 'Size' types functions to AstSize

plutus-executables

No changes.

plutus-metatheory

No changes.

Full Changelog: 1.54.0.0...1.55.0.0

1.53.1.0

18 Nov 18:14
ac80393

Choose a tag to compare

Full Changelog: 1.53.0.0...1.53.1.0

1.54.0.0

23 Sep 11:59
4d2c553

Choose a tag to compare

1.54.0.0 Pre-release
Pre-release

plutus-core

Added

  • Built-in type Value, and the implementations of insertCoin and unionValue.

  • Added the bls MSM built-in to plutus-core in #4255

  • Implementations of LookupCoin and ValueContains primitives.

  • Implementations of ValueData and UnValueData primitives.

Changed

  • Change default compiler option datatypes from BuiltinCasing back to SumsOfProducts

plutus-ledger-api

Added

  • Added the bls MSM built-in to plutus-core in #4255

plutus-tx

Added

  • Added the bls MSM built-in to plutus-core in #4255

plutus-tx-plugin

Added

  • Added the bls MSM built-in to plutus-core in #4255

plutus-executables

No changes.

plutus-metatheory

No changes.

Full Changelog: 1.53.0.0...1.54.0.0

Release 1.53.0.0

04 Sep 14:31
a27c1b7

Choose a tag to compare

What's Changed

New Contributors

  • @Copilot made their first contribution in #7276

Full Changelog: 1.52.0.0...1.53.0.0