Releases: Plutonomicon/plutarch-plutus
Releases · Plutonomicon/plutarch-plutus
v1.10.1
What's Changed
- Suggestions: remove redundant
PAsDatafrom ledger,DerivePLiftableAsDataRec, etc by @SeungheonOh in #810 - Better documentation for DeriveAsData... by @SeungheonOh in #812
- Restore PLiftable (DeriveAsTag a) by @t4ccer in #814
- Seungheonoh/optimize data rec optimizer by @SeungheonOh in #815
- Seungheonoh/fix upl cversion by @SeungheonOh in #816
- v1.10.1 release by @SeungheonOh in #817
Full Changelog: v1.10.0...v1.10.1
v1.10.0
1.10.0 -- 29-01-2025
Added
pmaxandpminas new methods ofPOrd#>and#>=as argument-flipping versions of#<and#<=pallBStoPlutarch.ByteString(originally fromplutarch-extra)pisHexDigittoPlutarch.String(originally fromplutarch-extra)preverseandpcheckSortedtoPlutarch.List(originally from
plutarch-extra)ptraceIfNothing,pisJust,pmaybe,pfromMaybe,pjust,pnothing,
pAssertPJusttoPlutarch.Maybe(originally fromplutarch-extra)pexpectJustCtoPlutarch.TermCont(originally fromplutarch-extra)PCountableandPEnumerabletype classes, as well as instancesPBytetype as a limited Plutarch-level equivalent toWord8PLogicSemantics, and construction functions, to help use of logical
PByteStringoperationspandBS,porBS,pxorBS,pcomplementBSmirroring CIP-122 operationspzeroesBS,ponesBS,preplicateBS, as wrappers for CIP-122's
ReplicateBytecompileOptimizedinPlutarch.Internal, to optimize the generated UPLCPBitStringand associated functionality for CIP-122 and CIP-123 operations
on bits, inPlutarch.BitStringPEitherData, aData-encoded counterpart toPEither, plus some functionsPositivetype inPlutarch.Positivethat is Haskell level equivalent of
PPositivePUnsafeLiftDeclandPConstantDeclinstances forPPositiveevalScriptUnlimitedtoPlutarch.Evaluateas unrestricted version ofevalScriptpmapMaybetoPlutarch.MaybePLiftabletype classPlutarch.Builtin.BoolmodulePlutarch.Internal.EqmodulePlutarch.Internal.Ordmodulepif'toPlutarch.Preludepcondas a Plutarch equivalent to multi-way ifPLiftable PRationalinstancePDataFields,DerivePDataLiftable,PDataNewtypenow exported from the prelude- New methods for
Dataand Scott encoding derivation optimizeTermfor separate optimization via UPLC from compilation- New numerical hierarchy in
Plutarch.Internal.Numeric, plus new instances PNaturaltype, corresponding to the HaskellNatural- Support for SoP encoding of data
PSemigroupandPMonoid, as improved Plutarch versions ofSemigroupand
MonoidRepr.Datamodule was added as a replacement for old Data/Scott/SOP encoded PlutusTypes- Unrolling utilities--
punrollBound,punrollUnbound, andpunrollUnboundWhole--is added toPlutarch.Unroll evalTerm'is added toPlutarch.Evaluate
Changed
pconsBSnow takes aPByteargument instead of aPIntegeronepindexBSnow returns aPByteinstead of aPIntegerpexpModIntegeris now inPlutarch.IntegerPMaybeDatano longer usesPDataRecordPlutarch.Internalis nowPlutarch.Internal.Termto better reflect its
actual contentsPBooldefinition is now inPlutarch.Builtin.BoolPEqtype class definition is now inPlutarch.Internal.EqPPartialOrdandPOrdtype class definitions are now in
Plutarch.Internal.Ordpif,pif',pand,pand',por,por',pnot,#&&,#||are
now inPlutarch.Builtin.BoolTerm s PRationalis nowFractionaldirectly, instead of by way of
PFractionalPlutarch.Numis nowPlutarch.Internal.NumericPIntegraltype class is now inPlutarch.Internal.NumericPlutarch.Integeris nowPlutarch.Builtin.Integer#<,#<=,#>=,#>are now part ofPOrdPPositive(andPositive) are now exported from the prelude, along with
some functionalityPEither,PPair,PMaybeandPListuse SOP encoding instead of Scott
Removed
plutarch-extra, as all its functionality has been folded into Plutarch
itselfpbyteStr(as it's deprecated)Plutarch.Bitwisemodule, as its functionality has been superseded by more
type-safe operations inPlutarch.ByteStringandPlutarch.BitStringPUnsafeLiftDeclandPConstantDeclas they are replaced byPLiftablePlutarchmodule, as it served no useful purpose and was just confusingPTypesynonym (useS -> Typehonestly instead)PSBooland functionality (now inplutarch-ledger-api)PFractionaltype class (only one instance, unlikely to ever have more)PIsData PRationalinstance (made no sense)PPartialOrd(all its functionality is now inPOrd)Plutarch.FFImodulePNumandPIntegral(replaced by new numerical hierarchy)
Fixed
- Bug in
ppredecessorNforPPosixTimewhere order of subtraction was flipped - Bugs in
pintersectionandphullthat assigned wrong open/close bounds - Bug in
pafterthat will give opposite result when comparing against infinities
Thanks to
@kozross
@t4ccer
@albertodvp
@colll78
@jaredponn
@SeungheonOh