Releases: IntersectMBO/plutus
1.55.0.0
plutus-core
Added
- Implementations of
ScaleValueprimitives.
Changed
-
Renamed 'Size' types functions to AstSize
-
In #7323 made the
Constr,ListandMapbuiltins 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_multiScalarMulandbls12_381_G2_multiScalarMulwill 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
Full Changelog: 1.53.0.0...1.53.1.0
1.54.0.0
plutus-core
Added
-
Built-in type
Value, and the implementations ofinsertCoinandunionValue. -
Added the bls MSM built-in to plutus-core in #4255
-
Implementations of
LookupCoinandValueContainsprimitives. -
Implementations of
ValueDataandUnValueDataprimitives.
Changed
- Change default compiler option
datatypesfromBuiltinCasingback toSumsOfProducts
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
What's Changed
- Release 1.52.0.0 by @zliu41 in #7277
- Make
FrameAwaitFunValuehandle multiple arguments at once by @SeungheonOh in #7281 - Throw compilation error when unsupported extension is enabled by @SeungheonOh in #7252
- Add Plinth builtin for integer casing by @SeungheonOh in #7271
- Add comprehensive GitHub Copilot instructions for Plutus development by @Copilot in #7276
- [OPTIMIZATION] Use specialized
ArgStackby @SeungheonOh in #7286 - [OPTIMIZATION] Use spine directly for constant casing by @SeungheonOh in #7287
- Only run Broken Links workflow on push to master by @zeme-wana in #7290
- Add golden test for
validationbenchmark suite by @SeungheonOh in #7289 - Bump mermaid to v11.10.0 by @zeme-wana in #7291
- Flat: encode UPLC arrays as lists by @kwxm in #7296
- [Test] Make 'test_mangle' not fail by @effectfully in #7297
- Update auction validator examples to use Plutus Core version 1.1.0 and fix V3 API imports by @Copilot in #7274
- Build with -Werror by default by @ana-pantilie in #7298
- Improve regex catching URLs in check-broken-links.sh by @zeme-wana in #7300
- Uncomment needed line in check-broken-links.sh by @zeme-wana in #7301
- Add SrcSpans of Vars in the compilation trace by @zliu41 in #7299
- [Builtins] Add constant casing for builtin unit and pair by @SeungheonOh in #7221
- Add -Wall to Haskell metatheory modules and fix warnings by @ana-pantilie in #7302
- Remove dependency on QuickCheck 2.16 + remove allow-newer QuickCheck by @ana-pantilie in #7295
- Add more exes to nix outputs and hide musl exes on darwin by @zeme-wana in #7303
- Release 1.53.0.0 by @ana-pantilie in #7307
New Contributors
- @Copilot made their first contribution in #7276
Full Changelog: 1.52.0.0...1.53.0.0
1.52.0.0
What's Changed
- Pin Manual Benchmarks To CPU 7 by @zeme-wana in #7249
- Autorun budget change comparison by @SeungheonOh in #7248
- Fix #7248 by @SeungheonOh in #7251
- Pretty-print UPLC programs with unicode chars by @zeme-wana in #7242
- Add some missing parentheses in the conformance tests by @kwxm in #7254
- Make plinth use builtin bool by @SeungheonOh in #7231
- Create issues for some FIXMEs by @zliu41 in #7257
- Fix faulty merge from #7231 by @SeungheonOh in #7259
- Fix link in Contributing.adoc by @SeungheonOh in #7261
- Bump version of GitHub action pr-preview-action by @zeme-wana in #7264
- Bump actions/checkout to v4.3.0 everywhere by @zeme-wana in #7266
- Use contIndexOne in SteppableCek. Fixes #7256 by @bezirg in #7269
- Fix natural number flat encoding on the spec by @SeungheonOh in #7263
- [Evaluation] Add 'CekResult' and improve 'dischargeCekValue' by @effectfully in #7272
Full Changelog: 1.51.0.0...1.52.0.0
Release 1.51.0.0
What's Changed
- Include changelog.d fragment files in git add in release script by @zeme-wana in #7228
- Add arrays to metatheory by @ramsay-t in #7127
- More tests, conformance test cases for builtin integer, bool, list casing by @SeungheonOh in #7218
- Add cardano open oracle protocol scripts for
plutus-benchmarkby @SeungheonOh in #7156 - Enable SoPs and all builtins in PlutusV1/V2 at PV11. by @kwxm in #7223
- Release 1.50.0.0 by @Unisay in #7227
- Bump on-headers to 1.1.0 in doc/docusaurus/package.json by @zeme-wana in #7234
- Bump plutus versions to 1.50 in plutus-benchmark.cabal by @zeme-wana in #7237
- Allow 'turtle' package to use a new version of 'optparse-applicative' by @zeme-wana in #7236
- Get nofib-exe to print out names with uniques by @kwxm in #7226
- Invert some error messages in plutus-ledger-api tests by @kwxm in #7240
- Update Values.md by @kwxm in #7244
- Renumber multisig-sm validation scripts by @kwxm in #7245
- Change case order for two branch builtin list casing by @SeungheonOh in #7247
- Release 1.51.0.0 by @ana-pantilie in #7250
Full Changelog: 1.50.0.0...1.51.0.0
1.50.0.0
plutus-core
Removed
- Removed the
caseListandcaseDatabuiltins in preparation for adding directCaseing on lists andData.
Added
-
In #7029 added support for
Caseing on booleans and integers. For example,case True a bnow evaluates tob. -
Added a new UPLC optimisation which removes
forcewhen applied to case expressions where each branch contains adelayat the top, or if the delay is under any number of lambda abstractions. -
Added a new emitter mode
logWithCallTraceEmitterwhich uses trace messages generated byPlutusTx.Plugin:profile-allflag of plutus-tx-plugin to create call trace of the functions that led to the evaluation failure. If script passes or script is not compiled withprofile-allflag,logWithCallTraceEmitterwill behave as regularlogEmitter. -
Added support for
Caseing on builtin lists. WhenCaseing a builtin list, exactly one or two branches are allowed: with a single branch, Case assumes the list is non-empty and applies the head element and the tail to that branch; with two branches, the first branch is selected if the list is empty (and takes no arguments), and the second branch is chosen if the list is non-empty, receiving the head element and the tail as its arguments. Note, the single branch WILL FAIL the script evaluation if empty list is given.
Changed
-
Drop
hex-textpackage in favor ofbase16-bytestring. -
Disable Plutus executable build for wasm
plutus-ledger-api
Added
PlutusLedgerApi.Envelopemodule with two functions:compiledCodeEnvelope: creates a JSON envelope forCompiledCodewith a description.writeCodeEnvelope: writes a JSON envelope forCompiledCodeto a file.
plutus-tx
Added
- Module 'PlutusTx.Test.Util.Compiled' of the 'plutus-tx-testlib' package got a new function 'countFlatBytes' that counts the size of a 'CompiledCode' in Flat bytes.
plutus-tx-plugin
No changes.
plutus-executables
No changes.
plutus-metatheory
Fixed
Full Changelog: 1.49.0.0...1.50.0.0
1.49.0.0
plutus-core
Added
-
In #7029 added support for
Caseing on booleans and integers. For example,case True a bnow evaluates tob. -
Added a new UPLC optimisation which removes
forcewhen applied to case expressions where each branch contains adelayat the top, or if the delay is under any number of lambda abstractions.
Changed
- Drop
hex-textpackage in favor ofbase16-bytestring.
plutus-ledger-api
No changes.
plutus-tx
Added
- Module 'PlutusTx.Test.Util.Compiled' of the 'plutus-tx-testlib' package got a new function 'countFlatBytes' that counts the size of a 'CompiledCode' in Flat bytes.
plutus-tx-plugin
No changes.
plutus-executables
No changes.
plutus-metatheory
No changes.
Full Changelog: 1.48.0.0...1.49.0.0
1.48.0.0
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.47.0.0...1.48.0.0
1.47.0.0
plutus-core
Changed
-
In #7106 improved error reporting in the evaluators.
-
StructuralEvaluationErrorandOperationalEvaluationErrorwere renamed toStructuralErrorandOperationalErrorrespectively. -
_MachineErrorwas made obsolete in favor of_StructuralError. -
The tags for the flat encodings of the as-yet-unreleased
dropList,
lengthOfArray,listToArray,indexArray,caseListandcaseData
built-in functions have been changed pending the possible removal of
caseListandcaseData.
plutus-ledger-api
No changes.
plutus-tx
Added
-
PlutusTx.Test.Run.Codemodule was added to theplutus-tx:testlibpackage.
This module provides a way to run compiled Plutus code in a test environment,
allowing for easier testing and debugging of Plutus scripts. See more details in the User Guide. -
Added over 30 new functions to
PlutusTx.BuiltinList -
Added new errors codes:
PT23->PlutusTx.BuiltinList.head: empty listPT24->PlutusTx.BuiltinList.tail: empty listPT25->PlutusTx.BuiltinList.last: empty list
-
Added TH help
PlutusTx.IsData.TH.makeIsDataAsListwhich generatesToData,FromData,UnsafeFromDatainstances with internal representation beingData.Listinstead ofData.Constrfor given product datatype(only having a single constructor). -
Added
PlutusTx.Test.Util.compiledCodeToHaskandPlutusTx.Test.Util.compiledCodeToHaskUnsafefor applying parameters toCompiledCodeIn uni funtersely. -
Added
PlutusTx.Test.Golden.goldenCodeGenfor generating golden of the generated code from Template Haskell. -
Added
assertResultfor asserting givenCompiledCode BoolevaluatesTrue.
Changed
BuiltinListlookup is made cheaper by using theDropListbuiltin function.
plutus-tx-plugin
Added
-
Integrated the compiler certifier into the plugin. This feature can be accessed using the
certifyplugin option. Note that this is currently very experimental, and is released now mainly for testing purposes. -
Added support for
integerEqinto the plugin, enabling use of(==) @Integerand pattern matching onIntegertype values.
plutus-executables
No changes.
plutus-metatheory
No changes.
Full Changelog: 1.46.0.0...1.47.0.0