Skip to content

Releases: Plutonomicon/plutarch-plutus

v1.10.0

29 Jan 21:20
v1.10.0
fd7d1c1
Compare
Choose a tag to compare

1.10.0 -- 29-01-2025

Added

  • pmax and pmin as new methods of POrd
  • #> and #>= as argument-flipping versions of #< and #<=
  • pallBS to Plutarch.ByteString (originally from plutarch-extra)
  • pisHexDigit to Plutarch.String (originally from plutarch-extra)
  • preverse and pcheckSorted to Plutarch.List (originally from
    plutarch-extra)
  • ptraceIfNothing, pisJust, pmaybe, pfromMaybe, pjust, pnothing,
    pAssertPJust to Plutarch.Maybe (originally from plutarch-extra)
  • pexpectJustC to Plutarch.TermCont (originally from plutarch-extra)
  • PCountable and PEnumerable type classes, as well as instances
  • PByte type as a limited Plutarch-level equivalent to Word8
  • PLogicSemantics, and construction functions, to help use of logical
    PByteString operations
  • pandBS, porBS, pxorBS, pcomplementBS mirroring CIP-122 operations
  • pzeroesBS, ponesBS, preplicateBS, as wrappers for CIP-122's
    ReplicateByte
  • compileOptimized in Plutarch.Internal, to optimize the generated UPLC
  • PBitString and associated functionality for CIP-122 and CIP-123 operations
    on bits, in Plutarch.BitString
  • PEitherData, a Data-encoded counterpart to PEither, plus some functions
  • Positive type in Plutarch.Positive that is Haskell level equivalent of
    PPositive
  • PUnsafeLiftDecl and PConstantDecl instances for PPositive
  • evalScriptUnlimited to Plutarch.Evaluate as unrestricted version of evalScript
  • pmapMaybe to Plutarch.Maybe
  • PLiftable type class
  • Plutarch.Builtin.Bool module
  • Plutarch.Internal.Eq module
  • Plutarch.Internal.Ord module
  • pif' to Plutarch.Prelude
  • pcond as a Plutarch equivalent to multi-way if
  • PLiftable PRational instance
  • PDataFields, DerivePDataLiftable, PDataNewtype now exported from the prelude
  • New methods for Data and Scott encoding derivation
  • optimizeTerm for separate optimization via UPLC from compilation
  • New numerical hierarchy in Plutarch.Internal.Numeric, plus new instances
  • PNatural type, corresponding to the Haskell Natural
  • Support for SoP encoding of data
  • PSemigroup and PMonoid, as improved Plutarch versions of Semigroup and
    Monoid
  • Repr.Data module was added as a replacement for old Data/Scott/SOP encoded PlutusTypes
  • Unrolling utilities--punrollBound, punrollUnbound, and punrollUnboundWhole--is added to Plutarch.Unroll
  • evalTerm' is added to Plutarch.Evaluate

Changed

  • pconsBS now takes a PByte argument instead of a PInteger one
  • pindexBS now returns a PByte instead of a PInteger
  • pexpModInteger is now in Plutarch.Integer
  • PMaybeData no longer uses PDataRecord
  • Plutarch.Internal is now Plutarch.Internal.Term to better reflect its
    actual contents
  • PBool definition is now in Plutarch.Builtin.Bool
  • PEq type class definition is now in Plutarch.Internal.Eq
  • PPartialOrd and POrd type class definitions are now in
    Plutarch.Internal.Ord
  • pif, pif', pand, pand', por, por', pnot, #&&, #|| are
    now in Plutarch.Builtin.Bool
  • Term s PRational is now Fractional directly, instead of by way of
    PFractional
  • Plutarch.Num is now Plutarch.Internal.Numeric
  • PIntegral type class is now in Plutarch.Internal.Numeric
  • Plutarch.Integer is now Plutarch.Builtin.Integer
  • #<, #<=, #>=, #> are now part of POrd
  • PPositive (and Positive) are now exported from the prelude, along with
    some functionality
  • PEither, PPair, PMaybe and PList use SOP encoding instead of Scott

Removed

  • plutarch-extra, as all its functionality has been folded into Plutarch
    itself
  • pbyteStr (as it's deprecated)
  • Plutarch.Bitwise module, as its functionality has been superseded by more
    type-safe operations in Plutarch.ByteString and Plutarch.BitString
  • PUnsafeLiftDecl and PConstantDecl as they are replaced by PLiftable
  • Plutarch module, as it served no useful purpose and was just confusing
  • PType synonym (use S -> Type honestly instead)
  • PSBool and functionality (now in plutarch-ledger-api)
  • PFractional type class (only one instance, unlikely to ever have more)
  • PIsData PRational instance (made no sense)
  • PPartialOrd (all its functionality is now in POrd)
  • Plutarch.FFI module
  • PNum and PIntegral (replaced by new numerical hierarchy)

Fixed

  • Bug in ppredecessorN for PPosixTime where order of subtraction was flipped
  • Bugs in pintersection and phull that assigned wrong open/close bounds
  • Bug in pafter that will give opposite result when comparing against infinities

Thanks to

@kozross
@t4ccer
@albertodvp
@colll78
@jaredponn
@SeungheonOh

1.3.0

28 Oct 14:55
9b83892
Compare
Choose a tag to compare
Merge pull request #596 from Plutonomicon/staging

Staging

v1.2.0

01 Aug 19:22
3140f47
Compare
Choose a tag to compare
Merge pull request #317 from Plutonomicon/staging

Plutarch 1.2

1.1.0

27 Jan 17:42
7c64217
Compare
Choose a tag to compare