From 854cb90ce4920b8d78cae8192156bfe31b25611a Mon Sep 17 00:00:00 2001 From: effectfully Date: Fri, 22 Sep 2023 00:50:34 +0200 Subject: [PATCH 01/40] [PlutusTx] [Test] 'Eq' for 'Value' --- .../src/PlutusBenchmark/BLS12_381/Scripts.hs | 6 - plutus-ledger-api/plutus-ledger-api.cabal | 5 +- plutus-ledger-api/test/Spec.hs | 2 + plutus-ledger-api/test/Spec/Value.hs | 231 ++++++++++++++++++ .../test/Spec/golden/9.2/Long.stat.golden | 15 ++ .../test/Spec/golden/9.2/Short.stat.golden | 21 ++ .../test/Spec/golden/9.6/Long.stat.golden | 15 ++ .../test/Spec/golden/9.6/Short.stat.golden | 21 ++ plutus-tx/src/PlutusTx/Applicative.hs | 7 + plutus-tx/src/PlutusTx/AssocMap.hs | 16 +- plutus-tx/src/PlutusTx/ErrorCodes.hs | 6 + plutus-tx/src/PlutusTx/Functor.hs | 8 +- plutus-tx/src/PlutusTx/List.hs | 39 +++ plutus-tx/src/PlutusTx/Prelude.hs | 2 +- plutus-tx/src/PlutusTx/Show.hs | 1 + 15 files changed, 381 insertions(+), 14 deletions(-) create mode 100644 plutus-ledger-api/test/Spec/Value.hs create mode 100644 plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden create mode 100644 plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden create mode 100644 plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden create mode 100644 plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden diff --git a/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs b/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs index bf8c9288ed7..7696a5c46fd 100644 --- a/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs +++ b/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs @@ -722,12 +722,6 @@ aggregateMultiKeyG2Script message pubKeys aggregateSignature bs16Null dst = do calcAggregatedPubkey :: BuiltinBLS12_381_G2_Element -> Integer -> BuiltinBLS12_381_G2_Element calcAggregatedPubkey pk ds = ds `Tx.bls12_381_G2_scalarMul` pk - -- PlutusTx.Prelude has no last - last :: [a] -> a - last [] = traceError "last: needs at least two elements" - last [x] = x - last (_:xs) = last xs - {- An alternative implementation of calcAggregatedPubkeys which uses a different -- means of scalar exponentiation. It results in a slightly smaller script using less CPU but -- considerably more memory, so the overall cost is a greater. diff --git a/plutus-ledger-api/plutus-ledger-api.cabal b/plutus-ledger-api/plutus-ledger-api.cabal index f000ab909bc..5eb788196cd 100644 --- a/plutus-ledger-api/plutus-ledger-api.cabal +++ b/plutus-ledger-api/plutus-ledger-api.cabal @@ -141,6 +141,7 @@ test-suite plutus-ledger-api-test Spec.Eval Spec.Interval Spec.NoThunks + Spec.Value Spec.Versions build-depends: @@ -154,7 +155,9 @@ test-suite plutus-ledger-api-test , nothunks , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.14 , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.14 - , plutus-tx:plutus-tx-testlib ^>=1.14 + , plutus-tx-plugin ^>=1.14 + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.14 + , prettyprinter , tasty , tasty-hedgehog , tasty-hunit diff --git a/plutus-ledger-api/test/Spec.hs b/plutus-ledger-api/test/Spec.hs index 8d73e29526f..3caf021bedc 100644 --- a/plutus-ledger-api/test/Spec.hs +++ b/plutus-ledger-api/test/Spec.hs @@ -11,6 +11,7 @@ import Spec.CostModelParams qualified import Spec.Eval qualified import Spec.Interval qualified import Spec.NoThunks qualified +import Spec.Value qualified import Spec.Versions qualified import Test.Tasty @@ -104,4 +105,5 @@ tests = testGroup "plutus-ledger-api" [ , Spec.CostModelParams.tests , Spec.NoThunks.tests , Spec.CBOR.DeserialiseFailureInfo.tests + , Spec.Value.test_EqValue ] diff --git a/plutus-ledger-api/test/Spec/Value.hs b/plutus-ledger-api/test/Spec/Value.hs new file mode 100644 index 00000000000..c4f8879f33f --- /dev/null +++ b/plutus-ledger-api/test/Spec/Value.hs @@ -0,0 +1,231 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TemplateHaskell #-} + +{-# OPTIONS_GHC -fplugin PlutusTx.Plugin #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:defer-errors #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:context-level=0 #-} + +module Spec.Value where + +import Prelude qualified as Haskell + +import PlutusLedgerApi.V1.Value + +import PlutusTx.AssocMap qualified as AssocMap +import PlutusTx.Base +import PlutusTx.Builtins +import PlutusTx.Code (CompiledCode, getPlc, unsafeApplyCode) +import PlutusTx.Lift +import PlutusTx.List qualified as ListTx +import PlutusTx.Maybe +import PlutusTx.Numeric +import PlutusTx.Prelude +import PlutusTx.Show (toDigits) +import PlutusTx.TH (compile) +import PlutusTx.Traversable qualified as Tx + +import PlutusCore.Builtin qualified as PLC +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults qualified as PLC +import PlutusCore.Quote qualified as PLC +import UntypedPlutusCore qualified as PLC +import UntypedPlutusCore.Evaluation.Machine.Cek qualified as PLC + +import Control.Exception qualified as Haskell +import Data.Functor qualified as Haskell +import Data.List qualified as Haskell +import Data.Map qualified as Map +import Prettyprinter qualified as Pretty +import Test.Tasty +import Test.Tasty.Extras + +{-# INLINEABLE scalingFactor #-} +scalingFactor :: Integer +scalingFactor = 4 + +{-# INLINEABLE patternOptions #-} +-- | A list of \"patterns\", each of which can be turned into 'Value's. +-- +-- We use the patterns to construct lists of tokens: the first element of a tuple becomes a +-- 'TokenName' and the second one stays an 'Integer', so that the result can be used to create a +-- @Map TokenName Integer@. +-- +-- Similarly, we use the patterns to construct lists of currencies: the first element of a tuple +-- becomes a 'CurrencySymbol' and the second one is used as the index in the list of tokens that +-- was described in the previous point. +patternOptions :: [[(Integer, Integer)]] +patternOptions = + [ [] + , [(1,0)] + , [(1,1)] + , [(1,1), (2,2)] + , [(1,0), (2,2), (1,1)] + , [(2,3), (1,0), (2,2), (1,1)] + , [(2,2), (2,3), (1,0), (2,4), (1,1)] + , [(2,2), (2,3), (1,0), (3,5), (2,4), (1,1)] + , [(2,2), (2,3), (1,0), (3,5), (3,6), (2,4), (1,1)] + , [(2,2), (2,3), (1,0), (3,5), (3,6), (2,4), (1,1), (2,7)] + , [(1,9), (2,2), (6,10), (2,3), (1,0), (4,10), (3,5), (5,0), (3,6), (2,4), (1,1), (2,7), (4,8)] + ] + +{-# INLINEABLE integerToByteString #-} +integerToByteString :: Integer -> BuiltinByteString +integerToByteString n = + if n < 0 + then "-" `appendByteString` integerToByteString (negate n) + -- @48@ is the ASCII code of @0@. + else ListTx.foldr (consByteString . (48 +)) emptyByteString $ toDigits n + +{-# INLINEABLE replicateToByteString #-} +-- | Like 'integerToByteString' but generates longer bytestrings, so that repeated recalculations of +-- currency/token name comparisons get reflected in the budget tests in a visible manner. +replicateToByteString :: Integer -> BuiltinByteString +replicateToByteString i = + ListTx.foldr id emptyByteString $ + ListTx.replicate iTo6 (appendByteString $ integerToByteString i) + where + iTo2 = i * i + iTo4 = iTo2 * iTo2 + iTo6 = iTo4 * iTo2 + +{-# INLINEABLE tokenListOptions #-} +tokenListOptions :: [[(TokenName, Integer)]] +tokenListOptions = + ListTx.map + (ListTx.map $ \(i, x) -> (TokenName $ replicateToByteString i, x)) + patternOptions + +{-# INLINEABLE currencyListOptions #-} +currencyListOptions :: [[(CurrencySymbol, [(TokenName, Integer)])]] +currencyListOptions = + ListTx.map + (ListTx.map $ \(i, x) -> + ( CurrencySymbol $ replicateToByteString i + , tokenListOptions ListTx.!! x + )) + patternOptions + +{-# INLINEABLE longCurrencyChunk #-} +-- | A \"long\" list of currencies each with a \"long\" list of tokens for stress-testing (one +-- doesn't need many elements to stress-test Plutus Tx, hence the quotes). +longCurrencyChunk :: [(CurrencySymbol, [(TokenName, Integer)])] +longCurrencyChunk + = ListTx.concatMap Tx.sequence + . ListTx.zip (ListTx.map (CurrencySymbol . replicateToByteString) [1 .. scalingFactor]) + $ ListTx.replicate scalingFactor tokenListOptions + +{-# INLINEABLE insertHooks #-} +-- | Return a list whose head is the argument list with 'Nothing' inserted at the beginning, the +-- middle and the end of it (every other element is wrapped with 'Just'). The tail of the resulting +-- list comprises all possible versions of the head that we get by removing any number of +-- 'Nothing's. +-- +-- Rendering 'Nothing' as @*@ and @Just c@ as @c@ we get: +-- +-- >>> map (map $ maybe '*' id) $ insertHooks "abcd" +-- ["*ab*cd*","ab*cd*","*ab*cd","ab*cd","*abcd*","abcd*","*abcd","abcd"] +insertHooks :: [a] -> [[Maybe a]] +insertHooks xs0 = do + -- The fast and slow pointers trick to find the middle of the list. Check out + -- https://medium.com/@arifimran5/fast-and-slow-pointer-pattern-in-linked-list-43647869ac99 + -- if you're not familiar with the idea. + let go (_ : _ : xsFast) (x : xsSlow) = do + xs' <- go xsFast xsSlow + [Just x : xs'] + go _ xsSlow = do + prefix <- [[Nothing], []] + suffix <- [[Nothing], []] + [prefix ++ map Just xsSlow ++ suffix] + xs0' <- go xs0 xs0 + [Nothing : xs0', xs0'] + +{-# INLINEABLE currencyLongListOptions #-} +-- | The last and the biggest list of currencies from 'currencyListOptions' with 'longCurrencyChunk' +-- inserted in it in various ways as per 'insertHooks'. +currencyLongListOptions :: [[(CurrencySymbol, [(TokenName, Integer)])]] +currencyLongListOptions = + insertHooks (ListTx.last currencyListOptions) <&> \currencyListWithHooks -> + ListTx.concatMap (maybe longCurrencyChunk pure) currencyListWithHooks + +listsToValue :: [(CurrencySymbol, [(TokenName, Integer)])] -> Value +listsToValue = Value . AssocMap.fromList . ListTx.map (fmap AssocMap.fromList) + +valueToLists :: Value -> [(CurrencySymbol, [(TokenName, Integer)])] +valueToLists = ListTx.map (fmap AssocMap.toList) . AssocMap.toList . getValue + +-- | Check equality of two compiled 'Value's through UPLC evaluation and annotate the result with +-- the cost of evaluation. +eqValueCode :: CompiledCode Value -> CompiledCode Value -> (Bool, PLC.CountingSt) +eqValueCode valueCode1 valueCode2 = (res, cost) where + prog = + $$(compile [|| \value1 value2 -> toBuiltin ((value1 :: Value) == value2) ||]) + `unsafeApplyCode` valueCode1 `unsafeApplyCode` valueCode2 + (errOrRes, cost) + = PLC.runCekNoEmit PLC.defaultCekParameters PLC.counting + . PLC.runQuote + . PLC.unDeBruijnTermWith (Haskell.error "Free variable") + . PLC._progTerm + $ getPlc prog + res = either Haskell.throw id $ errOrRes >>= PLC.readKnownSelf + +-- | Check equality of two compiled 'Value's directly in Haskell. +haskellEqValue :: Value -> Value -> Bool +haskellEqValue value1 value2 = toMap value1 Haskell.== toMap value2 where + toMap + = Map.filter (Haskell.not . Map.null) + . Haskell.fmap (Map.filter (Haskell./= 0)) + . Map.fromListWith (Map.unionWith (Haskell.+)) + . Haskell.map (Haskell.fmap $ Map.fromListWith (Haskell.+)) + . valueToLists + +-- | Check whether all currencies and tokens within each of the currencies occur uniquely. +allDistinct :: Value -> Bool +allDistinct + = Haskell.and + . Map.fromListWith (\_ _ -> False) + . Haskell.map (Haskell.fmap $ + Haskell.and . Map.fromListWith (\_ _ -> False) . Haskell.map (Haskell.fmap $ \_ -> True)) + . valueToLists + +-- | Return all the pairs of elements of the given list. +-- +-- > (x, y) `elem` pairs xs ==> fromJust (x `elemIndex` xs) <= fromJust (y `elemIndex` xs) +-- +-- >>> pairs "abc" +-- [('a','a'),('a','b'),('b','b'),('b','c'),('c','c')] +pairs :: [a] -> [(a, a)] +pairs [] = [] +pairs [x] = [(x, x)] +pairs (x : y : xs) = (x, x) : (x, y) : pairs (y : xs) + +-- | Convert each list of currencies to a 'Value', check whether those 'Value' are equal to each +-- other and dump the costs of all the checks to a golden file. +test_EqCurrencyList :: Haskell.String -> [[(CurrencySymbol, [(TokenName, Integer)])]] -> TestNested +test_EqCurrencyList name currencyLists = + nestedGoldenVsDoc name ".stat" . Pretty.vsep $ + let attachCode value = (value, liftCodeDef value) + valuesWithCodes = map (attachCode . listsToValue) currencyLists + in pairs valuesWithCodes Haskell.<&> \((value1, valueCode1), (value2, valueCode2)) -> + let eqResExp = value1 `haskellEqValue` value2 + (eqResAct, PLC.CountingSt budget) = valueCode1 `eqValueCode` valueCode2 + -- We need the 'allDistinct' checks, because duplicated + -- currencies/tokens-within-the-same-currency result in undefined behavior when + -- checking 'Value's for equality. + in if allDistinct value1 && allDistinct value2 && eqResAct /= eqResExp + then Haskell.error $ Haskell.intercalate "\n" + [ "Error when checking equality of" + , " " Haskell.++ Haskell.show value1 + , "and" + , " " Haskell.++ Haskell.show value2 + , "Expected " Haskell.++ Haskell.show eqResExp + , "But got " Haskell.++ Haskell.show eqResAct + ] + else Pretty.group $ Pretty.pretty budget + +test_EqValue :: TestTree +test_EqValue = + runTestNestedIn ["test", "Spec"] $ + testNestedGhc "golden" + [ test_EqCurrencyList "Short" currencyListOptions + , test_EqCurrencyList "Long" currencyLongListOptions + ] diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden new file mode 100644 index 00000000000..1f051c8bc37 --- /dev/null +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -0,0 +1,15 @@ +({cpu: 9780362526 | mem: 35002468}) +({cpu: 11535083020 | mem: 41619510}) +({cpu: 7773631953 | mem: 28259432}) +({cpu: 5769243585 | mem: 20971834}) +({cpu: 6924442130 | mem: 24754988}) +({cpu: 7745425322 | mem: 27984642}) +({cpu: 4446697967 | mem: 16138868}) +({cpu: 4033846923 | mem: 14573606}) +({cpu: 6808761202 | mem: 24376412}) +({cpu: 7477360785 | mem: 27205524}) +({cpu: 3869670543 | mem: 14302732}) +({cpu: 2884402957 | mem: 10629710}) +({cpu: 3952840806 | mem: 14128932}) +({cpu: 3754703216 | mem: 13744010}) +({cpu: 927859238 | mem: 3396606}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden new file mode 100644 index 00000000000..210cf0913b8 --- /dev/null +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -0,0 +1,21 @@ +({cpu: 5819100 | mem: 25400}) +({cpu: 10672100 | mem: 46500}) +({cpu: 16625882 | mem: 69804}) +({cpu: 20457371 | mem: 85206}) +({cpu: 23835153 | mem: 97310}) +({cpu: 31603198 | mem: 128414}) +({cpu: 44205186 | mem: 176624}) +({cpu: 43792795 | mem: 176122}) +({cpu: 51542186 | mem: 208524}) +({cpu: 59371679 | mem: 237032}) +({cpu: 83158026 | mem: 328650}) +({cpu: 77267223 | mem: 306844}) +({cpu: 100929378 | mem: 399060}) +({cpu: 115575158 | mem: 455670}) +({cpu: 146823868 | mem: 571500}) +({cpu: 156084569 | mem: 606208}) +({cpu: 198957295 | mem: 766946}) +({cpu: 204775120 | mem: 790948}) +({cpu: 236346454 | mem: 914568}) +({cpu: 390817706 | mem: 1513172}) +({cpu: 927859238 | mem: 3396606}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden new file mode 100644 index 00000000000..a526434d8c5 --- /dev/null +++ b/plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden @@ -0,0 +1,15 @@ +({cpu: 9973470526 | mem: 35842068}) +({cpu: 11745533020 | mem: 42534510}) +({cpu: 7920693953 | mem: 28898832}) +({cpu: 5904207585 | mem: 21558634}) +({cpu: 7059406130 | mem: 25341788}) +({cpu: 7892487322 | mem: 28624042}) +({cpu: 4530371967 | mem: 16502668}) +({cpu: 4110666923 | mem: 14907606}) +({cpu: 6943725202 | mem: 24963212}) +({cpu: 7628424785 | mem: 27862324}) +({cpu: 3955552543 | mem: 14676132}) +({cpu: 2961222957 | mem: 10963710}) +({cpu: 4029660806 | mem: 14462932}) +({cpu: 3840585216 | mem: 14117410}) +({cpu: 948559238 | mem: 3486606}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden new file mode 100644 index 00000000000..8db9c792d53 --- /dev/null +++ b/plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden @@ -0,0 +1,21 @@ +({cpu: 5819100 | mem: 25400}) +({cpu: 10672100 | mem: 46500}) +({cpu: 16901882 | mem: 71004}) +({cpu: 20733371 | mem: 86406}) +({cpu: 24387153 | mem: 99710}) +({cpu: 32155198 | mem: 130814}) +({cpu: 45309186 | mem: 181424}) +({cpu: 44850795 | mem: 180722}) +({cpu: 52876186 | mem: 214324}) +({cpu: 60705679 | mem: 242832}) +({cpu: 85320026 | mem: 338050}) +({cpu: 79383223 | mem: 316044}) +({cpu: 104103378 | mem: 412860}) +({cpu: 118749158 | mem: 469470}) +({cpu: 151377868 | mem: 591300}) +({cpu: 160638569 | mem: 626008}) +({cpu: 205167295 | mem: 793946}) +({cpu: 210985120 | mem: 817948}) +({cpu: 244304454 | mem: 949168}) +({cpu: 398821706 | mem: 1547972}) +({cpu: 948559238 | mem: 3486606}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/Applicative.hs b/plutus-tx/src/PlutusTx/Applicative.hs index 4def78ee675..01584375e1d 100644 --- a/plutus-tx/src/PlutusTx/Applicative.hs +++ b/plutus-tx/src/PlutusTx/Applicative.hs @@ -9,6 +9,7 @@ import PlutusTx.Base import PlutusTx.Bool (Bool) import PlutusTx.Either (Either (..)) import PlutusTx.Functor +import PlutusTx.List qualified as List import PlutusTx.Maybe (Maybe (..)) import PlutusTx.Monoid (Monoid (..), mappend) @@ -60,6 +61,12 @@ instance Applicative (Either a) where Left e <*> _ = Left e Right f <*> r = fmap f r +instance Applicative [] where + {-# INLINABLE pure #-} + pure x = [x] + {-# INLINABLE (<*>) #-} + fs <*> xs = List.concatMap (\f -> List.map f xs) fs + instance Applicative Identity where {-# INLINABLE pure #-} pure = Identity diff --git a/plutus-tx/src/PlutusTx/AssocMap.hs b/plutus-tx/src/PlutusTx/AssocMap.hs index fead3774fe4..3ffd299d7c7 100644 --- a/plutus-tx/src/PlutusTx/AssocMap.hs +++ b/plutus-tx/src/PlutusTx/AssocMap.hs @@ -18,6 +18,7 @@ module PlutusTx.AssocMap ( empty, null, fromList, + fromListSafe, toList, keys, elems, @@ -35,9 +36,8 @@ module PlutusTx.AssocMap ( mapThese, ) where -import Control.DeepSeq (NFData) -import Data.Data -import GHC.Generics (Generic) +import Prelude qualified as Haskell + import PlutusTx.Builtins qualified as P import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.IsData @@ -45,7 +45,10 @@ import PlutusTx.Lift (makeLift) import PlutusTx.Prelude hiding (all, filter, mapMaybe, null, toList) import PlutusTx.Prelude qualified as P import PlutusTx.These -import Prelude qualified as Haskell + +import Control.DeepSeq (NFData) +import Data.Data +import GHC.Generics (Generic) import Prettyprinter (Pretty (..)) {- HLINT ignore "Use newtype instead of data" -} @@ -149,6 +152,10 @@ instance (Pretty k, Pretty v) => Pretty (Map k v) where fromList :: [(k, v)] -> Map k v fromList = Map +{-# INLINEABLE fromListSafe #-} +fromListSafe :: Eq k => [(k, v)] -> Map k v +fromListSafe = foldr (uncurry insert) empty + {-# INLINEABLE toList #-} toList :: Map k v -> [(k, v)] toList (Map l) = l @@ -166,7 +173,6 @@ lookup c (Map xs) = go xs {-# INLINEABLE member #-} - -- | Is the key a member of the map? member :: forall k v. (Eq k) => k -> Map k v -> Bool member k m = isJust (lookup k m) diff --git a/plutus-tx/src/PlutusTx/ErrorCodes.hs b/plutus-tx/src/PlutusTx/ErrorCodes.hs index dfdd2586ee4..e4bf3c687c8 100644 --- a/plutus-tx/src/PlutusTx/ErrorCodes.hs +++ b/plutus-tx/src/PlutusTx/ErrorCodes.hs @@ -38,6 +38,7 @@ allErrorCodes = Map.fromList [ ("PT1", "TH Generation of Indexed Data Error") , ("PT16", "PlutusTx.Enum.Ordering.succ: bad argument") , ("PT17", "PlutusTx.Enum.Ordering.pred: bad argument") , ("PT18", "PlutusTx.Enum.Ordering.toEnum: bad argument") + , ("PT19", "PlutusTx.List.last: empty list") ] -- | The error happens in TH generation of indexed data @@ -129,3 +130,8 @@ predOrderingBadArgumentError = "PT17" {-# INLINABLE toEnumOrderingBadArgumentError #-} toEnumOrderingBadArgumentError :: Builtins.BuiltinString toEnumOrderingBadArgumentError = "PT18" + +-- | PlutusTx.List.last: empty list +{-# INLINABLE lastEmptyListError #-} +lastEmptyListError :: Builtins.BuiltinString +lastEmptyListError = "PT19" diff --git a/plutus-tx/src/PlutusTx/Functor.hs b/plutus-tx/src/PlutusTx/Functor.hs index 021d398a59e..1878863c226 100644 --- a/plutus-tx/src/PlutusTx/Functor.hs +++ b/plutus-tx/src/PlutusTx/Functor.hs @@ -1,7 +1,7 @@ {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE LambdaCase #-} {-# OPTIONS_GHC -fno-omit-interface-pragmas #-} -module PlutusTx.Functor (Functor(..), (<$>), (<$)) where +module PlutusTx.Functor (Functor(..), (<$>), (<&>), (<$)) where import Control.Applicative (Const (..)) import Data.Functor.Identity (Identity (..)) @@ -27,6 +27,12 @@ infixl 4 <$> (<$>) :: Functor f => (a -> b) -> f a -> f b (<$>) = fmap +infixl 1 <&> +-- | Plutus Tx version of '(Data.Functor.<&>)'. +{-# INLINABLE (<&>) #-} +(<&>) :: Functor f => f a -> (a -> b) -> f b +as <&> f = f <$> as + infixl 4 <$ {-# INLINABLE (<$) #-} -- | Plutus Tx version of '(Data.Functor.<$)'. diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index 33f3d5abe7e..87a5460ea58 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -3,6 +3,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -fno-omit-interface-pragmas #-} module PlutusTx.List ( + uncons, null, map, and, @@ -20,10 +21,14 @@ module PlutusTx.List ( foldr, foldl, reverse, + concat, + concatMap, zip, + unzip, (++), (!!), head, + last, tail, take, drop, @@ -49,6 +54,13 @@ import Prelude (Maybe (..), (.)) {- HLINT ignore -} +{-# INLINABLE uncons #-} +-- | Plutus Tx version of 'Data.List.uncons'. +uncons :: [a] -> Maybe (a, [a]) +uncons = \case + [] -> Nothing + x:xs -> Just (x, xs) + {-# INLINABLE null #-} -- | Test whether a list is empty. null :: [a] -> Bool @@ -162,6 +174,19 @@ infixr 5 ++ (++) :: [a] -> [a] -> [a] (++) l r = foldr (:) r l +{-# INLINABLE concat #-} +-- | Plutus Tx version of 'Data.List.concat'. +-- +-- >>> concat [[1, 2], [3], [4, 5]] +-- [1,2,3,4,5] +concat :: [[a]] -> [a] +concat = foldr (++) [] + +{-# INLINABLE concatMap #-} +-- | Plutus Tx version of 'Data.List.concatMap'. +concatMap :: (a -> [b]) -> [a] -> [b] +concatMap f = foldr (\x ys -> f x ++ ys) [] + {-# INLINABLE filter #-} -- | Plutus Tx version of 'Data.List.filter'. -- @@ -235,12 +260,26 @@ zip [] _bs = [] zip _as [] = [] zip (a:as) (b:bs) = (a,b) : zip as bs +{-# INLINABLE unzip #-} +-- | Plutus Tx version of 'Data.List.unzip'. +unzip :: [(a,b)] -> ([a], [b]) +unzip [] = ([], []) +unzip ((x, y) : xys) = case unzip xys of + (xs, ys) -> (x : xs, y : ys) + {-# INLINABLE head #-} -- | Plutus Tx version of 'Data.List.head'. head :: [a] -> a head [] = traceError headEmptyListError head (x : _) = x +{-# INLINABLE last #-} +-- | Plutus Tx version of 'Data.List.last'. +last :: [a] -> a +last [x] = x +last (_:xs) = last xs +last [] = traceError lastEmptyListError + {-# INLINABLE tail #-} -- | Plutus Tx version of 'Data.List.tail'. tail :: [a] -> [a] diff --git a/plutus-tx/src/PlutusTx/Prelude.hs b/plutus-tx/src/PlutusTx/Prelude.hs index 26036f27fd7..ef6ada5f2d7 100644 --- a/plutus-tx/src/PlutusTx/Prelude.hs +++ b/plutus-tx/src/PlutusTx/Prelude.hs @@ -142,7 +142,7 @@ import PlutusTx.Foldable as Foldable import PlutusTx.Functor as Functor import PlutusTx.IsData import PlutusTx.Lattice as Lattice -import PlutusTx.List as List hiding (foldl, foldr) +import PlutusTx.List as List hiding (concat, concatMap, foldl, foldr) import PlutusTx.Maybe as Maybe import PlutusTx.Monoid as Monoid import PlutusTx.Numeric as Numeric diff --git a/plutus-tx/src/PlutusTx/Show.hs b/plutus-tx/src/PlutusTx/Show.hs index 22a4107587b..5b16c1ebf9c 100644 --- a/plutus-tx/src/PlutusTx/Show.hs +++ b/plutus-tx/src/PlutusTx/Show.hs @@ -7,6 +7,7 @@ module PlutusTx.Show ( Show (..), ShowS, + toDigits, showString, showSpace, showCommaSpace, From 20fc7e67aced71bcd70898350189bc67cb3c9641 Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 3 Oct 2023 23:18:19 +0200 Subject: [PATCH 02/40] [PlutusTx] Make 'Eq' for 'Value' lenient and faster --- .../src/PlutusLedgerApi/V1/Value.hs | 33 ++++- plutus-ledger-api/test/Spec/Value.hs | 11 +- .../test/Spec/golden/9.2/Long.stat.golden | 30 ++-- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++--- plutus-tx/plutus-tx.cabal | 1 + plutus-tx/src/PlutusTx/AssocMap.hs | 1 + plutus-tx/src/PlutusTx/SortedMap.hs | 137 ++++++++++++++++++ 7 files changed, 203 insertions(+), 52 deletions(-) create mode 100644 plutus-tx/src/PlutusTx/SortedMap.hs diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index bbb056be10a..3d71d2fee4c 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -6,6 +6,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} +{-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Wno-orphans #-} -- Prevent unboxing, which the plugin can't deal with @@ -63,6 +64,8 @@ import PlutusTx.AssocMap qualified as Map import PlutusTx.Lift (makeLift) import PlutusTx.Ord qualified as Ord import PlutusTx.Prelude as PlutusTx hiding (sort) +import PlutusTx.SortedMap (SortedMap) +import PlutusTx.SortedMap qualified as SortedMap import PlutusTx.These (These (..)) import Prettyprinter (Pretty, (<>)) import Prettyprinter.Extras (PrettyShow (PrettyShow)) @@ -191,6 +194,30 @@ newtype Value = Value { getValue :: Map.Map CurrencySymbol (Map.Map TokenName In instance Haskell.Eq Value where (==) = eq +{-# INLINEABLE sortSumMaps #-} +sortSumMaps :: Ord k => [Map.Map k Integer] -> SortedMap k Integer +sortSumMaps = SortedMap.sortFoldMaps (+) (+) id + +{-# INLINEABLE eq #-} +eq :: Value -> Value -> Bool +eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = + case SortedMap.matchKVs structEqMap currs1 currs2 of + SortedMap.MatchSuccess -> True + SortedMap.MatchFailure currs1' currs2' -> + SortedMap.pointwiseEqWith (all $ Map.all (== 0)) eqMaps currs1' currs2' + where + structEqMap :: Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool + structEqMap (Map.toList -> tokens1) (Map.toList -> tokens2) = + SortedMap.pointwiseEqWith + (== 0) + (==) + (SortedMap.UnsafeSortedMap tokens1) + (SortedMap.UnsafeSortedMap tokens2) + + eqMaps :: [Map.Map TokenName Integer] -> [Map.Map TokenName Integer] -> Bool + eqMaps maps1 maps2 = + SortedMap.pointwiseEqWith (== 0) (==) (sortSumMaps maps1) (sortSumMaps maps2) + instance Eq Value where {-# INLINABLE (==) #-} (==) = eq @@ -323,12 +350,6 @@ checkBinRel f l r = These a b -> f a b in checkPred unThese l r -{-# INLINABLE eq #-} --- | Check whether one 'Value' is equal to another. See 'Value' for an explanation of how operations on 'Value's work. -eq :: Value -> Value -> Bool --- If both are zero then checkBinRel will be vacuously true, but this is fine. -eq = checkBinRel (==) - {-# INLINABLE geq #-} -- | Check whether one 'Value' is greater than or equal to another. See 'Value' for an explanation of how operations on 'Value's work. geq :: Value -> Value -> Bool diff --git a/plutus-ledger-api/test/Spec/Value.hs b/plutus-ledger-api/test/Spec/Value.hs index c4f8879f33f..f14257d45b2 100644 --- a/plutus-ledger-api/test/Spec/Value.hs +++ b/plutus-ledger-api/test/Spec/Value.hs @@ -178,15 +178,6 @@ haskellEqValue value1 value2 = toMap value1 Haskell.== toMap value2 where . Haskell.map (Haskell.fmap $ Map.fromListWith (Haskell.+)) . valueToLists --- | Check whether all currencies and tokens within each of the currencies occur uniquely. -allDistinct :: Value -> Bool -allDistinct - = Haskell.and - . Map.fromListWith (\_ _ -> False) - . Haskell.map (Haskell.fmap $ - Haskell.and . Map.fromListWith (\_ _ -> False) . Haskell.map (Haskell.fmap $ \_ -> True)) - . valueToLists - -- | Return all the pairs of elements of the given list. -- -- > (x, y) `elem` pairs xs ==> fromJust (x `elemIndex` xs) <= fromJust (y `elemIndex` xs) @@ -211,7 +202,7 @@ test_EqCurrencyList name currencyLists = -- We need the 'allDistinct' checks, because duplicated -- currencies/tokens-within-the-same-currency result in undefined behavior when -- checking 'Value's for equality. - in if allDistinct value1 && allDistinct value2 && eqResAct /= eqResExp + in if eqResAct /= eqResExp then Haskell.error $ Haskell.intercalate "\n" [ "Error when checking equality of" , " " Haskell.++ Haskell.show value1 diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index 1f051c8bc37..692f4d82278 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 9780362526 | mem: 35002468}) -({cpu: 11535083020 | mem: 41619510}) -({cpu: 7773631953 | mem: 28259432}) -({cpu: 5769243585 | mem: 20971834}) -({cpu: 6924442130 | mem: 24754988}) -({cpu: 7745425322 | mem: 27984642}) -({cpu: 4446697967 | mem: 16138868}) -({cpu: 4033846923 | mem: 14573606}) -({cpu: 6808761202 | mem: 24376412}) -({cpu: 7477360785 | mem: 27205524}) -({cpu: 3869670543 | mem: 14302732}) -({cpu: 2884402957 | mem: 10629710}) -({cpu: 3952840806 | mem: 14128932}) -({cpu: 3754703216 | mem: 13744010}) -({cpu: 927859238 | mem: 3396606}) \ No newline at end of file +({cpu: 2735623773 | mem: 9973942}) +({cpu: 3750565215 | mem: 13709978}) +({cpu: 1911540911 | mem: 6969454}) +({cpu: 6898744071 | mem: 24595468}) +({cpu: 1911540911 | mem: 6969454}) +({cpu: 2694888025 | mem: 9743578}) +({cpu: 1087458049 | mem: 3964966}) +({cpu: 2550177527 | mem: 9277530}) +({cpu: 1911540911 | mem: 6969454}) +({cpu: 2405467029 | mem: 8811482}) +({cpu: 1087458049 | mem: 3964966}) +({cpu: 3852439207 | mem: 13755996}) +({cpu: 1087458049 | mem: 3964966}) +({cpu: 1349789839 | mem: 4845082}) +({cpu: 263375187 | mem: 960478}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index 210cf0913b8..a9af6ccc75e 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 5819100 | mem: 25400}) -({cpu: 10672100 | mem: 46500}) -({cpu: 16625882 | mem: 69804}) -({cpu: 20457371 | mem: 85206}) -({cpu: 23835153 | mem: 97310}) -({cpu: 31603198 | mem: 128414}) -({cpu: 44205186 | mem: 176624}) -({cpu: 43792795 | mem: 176122}) -({cpu: 51542186 | mem: 208524}) -({cpu: 59371679 | mem: 237032}) -({cpu: 83158026 | mem: 328650}) -({cpu: 77267223 | mem: 306844}) -({cpu: 100929378 | mem: 399060}) -({cpu: 115575158 | mem: 455670}) -({cpu: 146823868 | mem: 571500}) -({cpu: 156084569 | mem: 606208}) -({cpu: 198957295 | mem: 766946}) -({cpu: 204775120 | mem: 790948}) -({cpu: 236346454 | mem: 914568}) -({cpu: 390817706 | mem: 1513172}) -({cpu: 927859238 | mem: 3396606}) \ No newline at end of file +({cpu: 6279100 | mem: 27400}) +({cpu: 12167100 | mem: 53000}) +({cpu: 10739491 | mem: 45502}) +({cpu: 12799980 | mem: 53204}) +({cpu: 13925371 | mem: 56806}) +({cpu: 21911784 | mem: 88910}) +({cpu: 21296076 | mem: 85012}) +({cpu: 52996509 | mem: 213726}) +({cpu: 25480467 | mem: 101914}) +({cpu: 59436879 | mem: 235436}) +({cpu: 36037486 | mem: 141424}) +({cpu: 96176737 | mem: 370776}) +({cpu: 49780385 | mem: 192238}) +({cpu: 74566880 | mem: 286458}) +({cpu: 66714806 | mem: 254356}) +({cpu: 152038904 | mem: 568248}) +({cpu: 86835541 | mem: 327778}) +({cpu: 280245124 | mem: 1036796}) +({cpu: 110142590 | mem: 412504}) +({cpu: 181631666 | mem: 686654}) +({cpu: 263375187 | mem: 960478}) \ No newline at end of file diff --git a/plutus-tx/plutus-tx.cabal b/plutus-tx/plutus-tx.cabal index a7819301f2e..e87fa902585 100644 --- a/plutus-tx/plutus-tx.cabal +++ b/plutus-tx/plutus-tx.cabal @@ -79,6 +79,7 @@ library PlutusTx.Semigroup PlutusTx.Show PlutusTx.Show.TH + PlutusTx.SortedMap PlutusTx.Sqrt PlutusTx.TH PlutusTx.These diff --git a/plutus-tx/src/PlutusTx/AssocMap.hs b/plutus-tx/src/PlutusTx/AssocMap.hs index 3ffd299d7c7..915ae255d57 100644 --- a/plutus-tx/src/PlutusTx/AssocMap.hs +++ b/plutus-tx/src/PlutusTx/AssocMap.hs @@ -9,6 +9,7 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE UndecidableInstances #-} + {-# OPTIONS_GHC -Wno-name-shadowing #-} -- | A map represented as an "association list" of key-value pairs. diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs new file mode 100644 index 00000000000..cba149d91d4 --- /dev/null +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -0,0 +1,137 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE ViewPatterns #-} + +{-# OPTIONS_GHC -fno-omit-interface-pragmas #-} +{-# OPTIONS_GHC -fno-spec-constr #-} +{-# OPTIONS_GHC -fno-specialise #-} + +module PlutusTx.SortedMap + ( SortedMap (..) + , empty + , singleton + , insertOneWith + , insertOne + , fromListWith + , fromList + , mergeWith + , MatchResult (..) + , matchKVs + , pointwiseEqWith + , sortFoldMaps + ) where + +import Prelude qualified as Haskell + +import PlutusTx.AssocMap qualified as Map +import PlutusTx.Base +import PlutusTx.Ord +import PlutusTx.Prelude + +newtype SortedMap k v = UnsafeSortedMap + { unSortedMap :: [(k, v)] + } deriving stock (Haskell.Show) + +{-# INLINABLE empty #-} +empty :: SortedMap k v +empty = UnsafeSortedMap [] + +{-# INLINABLE singleton #-} +singleton :: k -> v -> SortedMap k [v] +singleton k v = UnsafeSortedMap [(k, [v])] + +{-# INLINE insertOneWith #-} +insertOneWith + :: forall k v w. Ord k + => (v -> w -> w) -> (v -> w) -> k -> v -> SortedMap k w -> SortedMap k w +insertOneWith op inj k0 v0 = UnsafeSortedMap . go . unSortedMap where + go :: [(k, w)] -> [(k, w)] + go [] = [(k0, inj v0)] + go kws@((k, w) : kws') = case k0 `compare` k of + LT -> (k0, inj v0) : kws + EQ -> (k0, op v0 w) : kws' + GT -> (k, w) : go kws' + +{-# INLINABLE insertOne #-} +insertOne :: Ord k => k -> v -> SortedMap k [v] -> SortedMap k [v] +insertOne = insertOneWith (:) (: []) + +-- TODO: proper mergesort +{-# INLINE fromListWith #-} +fromListWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> [(k, v)] -> SortedMap k w +fromListWith act inj = go where + go :: [(k, v)] -> SortedMap k w + go [] = UnsafeSortedMap [] + go ((k, v) : kvs) = insertOneWith act inj k v $ go kvs + +{-# INLINABLE fromList #-} +fromList :: Ord k => [(k, v)] -> SortedMap k [v] +fromList = fromListWith (:) (: []) + +{-# INLINE mergeWith #-} +mergeWith + :: forall k v. Ord k + => (v -> v -> v) -> SortedMap k v -> SortedMap k v -> SortedMap k v +mergeWith op (UnsafeSortedMap kvs1_0) (UnsafeSortedMap kvs2_0) = + UnsafeSortedMap $ go kvs1_0 kvs2_0 + where + go :: [(k, v)] -> [(k, v)] -> [(k, v)] + go [] kvs2 = kvs2 + go kvs1 [] = kvs1 + go ((k1, v1) : kvs1) ((k2, v2) : kvs2) = case k1 `compare` k2 of + LT -> (k1, v1) : go kvs1 ((k2, v2) : kvs2) + EQ -> (k1, op v1 v2) : go kvs1 kvs2 + GT -> (k2, v2) : go ((k1, v1) : kvs1) kvs2 + +data MatchResult a + = MatchSuccess + | MatchFailure a a + +{-# INLINABLE matchKVs #-} +matchKVs + :: forall k v. Ord k + => (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) +matchKVs structEqV = go where + go :: [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) + go [] [] = MatchSuccess + go [] kvs2 = MatchFailure empty (fromList kvs2) + go kvs1 [] = MatchFailure (fromList kvs1) empty + go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') + | k1 == k2 = case go kvs1' kvs2' of + MatchSuccess -> if structEqV v1 v2 + then MatchSuccess + else MatchFailure + (singleton k1 v1) + (singleton k1 v2) + MatchFailure kvs1'' kvs2'' -> + MatchFailure + (insertOne k1 v1 kvs1'') + (insertOne k1 v2 kvs2'') + | otherwise = + MatchFailure + (fromList kvs1) + (fromList kvs2) + +{-# INLINE pointwiseEqWith #-} +pointwiseEqWith + :: forall k v. Eq k + => (v -> Bool) -> (v -> v -> Bool) -> SortedMap k v -> SortedMap k v -> Bool +pointwiseEqWith is0 eqV (UnsafeSortedMap kvs01) (UnsafeSortedMap kvs02) = go kvs01 kvs02 where + go :: [(k, v)] -> [(k, v)] -> Bool + go [] [] = True + go [] kvs2 = all (is0 . snd) kvs2 + go kvs1 [] = all (is0 . snd) kvs1 + go ((k1, v1) : kvs1) ((k2, v2) : kvs2) = + if k1 == k2 + then if go kvs1 kvs2 + then eqV v1 v2 + else False + else False + +{-# INLINE sortFoldMaps #-} +sortFoldMaps + :: forall k v w. Ord k + => (w -> w -> w) -> (v -> w -> w) -> (v -> w) -> [Map.Map k v] -> SortedMap k w +sortFoldMaps op act inj = go where + go :: [Map.Map k v] -> SortedMap k w + go [] = empty + go ((Map.toList -> kvs) : maps) = mergeWith op (fromListWith act inj kvs) (go maps) From 3c1fb77ffd34c789d0ddeaed6e2d409610dddd83 Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 4 Oct 2023 01:04:42 +0200 Subject: [PATCH 03/40] [PlutusTx] Experiment with 'MatchUnclear' and tildas --- .../src/PlutusLedgerApi/V1/Value.hs | 3 +- .../test/Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++++++++---------- plutus-tx/src/PlutusTx/SortedMap.hs | 31 +++++++------- 4 files changed, 54 insertions(+), 52 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 3d71d2fee4c..bc9b4e84403 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -203,7 +203,8 @@ eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = case SortedMap.matchKVs structEqMap currs1 currs2 of SortedMap.MatchSuccess -> True - SortedMap.MatchFailure currs1' currs2' -> + SortedMap.MatchFailure -> False + SortedMap.MatchUnclear currs1' currs2' -> SortedMap.pointwiseEqWith (all $ Map.all (== 0)) eqMaps currs1' currs2' where structEqMap :: Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index 692f4d82278..108bd62a8a4 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2735623773 | mem: 9973942}) -({cpu: 3750565215 | mem: 13709978}) -({cpu: 1911540911 | mem: 6969454}) -({cpu: 6898744071 | mem: 24595468}) -({cpu: 1911540911 | mem: 6969454}) -({cpu: 2694888025 | mem: 9743578}) -({cpu: 1087458049 | mem: 3964966}) -({cpu: 2550177527 | mem: 9277530}) -({cpu: 1911540911 | mem: 6969454}) -({cpu: 2405467029 | mem: 8811482}) -({cpu: 1087458049 | mem: 3964966}) -({cpu: 3852439207 | mem: 13755996}) -({cpu: 1087458049 | mem: 3964966}) -({cpu: 1349789839 | mem: 4845082}) -({cpu: 263375187 | mem: 960478}) \ No newline at end of file +({cpu: 2675455773 | mem: 9712342}) +({cpu: 3739893215 | mem: 13663578}) +({cpu: 1869588911 | mem: 6787054}) +({cpu: 6868476071 | mem: 24463868}) +({cpu: 1869588911 | mem: 6787054}) +({cpu: 2687252025 | mem: 9710378}) +({cpu: 1063722049 | mem: 3861766}) +({cpu: 2542541527 | mem: 9244330}) +({cpu: 1869588911 | mem: 6787054}) +({cpu: 2397831029 | mem: 8778282}) +({cpu: 1063722049 | mem: 3861766}) +({cpu: 3834315207 | mem: 13677196}) +({cpu: 1063722049 | mem: 3861766}) +({cpu: 1345189839 | mem: 4825082}) +({cpu: 257855187 | mem: 936478}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index a9af6ccc75e..80247926ca2 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 6279100 | mem: 27400}) -({cpu: 12167100 | mem: 53000}) -({cpu: 10739491 | mem: 45502}) -({cpu: 12799980 | mem: 53204}) -({cpu: 13925371 | mem: 56806}) -({cpu: 21911784 | mem: 88910}) -({cpu: 21296076 | mem: 85012}) -({cpu: 52996509 | mem: 213726}) -({cpu: 25480467 | mem: 101914}) -({cpu: 59436879 | mem: 235436}) -({cpu: 36037486 | mem: 141424}) -({cpu: 96176737 | mem: 370776}) -({cpu: 49780385 | mem: 192238}) -({cpu: 74566880 | mem: 286458}) -({cpu: 66714806 | mem: 254356}) -({cpu: 152038904 | mem: 568248}) -({cpu: 86835541 | mem: 327778}) -({cpu: 280245124 | mem: 1036796}) -({cpu: 110142590 | mem: 412504}) -({cpu: 181631666 | mem: 686654}) -({cpu: 263375187 | mem: 960478}) \ No newline at end of file +({cpu: 6141100 | mem: 26800}) +({cpu: 12029100 | mem: 52400}) +({cpu: 10187491 | mem: 43102}) +({cpu: 12247980 | mem: 50804}) +({cpu: 13373371 | mem: 54406}) +({cpu: 21060784 | mem: 85210}) +({cpu: 20330076 | mem: 80812}) +({cpu: 50167509 | mem: 201426}) +({cpu: 24100467 | mem: 95914}) +({cpu: 58332879 | mem: 230636}) +({cpu: 34243486 | mem: 133624}) +({cpu: 93186737 | mem: 357776}) +({cpu: 47572385 | mem: 182638}) +({cpu: 69782880 | mem: 265658}) +({cpu: 64092806 | mem: 242956}) +({cpu: 144793904 | mem: 536748}) +({cpu: 83799541 | mem: 314578}) +({cpu: 268239124 | mem: 984596}) +({cpu: 106692590 | mem: 397504}) +({cpu: 181079666 | mem: 684254}) +({cpu: 257855187 | mem: 936478}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index cba149d91d4..591ccd848bf 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -43,7 +43,7 @@ singleton k v = UnsafeSortedMap [(k, [v])] insertOneWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> k -> v -> SortedMap k w -> SortedMap k w -insertOneWith op inj k0 v0 = UnsafeSortedMap . go . unSortedMap where +insertOneWith ~op ~inj ~k0 ~v0 = UnsafeSortedMap . go . unSortedMap where go :: [(k, w)] -> [(k, w)] go [] = [(k0, inj v0)] go kws@((k, w) : kws') = case k0 `compare` k of @@ -58,7 +58,7 @@ insertOne = insertOneWith (:) (: []) -- TODO: proper mergesort {-# INLINE fromListWith #-} fromListWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> [(k, v)] -> SortedMap k w -fromListWith act inj = go where +fromListWith ~act ~inj = go where go :: [(k, v)] -> SortedMap k w go [] = UnsafeSortedMap [] go ((k, v) : kvs) = insertOneWith act inj k v $ go kvs @@ -71,7 +71,7 @@ fromList = fromListWith (:) (: []) mergeWith :: forall k v. Ord k => (v -> v -> v) -> SortedMap k v -> SortedMap k v -> SortedMap k v -mergeWith op (UnsafeSortedMap kvs1_0) (UnsafeSortedMap kvs2_0) = +mergeWith ~op ~(UnsafeSortedMap kvs1_0) ~(UnsafeSortedMap kvs2_0) = UnsafeSortedMap $ go kvs1_0 kvs2_0 where go :: [(k, v)] -> [(k, v)] -> [(k, v)] @@ -84,30 +84,31 @@ mergeWith op (UnsafeSortedMap kvs1_0) (UnsafeSortedMap kvs2_0) = data MatchResult a = MatchSuccess - | MatchFailure a a + | MatchUnclear a a + | MatchFailure -{-# INLINABLE matchKVs #-} +{-# INLINE matchKVs #-} matchKVs :: forall k v. Ord k => (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) -matchKVs structEqV = go where +matchKVs ~structEqV = go where go :: [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) go [] [] = MatchSuccess - go [] kvs2 = MatchFailure empty (fromList kvs2) - go kvs1 [] = MatchFailure (fromList kvs1) empty + go [] kvs2 = MatchUnclear empty (fromList kvs2) + go kvs1 [] = MatchUnclear (fromList kvs1) empty go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') | k1 == k2 = case go kvs1' kvs2' of MatchSuccess -> if structEqV v1 v2 then MatchSuccess else MatchFailure - (singleton k1 v1) - (singleton k1 v2) - MatchFailure kvs1'' kvs2'' -> - MatchFailure + MatchUnclear kvs1'' kvs2'' -> + MatchUnclear (insertOne k1 v1 kvs1'') (insertOne k1 v2 kvs2'') + MatchFailure -> + MatchFailure | otherwise = - MatchFailure + MatchUnclear (fromList kvs1) (fromList kvs2) @@ -115,7 +116,7 @@ matchKVs structEqV = go where pointwiseEqWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> SortedMap k v -> SortedMap k v -> Bool -pointwiseEqWith is0 eqV (UnsafeSortedMap kvs01) (UnsafeSortedMap kvs02) = go kvs01 kvs02 where +pointwiseEqWith ~is0 ~eqV ~(UnsafeSortedMap kvs01) ~(UnsafeSortedMap kvs02) = go kvs01 kvs02 where go :: [(k, v)] -> [(k, v)] -> Bool go [] [] = True go [] kvs2 = all (is0 . snd) kvs2 @@ -131,7 +132,7 @@ pointwiseEqWith is0 eqV (UnsafeSortedMap kvs01) (UnsafeSortedMap kvs02) = go kvs sortFoldMaps :: forall k v w. Ord k => (w -> w -> w) -> (v -> w -> w) -> (v -> w) -> [Map.Map k v] -> SortedMap k w -sortFoldMaps op act inj = go where +sortFoldMaps ~op ~act ~inj = go where go :: [Map.Map k v] -> SortedMap k w go [] = empty go ((Map.toList -> kvs) : maps) = mergeWith op (fromListWith act inj kvs) (go maps) From f8f79377715efeb0e2ac05fad68bb264ff434844 Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 4 Oct 2023 15:42:26 +0200 Subject: [PATCH 04/40] Give up on handling duplicated keys --- .../src/PlutusLedgerApi/V1/Value.hs | 2 +- .../test/Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++++++++--------- plutus-tx/src/PlutusTx/List.hs | 4 +- plutus-tx/src/PlutusTx/SortedMap.hs | 44 ++++++++++++------- 5 files changed, 67 insertions(+), 55 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index bc9b4e84403..a542f363092 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -201,7 +201,7 @@ sortSumMaps = SortedMap.sortFoldMaps (+) (+) id {-# INLINEABLE eq #-} eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = - case SortedMap.matchKVs structEqMap currs1 currs2 of + case SortedMap.matchKVs (Map.all (== 0)) structEqMap currs1 currs2 of SortedMap.MatchSuccess -> True SortedMap.MatchFailure -> False SortedMap.MatchUnclear currs1' currs2' -> diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index 108bd62a8a4..727c42080a2 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2675455773 | mem: 9712342}) -({cpu: 3739893215 | mem: 13663578}) -({cpu: 1869588911 | mem: 6787054}) -({cpu: 6868476071 | mem: 24463868}) -({cpu: 1869588911 | mem: 6787054}) -({cpu: 2687252025 | mem: 9710378}) -({cpu: 1063722049 | mem: 3861766}) -({cpu: 2542541527 | mem: 9244330}) -({cpu: 1869588911 | mem: 6787054}) -({cpu: 2397831029 | mem: 8778282}) -({cpu: 1063722049 | mem: 3861766}) -({cpu: 3834315207 | mem: 13677196}) -({cpu: 1063722049 | mem: 3861766}) -({cpu: 1345189839 | mem: 4825082}) -({cpu: 257855187 | mem: 936478}) \ No newline at end of file +({cpu: 3214850974 | mem: 11765112}) +({cpu: 4156750856 | mem: 15469788}) +({cpu: 2244055244 | mem: 8212480}) +({cpu: 7713296844 | mem: 28132974}) +({cpu: 2244055244 | mem: 8212480}) +({cpu: 2967903666 | mem: 10924388}) +({cpu: 1273259514 | mem: 4659848}) +({cpu: 2823285168 | mem: 10458740}) +({cpu: 2244055244 | mem: 8212480}) +({cpu: 2678482670 | mem: 9992292}) +({cpu: 1273259514 | mem: 4659848}) +({cpu: 4316471980 | mem: 15769502}) +({cpu: 1273259514 | mem: 4659848}) +({cpu: 1489635480 | mem: 5446892}) +({cpu: 302463784 | mem: 1107216}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index 80247926ca2..c2c02cf9206 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 6141100 | mem: 26800}) -({cpu: 12029100 | mem: 52400}) -({cpu: 10187491 | mem: 43102}) -({cpu: 12247980 | mem: 50804}) -({cpu: 13373371 | mem: 54406}) -({cpu: 21060784 | mem: 85210}) -({cpu: 20330076 | mem: 80812}) -({cpu: 50167509 | mem: 201426}) -({cpu: 24100467 | mem: 95914}) -({cpu: 58332879 | mem: 230636}) -({cpu: 34243486 | mem: 133624}) -({cpu: 93186737 | mem: 357776}) -({cpu: 47572385 | mem: 182638}) -({cpu: 69782880 | mem: 265658}) -({cpu: 64092806 | mem: 242956}) -({cpu: 144793904 | mem: 536748}) -({cpu: 83799541 | mem: 314578}) -({cpu: 268239124 | mem: 984596}) -({cpu: 106692590 | mem: 397504}) -({cpu: 181079666 | mem: 684254}) -({cpu: 257855187 | mem: 936478}) \ No newline at end of file +({cpu: 4623100 | mem: 20200}) +({cpu: 6739100 | mem: 29400}) +({cpu: 7728100 | mem: 33700}) +({cpu: 9328589 | mem: 39402}) +({cpu: 10929078 | mem: 45104}) +({cpu: 13771567 | mem: 56206}) +({cpu: 21615761 | mem: 85214}) +({cpu: 23593761 | mem: 93814}) +({cpu: 24444761 | mem: 97514}) +({cpu: 23135370 | mem: 93112}) +({cpu: 38501758 | mem: 149728}) +({cpu: 32144662 | mem: 127220}) +({cpu: 58117613 | mem: 221050}) +({cpu: 83337130 | mem: 319666}) +({cpu: 78920012 | mem: 297472}) +({cpu: 175257132 | mem: 661760}) +({cpu: 103092725 | mem: 385998}) +({cpu: 63433976 | mem: 250540}) +({cpu: 130635752 | mem: 486628}) +({cpu: 197735644 | mem: 754158}) +({cpu: 302463784 | mem: 1107216}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index 87a5460ea58..233e9a95fc9 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -106,10 +106,10 @@ any f = go [] -> False x : xs -> if f x then True else go xs -{-# INLINABLE all #-} +{-# INLINE all #-} -- | Determines whether all elements of the list satisfy the predicate. all :: forall a. (a -> Bool) -> [a] -> Bool -all f = go +all ~f = go where go :: [a] -> Bool go = \case diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 591ccd848bf..9ebfe9650af 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -39,11 +39,11 @@ empty = UnsafeSortedMap [] singleton :: k -> v -> SortedMap k [v] singleton k v = UnsafeSortedMap [(k, [v])] -{-# INLINE insertOneWith #-} +{-# INLINABLE insertOneWith #-} insertOneWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> k -> v -> SortedMap k w -> SortedMap k w -insertOneWith ~op ~inj ~k0 ~v0 = UnsafeSortedMap . go . unSortedMap where +insertOneWith op inj k0 v0 = UnsafeSortedMap . go . unSortedMap where go :: [(k, w)] -> [(k, w)] go [] = [(k0, inj v0)] go kws@((k, w) : kws') = case k0 `compare` k of @@ -56,9 +56,9 @@ insertOne :: Ord k => k -> v -> SortedMap k [v] -> SortedMap k [v] insertOne = insertOneWith (:) (: []) -- TODO: proper mergesort -{-# INLINE fromListWith #-} +{-# INLINABLE fromListWith #-} fromListWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> [(k, v)] -> SortedMap k w -fromListWith ~act ~inj = go where +fromListWith act inj = go where go :: [(k, v)] -> SortedMap k w go [] = UnsafeSortedMap [] go ((k, v) : kvs) = insertOneWith act inj k v $ go kvs @@ -67,11 +67,11 @@ fromListWith ~act ~inj = go where fromList :: Ord k => [(k, v)] -> SortedMap k [v] fromList = fromListWith (:) (: []) -{-# INLINE mergeWith #-} +{-# INLINABLE mergeWith #-} mergeWith :: forall k v. Ord k => (v -> v -> v) -> SortedMap k v -> SortedMap k v -> SortedMap k v -mergeWith ~op ~(UnsafeSortedMap kvs1_0) ~(UnsafeSortedMap kvs2_0) = +mergeWith op (UnsafeSortedMap kvs1_0) (UnsafeSortedMap kvs2_0) = UnsafeSortedMap $ go kvs1_0 kvs2_0 where go :: [(k, v)] -> [(k, v)] -> [(k, v)] @@ -87,16 +87,28 @@ data MatchResult a | MatchUnclear a a | MatchFailure -{-# INLINE matchKVs #-} +{-# INLINABLE matchKVs #-} matchKVs :: forall k v. Ord k - => (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) -matchKVs ~structEqV = go where + => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) +matchKVs is0 structEqV = go where go :: [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) - go [] [] = MatchSuccess - go [] kvs2 = MatchUnclear empty (fromList kvs2) - go kvs1 [] = MatchUnclear (fromList kvs1) empty + go [] [] = + MatchSuccess + go [] kvs2 = + if all (is0 . snd) kvs2 + then MatchSuccess + else MatchFailure + go kvs1 [] = + if all (is0 . snd) kvs1 + then MatchSuccess + else MatchFailure go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') + | is0 v1 = + if is0 v2 + then go kvs1' kvs2' + else go kvs1' kvs2 + | is0 v2 = go kvs1 kvs2' | k1 == k2 = case go kvs1' kvs2' of MatchSuccess -> if structEqV v1 v2 then MatchSuccess @@ -112,11 +124,11 @@ matchKVs ~structEqV = go where (fromList kvs1) (fromList kvs2) -{-# INLINE pointwiseEqWith #-} +{-# INLINABLE pointwiseEqWith #-} pointwiseEqWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> SortedMap k v -> SortedMap k v -> Bool -pointwiseEqWith ~is0 ~eqV ~(UnsafeSortedMap kvs01) ~(UnsafeSortedMap kvs02) = go kvs01 kvs02 where +pointwiseEqWith is0 eqV (UnsafeSortedMap kvs01) (UnsafeSortedMap kvs02) = go kvs01 kvs02 where go :: [(k, v)] -> [(k, v)] -> Bool go [] [] = True go [] kvs2 = all (is0 . snd) kvs2 @@ -128,11 +140,11 @@ pointwiseEqWith ~is0 ~eqV ~(UnsafeSortedMap kvs01) ~(UnsafeSortedMap kvs02) = go else False else False -{-# INLINE sortFoldMaps #-} +{-# INLINABLE sortFoldMaps #-} sortFoldMaps :: forall k v w. Ord k => (w -> w -> w) -> (v -> w -> w) -> (v -> w) -> [Map.Map k v] -> SortedMap k w -sortFoldMaps ~op ~act ~inj = go where +sortFoldMaps op act inj = go where go :: [Map.Map k v] -> SortedMap k w go [] = empty go ((Map.toList -> kvs) : maps) = mergeWith op (fromListWith act inj kvs) (go maps) From 621649f360692f56ba5e665e21df26af161dceac Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 4 Oct 2023 16:48:32 +0200 Subject: [PATCH 05/40] Return INLINE pragmas and tildas --- .../test/Spec/golden/9.2/Long.stat.golden | 30 +++++----- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++++++------- plutus-tx/src/PlutusTx/SortedMap.hs | 58 ++++++++----------- 3 files changed, 61 insertions(+), 69 deletions(-) diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index 727c42080a2..be3fc010c6d 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 3214850974 | mem: 11765112}) -({cpu: 4156750856 | mem: 15469788}) -({cpu: 2244055244 | mem: 8212480}) -({cpu: 7713296844 | mem: 28132974}) -({cpu: 2244055244 | mem: 8212480}) -({cpu: 2967903666 | mem: 10924388}) -({cpu: 1273259514 | mem: 4659848}) -({cpu: 2823285168 | mem: 10458740}) -({cpu: 2244055244 | mem: 8212480}) -({cpu: 2678482670 | mem: 9992292}) -({cpu: 1273259514 | mem: 4659848}) -({cpu: 4316471980 | mem: 15769502}) -({cpu: 1273259514 | mem: 4659848}) -({cpu: 1489635480 | mem: 5446892}) -({cpu: 302463784 | mem: 1107216}) \ No newline at end of file +({cpu: 2582811773 | mem: 9309542}) +({cpu: 3741651148 | mem: 13671378}) +({cpu: 1805280911 | mem: 6507454}) +({cpu: 6870234004 | mem: 24471668}) +({cpu: 1805280911 | mem: 6507454}) +({cpu: 2689009958 | mem: 9718178}) +({cpu: 1027750049 | mem: 3705366}) +({cpu: 2544299460 | mem: 9252130}) +({cpu: 1805280911 | mem: 6507454}) +({cpu: 2399588962 | mem: 8786082}) +({cpu: 1027750049 | mem: 3705366}) +({cpu: 3836073140 | mem: 13684996}) +({cpu: 1027750049 | mem: 3705366}) +({cpu: 1346947772 | mem: 4832882}) +({cpu: 250219187 | mem: 903278}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index c2c02cf9206..56afebbce28 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 4623100 | mem: 20200}) -({cpu: 6739100 | mem: 29400}) -({cpu: 7728100 | mem: 33700}) -({cpu: 9328589 | mem: 39402}) -({cpu: 10929078 | mem: 45104}) -({cpu: 13771567 | mem: 56206}) -({cpu: 21615761 | mem: 85214}) -({cpu: 23593761 | mem: 93814}) -({cpu: 24444761 | mem: 97514}) -({cpu: 23135370 | mem: 93112}) -({cpu: 38501758 | mem: 149728}) -({cpu: 32144662 | mem: 127220}) -({cpu: 58117613 | mem: 221050}) -({cpu: 83337130 | mem: 319666}) -({cpu: 78920012 | mem: 297472}) -({cpu: 175257132 | mem: 661760}) -({cpu: 103092725 | mem: 385998}) -({cpu: 63433976 | mem: 250540}) -({cpu: 130635752 | mem: 486628}) -({cpu: 197735644 | mem: 754158}) -({cpu: 302463784 | mem: 1107216}) \ No newline at end of file +({cpu: 6877100 | mem: 30000}) +({cpu: 8993100 | mem: 39200}) +({cpu: 10279491 | mem: 43502}) +({cpu: 12339980 | mem: 51204}) +({cpu: 13465371 | mem: 54806}) +({cpu: 16307860 | mem: 65908}) +({cpu: 19778076 | mem: 78412}) +({cpu: 22231174 | mem: 89112}) +({cpu: 22904467 | mem: 90714}) +({cpu: 62360682 | mem: 244342}) +({cpu: 32403486 | mem: 125624}) +({cpu: 97036061 | mem: 373378}) +({cpu: 45088385 | mem: 171838}) +({cpu: 62439687 | mem: 240548}) +({cpu: 60964806 | mem: 229356}) +({cpu: 78822108 | mem: 300266}) +({cpu: 80027541 | mem: 298178}) +({cpu: 85400030 | mem: 320280}) +({cpu: 102276590 | mem: 378304}) +({cpu: 183613644 | mem: 692758}) +({cpu: 250219187 | mem: 903278}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 9ebfe9650af..63125e94bd2 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -35,15 +35,15 @@ newtype SortedMap k v = UnsafeSortedMap empty :: SortedMap k v empty = UnsafeSortedMap [] -{-# INLINABLE singleton #-} +{-# INLINE singleton #-} singleton :: k -> v -> SortedMap k [v] -singleton k v = UnsafeSortedMap [(k, [v])] +singleton ~k ~v = UnsafeSortedMap [(k, [v])] -{-# INLINABLE insertOneWith #-} +{-# INLINE insertOneWith #-} insertOneWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> k -> v -> SortedMap k w -> SortedMap k w -insertOneWith op inj k0 v0 = UnsafeSortedMap . go . unSortedMap where +insertOneWith ~op ~inj ~k0 ~v0 = UnsafeSortedMap . go . unSortedMap where go :: [(k, w)] -> [(k, w)] go [] = [(k0, inj v0)] go kws@((k, w) : kws') = case k0 `compare` k of @@ -56,9 +56,9 @@ insertOne :: Ord k => k -> v -> SortedMap k [v] -> SortedMap k [v] insertOne = insertOneWith (:) (: []) -- TODO: proper mergesort -{-# INLINABLE fromListWith #-} +{-# INLINE fromListWith #-} fromListWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> [(k, v)] -> SortedMap k w -fromListWith act inj = go where +fromListWith ~act ~inj = go where go :: [(k, v)] -> SortedMap k w go [] = UnsafeSortedMap [] go ((k, v) : kvs) = insertOneWith act inj k v $ go kvs @@ -67,31 +67,31 @@ fromListWith act inj = go where fromList :: Ord k => [(k, v)] -> SortedMap k [v] fromList = fromListWith (:) (: []) -{-# INLINABLE mergeWith #-} +{-# INLINE mergeWith #-} mergeWith :: forall k v. Ord k => (v -> v -> v) -> SortedMap k v -> SortedMap k v -> SortedMap k v -mergeWith op (UnsafeSortedMap kvs1_0) (UnsafeSortedMap kvs2_0) = +mergeWith ~op ~(UnsafeSortedMap kvs1_0) ~(UnsafeSortedMap kvs2_0) = UnsafeSortedMap $ go kvs1_0 kvs2_0 where go :: [(k, v)] -> [(k, v)] -> [(k, v)] - go [] kvs2 = kvs2 - go kvs1 [] = kvs1 - go ((k1, v1) : kvs1) ((k2, v2) : kvs2) = case k1 `compare` k2 of - LT -> (k1, v1) : go kvs1 ((k2, v2) : kvs2) - EQ -> (k1, op v1 v2) : go kvs1 kvs2 - GT -> (k2, v2) : go ((k1, v1) : kvs1) kvs2 + go [] kvs2 = kvs2 + go kvs1 [] = kvs1 + go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') = case k1 `compare` k2 of + LT -> (k1, v1) : go kvs1' kvs2 + EQ -> (k1, op v1 v2) : go kvs1' kvs2' + GT -> (k2, v2) : go kvs1 kvs2' data MatchResult a = MatchSuccess | MatchUnclear a a | MatchFailure -{-# INLINABLE matchKVs #-} +{-# INLINE matchKVs #-} matchKVs :: forall k v. Ord k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) -matchKVs is0 structEqV = go where +matchKVs ~is0 ~structEqV = go where go :: [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) go [] [] = MatchSuccess @@ -104,31 +104,23 @@ matchKVs is0 structEqV = go where then MatchSuccess else MatchFailure go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') + | k1 == k2 = + if structEqV v1 v2 + then go kvs1' kvs2' + else MatchUnclear (fromList kvs1) (fromList kvs2) | is0 v1 = if is0 v2 then go kvs1' kvs2' else go kvs1' kvs2 | is0 v2 = go kvs1 kvs2' - | k1 == k2 = case go kvs1' kvs2' of - MatchSuccess -> if structEqV v1 v2 - then MatchSuccess - else MatchFailure - MatchUnclear kvs1'' kvs2'' -> - MatchUnclear - (insertOne k1 v1 kvs1'') - (insertOne k1 v2 kvs2'') - MatchFailure -> - MatchFailure | otherwise = - MatchUnclear - (fromList kvs1) - (fromList kvs2) + MatchUnclear (fromList kvs1) (fromList kvs2) -{-# INLINABLE pointwiseEqWith #-} +{-# INLINE pointwiseEqWith #-} pointwiseEqWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> SortedMap k v -> SortedMap k v -> Bool -pointwiseEqWith is0 eqV (UnsafeSortedMap kvs01) (UnsafeSortedMap kvs02) = go kvs01 kvs02 where +pointwiseEqWith ~is0 ~eqV ~(UnsafeSortedMap kvs01) ~(UnsafeSortedMap kvs02) = go kvs01 kvs02 where go :: [(k, v)] -> [(k, v)] -> Bool go [] [] = True go [] kvs2 = all (is0 . snd) kvs2 @@ -140,11 +132,11 @@ pointwiseEqWith is0 eqV (UnsafeSortedMap kvs01) (UnsafeSortedMap kvs02) = go kvs else False else False -{-# INLINABLE sortFoldMaps #-} +{-# INLINE sortFoldMaps #-} sortFoldMaps :: forall k v w. Ord k => (w -> w -> w) -> (v -> w -> w) -> (v -> w) -> [Map.Map k v] -> SortedMap k w -sortFoldMaps op act inj = go where +sortFoldMaps ~op ~act ~inj = go where go :: [Map.Map k v] -> SortedMap k w go [] = empty go ((Map.toList -> kvs) : maps) = mergeWith op (fromListWith act inj kvs) (go maps) From a14d665818f728d8886d69f7b811c17fbe2d13ec Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 4 Oct 2023 18:41:44 +0200 Subject: [PATCH 06/40] Traverse both the spines first --- plutus-ledger-api/test/Spec/Value.hs | 11 ++++- .../test/Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++++++++---------- plutus-tx/src/PlutusTx/SortedMap.hs | 14 +++++-- 4 files changed, 57 insertions(+), 40 deletions(-) diff --git a/plutus-ledger-api/test/Spec/Value.hs b/plutus-ledger-api/test/Spec/Value.hs index f14257d45b2..c4f8879f33f 100644 --- a/plutus-ledger-api/test/Spec/Value.hs +++ b/plutus-ledger-api/test/Spec/Value.hs @@ -178,6 +178,15 @@ haskellEqValue value1 value2 = toMap value1 Haskell.== toMap value2 where . Haskell.map (Haskell.fmap $ Map.fromListWith (Haskell.+)) . valueToLists +-- | Check whether all currencies and tokens within each of the currencies occur uniquely. +allDistinct :: Value -> Bool +allDistinct + = Haskell.and + . Map.fromListWith (\_ _ -> False) + . Haskell.map (Haskell.fmap $ + Haskell.and . Map.fromListWith (\_ _ -> False) . Haskell.map (Haskell.fmap $ \_ -> True)) + . valueToLists + -- | Return all the pairs of elements of the given list. -- -- > (x, y) `elem` pairs xs ==> fromJust (x `elemIndex` xs) <= fromJust (y `elemIndex` xs) @@ -202,7 +211,7 @@ test_EqCurrencyList name currencyLists = -- We need the 'allDistinct' checks, because duplicated -- currencies/tokens-within-the-same-currency result in undefined behavior when -- checking 'Value's for equality. - in if eqResAct /= eqResExp + in if allDistinct value1 && allDistinct value2 && eqResAct /= eqResExp then Haskell.error $ Haskell.intercalate "\n" [ "Error when checking equality of" , " " Haskell.++ Haskell.show value1 diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index be3fc010c6d..217e9a1aa73 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2582811773 | mem: 9309542}) -({cpu: 3741651148 | mem: 13671378}) -({cpu: 1805280911 | mem: 6507454}) -({cpu: 6870234004 | mem: 24471668}) -({cpu: 1805280911 | mem: 6507454}) -({cpu: 2689009958 | mem: 9718178}) -({cpu: 1027750049 | mem: 3705366}) -({cpu: 2544299460 | mem: 9252130}) -({cpu: 1805280911 | mem: 6507454}) -({cpu: 2399588962 | mem: 8786082}) -({cpu: 1027750049 | mem: 3705366}) -({cpu: 3836073140 | mem: 13684996}) -({cpu: 1027750049 | mem: 3705366}) -({cpu: 1346947772 | mem: 4832882}) -({cpu: 250219187 | mem: 903278}) \ No newline at end of file +({cpu: 2596243773 | mem: 9367942}) +({cpu: 1896492549 | mem: 7265778}) +({cpu: 1814664911 | mem: 6548254}) +({cpu: 1652081067 | mem: 6272274}) +({cpu: 1814664911 | mem: 6548254}) +({cpu: 1407577585 | mem: 5278370}) +({cpu: 1033086049 | mem: 3728566}) +({cpu: 1263097087 | mem: 4813322}) +({cpu: 1814664911 | mem: 6548254}) +({cpu: 1118524589 | mem: 4347874}) +({cpu: 1033086049 | mem: 3728566}) +({cpu: 874113107 | mem: 3354370}) +({cpu: 1033086049 | mem: 3728566}) +({cpu: 629609625 | mem: 2360466}) +({cpu: 251507187 | mem: 908878}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index 56afebbce28..2945d625a5e 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 6877100 | mem: 30000}) -({cpu: 8993100 | mem: 39200}) -({cpu: 10279491 | mem: 43502}) -({cpu: 12339980 | mem: 51204}) -({cpu: 13465371 | mem: 54806}) -({cpu: 16307860 | mem: 65908}) -({cpu: 19778076 | mem: 78412}) -({cpu: 22231174 | mem: 89112}) -({cpu: 22904467 | mem: 90714}) -({cpu: 62360682 | mem: 244342}) -({cpu: 32403486 | mem: 125624}) -({cpu: 97036061 | mem: 373378}) -({cpu: 45088385 | mem: 171838}) -({cpu: 62439687 | mem: 240548}) -({cpu: 60964806 | mem: 229356}) -({cpu: 78822108 | mem: 300266}) -({cpu: 80027541 | mem: 298178}) -({cpu: 85400030 | mem: 320280}) -({cpu: 102276590 | mem: 378304}) -({cpu: 183613644 | mem: 692758}) -({cpu: 250219187 | mem: 903278}) \ No newline at end of file +({cpu: 6969100 | mem: 30400}) +({cpu: 9085100 | mem: 39600}) +({cpu: 10463491 | mem: 44302}) +({cpu: 12523980 | mem: 52004}) +({cpu: 13649371 | mem: 55606}) +({cpu: 13696980 | mem: 57104}) +({cpu: 20054076 | mem: 79612}) +({cpu: 22507174 | mem: 90312}) +({cpu: 23272467 | mem: 92314}) +({cpu: 21992850 | mem: 89210}) +({cpu: 32863486 | mem: 127624}) +({cpu: 28215164 | mem: 113714}) +({cpu: 45640385 | mem: 174238}) +({cpu: 63106687 | mem: 243448}) +({cpu: 61608806 | mem: 232156}) +({cpu: 79673108 | mem: 303966}) +({cpu: 80763541 | mem: 301378}) +({cpu: 47003912 | mem: 194116}) +({cpu: 103104590 | mem: 381904}) +({cpu: 183728644 | mem: 693258}) +({cpu: 251507187 | mem: 908878}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 63125e94bd2..385178113ea 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -105,9 +105,17 @@ matchKVs ~is0 ~structEqV = go where else MatchFailure go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') | k1 == k2 = - if structEqV v1 v2 - then go kvs1' kvs2' - else MatchUnclear (fromList kvs1) (fromList kvs2) + case go kvs1' kvs2' of + MatchSuccess -> + if structEqV v1 v2 + then MatchSuccess + else MatchFailure + MatchUnclear kvs1'' kvs2'' -> + if structEqV v1 v2 + then MatchUnclear kvs1'' kvs2'' + else MatchFailure + MatchFailure -> + MatchFailure | is0 v1 = if is0 v2 then go kvs1' kvs2' From c8e6f20bbe9559041b75a87efe05312d4ebd81ce Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 5 Oct 2023 02:05:58 +0200 Subject: [PATCH 07/40] Defer checking equality of tokens --- .../src/PlutusLedgerApi/V1/Value.hs | 14 +++++-- .../test/Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++++++++---------- plutus-tx/src/PlutusTx/SortedMap.hs | 22 ++++++---- 4 files changed, 59 insertions(+), 49 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index a542f363092..15d90d6f230 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -202,10 +202,16 @@ sortSumMaps = SortedMap.sortFoldMaps (+) (+) id eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = case SortedMap.matchKVs (Map.all (== 0)) structEqMap currs1 currs2 of - SortedMap.MatchSuccess -> True - SortedMap.MatchFailure -> False - SortedMap.MatchUnclear currs1' currs2' -> - SortedMap.pointwiseEqWith (all $ Map.all (== 0)) eqMaps currs1' currs2' + SortedMap.MatchSuccess -> True + SortedMap.MatchFailure -> False + SortedMap.MatchUnclear valPairs currs1' currs2' -> + if SortedMap.pointwiseEqWith + (all $ Map.all (== 0)) + eqMaps + (SortedMap.fromList currs1') + (SortedMap.fromList currs2') + then all (uncurry (==)) valPairs + else False where structEqMap :: Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool structEqMap (Map.toList -> tokens1) (Map.toList -> tokens2) = diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index 217e9a1aa73..fb1458cddb8 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2596243773 | mem: 9367942}) -({cpu: 1896492549 | mem: 7265778}) -({cpu: 1814664911 | mem: 6548254}) -({cpu: 1652081067 | mem: 6272274}) -({cpu: 1814664911 | mem: 6548254}) -({cpu: 1407577585 | mem: 5278370}) -({cpu: 1033086049 | mem: 3728566}) -({cpu: 1263097087 | mem: 4813322}) -({cpu: 1814664911 | mem: 6548254}) -({cpu: 1118524589 | mem: 4347874}) -({cpu: 1033086049 | mem: 3728566}) -({cpu: 874113107 | mem: 3354370}) -({cpu: 1033086049 | mem: 3728566}) -({cpu: 629609625 | mem: 2360466}) -({cpu: 251507187 | mem: 908878}) \ No newline at end of file +({cpu: 2597002773 | mem: 9371242}) +({cpu: 3741703554 | mem: 13668882}) +({cpu: 1815423911 | mem: 6551554}) +({cpu: 6819482112 | mem: 24291500}) +({cpu: 1815423911 | mem: 6551554}) +({cpu: 2689062364 | mem: 9715682}) +({cpu: 1033845049 | mem: 3731866}) +({cpu: 2544397866 | mem: 9249834}) +({cpu: 1815423911 | mem: 6551554}) +({cpu: 2399641368 | mem: 8783586}) +({cpu: 1033845049 | mem: 3731866}) +({cpu: 3785321248 | mem: 13504828}) +({cpu: 1033845049 | mem: 3731866}) +({cpu: 1347000178 | mem: 4830386}) +({cpu: 252266187 | mem: 912178}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index 2945d625a5e..f0f10038070 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 6969100 | mem: 30400}) -({cpu: 9085100 | mem: 39600}) -({cpu: 10463491 | mem: 44302}) -({cpu: 12523980 | mem: 52004}) -({cpu: 13649371 | mem: 55606}) -({cpu: 13696980 | mem: 57104}) -({cpu: 20054076 | mem: 79612}) -({cpu: 22507174 | mem: 90312}) -({cpu: 23272467 | mem: 92314}) -({cpu: 21992850 | mem: 89210}) -({cpu: 32863486 | mem: 127624}) -({cpu: 28215164 | mem: 113714}) -({cpu: 45640385 | mem: 174238}) -({cpu: 63106687 | mem: 243448}) -({cpu: 61608806 | mem: 232156}) -({cpu: 79673108 | mem: 303966}) -({cpu: 80763541 | mem: 301378}) -({cpu: 47003912 | mem: 194116}) -({cpu: 103104590 | mem: 381904}) -({cpu: 183728644 | mem: 693258}) -({cpu: 251507187 | mem: 908878}) \ No newline at end of file +({cpu: 7728100 | mem: 33700}) +({cpu: 9844100 | mem: 42900}) +({cpu: 11222491 | mem: 47602}) +({cpu: 13282980 | mem: 55304}) +({cpu: 14408371 | mem: 58906}) +({cpu: 14455980 | mem: 60404}) +({cpu: 20813076 | mem: 82912}) +({cpu: 23266174 | mem: 93612}) +({cpu: 24031467 | mem: 95614}) +({cpu: 22751850 | mem: 92510}) +({cpu: 33622486 | mem: 130924}) +({cpu: 28974164 | mem: 117014}) +({cpu: 46399385 | mem: 177538}) +({cpu: 56032613 | mem: 220336}) +({cpu: 62367806 | mem: 235456}) +({cpu: 63419646 | mem: 251138}) +({cpu: 81522541 | mem: 304678}) +({cpu: 47762912 | mem: 197416}) +({cpu: 103863590 | mem: 385204}) +({cpu: 184625644 | mem: 697158}) +({cpu: 252266187 | mem: 912178}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 385178113ea..2fd61c7d502 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -13,6 +13,7 @@ module PlutusTx.SortedMap , insertOne , fromListWith , fromList + , fromListUnique , mergeWith , MatchResult (..) , matchKVs @@ -63,6 +64,11 @@ fromListWith ~act ~inj = go where go [] = UnsafeSortedMap [] go ((k, v) : kvs) = insertOneWith act inj k v $ go kvs +{-# INLINE fromListUnique #-} +fromListUnique :: Ord k => [(k, v)] -> SortedMap k v +fromListUnique = fromListWith const id +-- fromListUnique = UnsafeSortedMap . sortBy (\(x, _) (y, _) -> x `compare` y) + {-# INLINABLE fromList #-} fromList :: Ord k => [(k, v)] -> SortedMap k [v] fromList = fromListWith (:) (: []) @@ -82,17 +88,17 @@ mergeWith ~op ~(UnsafeSortedMap kvs1_0) ~(UnsafeSortedMap kvs2_0) = EQ -> (k1, op v1 v2) : go kvs1' kvs2' GT -> (k2, v2) : go kvs1 kvs2' -data MatchResult a +data MatchResult k v = MatchSuccess - | MatchUnclear a a + | MatchUnclear [(v, v)] [(k, v)] [(k, v)] | MatchFailure {-# INLINE matchKVs #-} matchKVs :: forall k v. Ord k - => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) + => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult k v matchKVs ~is0 ~structEqV = go where - go :: [(k, v)] -> [(k, v)] -> MatchResult (SortedMap k [v]) + go :: [(k, v)] -> [(k, v)] -> MatchResult k v go [] [] = MatchSuccess go [] kvs2 = @@ -110,10 +116,8 @@ matchKVs ~is0 ~structEqV = go where if structEqV v1 v2 then MatchSuccess else MatchFailure - MatchUnclear kvs1'' kvs2'' -> - if structEqV v1 v2 - then MatchUnclear kvs1'' kvs2'' - else MatchFailure + MatchUnclear vvs kvs1'' kvs2'' -> + MatchUnclear ((v1, v2) : vvs) kvs1'' kvs2'' MatchFailure -> MatchFailure | is0 v1 = @@ -122,7 +126,7 @@ matchKVs ~is0 ~structEqV = go where else go kvs1' kvs2 | is0 v2 = go kvs1 kvs2' | otherwise = - MatchUnclear (fromList kvs1) (fromList kvs2) + MatchUnclear [] kvs1 kvs2 {-# INLINE pointwiseEqWith #-} pointwiseEqWith From dfd7c8b037fe345a6c03e3b619583277fbbe7336 Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 5 Oct 2023 02:22:04 +0200 Subject: [PATCH 08/40] Use 'fromListUnique' --- .../src/PlutusLedgerApi/V1/Value.hs | 23 +++++----- .../test/Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++++++++---------- 3 files changed, 47 insertions(+), 48 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 15d90d6f230..7fe734848e5 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -64,7 +64,6 @@ import PlutusTx.AssocMap qualified as Map import PlutusTx.Lift (makeLift) import PlutusTx.Ord qualified as Ord import PlutusTx.Prelude as PlutusTx hiding (sort) -import PlutusTx.SortedMap (SortedMap) import PlutusTx.SortedMap qualified as SortedMap import PlutusTx.These (These (..)) import Prettyprinter (Pretty, (<>)) @@ -194,10 +193,6 @@ newtype Value = Value { getValue :: Map.Map CurrencySymbol (Map.Map TokenName In instance Haskell.Eq Value where (==) = eq -{-# INLINEABLE sortSumMaps #-} -sortSumMaps :: Ord k => [Map.Map k Integer] -> SortedMap k Integer -sortSumMaps = SortedMap.sortFoldMaps (+) (+) id - {-# INLINEABLE eq #-} eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = @@ -206,10 +201,10 @@ eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = SortedMap.MatchFailure -> False SortedMap.MatchUnclear valPairs currs1' currs2' -> if SortedMap.pointwiseEqWith - (all $ Map.all (== 0)) - eqMaps - (SortedMap.fromList currs1') - (SortedMap.fromList currs2') + (Map.all (== 0)) + eqMap + (SortedMap.fromListUnique currs1') + (SortedMap.fromListUnique currs2') then all (uncurry (==)) valPairs else False where @@ -221,9 +216,13 @@ eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = (SortedMap.UnsafeSortedMap tokens1) (SortedMap.UnsafeSortedMap tokens2) - eqMaps :: [Map.Map TokenName Integer] -> [Map.Map TokenName Integer] -> Bool - eqMaps maps1 maps2 = - SortedMap.pointwiseEqWith (== 0) (==) (sortSumMaps maps1) (sortSumMaps maps2) + eqMap :: Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool + eqMap (Map.toList -> tokens1) (Map.toList -> tokens2) = + SortedMap.pointwiseEqWith + (== 0) + (==) + (SortedMap.fromListUnique tokens1) + (SortedMap.fromListUnique tokens2) instance Eq Value where {-# INLINABLE (==) #-} diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index fb1458cddb8..694035f014c 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2597002773 | mem: 9371242}) -({cpu: 3741703554 | mem: 13668882}) -({cpu: 1815423911 | mem: 6551554}) -({cpu: 6819482112 | mem: 24291500}) -({cpu: 1815423911 | mem: 6551554}) -({cpu: 2689062364 | mem: 9715682}) -({cpu: 1033845049 | mem: 3731866}) -({cpu: 2544397866 | mem: 9249834}) -({cpu: 1815423911 | mem: 6551554}) -({cpu: 2399641368 | mem: 8783586}) -({cpu: 1033845049 | mem: 3731866}) -({cpu: 3785321248 | mem: 13504828}) -({cpu: 1033845049 | mem: 3731866}) -({cpu: 1347000178 | mem: 4830386}) -({cpu: 252266187 | mem: 912178}) \ No newline at end of file +({cpu: 2596979773 | mem: 9371142}) +({cpu: 1965948562 | mem: 7332820}) +({cpu: 1815400911 | mem: 6551454}) +({cpu: 1737913080 | mem: 6410516}) +({cpu: 1815400911 | mem: 6551454}) +({cpu: 1509785598 | mem: 5487812}) +({cpu: 1033822049 | mem: 3731766}) +({cpu: 1383843100 | mem: 5103364}) +({cpu: 1815400911 | mem: 6551454}) +({cpu: 1257808602 | mem: 4718516}) +({cpu: 1033822049 | mem: 3731766}) +({cpu: 1029773120 | mem: 3796212}) +({cpu: 1033822049 | mem: 3731766}) +({cpu: 801645638 | mem: 2873508}) +({cpu: 252243187 | mem: 912078}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index f0f10038070..91db45b45df 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 7728100 | mem: 33700}) -({cpu: 9844100 | mem: 42900}) -({cpu: 11222491 | mem: 47602}) -({cpu: 13282980 | mem: 55304}) -({cpu: 14408371 | mem: 58906}) -({cpu: 14455980 | mem: 60404}) -({cpu: 20813076 | mem: 82912}) -({cpu: 23266174 | mem: 93612}) -({cpu: 24031467 | mem: 95614}) -({cpu: 22751850 | mem: 92510}) -({cpu: 33622486 | mem: 130924}) -({cpu: 28974164 | mem: 117014}) -({cpu: 46399385 | mem: 177538}) -({cpu: 56032613 | mem: 220336}) -({cpu: 62367806 | mem: 235456}) -({cpu: 63419646 | mem: 251138}) -({cpu: 81522541 | mem: 304678}) -({cpu: 47762912 | mem: 197416}) -({cpu: 103863590 | mem: 385204}) -({cpu: 184625644 | mem: 697158}) -({cpu: 252266187 | mem: 912178}) \ No newline at end of file +({cpu: 7705100 | mem: 33600}) +({cpu: 9821100 | mem: 42800}) +({cpu: 11199491 | mem: 47502}) +({cpu: 13259980 | mem: 55204}) +({cpu: 14385371 | mem: 58806}) +({cpu: 14432980 | mem: 60304}) +({cpu: 20790076 | mem: 82812}) +({cpu: 23243174 | mem: 93512}) +({cpu: 24008467 | mem: 95514}) +({cpu: 22728850 | mem: 92410}) +({cpu: 33599486 | mem: 130824}) +({cpu: 28951164 | mem: 116914}) +({cpu: 46376385 | mem: 177438}) +({cpu: 52996613 | mem: 207136}) +({cpu: 62344806 | mem: 235356}) +({cpu: 60383646 | mem: 237938}) +({cpu: 81499541 | mem: 304578}) +({cpu: 47739912 | mem: 197316}) +({cpu: 103840590 | mem: 385104}) +({cpu: 169491644 | mem: 631358}) +({cpu: 252243187 | mem: 912078}) \ No newline at end of file From 034789e36d93dbddc722357c16106db732911cdb Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 5 Oct 2023 02:24:41 +0200 Subject: [PATCH 09/40] Drop a tilda --- plutus-tx/src/PlutusTx/List.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index 233e9a95fc9..d77a48586fc 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -109,7 +109,7 @@ any f = go {-# INLINE all #-} -- | Determines whether all elements of the list satisfy the predicate. all :: forall a. (a -> Bool) -> [a] -> Bool -all ~f = go +all f = go where go :: [a] -> Bool go = \case From fbb058aaca48d6372cd65b080a0a846ea82ec9f7 Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 5 Oct 2023 17:03:37 +0200 Subject: [PATCH 10/40] Tweaks --- plutus-tx/src/PlutusTx/SortedMap.hs | 30 ++++++++++------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 2fd61c7d502..29d90080994 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -18,12 +18,10 @@ module PlutusTx.SortedMap , MatchResult (..) , matchKVs , pointwiseEqWith - , sortFoldMaps ) where import Prelude qualified as Haskell -import PlutusTx.AssocMap qualified as Map import PlutusTx.Base import PlutusTx.Ord import PlutusTx.Prelude @@ -47,10 +45,11 @@ insertOneWith insertOneWith ~op ~inj ~k0 ~v0 = UnsafeSortedMap . go . unSortedMap where go :: [(k, w)] -> [(k, w)] go [] = [(k0, inj v0)] - go kws@((k, w) : kws') = case k0 `compare` k of - LT -> (k0, inj v0) : kws - EQ -> (k0, op v0 w) : kws' - GT -> (k, w) : go kws' + go kws@((k, w) : kws') = + case k0 `compare` k of + LT -> (k0, inj v0) : kws + EQ -> (k0, op v0 w) : kws' + GT -> (k, w) : go kws' {-# INLINABLE insertOne #-} insertOne :: Ord k => k -> v -> SortedMap k [v] -> SortedMap k [v] @@ -67,7 +66,6 @@ fromListWith ~act ~inj = go where {-# INLINE fromListUnique #-} fromListUnique :: Ord k => [(k, v)] -> SortedMap k v fromListUnique = fromListWith const id --- fromListUnique = UnsafeSortedMap . sortBy (\(x, _) (y, _) -> x `compare` y) {-# INLINABLE fromList #-} fromList :: Ord k => [(k, v)] -> SortedMap k [v] @@ -83,10 +81,11 @@ mergeWith ~op ~(UnsafeSortedMap kvs1_0) ~(UnsafeSortedMap kvs2_0) = go :: [(k, v)] -> [(k, v)] -> [(k, v)] go [] kvs2 = kvs2 go kvs1 [] = kvs1 - go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') = case k1 `compare` k2 of - LT -> (k1, v1) : go kvs1' kvs2 - EQ -> (k1, op v1 v2) : go kvs1' kvs2' - GT -> (k2, v2) : go kvs1 kvs2' + go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') = + case k1 `compare` k2 of + LT -> (k1, v1) : go kvs1' kvs2 + EQ -> (k1, op v1 v2) : go kvs1' kvs2' + GT -> (k2, v2) : go kvs1 kvs2' data MatchResult k v = MatchSuccess @@ -143,12 +142,3 @@ pointwiseEqWith ~is0 ~eqV ~(UnsafeSortedMap kvs01) ~(UnsafeSortedMap kvs02) = go then eqV v1 v2 else False else False - -{-# INLINE sortFoldMaps #-} -sortFoldMaps - :: forall k v w. Ord k - => (w -> w -> w) -> (v -> w -> w) -> (v -> w) -> [Map.Map k v] -> SortedMap k w -sortFoldMaps ~op ~act ~inj = go where - go :: [Map.Map k v] -> SortedMap k w - go [] = empty - go ((Map.toList -> kvs) : maps) = mergeWith op (fromListWith act inj kvs) (go maps) From f0cac1860d49c8a150107c07a3d079373a97c3be Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 5 Oct 2023 17:13:16 +0200 Subject: [PATCH 11/40] Update golden tests of 'plutus-benchmark' --- plutus-benchmark/bls12-381-costs/test/bls12-381-costs.golden | 2 +- ...0101020201000100010001020101020201010000020102.eval.golden | 4 ++-- ...0101000001000001010101010100000001000001010000.eval.golden | 4 ++-- ...0203030303000200000104030002040304020400000102.eval.golden | 4 ++-- ...fa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden | 4 ++-- ...0101000100010100000001010000010001000001000101.eval.golden | 4 ++-- ...0200010102000201000201010102000102010201010000.eval.golden | 4 ++-- ...0306010000000302050807010208060100070207080202.eval.golden | 4 ++-- ...0103020102020004040300030304040400010301040303.eval.golden | 4 ++-- ...0e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden | 4 ++-- ...db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden | 4 ++-- ...0206030604080208020207000101060706050502040301.eval.golden | 4 ++-- ...010e050d00040907050e0a0d06030f1006030701020607.eval.golden | 4 ++-- ...8de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden | 4 ++-- ...28d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden | 4 ++-- ...1e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden | 4 ++-- ...2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden | 4 ++-- ...379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden | 4 ++-- ...14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden | 4 ++-- ...16090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden | 4 ++-- ...9ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden | 4 ++-- ...4c672a282663643b1b0823471c67737f0b076870331260.eval.golden | 4 ++-- ...5e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden | 4 ++-- ...201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden | 4 ++-- ...3405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden | 4 ++-- ...cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden | 4 ++-- ...db514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden | 4 ++-- ...4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden | 4 ++-- ...e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden | 4 ++-- ...8fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden | 4 ++-- ...b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden | 4 ++-- ...e9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden | 4 ++-- ...569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden | 4 ++-- ...182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden | 4 ++-- ...3c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden | 4 ++-- ...62b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden | 4 ++-- ...f507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden | 4 ++-- ...eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden | 4 ++-- ...a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden | 4 ++-- ...637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden | 4 ++-- ...a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden | 4 ++-- ...5a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden | 4 ++-- ...350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden | 4 ++-- ...837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden | 4 ++-- ...eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden | 4 ++-- ...8df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden | 4 ++-- ...5463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden | 4 ++-- ...786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden | 4 ++-- ...eccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden | 4 ++-- ...e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden | 4 ++-- ...41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden | 4 ++-- ...6636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden | 4 ++-- ...ab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden | 4 ++-- ...b6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden | 4 ++-- ...4f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden | 4 ++-- ...c4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden | 4 ++-- ...0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden | 4 ++-- ...971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden | 4 ++-- ...d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden | 4 ++-- ...4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden | 4 ++-- ...c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden | 4 ++-- ...3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden | 4 ++-- ...1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden | 4 ++-- ...c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden | 4 ++-- ...da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden | 4 ++-- ...e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden | 4 ++-- ...2c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden | 4 ++-- ...5aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden | 4 ++-- ...46438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden | 4 ++-- ...074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden | 4 ++-- ...5a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden | 4 ++-- ...2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden | 4 ++-- ...b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden | 4 ++-- ...fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden | 4 ++-- ...d2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden | 4 ++-- ...674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden | 4 ++-- ...3322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden | 4 ++-- ...604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden | 4 ++-- ...1a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden | 4 ++-- ...558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden | 4 ++-- ...e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden | 4 ++-- ...fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden | 4 ++-- ...7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden | 4 ++-- ...0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden | 4 ++-- ...dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden | 4 ++-- ...1e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden | 4 ++-- ...2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden | 4 ++-- ...845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden | 4 ++-- ...b38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden | 4 ++-- ...81547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden | 4 ++-- ...6d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden | 4 ++-- ...25319768989313a93913fdc347c704ddaa27042757d990.eval.golden | 4 ++-- ...0c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden | 4 ++-- ...c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden | 4 ++-- ...cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden | 4 ++-- ...f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden | 4 ++-- ...e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden | 4 ++-- ...8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden | 4 ++-- ...01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden | 4 ++-- ...b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden | 4 ++-- ...4c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden | 4 ++-- .../test/checkScriptContextEqualityTerm-20.eval.golden | 4 ++-- 102 files changed, 203 insertions(+), 203 deletions(-) diff --git a/plutus-benchmark/bls12-381-costs/test/bls12-381-costs.golden b/plutus-benchmark/bls12-381-costs/test/bls12-381-costs.golden index e11fbb647cd..747ab9c896c 100644 --- a/plutus-benchmark/bls12-381-costs/test/bls12-381-costs.golden +++ b/plutus-benchmark/bls12-381-costs/test/bls12-381-costs.golden @@ -127,7 +127,7 @@ Aggregate Multi Key n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 1728 (10.5%) 3708397401 (37.1%) 565657 (4.0%) + - 1737 (10.6%) 3708397401 (37.1%) 565657 (4.0%) Schnorr Signature G1 diff --git a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden index c67b57a1d83..a1af897c01a 100644 --- a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 687122394 -| mem: 2212763}) \ No newline at end of file +({cpu: 672658612 +| mem: 2152459}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden index a8039474d6d..30cd3190829 100644 --- a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1251880556 -| mem: 4111036}) \ No newline at end of file +({cpu: 1195724210 +| mem: 3874624}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden index 93928ce2625..94e4734e9a8 100644 --- a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1485672955 -| mem: 5685572}) \ No newline at end of file +({cpu: 1347297917 +| mem: 5113328}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden index 76b52b02339..a9c260ff2d8 100644 --- a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2477299815 -| mem: 8103779}) \ No newline at end of file +({cpu: 2421143469 +| mem: 7867367}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden index 20ddcbfc8a7..1e50cd4f314 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8460820933 -| mem: 24327740}) \ No newline at end of file +({cpu: 8455438933 +| mem: 24304340}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden index e50714d1e09..10a5a961d34 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 518082880 -| mem: 1752969}) \ No newline at end of file +({cpu: 503619098 +| mem: 1692665}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden index 00486359e4a..edc5839c50f 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1556965057 -| mem: 5477264}) \ No newline at end of file +({cpu: 1500808711 +| mem: 5240852}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden index eaf59ec6b06..67f68d4b3f0 100644 --- a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden @@ -1,2 +1,2 @@ -({cpu: 846592504 -| mem: 3216335}) \ No newline at end of file +({cpu: 832128722 +| mem: 3156031}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden index df506154edd..0c10ac77172 100644 --- a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1493107324 -| mem: 5132473}) \ No newline at end of file +({cpu: 1436950978 +| mem: 4896061}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden index 6e492032463..a19f0370bc9 100644 --- a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1091216220 -| mem: 3878291}) \ No newline at end of file +({cpu: 1076752438 +| mem: 3817987}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden index c0692f21bca..66617bce743 100644 --- a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2427636502 -| mem: 7750814}) \ No newline at end of file +({cpu: 2422254502 +| mem: 7727414}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden index 3c171eef9ec..a3312b6c178 100644 --- a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1223872565 -| mem: 4605293}) \ No newline at end of file +({cpu: 1209408783 +| mem: 4544989}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden index 3f31e495b02..f4adda0257e 100644 --- a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1253172275 -| mem: 4764911}) \ No newline at end of file +({cpu: 1218096413 +| mem: 4620399}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden index 87e67ad570b..8ebc6f5e903 100644 --- a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2011286646 -| mem: 7368534}) \ No newline at end of file +({cpu: 1913906016 +| mem: 6963706}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden index 3fbe504b170..be26df99152 100644 --- a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1033967537 -| mem: 3406103}) \ No newline at end of file +({cpu: 1019503755 +| mem: 3345799}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden index bcccbb6fd91..1e29fd45d9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1112687136 -| mem: 3991697}) \ No newline at end of file +({cpu: 1056530790 +| mem: 3755285}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden index e38e1ee7a87..872d01c00f6 100644 --- a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 693769400 -| mem: 2498127}) \ No newline at end of file +({cpu: 658693538 +| mem: 2353615}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden index 13390d3550a..85c2d3d6353 100644 --- a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden @@ -1,2 +1,2 @@ -({cpu: 905798501 -| mem: 3358297}) \ No newline at end of file +({cpu: 891334719 +| mem: 3297993}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden index 729cc9c2abb..68e082600b6 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1738274866 -| mem: 5207809}) \ No newline at end of file +({cpu: 1723811084 +| mem: 5147505}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden index b452343af7a..e4ac511d2e9 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1639479702 -| mem: 5827678}) \ No newline at end of file +({cpu: 1583323356 +| mem: 5591266}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden index b3443f884a3..1bee8caa056 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1507656996 -| mem: 5126683}) \ No newline at end of file +({cpu: 1451500650 +| mem: 4890271}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden index faa19a47695..6affaac93ae 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 591465754 -| mem: 1960983}) \ No newline at end of file +({cpu: 577001972 +| mem: 1900679}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden index 827a6f323d3..be21d18ffe8 100644 --- a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 35971444004 -| mem: 99163620}) \ No newline at end of file +({cpu: 35966062004 +| mem: 99140220}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden index 20f4fc33c5f..34fb5ba73f5 100644 --- a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192061552781 -| mem: 541519822}) \ No newline at end of file +({cpu: 192056170781 +| mem: 541496422}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden index a56a871bc32..2729aab98e6 100644 --- a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden @@ -1,2 +1,2 @@ -({cpu: 831208925 -| mem: 2872500}) \ No newline at end of file +({cpu: 775052579 +| mem: 2636088}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden index 72d70effabf..de46b44d9f2 100644 --- a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden @@ -1,2 +1,2 @@ -({cpu: 518980528 -| mem: 1782167}) \ No newline at end of file +({cpu: 504516746 +| mem: 1721863}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden index 5639b4a1348..187824ccf08 100644 --- a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 762779000 -| mem: 2887394}) \ No newline at end of file +({cpu: 706622654 +| mem: 2650982}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden index 75b7c9ae2ad..937867446f8 100644 --- a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 38987610944 -| mem: 109300782}) \ No newline at end of file +({cpu: 38982228944 +| mem: 109277382}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden index 80de7db5e05..d0a9353bf0e 100644 --- a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4584392073 -| mem: 13600344}) \ No newline at end of file +({cpu: 4528235727 +| mem: 13363932}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden index 4f626a8c6a7..17143d3e719 100644 --- a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden @@ -1,2 +1,2 @@ -({cpu: 859654175 -| mem: 3262733}) \ No newline at end of file +({cpu: 845190393 +| mem: 3202429}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden index bd1be8d56ed..27d0a69cba3 100644 --- a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1585463006 -| mem: 5480838}) \ No newline at end of file +({cpu: 1529306660 +| mem: 5244426}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden index c52b6ca47e9..bcfd4d1ebc0 100644 --- a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1633668262 -| mem: 6204012}) \ No newline at end of file +({cpu: 1495293224 +| mem: 5631768}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden index 2e66f6d86d4..52cab6e1fb7 100644 --- a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 496823642 -| mem: 1702639}) \ No newline at end of file +({cpu: 482359860 +| mem: 1642335}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden index 5c080782dba..2f41760c792 100644 --- a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden @@ -1,2 +1,2 @@ -({cpu: 652684901 -| mem: 2351199}) \ No newline at end of file +({cpu: 638221119 +| mem: 2290895}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden index ad4c9f19bb1..89340934222 100644 --- a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden @@ -1,2 +1,2 @@ -({cpu: 982749993 -| mem: 3619966}) \ No newline at end of file +({cpu: 926593647 +| mem: 3383554}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden index ec08182760c..284532124f7 100644 --- a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1067568540 -| mem: 3939626}) \ No newline at end of file +({cpu: 1011412194 +| mem: 3703214}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden index 4775d72d5e5..72a563a38ff 100644 --- a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden @@ -1,2 +1,2 @@ -({cpu: 586186205 -| mem: 1947747}) \ No newline at end of file +({cpu: 571722423 +| mem: 1887443}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden index 8b1754750c5..90daf84574a 100644 --- a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1568809703 -| mem: 5355470}) \ No newline at end of file +({cpu: 1512653357 +| mem: 5119058}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden index 386a293b23d..f922365f383 100644 --- a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 674304358 -| mem: 2181727}) \ No newline at end of file +({cpu: 659840576 +| mem: 2121423}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden index 14c6a7c7949..11a250571cf 100644 --- a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1287831373 -| mem: 4856527}) \ No newline at end of file +({cpu: 1252755449 +| mem: 4712015}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden index 9c83233d5e5..01ddc3349ac 100644 --- a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 904967658 -| mem: 3309225}) \ No newline at end of file +({cpu: 890503876 +| mem: 3248921}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden index 751d409c8ee..8e1e5e9bac9 100644 --- a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1961841633 -| mem: 6100850}) \ No newline at end of file +({cpu: 1905685287 +| mem: 5864438}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden index f7b78602be8..82c27d5b961 100644 --- a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 373172209 -| mem: 1377099}) \ No newline at end of file +({cpu: 358708427 +| mem: 1316795}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden index 4ec10a25a1b..a188ac28247 100644 --- a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 463808040 -| mem: 1631783}) \ No newline at end of file +({cpu: 449344258 +| mem: 1571479}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden index ff7a2e849c0..0133b7e6e54 100644 --- a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 556968787 -| mem: 1879289}) \ No newline at end of file +({cpu: 542505005 +| mem: 1818985}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden index 6c3c3c3392b..d29197f4aa5 100644 --- a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1272172539 -| mem: 4702788}) \ No newline at end of file +({cpu: 1216016193 +| mem: 4466376}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden index 72d70effabf..de46b44d9f2 100644 --- a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 518980528 -| mem: 1782167}) \ No newline at end of file +({cpu: 504516746 +| mem: 1721863}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden index b9da0aa3b17..560bed97a48 100644 --- a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden @@ -1,2 +1,2 @@ -({cpu: 621634481 -| mem: 2305329}) \ No newline at end of file +({cpu: 586558619 +| mem: 2160817}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden index c77edd31263..ae76407e0d3 100644 --- a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1344636662 -| mem: 4719031}) \ No newline at end of file +({cpu: 1330172880 +| mem: 4658727}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden index 643dd7e9a08..3b947a41912 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1190082587 -| mem: 4532399}) \ No newline at end of file +({cpu: 1155006663 +| mem: 4387887}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden index 9d6b0149fbc..2b1f46800bd 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 624808375 -| mem: 2331167}) \ No newline at end of file +({cpu: 589732451 +| mem: 2186655}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden index a02e24b7c38..339db01b1fa 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 520817765 -| mem: 1758971}) \ No newline at end of file +({cpu: 506353983 +| mem: 1698667}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden index f3f7004ac03..32a500e071b 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1078035946 -| mem: 4013074}) \ No newline at end of file +({cpu: 1021879600 +| mem: 3776662}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden index 5da5ca933cb..80c278bfcc3 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 811063182 -| mem: 2818961}) \ No newline at end of file +({cpu: 775987258 +| mem: 2674449}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden index 5cd7df64c1e..51470ff3cbc 100644 --- a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden @@ -1,2 +1,2 @@ -({cpu: 927230227 -| mem: 3481748}) \ No newline at end of file +({cpu: 871073881 +| mem: 3245336}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden index dd4d63c9dc4..ce644ad75ea 100644 --- a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 79789371260 -| mem: 227184962}) \ No newline at end of file +({cpu: 79783989260 +| mem: 227161562}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden index 70b4671318b..2074e3105aa 100644 --- a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2659070898 -| mem: 8554532}) \ No newline at end of file +({cpu: 2602914552 +| mem: 8318120}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden index f1dc025ff01..2a74613af3e 100644 --- a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1287672893 -| mem: 4857099}) \ No newline at end of file +({cpu: 1252596969 +| mem: 4712587}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden index 20f4fc33c5f..34fb5ba73f5 100644 --- a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192061552781 -| mem: 541519822}) \ No newline at end of file +({cpu: 192056170781 +| mem: 541496422}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden index ebf6eda957c..83023c64967 100644 --- a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 654097952 -| mem: 2394247}) \ No newline at end of file +({cpu: 619022028 +| mem: 2249735}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden index 38abaa3c2b8..41ee15931fc 100644 --- a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1131935245 -| mem: 4046897}) \ No newline at end of file +({cpu: 1075778899 +| mem: 3810485}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden index 1c59e92fdb2..9fefcaa5edd 100644 --- a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 601988481 -| mem: 2206327}) \ No newline at end of file +({cpu: 587524699 +| mem: 2146023}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden index a919e9f5fb8..8665f686a3a 100644 --- a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1146969332 -| mem: 4278182}) \ No newline at end of file +({cpu: 1049588702 +| mem: 3873354}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden index fc795ceded2..654e446365d 100644 --- a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1170026096 -| mem: 4404412}) \ No newline at end of file +({cpu: 1072645466 +| mem: 3999584}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden index 8b693604068..710d3d8a7f4 100644 --- a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 901768264 -| mem: 3294981}) \ No newline at end of file +({cpu: 887304482 +| mem: 3234677}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden index d2bcd823215..6a3bada45d6 100644 --- a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 783067065 -| mem: 2589980}) \ No newline at end of file +({cpu: 768603283 +| mem: 2529676}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden index 905421acb2b..5350b5e3f53 100644 --- a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden @@ -1,2 +1,2 @@ -({cpu: 975591206 -| mem: 3472944}) \ No newline at end of file +({cpu: 857598620 +| mem: 2983908}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden index 8410245b49b..39ed6294393 100644 --- a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2982383145 -| mem: 9365280}) \ No newline at end of file +({cpu: 2977001145 +| mem: 9341880}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden index aa2fefb6746..7b73553bacc 100644 --- a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1740516317 -| mem: 6408258}) \ No newline at end of file +({cpu: 1684359971 +| mem: 6171846}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden index a56a871bc32..2729aab98e6 100644 --- a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 831208925 -| mem: 2872500}) \ No newline at end of file +({cpu: 775052579 +| mem: 2636088}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden index 28eda1b11ed..5d9f3f4d4f7 100644 --- a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden @@ -1,2 +1,2 @@ -({cpu: 874710366 -| mem: 2742755}) \ No newline at end of file +({cpu: 860246584 +| mem: 2682451}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden index 68a641bb9f3..1f3e3c7d227 100644 --- a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1099536887 -| mem: 3905997}) \ No newline at end of file +({cpu: 1085073105 +| mem: 3845693}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden index 4ec10a25a1b..a188ac28247 100644 --- a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 463808040 -| mem: 1631783}) \ No newline at end of file +({cpu: 449344258 +| mem: 1571479}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden index d2bcd823215..6a3bada45d6 100644 --- a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden @@ -1,2 +1,2 @@ -({cpu: 783067065 -| mem: 2589980}) \ No newline at end of file +({cpu: 768603283 +| mem: 2529676}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden index bf18aa47703..fab0948302f 100644 --- a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1007220348 -| mem: 3697516}) \ No newline at end of file +({cpu: 951064002 +| mem: 3461104}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden index bdd13a1c367..250a21c3af4 100644 --- a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1485844027 -| mem: 4216015}) \ No newline at end of file +({cpu: 1488305027 +| mem: 4226715}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden index 3e380639be6..dc3fb1b1969 100644 --- a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 838280194 -| mem: 3124972}) \ No newline at end of file +({cpu: 782123848 +| mem: 2888560}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden index 3f5884dca7e..5061a183f75 100644 --- a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1987756789 -| mem: 7266708}) \ No newline at end of file +({cpu: 1890376159 +| mem: 6861880}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden index 04cf0e1f2e6..2ae3685ff10 100644 --- a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1362279023 -| mem: 4942332}) \ No newline at end of file +({cpu: 1306122677 +| mem: 4705920}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden index 6d41a777e1b..084ddd6845a 100644 --- a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1345088139 -| mem: 5093332}) \ No newline at end of file +({cpu: 1227095367 +| mem: 4604296}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden index 54d80831fa6..2c03fae9522 100644 --- a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden @@ -1,2 +1,2 @@ -({cpu: 880037553 -| mem: 3327729}) \ No newline at end of file +({cpu: 844961629 +| mem: 3183217}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden index bec9312dd99..95ebb1994e0 100644 --- a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1177945395 -| mem: 4407768}) \ No newline at end of file +({cpu: 1080564765 +| mem: 4002940}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden index 56b28a518a8..dce45c502bd 100644 --- a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 16309246383 -| mem: 46151098}) \ No newline at end of file +({cpu: 16303864383 +| mem: 46127698}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden index d5855cb0693..af480d7692f 100644 --- a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1644398143 -| mem: 5901914}) \ No newline at end of file +({cpu: 1588241797 +| mem: 5665502}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden index 37100df8a8e..6e85231e48d 100644 --- a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1291351465 -| mem: 4782260}) \ No newline at end of file +({cpu: 1235195119 +| mem: 4545848}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden index 8fb7ac981ec..7721d4f9542 100644 --- a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 626676238 -| mem: 2301109}) \ No newline at end of file +({cpu: 612212456 +| mem: 2240805}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden index 377adf63b64..2629154d39c 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237472220896 -| mem: 687903920}) \ No newline at end of file +({cpu: 237466838896 +| mem: 687880520}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden index 96304aa07c3..7a0bafa7e00 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1290303178 -| mem: 4881971}) \ No newline at end of file +({cpu: 1255227254 +| mem: 4737459}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden index e50714d1e09..10a5a961d34 100644 --- a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden @@ -1,2 +1,2 @@ -({cpu: 518082880 -| mem: 1752969}) \ No newline at end of file +({cpu: 503619098 +| mem: 1692665}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden index 08a2788b166..102cf3d390e 100644 --- a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 655419786 -| mem: 2357201}) \ No newline at end of file +({cpu: 640956004 +| mem: 2296897}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden index 791af4c8e27..c6f682128a4 100644 --- a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1241392047 -| mem: 4579494}) \ No newline at end of file +({cpu: 1185235701 +| mem: 4343082}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden index ee83291a2cc..895a2da8f28 100644 --- a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden @@ -1,2 +1,2 @@ -({cpu: 875222873 -| mem: 2982264}) \ No newline at end of file +({cpu: 819066527 +| mem: 2745852}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden index 7ec750b2d66..e1f421d5874 100644 --- a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 608235070 -| mem: 2211334}) \ No newline at end of file +({cpu: 552078724 +| mem: 1974922}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden index 466d14513cc..dd5afec32e4 100644 --- a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden @@ -1,2 +1,2 @@ -({cpu: 425875544 -| mem: 1500989}) \ No newline at end of file +({cpu: 411411762 +| mem: 1440685}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden index 655e2bffdee..7deb0c9a0b9 100644 --- a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8467541975 -| mem: 24344926}) \ No newline at end of file +({cpu: 8462159975 +| mem: 24321526}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden index 4155000421c..96f7f04a54d 100644 --- a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 635589024 -| mem: 2088377}) \ No newline at end of file +({cpu: 621125242 +| mem: 2028073}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden index 1644215507a..1677f9958f8 100644 --- a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1826496652 -| mem: 6017516}) \ No newline at end of file +({cpu: 1770340306 +| mem: 5781104}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden index cfbae1332ae..63c496f2cae 100644 --- a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4417165663 -| mem: 13082084}) \ No newline at end of file +({cpu: 4411783663 +| mem: 13058684}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden index 75980c9ad05..081d26a51e7 100644 --- a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden @@ -1,2 +1,2 @@ -({cpu: 80490187205 -| mem: 226766358}) \ No newline at end of file +({cpu: 80484805205 +| mem: 226742958}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden index dd847e9e3c2..886161f5d34 100644 --- a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1578863701 -| mem: 5634236}) \ No newline at end of file +({cpu: 1522707355 +| mem: 5397824}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden index 87158ac3687..2a143e86a70 100644 --- a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 530200251 -| mem: 2147246}) \ No newline at end of file +({cpu: 237267611 +| mem: 925266}) \ No newline at end of file From 11d76bad7398647c8cf42ce379c9f8eb5ab07a74 Mon Sep 17 00:00:00 2001 From: effectfully Date: Fri, 6 Oct 2023 23:04:01 +0200 Subject: [PATCH 12/40] Document and optimize (why are numbers so much better?) --- .../src/PlutusLedgerApi/V1/Value.hs | 134 ++++++++++++++---- .../test/Spec/golden/9.2/Long.stat.golden | 30 ++-- .../test/Spec/golden/9.2/Short.stat.golden | 42 +++--- plutus-tx/src/PlutusTx/ErrorCodes.hs | 6 + plutus-tx/src/PlutusTx/SortedMap.hs | 128 ++++------------- 5 files changed, 175 insertions(+), 165 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 7fe734848e5..b3f9b6f5fa4 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -193,37 +193,6 @@ newtype Value = Value { getValue :: Map.Map CurrencySymbol (Map.Map TokenName In instance Haskell.Eq Value where (==) = eq -{-# INLINEABLE eq #-} -eq :: Value -> Value -> Bool -eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = - case SortedMap.matchKVs (Map.all (== 0)) structEqMap currs1 currs2 of - SortedMap.MatchSuccess -> True - SortedMap.MatchFailure -> False - SortedMap.MatchUnclear valPairs currs1' currs2' -> - if SortedMap.pointwiseEqWith - (Map.all (== 0)) - eqMap - (SortedMap.fromListUnique currs1') - (SortedMap.fromListUnique currs2') - then all (uncurry (==)) valPairs - else False - where - structEqMap :: Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool - structEqMap (Map.toList -> tokens1) (Map.toList -> tokens2) = - SortedMap.pointwiseEqWith - (== 0) - (==) - (SortedMap.UnsafeSortedMap tokens1) - (SortedMap.UnsafeSortedMap tokens2) - - eqMap :: Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool - eqMap (Map.toList -> tokens1) (Map.toList -> tokens2) = - SortedMap.pointwiseEqWith - (== 0) - (==) - (SortedMap.fromListUnique tokens1) - (SortedMap.fromListUnique tokens2) - instance Eq Value where {-# INLINABLE (==) #-} (==) = eq @@ -395,6 +364,109 @@ split (Value mp) = (negate (Value neg), Value pos) where splitIntl mp' = These l r where (l, r) = Map.mapThese (\i -> if i <= 0 then This i else That i) mp' +-- | The type of values that 'matchKVs' returns. See its Haddock for details. +data MatchResult k v + = MatchSuccess + | MatchPartial [(v, v)] [(k, v)] [(k, v)] + | MatchFailure + +{-# INLINE matchKVs #-} +{- | Take a function checking whether a value is zero\/empty, a function checking /structural/ +equality of two values and two key-value lists and return the result of matching the lists +pointwisely and exactly. + +This function performs a fast-and-loose equality checking in a linear fashion and either returns a +conclusive result or pieces required to complete equality checking in a non-linear fashion without +replicating the already performed work. This way checking equality of two structurally equal values +is as cheap as it gets and checking equality of other kinds of values has reasonable cost as little +work is duplicated. + +The rule of thumb is that we always check equality of all keys before checking equality of any of +the values, because + +1. checking equality of two keys before checking equality of their values is necessary anyway and + doing that for all keys before starting to check equality of values is a simple rule allowing us + to communicate to the user how they should align their 'Value's to optimize equality checks +2. values can be maps and as such checking their equality may be very expensive, it makes sense to + check equality of keys first +3. checking equality of keys makes for a less surprising user experience. If we were to process + some of the values first, a slight reordering of elements in the list could cause significant + performance changes (e.g. if a larger value moves to the beginning of the list) + +If the result is 'MatchSuccess', then the two lists are equal. +If the result is 'MatchFailure', then the two lists are not equal (pointwise at least). +If the result is @MatchPartial vvs kvs1' kvs2'@, then the two lists have the same keys in the + beginning (@length vvs@ of them), but diverge at some point. @vvs@ contains values associated with + the matching keys (the first component of each tuple comes from the first list, the second + component of each tuple comes from the second list). @kvs1'@ and @kvs2'@ are the first and the + second list with their prefixes (those that have matching keys) stripped. +-} +matchKVs + :: forall k v. Ord k + => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult k v +matchKVs ~is0 ~structEqV = go where + go :: [(k, v)] -> [(k, v)] -> MatchResult k v + -- Spines match, hence it's a 'MatchSuccess' so far. + go [] [] = MatchSuccess + -- One spine is longer than the other one, but this still can be a 'MatchSuccess' if the + -- non-empty lists only consists of empty values. + go [] kvs2 = if all (is0 . snd) kvs2 then MatchSuccess else MatchFailure + -- Symmetric to the previous case. + go kvs1 [] = if all (is0 . snd) kvs1 then MatchSuccess else MatchFailure + -- Both spines are non-empty. + go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') + -- If keys are equal + | k1 == k2 = + -- then continue checking equality of spines. + case go kvs1' kvs2' of + -- If spines are equal, then we can proceed to checking equality of values as by + -- this point we've ensured that the keys in the lists match exactly. + MatchSuccess -> if structEqV v1 v2 then MatchSuccess else MatchFailure + -- If there was a key mismatch down the line, then we cons the values associated + -- with @k1@ and @k2@ onto @vvs@ to check their equality after we ensure that keys + -- from @kvs1''@ are a permutation of those from @kvs2''@. + MatchPartial vvs kvs1'' kvs2'' -> MatchPartial ((v1, v2) : vvs) kvs1'' kvs2'' + -- A failure stays a failure. + MatchFailure -> MatchFailure + -- If the keys aren't equal, then maybe the first value is empty, in which case we throw it + -- out and proceed. + | is0 v1 = go kvs1' kvs2 + -- Or if the second one is empty, then we throw that one and proceed. + | is0 v2 = go kvs1 kvs2' + -- Otherwise the keys in the lists have diverged and we return the remaining parts. + | otherwise = MatchPartial [] kvs1 kvs2 + +{-# INLINEABLE eq #-} +eq :: Value -> Value -> Bool +eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = + -- Check structural equality of the lists first. + case matchKVs (Map.all (== 0)) (eqMapVia SortedMap.UnsafeSortedMap) currs1 currs2 of + MatchSuccess -> True + MatchFailure -> False + -- If the lists aren't structurally equal, then convert the remaining parts to 'SortedMap's + -- (by sorting first) and check structural equality of the now sorted lists. + MatchPartial valPairs currs1' currs2' -> + if SortedMap.eqWith + (Map.all (== 0)) + (eqMapVia SortedMap.unsafeFromListUnique) + (SortedMap.unsafeFromListUnique currs1') + (SortedMap.unsafeFromListUnique currs2') + then + -- Check equality of values that come from the common key prefix of the original + -- lists. + all (uncurry (==)) valPairs + else False + where + -- Check equality of two @Map@s given a function converting a list to a 'SortedMap' (two options + -- are embedding the list directly to check structural equality or sorting the list first). + eqMapVia + :: ([(TokenName, Integer)] -> SortedMap.SortedMap TokenName Integer) + -> Map.Map TokenName Integer + -> Map.Map TokenName Integer + -> Bool + eqMapVia asSortedMap (Map.toList -> tokens1) (Map.toList -> tokens2) = + SortedMap.eqWith (== 0) (==) (asSortedMap tokens1) (asSortedMap tokens2) + makeLift ''CurrencySymbol makeLift ''TokenName makeLift ''AssetClass diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden index 694035f014c..0fef39b5405 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2596979773 | mem: 9371142}) -({cpu: 1965948562 | mem: 7332820}) -({cpu: 1815400911 | mem: 6551454}) -({cpu: 1737913080 | mem: 6410516}) -({cpu: 1815400911 | mem: 6551454}) -({cpu: 1509785598 | mem: 5487812}) -({cpu: 1033822049 | mem: 3731766}) -({cpu: 1383843100 | mem: 5103364}) -({cpu: 1815400911 | mem: 6551454}) -({cpu: 1257808602 | mem: 4718516}) -({cpu: 1033822049 | mem: 3731766}) -({cpu: 1029773120 | mem: 3796212}) -({cpu: 1033822049 | mem: 3731766}) -({cpu: 801645638 | mem: 2873508}) -({cpu: 252243187 | mem: 912078}) \ No newline at end of file +({cpu: 2645900773 | mem: 9583842}) +({cpu: 1964647073 | mem: 7328418}) +({cpu: 1849141911 | mem: 6698154}) +({cpu: 1737752080 | mem: 6409816}) +({cpu: 1849141911 | mem: 6698154}) +({cpu: 1508484109 | mem: 5483410}) +({cpu: 1052383049 | mem: 3812466}) +({cpu: 1383682100 | mem: 5102664}) +({cpu: 1849141911 | mem: 6698154}) +({cpu: 1256507113 | mem: 4714114}) +({cpu: 1052383049 | mem: 3812466}) +({cpu: 1029612120 | mem: 3795512}) +({cpu: 1052383049 | mem: 3812466}) +({cpu: 800344149 | mem: 2869106}) +({cpu: 255624187 | mem: 926778}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden index 91db45b45df..8d01044a8af 100644 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 7705100 | mem: 33600}) -({cpu: 9821100 | mem: 42800}) -({cpu: 11199491 | mem: 47502}) -({cpu: 13259980 | mem: 55204}) -({cpu: 14385371 | mem: 58806}) -({cpu: 14432980 | mem: 60304}) -({cpu: 20790076 | mem: 82812}) -({cpu: 23243174 | mem: 93512}) -({cpu: 24008467 | mem: 95514}) -({cpu: 22728850 | mem: 92410}) -({cpu: 33599486 | mem: 130824}) -({cpu: 28951164 | mem: 116914}) -({cpu: 46376385 | mem: 177438}) -({cpu: 52996613 | mem: 207136}) -({cpu: 62344806 | mem: 235356}) -({cpu: 60383646 | mem: 237938}) -({cpu: 81499541 | mem: 304578}) -({cpu: 47739912 | mem: 197316}) -({cpu: 103840590 | mem: 385104}) -({cpu: 169491644 | mem: 631358}) -({cpu: 252243187 | mem: 912078}) \ No newline at end of file +({cpu: 6601100 | mem: 28800}) +({cpu: 8671100 | mem: 37800}) +({cpu: 10440491 | mem: 44202}) +({cpu: 12500980 | mem: 51904}) +({cpu: 13626371 | mem: 55506}) +({cpu: 13282980 | mem: 55304}) +({cpu: 20376076 | mem: 81012}) +({cpu: 22783174 | mem: 91512}) +({cpu: 23939467 | mem: 95214}) +({cpu: 20392361 | mem: 83508}) +({cpu: 33875486 | mem: 132024}) +({cpu: 26614675 | mem: 108012}) +({cpu: 46997385 | mem: 180138}) +({cpu: 51846613 | mem: 202136}) +({cpu: 63310806 | mem: 239556}) +({cpu: 59233646 | mem: 232938}) +({cpu: 82810541 | mem: 310278}) +({cpu: 46589912 | mem: 192316}) +({cpu: 105496590 | mem: 392304}) +({cpu: 168341644 | mem: 626358}) +({cpu: 255624187 | mem: 926778}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/ErrorCodes.hs b/plutus-tx/src/PlutusTx/ErrorCodes.hs index e4bf3c687c8..721d11e9ccb 100644 --- a/plutus-tx/src/PlutusTx/ErrorCodes.hs +++ b/plutus-tx/src/PlutusTx/ErrorCodes.hs @@ -39,6 +39,7 @@ allErrorCodes = Map.fromList [ ("PT1", "TH Generation of Indexed Data Error") , ("PT17", "PlutusTx.Enum.Ordering.pred: bad argument") , ("PT18", "PlutusTx.Enum.Ordering.toEnum: bad argument") , ("PT19", "PlutusTx.List.last: empty list") + , ("PT20", "PlutusTx.SortedMap: duplicate elements") ] -- | The error happens in TH generation of indexed data @@ -135,3 +136,8 @@ toEnumOrderingBadArgumentError = "PT18" {-# INLINABLE lastEmptyListError #-} lastEmptyListError :: Builtins.BuiltinString lastEmptyListError = "PT19" + +-- | PlutusTx.SortedMap.unsafeInsertOneUnique: duplicate elements +{-# INLINABLE duplicateElements #-} +duplicateElements :: Builtins.BuiltinString +duplicateElements = "PT20" diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 29d90080994..9e74c60bcde 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -9,15 +9,8 @@ module PlutusTx.SortedMap ( SortedMap (..) , empty , singleton - , insertOneWith - , insertOne - , fromListWith - , fromList - , fromListUnique - , mergeWith - , MatchResult (..) - , matchKVs - , pointwiseEqWith + , unsafeFromListUnique + , eqWith ) where import Prelude qualified as Haskell @@ -26,6 +19,10 @@ import PlutusTx.Base import PlutusTx.Ord import PlutusTx.Prelude +import Data.Coerce (coerce) + +-- | A map from @k@ to @v@ backed by a list that is supposed to be sorted from lowest to highest +-- @k@s with no key duplicated. newtype SortedMap k v = UnsafeSortedMap { unSortedMap :: [(k, v)] } deriving stock (Haskell.Show) @@ -38,100 +35,35 @@ empty = UnsafeSortedMap [] singleton :: k -> v -> SortedMap k [v] singleton ~k ~v = UnsafeSortedMap [(k, [v])] -{-# INLINE insertOneWith #-} -insertOneWith - :: forall k v w. Ord k - => (v -> w -> w) -> (v -> w) -> k -> v -> SortedMap k w -> SortedMap k w -insertOneWith ~op ~inj ~k0 ~v0 = UnsafeSortedMap . go . unSortedMap where - go :: [(k, w)] -> [(k, w)] - go [] = [(k0, inj v0)] - go kws@((k, w) : kws') = +{-# INLINE unsafeInsertOneUnique #-} +-- | Insert a key-value pair into the 'SortedMap' assuming the key isn't already in the map (if it +-- is, the function throws). +unsafeInsertOneUnique :: forall k v. Ord k => k -> v -> SortedMap k v -> SortedMap k v +unsafeInsertOneUnique ~k0 ~v0 = coerce go where + go :: [(k, v)] -> [(k, v)] + go [] = [(k0, v0)] + go kvs@((k, v) : kvs') = case k0 `compare` k of - LT -> (k0, inj v0) : kws - EQ -> (k0, op v0 w) : kws' - GT -> (k, w) : go kws' - -{-# INLINABLE insertOne #-} -insertOne :: Ord k => k -> v -> SortedMap k [v] -> SortedMap k [v] -insertOne = insertOneWith (:) (: []) - --- TODO: proper mergesort -{-# INLINE fromListWith #-} -fromListWith :: forall k v w. Ord k => (v -> w -> w) -> (v -> w) -> [(k, v)] -> SortedMap k w -fromListWith ~act ~inj = go where - go :: [(k, v)] -> SortedMap k w + LT -> (k0, v0) : kvs + -- TODO: make this @traceError duplicateElements@. + EQ -> (k, v0) : kvs' + GT -> (k, v) : go kvs' + +{-# INLINE unsafeFromListUnique #-} +-- | Turn a list into a 'SortedMap' assuming all of its keys are unique (if they are not, the +-- function throws). +unsafeFromListUnique :: forall k v. Ord k => [(k, v)] -> SortedMap k v +unsafeFromListUnique = go where + go :: [(k, v)] -> SortedMap k v go [] = UnsafeSortedMap [] - go ((k, v) : kvs) = insertOneWith act inj k v $ go kvs - -{-# INLINE fromListUnique #-} -fromListUnique :: Ord k => [(k, v)] -> SortedMap k v -fromListUnique = fromListWith const id - -{-# INLINABLE fromList #-} -fromList :: Ord k => [(k, v)] -> SortedMap k [v] -fromList = fromListWith (:) (: []) - -{-# INLINE mergeWith #-} -mergeWith - :: forall k v. Ord k - => (v -> v -> v) -> SortedMap k v -> SortedMap k v -> SortedMap k v -mergeWith ~op ~(UnsafeSortedMap kvs1_0) ~(UnsafeSortedMap kvs2_0) = - UnsafeSortedMap $ go kvs1_0 kvs2_0 - where - go :: [(k, v)] -> [(k, v)] -> [(k, v)] - go [] kvs2 = kvs2 - go kvs1 [] = kvs1 - go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') = - case k1 `compare` k2 of - LT -> (k1, v1) : go kvs1' kvs2 - EQ -> (k1, op v1 v2) : go kvs1' kvs2' - GT -> (k2, v2) : go kvs1 kvs2' - -data MatchResult k v - = MatchSuccess - | MatchUnclear [(v, v)] [(k, v)] [(k, v)] - | MatchFailure - -{-# INLINE matchKVs #-} -matchKVs - :: forall k v. Ord k - => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult k v -matchKVs ~is0 ~structEqV = go where - go :: [(k, v)] -> [(k, v)] -> MatchResult k v - go [] [] = - MatchSuccess - go [] kvs2 = - if all (is0 . snd) kvs2 - then MatchSuccess - else MatchFailure - go kvs1 [] = - if all (is0 . snd) kvs1 - then MatchSuccess - else MatchFailure - go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') - | k1 == k2 = - case go kvs1' kvs2' of - MatchSuccess -> - if structEqV v1 v2 - then MatchSuccess - else MatchFailure - MatchUnclear vvs kvs1'' kvs2'' -> - MatchUnclear ((v1, v2) : vvs) kvs1'' kvs2'' - MatchFailure -> - MatchFailure - | is0 v1 = - if is0 v2 - then go kvs1' kvs2' - else go kvs1' kvs2 - | is0 v2 = go kvs1 kvs2' - | otherwise = - MatchUnclear [] kvs1 kvs2 + go ((k, v) : kvs) = unsafeInsertOneUnique k v $ go kvs -{-# INLINE pointwiseEqWith #-} -pointwiseEqWith +{-# INLINE eqWith #-} +-- | Check equality of 'SortedMap's by matching the underlying lists pointwise. +eqWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> SortedMap k v -> SortedMap k v -> Bool -pointwiseEqWith ~is0 ~eqV ~(UnsafeSortedMap kvs01) ~(UnsafeSortedMap kvs02) = go kvs01 kvs02 where +eqWith ~is0 ~eqV = coerce go where go :: [(k, v)] -> [(k, v)] -> Bool go [] [] = True go [] kvs2 = all (is0 . snd) kvs2 From c923afbcbf12c6c5aee94ab452ea82d496e8290b Mon Sep 17 00:00:00 2001 From: effectfully Date: Mon, 9 Oct 2023 17:14:22 +0200 Subject: [PATCH 13/40] Revert "[PlutusTx] [Test] 'Eq' for 'Value'" This reverts commit 854cb90ce4920b8d78cae8192156bfe31b25611a. --- .../src/PlutusBenchmark/BLS12_381/Scripts.hs | 6 + plutus-ledger-api/plutus-ledger-api.cabal | 5 +- plutus-ledger-api/test/Spec.hs | 2 - plutus-ledger-api/test/Spec/Value.hs | 231 ------------------ .../test/Spec/golden/9.2/Long.stat.golden | 15 -- .../test/Spec/golden/9.2/Short.stat.golden | 21 -- .../test/Spec/golden/9.6/Long.stat.golden | 15 -- .../test/Spec/golden/9.6/Short.stat.golden | 21 -- plutus-tx/src/PlutusTx/Applicative.hs | 7 - plutus-tx/src/PlutusTx/AssocMap.hs | 16 +- plutus-tx/src/PlutusTx/ErrorCodes.hs | 12 - plutus-tx/src/PlutusTx/Functor.hs | 8 +- plutus-tx/src/PlutusTx/List.hs | 39 --- plutus-tx/src/PlutusTx/Prelude.hs | 2 +- plutus-tx/src/PlutusTx/Show.hs | 1 - 15 files changed, 14 insertions(+), 387 deletions(-) delete mode 100644 plutus-ledger-api/test/Spec/Value.hs delete mode 100644 plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden delete mode 100644 plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden delete mode 100644 plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden delete mode 100644 plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden diff --git a/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs b/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs index 7696a5c46fd..bf8c9288ed7 100644 --- a/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs +++ b/plutus-benchmark/bls12-381-costs/src/PlutusBenchmark/BLS12_381/Scripts.hs @@ -722,6 +722,12 @@ aggregateMultiKeyG2Script message pubKeys aggregateSignature bs16Null dst = do calcAggregatedPubkey :: BuiltinBLS12_381_G2_Element -> Integer -> BuiltinBLS12_381_G2_Element calcAggregatedPubkey pk ds = ds `Tx.bls12_381_G2_scalarMul` pk + -- PlutusTx.Prelude has no last + last :: [a] -> a + last [] = traceError "last: needs at least two elements" + last [x] = x + last (_:xs) = last xs + {- An alternative implementation of calcAggregatedPubkeys which uses a different -- means of scalar exponentiation. It results in a slightly smaller script using less CPU but -- considerably more memory, so the overall cost is a greater. diff --git a/plutus-ledger-api/plutus-ledger-api.cabal b/plutus-ledger-api/plutus-ledger-api.cabal index 5eb788196cd..f000ab909bc 100644 --- a/plutus-ledger-api/plutus-ledger-api.cabal +++ b/plutus-ledger-api/plutus-ledger-api.cabal @@ -141,7 +141,6 @@ test-suite plutus-ledger-api-test Spec.Eval Spec.Interval Spec.NoThunks - Spec.Value Spec.Versions build-depends: @@ -155,9 +154,7 @@ test-suite plutus-ledger-api-test , nothunks , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.14 , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.14 - , plutus-tx-plugin ^>=1.14 - , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.14 - , prettyprinter + , plutus-tx:plutus-tx-testlib ^>=1.14 , tasty , tasty-hedgehog , tasty-hunit diff --git a/plutus-ledger-api/test/Spec.hs b/plutus-ledger-api/test/Spec.hs index 3caf021bedc..8d73e29526f 100644 --- a/plutus-ledger-api/test/Spec.hs +++ b/plutus-ledger-api/test/Spec.hs @@ -11,7 +11,6 @@ import Spec.CostModelParams qualified import Spec.Eval qualified import Spec.Interval qualified import Spec.NoThunks qualified -import Spec.Value qualified import Spec.Versions qualified import Test.Tasty @@ -105,5 +104,4 @@ tests = testGroup "plutus-ledger-api" [ , Spec.CostModelParams.tests , Spec.NoThunks.tests , Spec.CBOR.DeserialiseFailureInfo.tests - , Spec.Value.test_EqValue ] diff --git a/plutus-ledger-api/test/Spec/Value.hs b/plutus-ledger-api/test/Spec/Value.hs deleted file mode 100644 index c4f8879f33f..00000000000 --- a/plutus-ledger-api/test/Spec/Value.hs +++ /dev/null @@ -1,231 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TemplateHaskell #-} - -{-# OPTIONS_GHC -fplugin PlutusTx.Plugin #-} -{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:defer-errors #-} -{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:context-level=0 #-} - -module Spec.Value where - -import Prelude qualified as Haskell - -import PlutusLedgerApi.V1.Value - -import PlutusTx.AssocMap qualified as AssocMap -import PlutusTx.Base -import PlutusTx.Builtins -import PlutusTx.Code (CompiledCode, getPlc, unsafeApplyCode) -import PlutusTx.Lift -import PlutusTx.List qualified as ListTx -import PlutusTx.Maybe -import PlutusTx.Numeric -import PlutusTx.Prelude -import PlutusTx.Show (toDigits) -import PlutusTx.TH (compile) -import PlutusTx.Traversable qualified as Tx - -import PlutusCore.Builtin qualified as PLC -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults qualified as PLC -import PlutusCore.Quote qualified as PLC -import UntypedPlutusCore qualified as PLC -import UntypedPlutusCore.Evaluation.Machine.Cek qualified as PLC - -import Control.Exception qualified as Haskell -import Data.Functor qualified as Haskell -import Data.List qualified as Haskell -import Data.Map qualified as Map -import Prettyprinter qualified as Pretty -import Test.Tasty -import Test.Tasty.Extras - -{-# INLINEABLE scalingFactor #-} -scalingFactor :: Integer -scalingFactor = 4 - -{-# INLINEABLE patternOptions #-} --- | A list of \"patterns\", each of which can be turned into 'Value's. --- --- We use the patterns to construct lists of tokens: the first element of a tuple becomes a --- 'TokenName' and the second one stays an 'Integer', so that the result can be used to create a --- @Map TokenName Integer@. --- --- Similarly, we use the patterns to construct lists of currencies: the first element of a tuple --- becomes a 'CurrencySymbol' and the second one is used as the index in the list of tokens that --- was described in the previous point. -patternOptions :: [[(Integer, Integer)]] -patternOptions = - [ [] - , [(1,0)] - , [(1,1)] - , [(1,1), (2,2)] - , [(1,0), (2,2), (1,1)] - , [(2,3), (1,0), (2,2), (1,1)] - , [(2,2), (2,3), (1,0), (2,4), (1,1)] - , [(2,2), (2,3), (1,0), (3,5), (2,4), (1,1)] - , [(2,2), (2,3), (1,0), (3,5), (3,6), (2,4), (1,1)] - , [(2,2), (2,3), (1,0), (3,5), (3,6), (2,4), (1,1), (2,7)] - , [(1,9), (2,2), (6,10), (2,3), (1,0), (4,10), (3,5), (5,0), (3,6), (2,4), (1,1), (2,7), (4,8)] - ] - -{-# INLINEABLE integerToByteString #-} -integerToByteString :: Integer -> BuiltinByteString -integerToByteString n = - if n < 0 - then "-" `appendByteString` integerToByteString (negate n) - -- @48@ is the ASCII code of @0@. - else ListTx.foldr (consByteString . (48 +)) emptyByteString $ toDigits n - -{-# INLINEABLE replicateToByteString #-} --- | Like 'integerToByteString' but generates longer bytestrings, so that repeated recalculations of --- currency/token name comparisons get reflected in the budget tests in a visible manner. -replicateToByteString :: Integer -> BuiltinByteString -replicateToByteString i = - ListTx.foldr id emptyByteString $ - ListTx.replicate iTo6 (appendByteString $ integerToByteString i) - where - iTo2 = i * i - iTo4 = iTo2 * iTo2 - iTo6 = iTo4 * iTo2 - -{-# INLINEABLE tokenListOptions #-} -tokenListOptions :: [[(TokenName, Integer)]] -tokenListOptions = - ListTx.map - (ListTx.map $ \(i, x) -> (TokenName $ replicateToByteString i, x)) - patternOptions - -{-# INLINEABLE currencyListOptions #-} -currencyListOptions :: [[(CurrencySymbol, [(TokenName, Integer)])]] -currencyListOptions = - ListTx.map - (ListTx.map $ \(i, x) -> - ( CurrencySymbol $ replicateToByteString i - , tokenListOptions ListTx.!! x - )) - patternOptions - -{-# INLINEABLE longCurrencyChunk #-} --- | A \"long\" list of currencies each with a \"long\" list of tokens for stress-testing (one --- doesn't need many elements to stress-test Plutus Tx, hence the quotes). -longCurrencyChunk :: [(CurrencySymbol, [(TokenName, Integer)])] -longCurrencyChunk - = ListTx.concatMap Tx.sequence - . ListTx.zip (ListTx.map (CurrencySymbol . replicateToByteString) [1 .. scalingFactor]) - $ ListTx.replicate scalingFactor tokenListOptions - -{-# INLINEABLE insertHooks #-} --- | Return a list whose head is the argument list with 'Nothing' inserted at the beginning, the --- middle and the end of it (every other element is wrapped with 'Just'). The tail of the resulting --- list comprises all possible versions of the head that we get by removing any number of --- 'Nothing's. --- --- Rendering 'Nothing' as @*@ and @Just c@ as @c@ we get: --- --- >>> map (map $ maybe '*' id) $ insertHooks "abcd" --- ["*ab*cd*","ab*cd*","*ab*cd","ab*cd","*abcd*","abcd*","*abcd","abcd"] -insertHooks :: [a] -> [[Maybe a]] -insertHooks xs0 = do - -- The fast and slow pointers trick to find the middle of the list. Check out - -- https://medium.com/@arifimran5/fast-and-slow-pointer-pattern-in-linked-list-43647869ac99 - -- if you're not familiar with the idea. - let go (_ : _ : xsFast) (x : xsSlow) = do - xs' <- go xsFast xsSlow - [Just x : xs'] - go _ xsSlow = do - prefix <- [[Nothing], []] - suffix <- [[Nothing], []] - [prefix ++ map Just xsSlow ++ suffix] - xs0' <- go xs0 xs0 - [Nothing : xs0', xs0'] - -{-# INLINEABLE currencyLongListOptions #-} --- | The last and the biggest list of currencies from 'currencyListOptions' with 'longCurrencyChunk' --- inserted in it in various ways as per 'insertHooks'. -currencyLongListOptions :: [[(CurrencySymbol, [(TokenName, Integer)])]] -currencyLongListOptions = - insertHooks (ListTx.last currencyListOptions) <&> \currencyListWithHooks -> - ListTx.concatMap (maybe longCurrencyChunk pure) currencyListWithHooks - -listsToValue :: [(CurrencySymbol, [(TokenName, Integer)])] -> Value -listsToValue = Value . AssocMap.fromList . ListTx.map (fmap AssocMap.fromList) - -valueToLists :: Value -> [(CurrencySymbol, [(TokenName, Integer)])] -valueToLists = ListTx.map (fmap AssocMap.toList) . AssocMap.toList . getValue - --- | Check equality of two compiled 'Value's through UPLC evaluation and annotate the result with --- the cost of evaluation. -eqValueCode :: CompiledCode Value -> CompiledCode Value -> (Bool, PLC.CountingSt) -eqValueCode valueCode1 valueCode2 = (res, cost) where - prog = - $$(compile [|| \value1 value2 -> toBuiltin ((value1 :: Value) == value2) ||]) - `unsafeApplyCode` valueCode1 `unsafeApplyCode` valueCode2 - (errOrRes, cost) - = PLC.runCekNoEmit PLC.defaultCekParameters PLC.counting - . PLC.runQuote - . PLC.unDeBruijnTermWith (Haskell.error "Free variable") - . PLC._progTerm - $ getPlc prog - res = either Haskell.throw id $ errOrRes >>= PLC.readKnownSelf - --- | Check equality of two compiled 'Value's directly in Haskell. -haskellEqValue :: Value -> Value -> Bool -haskellEqValue value1 value2 = toMap value1 Haskell.== toMap value2 where - toMap - = Map.filter (Haskell.not . Map.null) - . Haskell.fmap (Map.filter (Haskell./= 0)) - . Map.fromListWith (Map.unionWith (Haskell.+)) - . Haskell.map (Haskell.fmap $ Map.fromListWith (Haskell.+)) - . valueToLists - --- | Check whether all currencies and tokens within each of the currencies occur uniquely. -allDistinct :: Value -> Bool -allDistinct - = Haskell.and - . Map.fromListWith (\_ _ -> False) - . Haskell.map (Haskell.fmap $ - Haskell.and . Map.fromListWith (\_ _ -> False) . Haskell.map (Haskell.fmap $ \_ -> True)) - . valueToLists - --- | Return all the pairs of elements of the given list. --- --- > (x, y) `elem` pairs xs ==> fromJust (x `elemIndex` xs) <= fromJust (y `elemIndex` xs) --- --- >>> pairs "abc" --- [('a','a'),('a','b'),('b','b'),('b','c'),('c','c')] -pairs :: [a] -> [(a, a)] -pairs [] = [] -pairs [x] = [(x, x)] -pairs (x : y : xs) = (x, x) : (x, y) : pairs (y : xs) - --- | Convert each list of currencies to a 'Value', check whether those 'Value' are equal to each --- other and dump the costs of all the checks to a golden file. -test_EqCurrencyList :: Haskell.String -> [[(CurrencySymbol, [(TokenName, Integer)])]] -> TestNested -test_EqCurrencyList name currencyLists = - nestedGoldenVsDoc name ".stat" . Pretty.vsep $ - let attachCode value = (value, liftCodeDef value) - valuesWithCodes = map (attachCode . listsToValue) currencyLists - in pairs valuesWithCodes Haskell.<&> \((value1, valueCode1), (value2, valueCode2)) -> - let eqResExp = value1 `haskellEqValue` value2 - (eqResAct, PLC.CountingSt budget) = valueCode1 `eqValueCode` valueCode2 - -- We need the 'allDistinct' checks, because duplicated - -- currencies/tokens-within-the-same-currency result in undefined behavior when - -- checking 'Value's for equality. - in if allDistinct value1 && allDistinct value2 && eqResAct /= eqResExp - then Haskell.error $ Haskell.intercalate "\n" - [ "Error when checking equality of" - , " " Haskell.++ Haskell.show value1 - , "and" - , " " Haskell.++ Haskell.show value2 - , "Expected " Haskell.++ Haskell.show eqResExp - , "But got " Haskell.++ Haskell.show eqResAct - ] - else Pretty.group $ Pretty.pretty budget - -test_EqValue :: TestTree -test_EqValue = - runTestNestedIn ["test", "Spec"] $ - testNestedGhc "golden" - [ test_EqCurrencyList "Short" currencyListOptions - , test_EqCurrencyList "Long" currencyLongListOptions - ] diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden deleted file mode 100644 index 0fef39b5405..00000000000 --- a/plutus-ledger-api/test/Spec/golden/9.2/Long.stat.golden +++ /dev/null @@ -1,15 +0,0 @@ -({cpu: 2645900773 | mem: 9583842}) -({cpu: 1964647073 | mem: 7328418}) -({cpu: 1849141911 | mem: 6698154}) -({cpu: 1737752080 | mem: 6409816}) -({cpu: 1849141911 | mem: 6698154}) -({cpu: 1508484109 | mem: 5483410}) -({cpu: 1052383049 | mem: 3812466}) -({cpu: 1383682100 | mem: 5102664}) -({cpu: 1849141911 | mem: 6698154}) -({cpu: 1256507113 | mem: 4714114}) -({cpu: 1052383049 | mem: 3812466}) -({cpu: 1029612120 | mem: 3795512}) -({cpu: 1052383049 | mem: 3812466}) -({cpu: 800344149 | mem: 2869106}) -({cpu: 255624187 | mem: 926778}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden deleted file mode 100644 index 8d01044a8af..00000000000 --- a/plutus-ledger-api/test/Spec/golden/9.2/Short.stat.golden +++ /dev/null @@ -1,21 +0,0 @@ -({cpu: 6601100 | mem: 28800}) -({cpu: 8671100 | mem: 37800}) -({cpu: 10440491 | mem: 44202}) -({cpu: 12500980 | mem: 51904}) -({cpu: 13626371 | mem: 55506}) -({cpu: 13282980 | mem: 55304}) -({cpu: 20376076 | mem: 81012}) -({cpu: 22783174 | mem: 91512}) -({cpu: 23939467 | mem: 95214}) -({cpu: 20392361 | mem: 83508}) -({cpu: 33875486 | mem: 132024}) -({cpu: 26614675 | mem: 108012}) -({cpu: 46997385 | mem: 180138}) -({cpu: 51846613 | mem: 202136}) -({cpu: 63310806 | mem: 239556}) -({cpu: 59233646 | mem: 232938}) -({cpu: 82810541 | mem: 310278}) -({cpu: 46589912 | mem: 192316}) -({cpu: 105496590 | mem: 392304}) -({cpu: 168341644 | mem: 626358}) -({cpu: 255624187 | mem: 926778}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden b/plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden deleted file mode 100644 index a526434d8c5..00000000000 --- a/plutus-ledger-api/test/Spec/golden/9.6/Long.stat.golden +++ /dev/null @@ -1,15 +0,0 @@ -({cpu: 9973470526 | mem: 35842068}) -({cpu: 11745533020 | mem: 42534510}) -({cpu: 7920693953 | mem: 28898832}) -({cpu: 5904207585 | mem: 21558634}) -({cpu: 7059406130 | mem: 25341788}) -({cpu: 7892487322 | mem: 28624042}) -({cpu: 4530371967 | mem: 16502668}) -({cpu: 4110666923 | mem: 14907606}) -({cpu: 6943725202 | mem: 24963212}) -({cpu: 7628424785 | mem: 27862324}) -({cpu: 3955552543 | mem: 14676132}) -({cpu: 2961222957 | mem: 10963710}) -({cpu: 4029660806 | mem: 14462932}) -({cpu: 3840585216 | mem: 14117410}) -({cpu: 948559238 | mem: 3486606}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden b/plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden deleted file mode 100644 index 8db9c792d53..00000000000 --- a/plutus-ledger-api/test/Spec/golden/9.6/Short.stat.golden +++ /dev/null @@ -1,21 +0,0 @@ -({cpu: 5819100 | mem: 25400}) -({cpu: 10672100 | mem: 46500}) -({cpu: 16901882 | mem: 71004}) -({cpu: 20733371 | mem: 86406}) -({cpu: 24387153 | mem: 99710}) -({cpu: 32155198 | mem: 130814}) -({cpu: 45309186 | mem: 181424}) -({cpu: 44850795 | mem: 180722}) -({cpu: 52876186 | mem: 214324}) -({cpu: 60705679 | mem: 242832}) -({cpu: 85320026 | mem: 338050}) -({cpu: 79383223 | mem: 316044}) -({cpu: 104103378 | mem: 412860}) -({cpu: 118749158 | mem: 469470}) -({cpu: 151377868 | mem: 591300}) -({cpu: 160638569 | mem: 626008}) -({cpu: 205167295 | mem: 793946}) -({cpu: 210985120 | mem: 817948}) -({cpu: 244304454 | mem: 949168}) -({cpu: 398821706 | mem: 1547972}) -({cpu: 948559238 | mem: 3486606}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/Applicative.hs b/plutus-tx/src/PlutusTx/Applicative.hs index 01584375e1d..4def78ee675 100644 --- a/plutus-tx/src/PlutusTx/Applicative.hs +++ b/plutus-tx/src/PlutusTx/Applicative.hs @@ -9,7 +9,6 @@ import PlutusTx.Base import PlutusTx.Bool (Bool) import PlutusTx.Either (Either (..)) import PlutusTx.Functor -import PlutusTx.List qualified as List import PlutusTx.Maybe (Maybe (..)) import PlutusTx.Monoid (Monoid (..), mappend) @@ -61,12 +60,6 @@ instance Applicative (Either a) where Left e <*> _ = Left e Right f <*> r = fmap f r -instance Applicative [] where - {-# INLINABLE pure #-} - pure x = [x] - {-# INLINABLE (<*>) #-} - fs <*> xs = List.concatMap (\f -> List.map f xs) fs - instance Applicative Identity where {-# INLINABLE pure #-} pure = Identity diff --git a/plutus-tx/src/PlutusTx/AssocMap.hs b/plutus-tx/src/PlutusTx/AssocMap.hs index 915ae255d57..fd47f7792bb 100644 --- a/plutus-tx/src/PlutusTx/AssocMap.hs +++ b/plutus-tx/src/PlutusTx/AssocMap.hs @@ -19,7 +19,6 @@ module PlutusTx.AssocMap ( empty, null, fromList, - fromListSafe, toList, keys, elems, @@ -37,8 +36,9 @@ module PlutusTx.AssocMap ( mapThese, ) where -import Prelude qualified as Haskell - +import Control.DeepSeq (NFData) +import Data.Data +import GHC.Generics (Generic) import PlutusTx.Builtins qualified as P import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.IsData @@ -46,10 +46,7 @@ import PlutusTx.Lift (makeLift) import PlutusTx.Prelude hiding (all, filter, mapMaybe, null, toList) import PlutusTx.Prelude qualified as P import PlutusTx.These - -import Control.DeepSeq (NFData) -import Data.Data -import GHC.Generics (Generic) +import Prelude qualified as Haskell import Prettyprinter (Pretty (..)) {- HLINT ignore "Use newtype instead of data" -} @@ -153,10 +150,6 @@ instance (Pretty k, Pretty v) => Pretty (Map k v) where fromList :: [(k, v)] -> Map k v fromList = Map -{-# INLINEABLE fromListSafe #-} -fromListSafe :: Eq k => [(k, v)] -> Map k v -fromListSafe = foldr (uncurry insert) empty - {-# INLINEABLE toList #-} toList :: Map k v -> [(k, v)] toList (Map l) = l @@ -174,6 +167,7 @@ lookup c (Map xs) = go xs {-# INLINEABLE member #-} + -- | Is the key a member of the map? member :: forall k v. (Eq k) => k -> Map k v -> Bool member k m = isJust (lookup k m) diff --git a/plutus-tx/src/PlutusTx/ErrorCodes.hs b/plutus-tx/src/PlutusTx/ErrorCodes.hs index 721d11e9ccb..dfdd2586ee4 100644 --- a/plutus-tx/src/PlutusTx/ErrorCodes.hs +++ b/plutus-tx/src/PlutusTx/ErrorCodes.hs @@ -38,8 +38,6 @@ allErrorCodes = Map.fromList [ ("PT1", "TH Generation of Indexed Data Error") , ("PT16", "PlutusTx.Enum.Ordering.succ: bad argument") , ("PT17", "PlutusTx.Enum.Ordering.pred: bad argument") , ("PT18", "PlutusTx.Enum.Ordering.toEnum: bad argument") - , ("PT19", "PlutusTx.List.last: empty list") - , ("PT20", "PlutusTx.SortedMap: duplicate elements") ] -- | The error happens in TH generation of indexed data @@ -131,13 +129,3 @@ predOrderingBadArgumentError = "PT17" {-# INLINABLE toEnumOrderingBadArgumentError #-} toEnumOrderingBadArgumentError :: Builtins.BuiltinString toEnumOrderingBadArgumentError = "PT18" - --- | PlutusTx.List.last: empty list -{-# INLINABLE lastEmptyListError #-} -lastEmptyListError :: Builtins.BuiltinString -lastEmptyListError = "PT19" - --- | PlutusTx.SortedMap.unsafeInsertOneUnique: duplicate elements -{-# INLINABLE duplicateElements #-} -duplicateElements :: Builtins.BuiltinString -duplicateElements = "PT20" diff --git a/plutus-tx/src/PlutusTx/Functor.hs b/plutus-tx/src/PlutusTx/Functor.hs index 1878863c226..021d398a59e 100644 --- a/plutus-tx/src/PlutusTx/Functor.hs +++ b/plutus-tx/src/PlutusTx/Functor.hs @@ -1,7 +1,7 @@ {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE LambdaCase #-} {-# OPTIONS_GHC -fno-omit-interface-pragmas #-} -module PlutusTx.Functor (Functor(..), (<$>), (<&>), (<$)) where +module PlutusTx.Functor (Functor(..), (<$>), (<$)) where import Control.Applicative (Const (..)) import Data.Functor.Identity (Identity (..)) @@ -27,12 +27,6 @@ infixl 4 <$> (<$>) :: Functor f => (a -> b) -> f a -> f b (<$>) = fmap -infixl 1 <&> --- | Plutus Tx version of '(Data.Functor.<&>)'. -{-# INLINABLE (<&>) #-} -(<&>) :: Functor f => f a -> (a -> b) -> f b -as <&> f = f <$> as - infixl 4 <$ {-# INLINABLE (<$) #-} -- | Plutus Tx version of '(Data.Functor.<$)'. diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index d77a48586fc..e05c7fa4d76 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -3,7 +3,6 @@ {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -fno-omit-interface-pragmas #-} module PlutusTx.List ( - uncons, null, map, and, @@ -21,14 +20,10 @@ module PlutusTx.List ( foldr, foldl, reverse, - concat, - concatMap, zip, - unzip, (++), (!!), head, - last, tail, take, drop, @@ -54,13 +49,6 @@ import Prelude (Maybe (..), (.)) {- HLINT ignore -} -{-# INLINABLE uncons #-} --- | Plutus Tx version of 'Data.List.uncons'. -uncons :: [a] -> Maybe (a, [a]) -uncons = \case - [] -> Nothing - x:xs -> Just (x, xs) - {-# INLINABLE null #-} -- | Test whether a list is empty. null :: [a] -> Bool @@ -174,19 +162,6 @@ infixr 5 ++ (++) :: [a] -> [a] -> [a] (++) l r = foldr (:) r l -{-# INLINABLE concat #-} --- | Plutus Tx version of 'Data.List.concat'. --- --- >>> concat [[1, 2], [3], [4, 5]] --- [1,2,3,4,5] -concat :: [[a]] -> [a] -concat = foldr (++) [] - -{-# INLINABLE concatMap #-} --- | Plutus Tx version of 'Data.List.concatMap'. -concatMap :: (a -> [b]) -> [a] -> [b] -concatMap f = foldr (\x ys -> f x ++ ys) [] - {-# INLINABLE filter #-} -- | Plutus Tx version of 'Data.List.filter'. -- @@ -260,26 +235,12 @@ zip [] _bs = [] zip _as [] = [] zip (a:as) (b:bs) = (a,b) : zip as bs -{-# INLINABLE unzip #-} --- | Plutus Tx version of 'Data.List.unzip'. -unzip :: [(a,b)] -> ([a], [b]) -unzip [] = ([], []) -unzip ((x, y) : xys) = case unzip xys of - (xs, ys) -> (x : xs, y : ys) - {-# INLINABLE head #-} -- | Plutus Tx version of 'Data.List.head'. head :: [a] -> a head [] = traceError headEmptyListError head (x : _) = x -{-# INLINABLE last #-} --- | Plutus Tx version of 'Data.List.last'. -last :: [a] -> a -last [x] = x -last (_:xs) = last xs -last [] = traceError lastEmptyListError - {-# INLINABLE tail #-} -- | Plutus Tx version of 'Data.List.tail'. tail :: [a] -> [a] diff --git a/plutus-tx/src/PlutusTx/Prelude.hs b/plutus-tx/src/PlutusTx/Prelude.hs index ef6ada5f2d7..26036f27fd7 100644 --- a/plutus-tx/src/PlutusTx/Prelude.hs +++ b/plutus-tx/src/PlutusTx/Prelude.hs @@ -142,7 +142,7 @@ import PlutusTx.Foldable as Foldable import PlutusTx.Functor as Functor import PlutusTx.IsData import PlutusTx.Lattice as Lattice -import PlutusTx.List as List hiding (concat, concatMap, foldl, foldr) +import PlutusTx.List as List hiding (foldl, foldr) import PlutusTx.Maybe as Maybe import PlutusTx.Monoid as Monoid import PlutusTx.Numeric as Numeric diff --git a/plutus-tx/src/PlutusTx/Show.hs b/plutus-tx/src/PlutusTx/Show.hs index 5b16c1ebf9c..22a4107587b 100644 --- a/plutus-tx/src/PlutusTx/Show.hs +++ b/plutus-tx/src/PlutusTx/Show.hs @@ -7,7 +7,6 @@ module PlutusTx.Show ( Show (..), ShowS, - toDigits, showString, showSpace, showCommaSpace, From 22f41bf59c0264743dbdee7d1ff687dbdbffa1d4 Mon Sep 17 00:00:00 2001 From: effectfully Date: Mon, 9 Oct 2023 17:26:32 +0200 Subject: [PATCH 14/40] Update golden tests --- .../Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../Spec/golden/9.2/Short.stat.golden | 42 +++++++++---------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden index 1f051c8bc37..0fef39b5405 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 9780362526 | mem: 35002468}) -({cpu: 11535083020 | mem: 41619510}) -({cpu: 7773631953 | mem: 28259432}) -({cpu: 5769243585 | mem: 20971834}) -({cpu: 6924442130 | mem: 24754988}) -({cpu: 7745425322 | mem: 27984642}) -({cpu: 4446697967 | mem: 16138868}) -({cpu: 4033846923 | mem: 14573606}) -({cpu: 6808761202 | mem: 24376412}) -({cpu: 7477360785 | mem: 27205524}) -({cpu: 3869670543 | mem: 14302732}) -({cpu: 2884402957 | mem: 10629710}) -({cpu: 3952840806 | mem: 14128932}) -({cpu: 3754703216 | mem: 13744010}) -({cpu: 927859238 | mem: 3396606}) \ No newline at end of file +({cpu: 2645900773 | mem: 9583842}) +({cpu: 1964647073 | mem: 7328418}) +({cpu: 1849141911 | mem: 6698154}) +({cpu: 1737752080 | mem: 6409816}) +({cpu: 1849141911 | mem: 6698154}) +({cpu: 1508484109 | mem: 5483410}) +({cpu: 1052383049 | mem: 3812466}) +({cpu: 1383682100 | mem: 5102664}) +({cpu: 1849141911 | mem: 6698154}) +({cpu: 1256507113 | mem: 4714114}) +({cpu: 1052383049 | mem: 3812466}) +({cpu: 1029612120 | mem: 3795512}) +({cpu: 1052383049 | mem: 3812466}) +({cpu: 800344149 | mem: 2869106}) +({cpu: 255624187 | mem: 926778}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden index 210cf0913b8..8d01044a8af 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 5819100 | mem: 25400}) -({cpu: 10672100 | mem: 46500}) -({cpu: 16625882 | mem: 69804}) -({cpu: 20457371 | mem: 85206}) -({cpu: 23835153 | mem: 97310}) -({cpu: 31603198 | mem: 128414}) -({cpu: 44205186 | mem: 176624}) -({cpu: 43792795 | mem: 176122}) -({cpu: 51542186 | mem: 208524}) -({cpu: 59371679 | mem: 237032}) -({cpu: 83158026 | mem: 328650}) -({cpu: 77267223 | mem: 306844}) -({cpu: 100929378 | mem: 399060}) -({cpu: 115575158 | mem: 455670}) -({cpu: 146823868 | mem: 571500}) -({cpu: 156084569 | mem: 606208}) -({cpu: 198957295 | mem: 766946}) -({cpu: 204775120 | mem: 790948}) -({cpu: 236346454 | mem: 914568}) -({cpu: 390817706 | mem: 1513172}) -({cpu: 927859238 | mem: 3396606}) \ No newline at end of file +({cpu: 6601100 | mem: 28800}) +({cpu: 8671100 | mem: 37800}) +({cpu: 10440491 | mem: 44202}) +({cpu: 12500980 | mem: 51904}) +({cpu: 13626371 | mem: 55506}) +({cpu: 13282980 | mem: 55304}) +({cpu: 20376076 | mem: 81012}) +({cpu: 22783174 | mem: 91512}) +({cpu: 23939467 | mem: 95214}) +({cpu: 20392361 | mem: 83508}) +({cpu: 33875486 | mem: 132024}) +({cpu: 26614675 | mem: 108012}) +({cpu: 46997385 | mem: 180138}) +({cpu: 51846613 | mem: 202136}) +({cpu: 63310806 | mem: 239556}) +({cpu: 59233646 | mem: 232938}) +({cpu: 82810541 | mem: 310278}) +({cpu: 46589912 | mem: 192316}) +({cpu: 105496590 | mem: 392304}) +({cpu: 168341644 | mem: 626358}) +({cpu: 255624187 | mem: 926778}) \ No newline at end of file From 38541b81058e1e64c2c9c33630a1d8387bd5e46b Mon Sep 17 00:00:00 2001 From: effectfully Date: Mon, 9 Oct 2023 18:03:58 +0200 Subject: [PATCH 15/40] Add some comments --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 4 ++++ plutus-tx/src/PlutusTx/SortedMap.hs | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index b3f9b6f5fa4..2384b494f8a 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -437,6 +437,10 @@ matchKVs ~is0 ~structEqV = go where | otherwise = MatchPartial [] kvs1 kvs2 {-# INLINEABLE eq #-} +-- | Check equality of two 'Value's. Does not assume orderness of lists within 'Value' or lack of +-- empty values (such as a token whose quantity is zero or a currencies that has a bunch of such +-- tokens or no tokens at all), but does assume that no currencies or tokens within a single +-- currency have multiple entries. eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = -- Check structural equality of the lists first. diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 9e74c60bcde..45800b084f0 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -65,10 +65,12 @@ eqWith => (v -> Bool) -> (v -> v -> Bool) -> SortedMap k v -> SortedMap k v -> Bool eqWith ~is0 ~eqV = coerce go where go :: [(k, v)] -> [(k, v)] -> Bool - go [] [] = True - go [] kvs2 = all (is0 . snd) kvs2 - go kvs1 [] = all (is0 . snd) kvs1 + go [] [] = True + go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all elements in the + go kvs1 [] = all (is0 . snd) kvs1 -- other list need to be zero for lists to be equal. go ((k1, v1) : kvs1) ((k2, v2) : kvs2) = + -- As with 'matchKVs' we check equality of all the keys first and only then check equality + -- of values. if k1 == k2 then if go kvs1 kvs2 then eqV v1 v2 From c76a7fa2331ec172aa413aee16cda72932a1dfd5 Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 10 Oct 2023 02:45:45 +0200 Subject: [PATCH 16/40] Update 'plutus-benchmark' --- ...0101020201000100010001020101020201010000020102.eval.golden | 4 ++-- ...0101000001000001010101010100000001000001010000.eval.golden | 4 ++-- ...0203030303000200000104030002040304020400000102.eval.golden | 4 ++-- ...fa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden | 4 ++-- ...0101000100010100000001010000010001000001000101.eval.golden | 4 ++-- ...0200010102000201000201010102000102010201010000.eval.golden | 4 ++-- ...0306010000000302050807010208060100070207080202.eval.golden | 4 ++-- ...0103020102020004040300030304040400010301040303.eval.golden | 4 ++-- ...0e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden | 4 ++-- ...db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden | 4 ++-- ...0206030604080208020207000101060706050502040301.eval.golden | 4 ++-- ...010e050d00040907050e0a0d06030f1006030701020607.eval.golden | 4 ++-- ...8de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden | 4 ++-- ...28d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden | 4 ++-- ...1e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden | 4 ++-- ...2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden | 4 ++-- ...379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden | 4 ++-- ...14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden | 4 ++-- ...16090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden | 4 ++-- ...9ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden | 4 ++-- ...4c672a282663643b1b0823471c67737f0b076870331260.eval.golden | 4 ++-- ...5e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden | 4 ++-- ...201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden | 4 ++-- ...3405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden | 4 ++-- ...cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden | 4 ++-- ...db514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden | 4 ++-- ...4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden | 4 ++-- ...e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden | 4 ++-- ...8fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden | 4 ++-- ...b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden | 4 ++-- ...e9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden | 4 ++-- ...569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden | 4 ++-- ...182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden | 4 ++-- ...3c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden | 4 ++-- ...62b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden | 4 ++-- ...f507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden | 4 ++-- ...eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden | 4 ++-- ...a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden | 4 ++-- ...637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden | 4 ++-- ...a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden | 4 ++-- ...5a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden | 4 ++-- ...350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden | 4 ++-- ...837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden | 4 ++-- ...eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden | 4 ++-- ...8df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden | 4 ++-- ...5463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden | 4 ++-- ...786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden | 4 ++-- ...eccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden | 4 ++-- ...e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden | 4 ++-- ...41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden | 4 ++-- ...6636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden | 4 ++-- ...ab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden | 4 ++-- ...b6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden | 4 ++-- ...4f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden | 4 ++-- ...c4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden | 4 ++-- ...0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden | 4 ++-- ...971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden | 4 ++-- ...d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden | 4 ++-- ...4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden | 4 ++-- ...c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden | 4 ++-- ...3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden | 4 ++-- ...1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden | 4 ++-- ...c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden | 4 ++-- ...da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden | 4 ++-- ...e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden | 4 ++-- ...2c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden | 4 ++-- ...5aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden | 4 ++-- ...46438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden | 4 ++-- ...074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden | 4 ++-- ...5a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden | 4 ++-- ...2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden | 4 ++-- ...b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden | 4 ++-- ...fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden | 4 ++-- ...d2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden | 4 ++-- ...674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden | 4 ++-- ...3322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden | 4 ++-- ...604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden | 4 ++-- ...1a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden | 4 ++-- ...558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden | 4 ++-- ...e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden | 4 ++-- ...fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden | 4 ++-- ...7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden | 4 ++-- ...0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden | 4 ++-- ...dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden | 4 ++-- ...1e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden | 4 ++-- ...2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden | 4 ++-- ...845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden | 4 ++-- ...b38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden | 4 ++-- ...81547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden | 4 ++-- ...6d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden | 4 ++-- ...25319768989313a93913fdc347c704ddaa27042757d990.eval.golden | 4 ++-- ...0c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden | 4 ++-- ...c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden | 4 ++-- ...cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden | 4 ++-- ...f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden | 4 ++-- ...e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden | 4 ++-- ...8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden | 4 ++-- ...01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden | 4 ++-- ...b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden | 4 ++-- ...4c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden | 4 ++-- plutus-benchmark/marlowe/test/semantics/semantics.size.golden | 2 +- .../test/checkScriptContextEqualityTerm-20.eval.golden | 4 ++-- plutus-tx/src/PlutusTx/AssocMap.hs | 1 - plutus-tx/src/PlutusTx/List.hs | 2 +- 104 files changed, 204 insertions(+), 205 deletions(-) diff --git a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden index a1af897c01a..8e50bbeab81 100644 --- a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 672658612 -| mem: 2152459}) \ No newline at end of file +({cpu: 671899612 +| mem: 2149159}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden index 30cd3190829..13b18b528cb 100644 --- a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1195724210 -| mem: 3874624}) \ No newline at end of file +({cpu: 1195655210 +| mem: 3874324}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden index 94e4734e9a8..1a7934a76c2 100644 --- a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1347297917 -| mem: 5113328}) \ No newline at end of file +({cpu: 1347895917 +| mem: 5115928}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden index a9c260ff2d8..fb546f9f703 100644 --- a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2421143469 -| mem: 7867367}) \ No newline at end of file +({cpu: 2421074469 +| mem: 7867067}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden index 1e50cd4f314..1c00e9052b7 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8455438933 -| mem: 24304340}) \ No newline at end of file +({cpu: 8454334933 +| mem: 24299540}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden index 10a5a961d34..54845bc5f1e 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503619098 -| mem: 1692665}) \ No newline at end of file +({cpu: 502860098 +| mem: 1689365}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden index edc5839c50f..2a78e232a84 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1500808711 -| mem: 5240852}) \ No newline at end of file +({cpu: 1500739711 +| mem: 5240552}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden index 67f68d4b3f0..2421fc6c788 100644 --- a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden @@ -1,2 +1,2 @@ -({cpu: 832128722 -| mem: 3156031}) \ No newline at end of file +({cpu: 831369722 +| mem: 3152731}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden index 0c10ac77172..e914ecfe279 100644 --- a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1436950978 -| mem: 4896061}) \ No newline at end of file +({cpu: 1436881978 +| mem: 4895761}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden index a19f0370bc9..b5e126d87ce 100644 --- a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1076752438 -| mem: 3817987}) \ No newline at end of file +({cpu: 1075993438 +| mem: 3814687}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden index 66617bce743..3929b018199 100644 --- a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2422254502 -| mem: 7727414}) \ No newline at end of file +({cpu: 2421150502 +| mem: 7722614}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden index a3312b6c178..61b11c50316 100644 --- a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1209408783 -| mem: 4544989}) \ No newline at end of file +({cpu: 1208649783 +| mem: 4541689}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden index f4adda0257e..e78cd057166 100644 --- a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1218096413 -| mem: 4620399}) \ No newline at end of file +({cpu: 1217682413 +| mem: 4618599}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden index 8ebc6f5e903..38d836d6e8c 100644 --- a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1913906016 -| mem: 6963706}) \ No newline at end of file +({cpu: 1914527016 +| mem: 6966406}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden index be26df99152..4633acc04bd 100644 --- a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1019503755 -| mem: 3345799}) \ No newline at end of file +({cpu: 1018744755 +| mem: 3342499}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden index 1e29fd45d9a..daf253f68d9 100644 --- a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1056530790 -| mem: 3755285}) \ No newline at end of file +({cpu: 1056461790 +| mem: 3754985}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden index 872d01c00f6..33645d7c6cb 100644 --- a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 658693538 -| mem: 2353615}) \ No newline at end of file +({cpu: 658279538 +| mem: 2351815}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden index 85c2d3d6353..78c9e84f656 100644 --- a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden @@ -1,2 +1,2 @@ -({cpu: 891334719 -| mem: 3297993}) \ No newline at end of file +({cpu: 890575719 +| mem: 3294693}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden index 68e082600b6..4653f85e94e 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1723811084 -| mem: 5147505}) \ No newline at end of file +({cpu: 1723052084 +| mem: 5144205}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden index e4ac511d2e9..efa03431afa 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1583323356 -| mem: 5591266}) \ No newline at end of file +({cpu: 1583254356 +| mem: 5590966}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden index 1bee8caa056..4a8826687b3 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1451500650 -| mem: 4890271}) \ No newline at end of file +({cpu: 1451431650 +| mem: 4889971}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden index 6affaac93ae..8f3b2f03df7 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 577001972 -| mem: 1900679}) \ No newline at end of file +({cpu: 576242972 +| mem: 1897379}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden index be21d18ffe8..1f7913cad23 100644 --- a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 35966062004 -| mem: 99140220}) \ No newline at end of file +({cpu: 35964958004 +| mem: 99135420}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden index 34fb5ba73f5..d6af708a626 100644 --- a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192056170781 -| mem: 541496422}) \ No newline at end of file +({cpu: 192055066781 +| mem: 541491622}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden index 2729aab98e6..6eb08bf4400 100644 --- a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden @@ -1,2 +1,2 @@ -({cpu: 775052579 -| mem: 2636088}) \ No newline at end of file +({cpu: 774983579 +| mem: 2635788}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden index de46b44d9f2..0e8707518d7 100644 --- a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden @@ -1,2 +1,2 @@ -({cpu: 504516746 -| mem: 1721863}) \ No newline at end of file +({cpu: 503757746 +| mem: 1718563}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden index 187824ccf08..ccb5e7a7867 100644 --- a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 706622654 -| mem: 2650982}) \ No newline at end of file +({cpu: 706553654 +| mem: 2650682}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden index 937867446f8..748abeb1376 100644 --- a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 38982228944 -| mem: 109277382}) \ No newline at end of file +({cpu: 38981124944 +| mem: 109272582}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden index d0a9353bf0e..0a88c385837 100644 --- a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4528235727 -| mem: 13363932}) \ No newline at end of file +({cpu: 4528166727 +| mem: 13363632}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden index 17143d3e719..7943cc26db1 100644 --- a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden @@ -1,2 +1,2 @@ -({cpu: 845190393 -| mem: 3202429}) \ No newline at end of file +({cpu: 844431393 +| mem: 3199129}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden index 27d0a69cba3..d83622922f8 100644 --- a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1529306660 -| mem: 5244426}) \ No newline at end of file +({cpu: 1529237660 +| mem: 5244126}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden index bcfd4d1ebc0..0630875164a 100644 --- a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1495293224 -| mem: 5631768}) \ No newline at end of file +({cpu: 1495891224 +| mem: 5634368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden index 52cab6e1fb7..f9b4ad20019 100644 --- a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 482359860 -| mem: 1642335}) \ No newline at end of file +({cpu: 481600860 +| mem: 1639035}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden index 2f41760c792..d3f0615ae98 100644 --- a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden @@ -1,2 +1,2 @@ -({cpu: 638221119 -| mem: 2290895}) \ No newline at end of file +({cpu: 637462119 +| mem: 2287595}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden index 89340934222..8117429f4bd 100644 --- a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden @@ -1,2 +1,2 @@ -({cpu: 926593647 -| mem: 3383554}) \ No newline at end of file +({cpu: 926524647 +| mem: 3383254}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden index 284532124f7..992c8f373eb 100644 --- a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1011412194 -| mem: 3703214}) \ No newline at end of file +({cpu: 1011343194 +| mem: 3702914}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden index 72a563a38ff..8b1f0614644 100644 --- a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden @@ -1,2 +1,2 @@ -({cpu: 571722423 -| mem: 1887443}) \ No newline at end of file +({cpu: 570963423 +| mem: 1884143}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden index 90daf84574a..b378029b6a8 100644 --- a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1512653357 -| mem: 5119058}) \ No newline at end of file +({cpu: 1512584357 +| mem: 5118758}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden index f922365f383..4929b3ea032 100644 --- a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 659840576 -| mem: 2121423}) \ No newline at end of file +({cpu: 659081576 +| mem: 2118123}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden index 11a250571cf..e9f8257bc58 100644 --- a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1252755449 -| mem: 4712015}) \ No newline at end of file +({cpu: 1252341449 +| mem: 4710215}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden index 01ddc3349ac..1b946262fad 100644 --- a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 890503876 -| mem: 3248921}) \ No newline at end of file +({cpu: 889744876 +| mem: 3245621}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden index 8e1e5e9bac9..fc768b70df2 100644 --- a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1905685287 -| mem: 5864438}) \ No newline at end of file +({cpu: 1905616287 +| mem: 5864138}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden index 82c27d5b961..bbcb4dbe83a 100644 --- a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 358708427 -| mem: 1316795}) \ No newline at end of file +({cpu: 357949427 +| mem: 1313495}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden index a188ac28247..260bb0b2c5d 100644 --- a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 449344258 -| mem: 1571479}) \ No newline at end of file +({cpu: 448585258 +| mem: 1568179}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden index 0133b7e6e54..be2523c7933 100644 --- a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 542505005 -| mem: 1818985}) \ No newline at end of file +({cpu: 541746005 +| mem: 1815685}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden index d29197f4aa5..8d8cc60c51e 100644 --- a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1216016193 -| mem: 4466376}) \ No newline at end of file +({cpu: 1215947193 +| mem: 4466076}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden index de46b44d9f2..0e8707518d7 100644 --- a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 504516746 -| mem: 1721863}) \ No newline at end of file +({cpu: 503757746 +| mem: 1718563}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden index 560bed97a48..814404fc481 100644 --- a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden @@ -1,2 +1,2 @@ -({cpu: 586558619 -| mem: 2160817}) \ No newline at end of file +({cpu: 586144619 +| mem: 2159017}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden index ae76407e0d3..a2cb763ade4 100644 --- a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1330172880 -| mem: 4658727}) \ No newline at end of file +({cpu: 1329413880 +| mem: 4655427}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden index 3b947a41912..50b4c01eb7a 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1155006663 -| mem: 4387887}) \ No newline at end of file +({cpu: 1154592663 +| mem: 4386087}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden index 2b1f46800bd..8b0ecce2cdd 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 589732451 -| mem: 2186655}) \ No newline at end of file +({cpu: 589318451 +| mem: 2184855}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden index 339db01b1fa..b914bbcdcb5 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 506353983 -| mem: 1698667}) \ No newline at end of file +({cpu: 505594983 +| mem: 1695367}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden index 32a500e071b..079c4b9743a 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1021879600 -| mem: 3776662}) \ No newline at end of file +({cpu: 1021810600 +| mem: 3776362}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden index 80c278bfcc3..6561ba6ab05 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 775987258 -| mem: 2674449}) \ No newline at end of file +({cpu: 775573258 +| mem: 2672649}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden index 51470ff3cbc..6320d8bcca4 100644 --- a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden @@ -1,2 +1,2 @@ -({cpu: 871073881 -| mem: 3245336}) \ No newline at end of file +({cpu: 871004881 +| mem: 3245036}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden index ce644ad75ea..fe7a6e37a0a 100644 --- a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 79783989260 -| mem: 227161562}) \ No newline at end of file +({cpu: 79782885260 +| mem: 227156762}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden index 2074e3105aa..39fb697771c 100644 --- a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2602914552 -| mem: 8318120}) \ No newline at end of file +({cpu: 2602845552 +| mem: 8317820}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden index 2a74613af3e..0b34000d0a8 100644 --- a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1252596969 -| mem: 4712587}) \ No newline at end of file +({cpu: 1252182969 +| mem: 4710787}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden index 34fb5ba73f5..d6af708a626 100644 --- a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192056170781 -| mem: 541496422}) \ No newline at end of file +({cpu: 192055066781 +| mem: 541491622}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden index 83023c64967..288954d8639 100644 --- a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 619022028 -| mem: 2249735}) \ No newline at end of file +({cpu: 618608028 +| mem: 2247935}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden index 41ee15931fc..c929165941b 100644 --- a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1075778899 -| mem: 3810485}) \ No newline at end of file +({cpu: 1075709899 +| mem: 3810185}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden index 9fefcaa5edd..38eb87651be 100644 --- a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 587524699 -| mem: 2146023}) \ No newline at end of file +({cpu: 586765699 +| mem: 2142723}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden index 8665f686a3a..761cfa61afb 100644 --- a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1049588702 -| mem: 3873354}) \ No newline at end of file +({cpu: 1050209702 +| mem: 3876054}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden index 654e446365d..98e73eae78c 100644 --- a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1072645466 -| mem: 3999584}) \ No newline at end of file +({cpu: 1073266466 +| mem: 4002284}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden index 710d3d8a7f4..8cdaa7da60d 100644 --- a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 887304482 -| mem: 3234677}) \ No newline at end of file +({cpu: 886545482 +| mem: 3231377}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden index 6a3bada45d6..8e1bac021ca 100644 --- a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 768603283 -| mem: 2529676}) \ No newline at end of file +({cpu: 767844283 +| mem: 2526376}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden index 5350b5e3f53..76aacf78689 100644 --- a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden @@ -1,2 +1,2 @@ -({cpu: 857598620 -| mem: 2983908}) \ No newline at end of file +({cpu: 858564620 +| mem: 2988108}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden index 39ed6294393..598aa83ded5 100644 --- a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2977001145 -| mem: 9341880}) \ No newline at end of file +({cpu: 2975897145 +| mem: 9337080}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden index 7b73553bacc..d07234a0aad 100644 --- a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1684359971 -| mem: 6171846}) \ No newline at end of file +({cpu: 1684290971 +| mem: 6171546}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden index 2729aab98e6..6eb08bf4400 100644 --- a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 775052579 -| mem: 2636088}) \ No newline at end of file +({cpu: 774983579 +| mem: 2635788}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden index 5d9f3f4d4f7..230b0a26904 100644 --- a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden @@ -1,2 +1,2 @@ -({cpu: 860246584 -| mem: 2682451}) \ No newline at end of file +({cpu: 859487584 +| mem: 2679151}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden index 1f3e3c7d227..f696387caf8 100644 --- a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1085073105 -| mem: 3845693}) \ No newline at end of file +({cpu: 1084314105 +| mem: 3842393}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden index a188ac28247..260bb0b2c5d 100644 --- a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 449344258 -| mem: 1571479}) \ No newline at end of file +({cpu: 448585258 +| mem: 1568179}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden index 6a3bada45d6..8e1bac021ca 100644 --- a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden @@ -1,2 +1,2 @@ -({cpu: 768603283 -| mem: 2529676}) \ No newline at end of file +({cpu: 767844283 +| mem: 2526376}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden index fab0948302f..87b997e08a7 100644 --- a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden @@ -1,2 +1,2 @@ -({cpu: 951064002 -| mem: 3461104}) \ No newline at end of file +({cpu: 950995002 +| mem: 3460804}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden index 250a21c3af4..1251b74fce5 100644 --- a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1488305027 -| mem: 4226715}) \ No newline at end of file +({cpu: 1487201027 +| mem: 4221915}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden index dc3fb1b1969..d49cf22c971 100644 --- a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 782123848 -| mem: 2888560}) \ No newline at end of file +({cpu: 782054848 +| mem: 2888260}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden index 5061a183f75..3af4cd3ca5f 100644 --- a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1890376159 -| mem: 6861880}) \ No newline at end of file +({cpu: 1890997159 +| mem: 6864580}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden index 2ae3685ff10..3551ac49a69 100644 --- a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1306122677 -| mem: 4705920}) \ No newline at end of file +({cpu: 1306053677 +| mem: 4705620}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden index 084ddd6845a..a66540b6d3d 100644 --- a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1227095367 -| mem: 4604296}) \ No newline at end of file +({cpu: 1228061367 +| mem: 4608496}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden index 2c03fae9522..c5cddccc2af 100644 --- a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden @@ -1,2 +1,2 @@ -({cpu: 844961629 -| mem: 3183217}) \ No newline at end of file +({cpu: 844547629 +| mem: 3181417}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden index 95ebb1994e0..0fe5a89ae7a 100644 --- a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1080564765 -| mem: 4002940}) \ No newline at end of file +({cpu: 1081185765 +| mem: 4005640}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden index dce45c502bd..7f64eaad438 100644 --- a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 16303864383 -| mem: 46127698}) \ No newline at end of file +({cpu: 16302760383 +| mem: 46122898}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden index af480d7692f..dc504e5260e 100644 --- a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1588241797 -| mem: 5665502}) \ No newline at end of file +({cpu: 1588172797 +| mem: 5665202}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden index 6e85231e48d..5f8868710f3 100644 --- a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1235195119 -| mem: 4545848}) \ No newline at end of file +({cpu: 1235126119 +| mem: 4545548}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden index 7721d4f9542..451c9f02b63 100644 --- a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 612212456 -| mem: 2240805}) \ No newline at end of file +({cpu: 611453456 +| mem: 2237505}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden index 2629154d39c..207ff3aad09 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237466838896 -| mem: 687880520}) \ No newline at end of file +({cpu: 237465734896 +| mem: 687875720}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden index 7a0bafa7e00..f953d579e43 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1255227254 -| mem: 4737459}) \ No newline at end of file +({cpu: 1254813254 +| mem: 4735659}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden index 10a5a961d34..54845bc5f1e 100644 --- a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503619098 -| mem: 1692665}) \ No newline at end of file +({cpu: 502860098 +| mem: 1689365}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden index 102cf3d390e..0e957cff9f6 100644 --- a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 640956004 -| mem: 2296897}) \ No newline at end of file +({cpu: 640197004 +| mem: 2293597}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden index c6f682128a4..8711bbdbb53 100644 --- a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1185235701 -| mem: 4343082}) \ No newline at end of file +({cpu: 1185166701 +| mem: 4342782}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden index 895a2da8f28..2e62ef7da32 100644 --- a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden @@ -1,2 +1,2 @@ -({cpu: 819066527 -| mem: 2745852}) \ No newline at end of file +({cpu: 818997527 +| mem: 2745552}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden index e1f421d5874..7ced29323b2 100644 --- a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 552078724 -| mem: 1974922}) \ No newline at end of file +({cpu: 552009724 +| mem: 1974622}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden index dd5afec32e4..355186187ca 100644 --- a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden @@ -1,2 +1,2 @@ -({cpu: 411411762 -| mem: 1440685}) \ No newline at end of file +({cpu: 410652762 +| mem: 1437385}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden index 7deb0c9a0b9..59c445dfbee 100644 --- a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8462159975 -| mem: 24321526}) \ No newline at end of file +({cpu: 8461055975 +| mem: 24316726}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden index 96f7f04a54d..092888faae6 100644 --- a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 621125242 -| mem: 2028073}) \ No newline at end of file +({cpu: 620366242 +| mem: 2024773}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden index 1677f9958f8..fbd4ee986c6 100644 --- a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1770340306 -| mem: 5781104}) \ No newline at end of file +({cpu: 1770271306 +| mem: 5780804}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden index 63c496f2cae..cc0e95158b0 100644 --- a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4411783663 -| mem: 13058684}) \ No newline at end of file +({cpu: 4410679663 +| mem: 13053884}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden index 081d26a51e7..ee6f9b4e390 100644 --- a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden @@ -1,2 +1,2 @@ -({cpu: 80484805205 -| mem: 226742958}) \ No newline at end of file +({cpu: 80483701205 +| mem: 226738158}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden index 886161f5d34..e59215dae74 100644 --- a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1522707355 -| mem: 5397824}) \ No newline at end of file +({cpu: 1522638355 +| mem: 5397524}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden index 27f3f80d285..9bc60b9f217 100644 --- a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden +++ b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden @@ -1 +1 @@ -13603 \ No newline at end of file +14857 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden index 2a143e86a70..ae4b4e5b2e0 100644 --- a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237267611 -| mem: 925266}) \ No newline at end of file +({cpu: 243063611 +| mem: 950466}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/AssocMap.hs b/plutus-tx/src/PlutusTx/AssocMap.hs index 915ae255d57..3ffd299d7c7 100644 --- a/plutus-tx/src/PlutusTx/AssocMap.hs +++ b/plutus-tx/src/PlutusTx/AssocMap.hs @@ -9,7 +9,6 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE UndecidableInstances #-} - {-# OPTIONS_GHC -Wno-name-shadowing #-} -- | A map represented as an "association list" of key-value pairs. diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index 0e3c4bbe1df..3dd65a0aaea 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -106,7 +106,7 @@ any f = go [] -> False x : xs -> if f x then True else go xs -{-# INLINE all #-} +{-# INLINE all #-} -- Improves some of the budget tests. -- | Determines whether all elements of the list satisfy the predicate. all :: forall a. (a -> Bool) -> [a] -> Bool all f = go From e8f7a14339c80c7c5c7ca584983d581ec41aa84a Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 10 Oct 2023 05:30:17 +0200 Subject: [PATCH 17/40] Add a few comments --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 4 ++-- plutus-tx/src/PlutusTx/List.hs | 3 ++- plutus-tx/src/PlutusTx/SortedMap.hs | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 2384b494f8a..f55b70691ac 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -445,8 +445,8 @@ eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = -- Check structural equality of the lists first. case matchKVs (Map.all (== 0)) (eqMapVia SortedMap.UnsafeSortedMap) currs1 currs2 of - MatchSuccess -> True - MatchFailure -> False + MatchSuccess -> True + MatchFailure -> False -- If the lists aren't structurally equal, then convert the remaining parts to 'SortedMap's -- (by sorting first) and check structural equality of the now sorted lists. MatchPartial valPairs currs1' currs2' -> diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index 3dd65a0aaea..9a04d508ab2 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -106,7 +106,8 @@ any f = go [] -> False x : xs -> if f x then True else go xs -{-# INLINE all #-} -- Improves some of the budget tests. +-- The pragma improves some of the budget tests. +{-# INLINE all #-} -- | Determines whether all elements of the list satisfy the predicate. all :: forall a. (a -> Bool) -> [a] -> Bool all f = go diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index 45800b084f0..c99c90ea5d9 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -58,6 +58,7 @@ unsafeFromListUnique = go where go [] = UnsafeSortedMap [] go ((k, v) : kvs) = unsafeInsertOneUnique k v $ go kvs +-- The pragma trades a bit size for potentially plenty of budget. {-# INLINE eqWith #-} -- | Check equality of 'SortedMap's by matching the underlying lists pointwise. eqWith From d7e4c9fcdb7b3dd24d5801af19d11748e40df670 Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 10 Oct 2023 05:35:35 +0200 Subject: [PATCH 18/40] Add a changelog entry --- ...3352_effectfully_experiment_with_MatchUnclear_and_tildas.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md diff --git a/plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md b/plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md new file mode 100644 index 00000000000..593bc8c9328 --- /dev/null +++ b/plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md @@ -0,0 +1,3 @@ +### Changed + +- Optimized equality checking of `Value`s in [#5577](https://github.com/input-output-hk/plutus/pull/5577) From 0610a16cc1890e340fd09755eefb4d2c5ea59358 Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 10 Oct 2023 06:07:42 +0200 Subject: [PATCH 19/40] Reference the original issue --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index f55b70691ac..483e76e2613 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -393,6 +393,11 @@ the values, because some of the values first, a slight reordering of elements in the list could cause significant performance changes (e.g. if a larger value moves to the beginning of the list) +For these reasons we decided not to pick the winner (@valueEqualsValue4@) from + https://github.com/input-output-hk/plutus/issues/5135#issuecomment-1459327829 +despite the fact that in some cases it performs much better than our solution (while performing +substantially worse in others). + If the result is 'MatchSuccess', then the two lists are equal. If the result is 'MatchFailure', then the two lists are not equal (pointwise at least). If the result is @MatchPartial vvs kvs1' kvs2'@, then the two lists have the same keys in the From 191ce10269815c94ff1a46da61957f634cceded0 Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 10 Oct 2023 17:06:00 +0200 Subject: [PATCH 20/40] Fix equality checking for 'valPairs' --- ...010001020101020201010000020102.eval.golden | 4 +- ...010101010100000001000001010000.eval.golden | 4 +- ...000104030002040304020400000102.eval.golden | 4 +- ...2992faf62e0b991d7310a2f91666b8.eval.golden | 4 +- ...000001010000010001000001000101.eval.golden | 4 +- ...000201010102000102010201010000.eval.golden | 4 +- ...050807010208060100070207080202.eval.golden | 4 +- ...040300030304040400010301040303.eval.golden | 4 +- ...0d0104050a0b0f0506070f0a070008.eval.golden | 4 +- ...d266dd7544678743890b0e8e1add63.eval.golden | 4 +- ...020207000101060706050502040301.eval.golden | 4 +- ...050e0a0d06030f1006030701020607.eval.golden | 4 +- ...6a95115748c026f9ec129384c262c4.eval.golden | 4 +- ...03031d8de696d90ec789e70d6bc1d8.eval.golden | 4 +- ...151c1f1d201c040f10091b020a0e1a.eval.golden | 4 +- ...4fe55e4096f5ce2e804735a7fbaf91.eval.golden | 4 +- ...39c9b87e5d7bea570087ec506935d5.eval.golden | 4 +- ...93093efe7bc76d6322aed6ddb582ad.eval.golden | 4 +- ...020c2c133a1a3c3f3c232a26153a04.eval.golden | 4 +- ...c9fc38298d567d15ee9f2eea69d89e.eval.golden | 4 +- ...1b0823471c67737f0b076870331260.eval.golden | 4 +- ...052ebcf66ec4ad77e51c11501381c7.eval.golden | 4 +- ...010d1d1c150e110a110e1006160a0d.eval.golden | 4 +- ...2a0f1140211c3e3f171e26312b0220.eval.golden | 4 +- ...782b19ba72dc4951941fb4c20d2263.eval.golden | 4 +- ...128b4ddcf426852b441f9a9d02c882.eval.golden | 4 +- ...f7636986014de2d2aaa460ddde0bc3.eval.golden | 4 +- ...60f22719a996871ad412cbe4de78b5.eval.golden | 4 +- ...ce450b9ce8a0f42a6e313b752e6f2c.eval.golden | 4 +- ...7463d209a453048a66c6eee624a695.eval.golden | 4 +- ...f166785e8b5183c8139db2aa7312d1.eval.golden | 4 +- ...c321d13fec0375606325eee9a34a6a.eval.golden | 4 +- ...ec88446e2d10625119a9d17fa3ec3d.eval.golden | 4 +- ...e2e396c299a0ce101ee6bf4b2020db.eval.golden | 4 +- ...b321a467dedb278328215167eca455.eval.golden | 4 +- ...11a81ca3841f47f37633e8aacbb5de.eval.golden | 4 +- ...137fabffc9de499a0de7cabb335479.eval.golden | 4 +- ...7878958cab3b9d9353978b08c36d8a.eval.golden | 4 +- ...256319a7b5ce4202cb54dfef8e37e7.eval.golden | 4 +- ...c232125976f29b1c3e21d9f537845c.eval.golden | 4 +- ...12b32bd8aecb48a228b50e02b055c8.eval.golden | 4 +- ...e7af0d28e1eb68faeecc45f4655f57.eval.golden | 4 +- ...65fff00a555ce8c55e36ddc003007a.eval.golden | 4 +- ...9be5ae1892d07ee71161bfb55a7cb7.eval.golden | 4 +- ...f53b335a85a2825502ab1e0687197e.eval.golden | 4 +- ...18f38f7539b7ba7167d577c0c8b8ce.eval.golden | 4 +- ...d0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden | 4 +- ...fdfc0b8409ba1e98f95fa5b6caf999.eval.golden | 4 +- ...1c878a0e0a7d6f7fe1d4a619e06112.eval.golden | 4 +- ...7539062b5728182e073e5760561a66.eval.golden | 4 +- ...109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden | 4 +- ...b6c6712c28c54f5a25792049294acc.eval.golden | 4 +- ...2c1dc6f4e7e412eeb5a3ced42fb642.eval.golden | 4 +- ...494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden | 4 +- ...a1575294ea39061b81a194ebb9eaae.eval.golden | 4 +- ...e03805fac9d5fb4ff2d3066e53fc7e.eval.golden | 4 +- ...4bafcb38fbfa1dbc31ac2053628a38.eval.golden | 4 +- ...19d4342612accf40913f9ae9419fac.eval.golden | 4 +- ...10fccd3dce2a23910bddd35c503b71.eval.golden | 4 +- ...08009738401d264bf9b3eb7c6f49c1.eval.golden | 4 +- ...10e1e953867cc4900cc25e5b9dec47.eval.golden | 4 +- ...97a420954018d8301ec4f9783be0d7.eval.golden | 4 +- ...f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden | 4 +- ...2540a1abd79718e681228f4057403a.eval.golden | 4 +- ...35e40a5defc6f3b9be68b70b4a3db6.eval.golden | 4 +- ...8322a9dcbe277c143ed3aede9d265f.eval.golden | 4 +- ...d2e61afdb3ac18128e1688c07071ba.eval.golden | 4 +- ...2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden | 4 +- ...b3a1ce6db4e501df1086773c6c0201.eval.golden | 4 +- ...a2517055197aff6b60a87ff718d66c.eval.golden | 4 +- ...4e8e75beb636692478ec39f74ee221.eval.golden | 4 +- ...b1605fe1490aa3f4f64a3fa8881b25.eval.golden | 4 +- ...5254897d6d1d0e21bc380147687bd5.eval.golden | 4 +- ...ef42aee239a2d9bc5314d127cce592.eval.golden | 4 +- ...2cd9997bdf2d8b2998c6bfeef3b122.eval.golden | 4 +- ...73eccf3df3a605bd6bc6a456cde871.eval.golden | 4 +- ...11e81fea90e41afebd669e51bb60c8.eval.golden | 4 +- ...fcde89510b29cccce81971e38e0835.eval.golden | 4 +- ...af884e504d2c410ad63ba46d8ca35c.eval.golden | 4 +- ...948bb1d1e29eacecd022eeb168b315.eval.golden | 4 +- ...253a51a0c0c7890f2214df9ac19274.eval.golden | 4 +- ...40ba143ce0579f1602fd780cabf153.eval.golden | 4 +- ...f9e276b5dabc66ff669d5650d0be1c.eval.golden | 4 +- ...b46eec7a26fa31b80ae69d44805efc.eval.golden | 4 +- ...7cd3eccec8cac9c70a4857b88a5eb8.eval.golden | 4 +- ...122f3330fe5b77b3222f570395d9f5.eval.golden | 4 +- ...f00ba5822197ade7dd540489ec5e95.eval.golden | 4 +- ...7e11195d161b5bb0a2b58f89b2c65a.eval.golden | 4 +- ...bd9e06036460eea3705c88ea867e33.eval.golden | 4 +- ...5d054c6f7f34355fcfeefebef479f3.eval.golden | 4 +- ...3913fdc347c704ddaa27042757d990.eval.golden | 4 +- ...bac7c8323256c31c90c520ee6a1080.eval.golden | 4 +- ...5678dd8cd5ddb981375a028b3a40a5.eval.golden | 4 +- ...6c413f979f2492cf3339319d8cc079.eval.golden | 4 +- ...ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden | 4 +- ...df7131740212762ae4483ec749fe1d.eval.golden | 4 +- ...a942123cf8660aac2b5bac21ec28f0.eval.golden | 4 +- ...d4e54333bdd408cbe7c47c55e73ae4.eval.golden | 4 +- ...4dda59aa929cffe0f1ff5355db8d79.eval.golden | 4 +- ...35aa02274161b23d57709c0f8b8de6.eval.golden | 4 +- ...ckScriptContextEqualityTerm-20.eval.golden | 4 +- .../src/PlutusLedgerApi/V1/Value.hs | 2 +- .../Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../Spec/golden/9.2/Short.stat.golden | 42 +++++++++---------- plutus-tx/src/PlutusTx/SortedMap.hs | 6 +-- 105 files changed, 242 insertions(+), 242 deletions(-) diff --git a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden index 8e50bbeab81..9ee3561137b 100644 --- a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 671899612 -| mem: 2149159}) \ No newline at end of file +({cpu: 671623612 +| mem: 2147959}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden index 13b18b528cb..e5693ed8436 100644 --- a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1195655210 -| mem: 3874324}) \ No newline at end of file +({cpu: 1195379210 +| mem: 3873124}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden index 1a7934a76c2..4833bf11b0a 100644 --- a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1347895917 -| mem: 5115928}) \ No newline at end of file +({cpu: 1347619917 +| mem: 5114728}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden index fb546f9f703..bbdc149fb59 100644 --- a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2421074469 -| mem: 7867067}) \ No newline at end of file +({cpu: 2420798469 +| mem: 7865867}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden index 1c00e9052b7..722bd247f03 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8454334933 -| mem: 24299540}) \ No newline at end of file +({cpu: 8454058933 +| mem: 24298340}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden index 54845bc5f1e..e1024b35c12 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 502860098 -| mem: 1689365}) \ No newline at end of file +({cpu: 502584098 +| mem: 1688165}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden index 2a78e232a84..e9ba750f041 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1500739711 -| mem: 5240552}) \ No newline at end of file +({cpu: 1500463711 +| mem: 5239352}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden index 2421fc6c788..11d5a1ace7b 100644 --- a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden @@ -1,2 +1,2 @@ -({cpu: 831369722 -| mem: 3152731}) \ No newline at end of file +({cpu: 831093722 +| mem: 3151531}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden index e914ecfe279..a1c1a649335 100644 --- a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1436881978 -| mem: 4895761}) \ No newline at end of file +({cpu: 1436605978 +| mem: 4894561}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden index b5e126d87ce..f6511d75ad6 100644 --- a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1075993438 -| mem: 3814687}) \ No newline at end of file +({cpu: 1075717438 +| mem: 3813487}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden index 3929b018199..82ecc82f8b4 100644 --- a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2421150502 -| mem: 7722614}) \ No newline at end of file +({cpu: 2420874502 +| mem: 7721414}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden index 61b11c50316..0daf9f5bae9 100644 --- a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1208649783 -| mem: 4541689}) \ No newline at end of file +({cpu: 1208373783 +| mem: 4540489}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden index e78cd057166..3840152f902 100644 --- a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1217682413 -| mem: 4618599}) \ No newline at end of file +({cpu: 1217406413 +| mem: 4617399}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden index 38d836d6e8c..f30602331c4 100644 --- a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1914527016 -| mem: 6966406}) \ No newline at end of file +({cpu: 1914251016 +| mem: 6965206}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden index 4633acc04bd..73d856f10a4 100644 --- a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1018744755 -| mem: 3342499}) \ No newline at end of file +({cpu: 1018468755 +| mem: 3341299}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden index daf253f68d9..5f4b86fcdb1 100644 --- a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1056461790 -| mem: 3754985}) \ No newline at end of file +({cpu: 1056185790 +| mem: 3753785}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden index 33645d7c6cb..34a449c0bf5 100644 --- a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 658279538 -| mem: 2351815}) \ No newline at end of file +({cpu: 658003538 +| mem: 2350615}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden index 78c9e84f656..9ad67e71729 100644 --- a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden @@ -1,2 +1,2 @@ -({cpu: 890575719 -| mem: 3294693}) \ No newline at end of file +({cpu: 890299719 +| mem: 3293493}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden index 4653f85e94e..ea30f0fc699 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1723052084 -| mem: 5144205}) \ No newline at end of file +({cpu: 1722776084 +| mem: 5143005}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden index efa03431afa..bd2f7c36f4a 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1583254356 -| mem: 5590966}) \ No newline at end of file +({cpu: 1582978356 +| mem: 5589766}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden index 4a8826687b3..5de1366f50c 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1451431650 -| mem: 4889971}) \ No newline at end of file +({cpu: 1451155650 +| mem: 4888771}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden index 8f3b2f03df7..3ac6dc1e445 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 576242972 -| mem: 1897379}) \ No newline at end of file +({cpu: 575966972 +| mem: 1896179}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden index 1f7913cad23..67bc6131b70 100644 --- a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 35964958004 -| mem: 99135420}) \ No newline at end of file +({cpu: 35964682004 +| mem: 99134220}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden index d6af708a626..256dcf7bc09 100644 --- a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192055066781 -| mem: 541491622}) \ No newline at end of file +({cpu: 192054790781 +| mem: 541490422}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden index 6eb08bf4400..10a0469bd5f 100644 --- a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden @@ -1,2 +1,2 @@ -({cpu: 774983579 -| mem: 2635788}) \ No newline at end of file +({cpu: 774707579 +| mem: 2634588}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden index 0e8707518d7..a612ecab18c 100644 --- a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503757746 -| mem: 1718563}) \ No newline at end of file +({cpu: 503481746 +| mem: 1717363}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden index ccb5e7a7867..a22e7bad6d0 100644 --- a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 706553654 -| mem: 2650682}) \ No newline at end of file +({cpu: 706277654 +| mem: 2649482}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden index 748abeb1376..153f3774682 100644 --- a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 38981124944 -| mem: 109272582}) \ No newline at end of file +({cpu: 38980848944 +| mem: 109271382}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden index 0a88c385837..4c6146c7f53 100644 --- a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4528166727 -| mem: 13363632}) \ No newline at end of file +({cpu: 4527890727 +| mem: 13362432}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden index 7943cc26db1..970c2fd7037 100644 --- a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden @@ -1,2 +1,2 @@ -({cpu: 844431393 -| mem: 3199129}) \ No newline at end of file +({cpu: 844155393 +| mem: 3197929}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden index d83622922f8..f0ce4a2b2b0 100644 --- a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1529237660 -| mem: 5244126}) \ No newline at end of file +({cpu: 1528961660 +| mem: 5242926}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden index 0630875164a..e50abcfea85 100644 --- a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1495891224 -| mem: 5634368}) \ No newline at end of file +({cpu: 1495615224 +| mem: 5633168}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden index f9b4ad20019..6a0f255455f 100644 --- a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 481600860 -| mem: 1639035}) \ No newline at end of file +({cpu: 481324860 +| mem: 1637835}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden index d3f0615ae98..7726bc3af77 100644 --- a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden @@ -1,2 +1,2 @@ -({cpu: 637462119 -| mem: 2287595}) \ No newline at end of file +({cpu: 637186119 +| mem: 2286395}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden index 8117429f4bd..ac25ea7a939 100644 --- a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden @@ -1,2 +1,2 @@ -({cpu: 926524647 -| mem: 3383254}) \ No newline at end of file +({cpu: 926248647 +| mem: 3382054}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden index 992c8f373eb..5b2e1909a79 100644 --- a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1011343194 -| mem: 3702914}) \ No newline at end of file +({cpu: 1011067194 +| mem: 3701714}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden index 8b1f0614644..3003fd90633 100644 --- a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden @@ -1,2 +1,2 @@ -({cpu: 570963423 -| mem: 1884143}) \ No newline at end of file +({cpu: 570687423 +| mem: 1882943}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden index b378029b6a8..6b36202bfa1 100644 --- a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1512584357 -| mem: 5118758}) \ No newline at end of file +({cpu: 1512308357 +| mem: 5117558}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden index 4929b3ea032..6e9e29a247e 100644 --- a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 659081576 -| mem: 2118123}) \ No newline at end of file +({cpu: 658805576 +| mem: 2116923}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden index e9f8257bc58..6ed57e75ed1 100644 --- a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1252341449 -| mem: 4710215}) \ No newline at end of file +({cpu: 1252065449 +| mem: 4709015}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden index 1b946262fad..49dd924ad0c 100644 --- a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 889744876 -| mem: 3245621}) \ No newline at end of file +({cpu: 889468876 +| mem: 3244421}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden index fc768b70df2..13cf3186316 100644 --- a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1905616287 -| mem: 5864138}) \ No newline at end of file +({cpu: 1905340287 +| mem: 5862938}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden index bbcb4dbe83a..a0336298083 100644 --- a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 357949427 -| mem: 1313495}) \ No newline at end of file +({cpu: 357673427 +| mem: 1312295}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden index 260bb0b2c5d..286088f522d 100644 --- a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 448585258 -| mem: 1568179}) \ No newline at end of file +({cpu: 448309258 +| mem: 1566979}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden index be2523c7933..757ff9d27b6 100644 --- a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 541746005 -| mem: 1815685}) \ No newline at end of file +({cpu: 541470005 +| mem: 1814485}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden index 8d8cc60c51e..d77ff981425 100644 --- a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1215947193 -| mem: 4466076}) \ No newline at end of file +({cpu: 1215671193 +| mem: 4464876}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden index 0e8707518d7..a612ecab18c 100644 --- a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503757746 -| mem: 1718563}) \ No newline at end of file +({cpu: 503481746 +| mem: 1717363}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden index 814404fc481..59fe66715e0 100644 --- a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden @@ -1,2 +1,2 @@ -({cpu: 586144619 -| mem: 2159017}) \ No newline at end of file +({cpu: 585868619 +| mem: 2157817}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden index a2cb763ade4..76684eebb96 100644 --- a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1329413880 -| mem: 4655427}) \ No newline at end of file +({cpu: 1329137880 +| mem: 4654227}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden index 50b4c01eb7a..7e255fcd6e4 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1154592663 -| mem: 4386087}) \ No newline at end of file +({cpu: 1154316663 +| mem: 4384887}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden index 8b0ecce2cdd..8f5cb0ea247 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 589318451 -| mem: 2184855}) \ No newline at end of file +({cpu: 589042451 +| mem: 2183655}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden index b914bbcdcb5..f0d5842bc76 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 505594983 -| mem: 1695367}) \ No newline at end of file +({cpu: 505318983 +| mem: 1694167}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden index 079c4b9743a..cd8928e8ac9 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1021810600 -| mem: 3776362}) \ No newline at end of file +({cpu: 1021534600 +| mem: 3775162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden index 6561ba6ab05..85ed81e6d47 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 775573258 -| mem: 2672649}) \ No newline at end of file +({cpu: 775297258 +| mem: 2671449}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden index 6320d8bcca4..18324ad0ca5 100644 --- a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden @@ -1,2 +1,2 @@ -({cpu: 871004881 -| mem: 3245036}) \ No newline at end of file +({cpu: 870728881 +| mem: 3243836}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden index fe7a6e37a0a..3e299b07623 100644 --- a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 79782885260 -| mem: 227156762}) \ No newline at end of file +({cpu: 79782609260 +| mem: 227155562}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden index 39fb697771c..c0d49589e79 100644 --- a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2602845552 -| mem: 8317820}) \ No newline at end of file +({cpu: 2602569552 +| mem: 8316620}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden index 0b34000d0a8..7a7623b2407 100644 --- a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1252182969 -| mem: 4710787}) \ No newline at end of file +({cpu: 1251906969 +| mem: 4709587}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden index d6af708a626..256dcf7bc09 100644 --- a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192055066781 -| mem: 541491622}) \ No newline at end of file +({cpu: 192054790781 +| mem: 541490422}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden index 288954d8639..545bcf5e096 100644 --- a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 618608028 -| mem: 2247935}) \ No newline at end of file +({cpu: 618332028 +| mem: 2246735}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden index c929165941b..9f4f0196a97 100644 --- a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1075709899 -| mem: 3810185}) \ No newline at end of file +({cpu: 1075433899 +| mem: 3808985}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden index 38eb87651be..0eac59a25cf 100644 --- a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 586765699 -| mem: 2142723}) \ No newline at end of file +({cpu: 586489699 +| mem: 2141523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden index 761cfa61afb..3d780128cda 100644 --- a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1050209702 -| mem: 3876054}) \ No newline at end of file +({cpu: 1049933702 +| mem: 3874854}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden index 98e73eae78c..8f49f84e885 100644 --- a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1073266466 -| mem: 4002284}) \ No newline at end of file +({cpu: 1072990466 +| mem: 4001084}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden index 8cdaa7da60d..7090cdb19c3 100644 --- a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 886545482 -| mem: 3231377}) \ No newline at end of file +({cpu: 886269482 +| mem: 3230177}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden index 8e1bac021ca..e38ff599455 100644 --- a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 767844283 -| mem: 2526376}) \ No newline at end of file +({cpu: 767568283 +| mem: 2525176}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden index 76aacf78689..665f0f38aa4 100644 --- a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden @@ -1,2 +1,2 @@ -({cpu: 858564620 -| mem: 2988108}) \ No newline at end of file +({cpu: 858288620 +| mem: 2986908}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden index 598aa83ded5..55fcfdb3926 100644 --- a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2975897145 -| mem: 9337080}) \ No newline at end of file +({cpu: 2975621145 +| mem: 9335880}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden index d07234a0aad..7bef92fc472 100644 --- a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1684290971 -| mem: 6171546}) \ No newline at end of file +({cpu: 1684014971 +| mem: 6170346}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden index 6eb08bf4400..10a0469bd5f 100644 --- a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 774983579 -| mem: 2635788}) \ No newline at end of file +({cpu: 774707579 +| mem: 2634588}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden index 230b0a26904..c0594d00b72 100644 --- a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden @@ -1,2 +1,2 @@ -({cpu: 859487584 -| mem: 2679151}) \ No newline at end of file +({cpu: 859211584 +| mem: 2677951}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden index f696387caf8..1825abc5093 100644 --- a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1084314105 -| mem: 3842393}) \ No newline at end of file +({cpu: 1084038105 +| mem: 3841193}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden index 260bb0b2c5d..286088f522d 100644 --- a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 448585258 -| mem: 1568179}) \ No newline at end of file +({cpu: 448309258 +| mem: 1566979}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden index 8e1bac021ca..e38ff599455 100644 --- a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden @@ -1,2 +1,2 @@ -({cpu: 767844283 -| mem: 2526376}) \ No newline at end of file +({cpu: 767568283 +| mem: 2525176}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden index 87b997e08a7..9ae93f2d721 100644 --- a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden @@ -1,2 +1,2 @@ -({cpu: 950995002 -| mem: 3460804}) \ No newline at end of file +({cpu: 950719002 +| mem: 3459604}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden index 1251b74fce5..a99f2117cb4 100644 --- a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1487201027 -| mem: 4221915}) \ No newline at end of file +({cpu: 1486925027 +| mem: 4220715}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden index d49cf22c971..de3d97f0c17 100644 --- a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 782054848 -| mem: 2888260}) \ No newline at end of file +({cpu: 781778848 +| mem: 2887060}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden index 3af4cd3ca5f..6861adc88e6 100644 --- a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1890997159 -| mem: 6864580}) \ No newline at end of file +({cpu: 1890721159 +| mem: 6863380}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden index 3551ac49a69..255b57e60b5 100644 --- a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1306053677 -| mem: 4705620}) \ No newline at end of file +({cpu: 1305777677 +| mem: 4704420}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden index a66540b6d3d..e170aa52514 100644 --- a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1228061367 -| mem: 4608496}) \ No newline at end of file +({cpu: 1227785367 +| mem: 4607296}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden index c5cddccc2af..ab09f42ec5d 100644 --- a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden @@ -1,2 +1,2 @@ -({cpu: 844547629 -| mem: 3181417}) \ No newline at end of file +({cpu: 844271629 +| mem: 3180217}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden index 0fe5a89ae7a..7618417f2a0 100644 --- a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1081185765 -| mem: 4005640}) \ No newline at end of file +({cpu: 1080909765 +| mem: 4004440}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden index 7f64eaad438..30fc7137cb9 100644 --- a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 16302760383 -| mem: 46122898}) \ No newline at end of file +({cpu: 16302484383 +| mem: 46121698}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden index dc504e5260e..eb0d1d1e9f5 100644 --- a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1588172797 -| mem: 5665202}) \ No newline at end of file +({cpu: 1587896797 +| mem: 5664002}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden index 5f8868710f3..1ccec8131cf 100644 --- a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1235126119 -| mem: 4545548}) \ No newline at end of file +({cpu: 1234850119 +| mem: 4544348}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden index 451c9f02b63..6093e9c3757 100644 --- a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 611453456 -| mem: 2237505}) \ No newline at end of file +({cpu: 611177456 +| mem: 2236305}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden index 207ff3aad09..1bf46ff276c 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237465734896 -| mem: 687875720}) \ No newline at end of file +({cpu: 237465458896 +| mem: 687874520}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden index f953d579e43..a3080395c3a 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1254813254 -| mem: 4735659}) \ No newline at end of file +({cpu: 1254537254 +| mem: 4734459}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden index 54845bc5f1e..e1024b35c12 100644 --- a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden @@ -1,2 +1,2 @@ -({cpu: 502860098 -| mem: 1689365}) \ No newline at end of file +({cpu: 502584098 +| mem: 1688165}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden index 0e957cff9f6..a5376f9a643 100644 --- a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 640197004 -| mem: 2293597}) \ No newline at end of file +({cpu: 639921004 +| mem: 2292397}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden index 8711bbdbb53..89ac947ae83 100644 --- a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1185166701 -| mem: 4342782}) \ No newline at end of file +({cpu: 1184890701 +| mem: 4341582}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden index 2e62ef7da32..5a86c030f8d 100644 --- a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden @@ -1,2 +1,2 @@ -({cpu: 818997527 -| mem: 2745552}) \ No newline at end of file +({cpu: 818721527 +| mem: 2744352}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden index 7ced29323b2..9663cf3db4d 100644 --- a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 552009724 -| mem: 1974622}) \ No newline at end of file +({cpu: 551733724 +| mem: 1973422}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden index 355186187ca..19bece9a7e6 100644 --- a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden @@ -1,2 +1,2 @@ -({cpu: 410652762 -| mem: 1437385}) \ No newline at end of file +({cpu: 410376762 +| mem: 1436185}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden index 59c445dfbee..e1c8959539d 100644 --- a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8461055975 -| mem: 24316726}) \ No newline at end of file +({cpu: 8460779975 +| mem: 24315526}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden index 092888faae6..b6da95574fa 100644 --- a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 620366242 -| mem: 2024773}) \ No newline at end of file +({cpu: 620090242 +| mem: 2023573}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden index fbd4ee986c6..7c52324140c 100644 --- a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1770271306 -| mem: 5780804}) \ No newline at end of file +({cpu: 1769995306 +| mem: 5779604}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden index cc0e95158b0..db01f5fd386 100644 --- a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4410679663 -| mem: 13053884}) \ No newline at end of file +({cpu: 4410403663 +| mem: 13052684}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden index ee6f9b4e390..1876fd2c94a 100644 --- a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden @@ -1,2 +1,2 @@ -({cpu: 80483701205 -| mem: 226738158}) \ No newline at end of file +({cpu: 80483425205 +| mem: 226736958}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden index e59215dae74..c2e0b5b3cb7 100644 --- a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1522638355 -| mem: 5397524}) \ No newline at end of file +({cpu: 1522362355 +| mem: 5396324}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden index ae4b4e5b2e0..f5a2f50f071 100644 --- a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 243063611 -| mem: 950466}) \ No newline at end of file +({cpu: 243201611 +| mem: 951066}) \ No newline at end of file diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 483e76e2613..b679f6c5eee 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -463,7 +463,7 @@ eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = then -- Check equality of values that come from the common key prefix of the original -- lists. - all (uncurry (==)) valPairs + all (uncurry (eqMapVia SortedMap.unsafeFromListUnique)) valPairs else False where -- Check equality of two @Map@s given a function converting a list to a 'SortedMap' (two options diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden index 0fef39b5405..8754dc81c02 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2645900773 | mem: 9583842}) -({cpu: 1964647073 | mem: 7328418}) -({cpu: 1849141911 | mem: 6698154}) -({cpu: 1737752080 | mem: 6409816}) -({cpu: 1849141911 | mem: 6698154}) -({cpu: 1508484109 | mem: 5483410}) -({cpu: 1052383049 | mem: 3812466}) -({cpu: 1383682100 | mem: 5102664}) -({cpu: 1849141911 | mem: 6698154}) -({cpu: 1256507113 | mem: 4714114}) -({cpu: 1052383049 | mem: 3812466}) -({cpu: 1029612120 | mem: 3795512}) -({cpu: 1052383049 | mem: 3812466}) -({cpu: 800344149 | mem: 2869106}) -({cpu: 255624187 | mem: 926778}) \ No newline at end of file +({cpu: 2554061773 | mem: 9184542}) +({cpu: 1963474073 | mem: 7323318}) +({cpu: 1784902911 | mem: 6418854}) +({cpu: 1736579080 | mem: 6404716}) +({cpu: 1784902911 | mem: 6418854}) +({cpu: 1507311109 | mem: 5478310}) +({cpu: 1015744049 | mem: 3653166}) +({cpu: 1382509100 | mem: 5097564}) +({cpu: 1784902911 | mem: 6418854}) +({cpu: 1255334113 | mem: 4709014}) +({cpu: 1015744049 | mem: 3653166}) +({cpu: 1028439120 | mem: 3790412}) +({cpu: 1015744049 | mem: 3653166}) +({cpu: 799171149 | mem: 2864006}) +({cpu: 246585187 | mem: 887478}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden index 8d01044a8af..e408fd6c225 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 6601100 | mem: 28800}) -({cpu: 8671100 | mem: 37800}) -({cpu: 10440491 | mem: 44202}) -({cpu: 12500980 | mem: 51904}) -({cpu: 13626371 | mem: 55506}) -({cpu: 13282980 | mem: 55304}) -({cpu: 20376076 | mem: 81012}) -({cpu: 22783174 | mem: 91512}) -({cpu: 23939467 | mem: 95214}) -({cpu: 20392361 | mem: 83508}) -({cpu: 33875486 | mem: 132024}) -({cpu: 26614675 | mem: 108012}) -({cpu: 46997385 | mem: 180138}) -({cpu: 51846613 | mem: 202136}) -({cpu: 63310806 | mem: 239556}) -({cpu: 59233646 | mem: 232938}) -({cpu: 82810541 | mem: 310278}) -({cpu: 46589912 | mem: 192316}) -({cpu: 105496590 | mem: 392304}) -({cpu: 168341644 | mem: 626358}) -({cpu: 255624187 | mem: 926778}) \ No newline at end of file +({cpu: 6256100 | mem: 27300}) +({cpu: 8326100 | mem: 36300}) +({cpu: 10095491 | mem: 42702}) +({cpu: 12155980 | mem: 50404}) +({cpu: 13143371 | mem: 53406}) +({cpu: 12937980 | mem: 53804}) +({cpu: 19755076 | mem: 78312}) +({cpu: 22300174 | mem: 89412}) +({cpu: 23318467 | mem: 92514}) +({cpu: 20047361 | mem: 82008}) +({cpu: 32978486 | mem: 128124}) +({cpu: 26269675 | mem: 106512}) +({cpu: 45686385 | mem: 174438}) +({cpu: 51501613 | mem: 200636}) +({cpu: 61447806 | mem: 231456}) +({cpu: 58888646 | mem: 231438}) +({cpu: 80257541 | mem: 299178}) +({cpu: 46244912 | mem: 190816}) +({cpu: 102115590 | mem: 377604}) +({cpu: 167996644 | mem: 624858}) +({cpu: 246585187 | mem: 887478}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs index c99c90ea5d9..01df86d3d8b 100644 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ b/plutus-tx/src/PlutusTx/SortedMap.hs @@ -27,13 +27,13 @@ newtype SortedMap k v = UnsafeSortedMap { unSortedMap :: [(k, v)] } deriving stock (Haskell.Show) -{-# INLINABLE empty #-} +{-# INLINEABLE empty #-} empty :: SortedMap k v empty = UnsafeSortedMap [] -{-# INLINE singleton #-} +{-# INLINEABLE singleton #-} singleton :: k -> v -> SortedMap k [v] -singleton ~k ~v = UnsafeSortedMap [(k, [v])] +singleton k v = UnsafeSortedMap [(k, [v])] {-# INLINE unsafeInsertOneUnique #-} -- | Insert a key-value pair into the 'SortedMap' assuming the key isn't already in the map (if it From 59b8b429fc1df0c00364bf6edbde6b729b7ca086 Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 11 Oct 2023 03:55:58 +0200 Subject: [PATCH 21/40] Get rid of 'SortedMap', fix the zeroes bug --- .../test/semantics/semantics.size.golden | 2 +- .../src/PlutusLedgerApi/V1/Value.hs | 72 +++++++++++++---- .../Spec/golden/9.2/Long.stat.golden | 14 ++-- .../Spec/golden/9.2/Short.stat.golden | 10 +-- plutus-tx/plutus-tx.cabal | 1 - plutus-tx/src/PlutusTx/SortedMap.hs | 79 ------------------- 6 files changed, 69 insertions(+), 109 deletions(-) delete mode 100644 plutus-tx/src/PlutusTx/SortedMap.hs diff --git a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden index 9bc60b9f217..4de8656b979 100644 --- a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden +++ b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden @@ -1 +1 @@ -14857 \ No newline at end of file +14911 \ No newline at end of file diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index b679f6c5eee..19ff7625f45 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -15,7 +15,7 @@ {-# OPTIONS_GHC -fno-specialise #-} -- | Functions for working with 'Value'. -module PlutusLedgerApi.V1.Value( +module PlutusLedgerApi.V1.Value ( -- ** Currency symbols CurrencySymbol(..) , currencySymbol @@ -52,6 +52,7 @@ import Prelude qualified as Haskell import Control.DeepSeq (NFData) import Data.ByteString qualified as BS +import Data.Coerce (coerce) import Data.Data (Data) import Data.String (IsString (fromString)) import Data.Text (Text) @@ -64,7 +65,6 @@ import PlutusTx.AssocMap qualified as Map import PlutusTx.Lift (makeLift) import PlutusTx.Ord qualified as Ord import PlutusTx.Prelude as PlutusTx hiding (sort) -import PlutusTx.SortedMap qualified as SortedMap import PlutusTx.These (These (..)) import Prettyprinter (Pretty, (<>)) import Prettyprinter.Extras (PrettyShow (PrettyShow)) @@ -370,6 +370,46 @@ data MatchResult k v | MatchPartial [(v, v)] [(k, v)] [(k, v)] | MatchFailure +{-# INLINE insertUnique #-} +-- | Insert a key-value pair into the __sorted__ list assuming the key isn't already in the map (the +-- invariants are not checked). +insertUnique :: forall k v. Ord k => k -> v -> [(k, v)] -> [(k, v)] +insertUnique ~k0 ~v0 = coerce go where + go :: [(k, v)] -> [(k, v)] + go [] = [(k0, v0)] + go kvs@((k, v) : kvs') = + case k0 `compare` k of + LT -> (k0, v0) : kvs + -- TODO: make this @traceError duplicateElements@. + EQ -> (k, v0) : kvs' + GT -> (k, v) : go kvs' + +{-# INLINE insertionSortUnique #-} +-- | Sort a list assuming all of its keys are unique (the invariant is not checked). +insertionSortUnique :: forall k v. Ord k => [(k, v)] -> [(k, v)] +insertionSortUnique = go where + go :: [(k, v)] -> [(k, v)] + go [] = [] + go ((k, v) : kvs) = insertUnique k v $ go kvs + +-- The pragma trades a bit of size for potentially plenty of budget. +{-# INLINE eqKVs #-} +-- | Check equality of lists by matching them pointwise. +eqKVs :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool +eqKVs ~is0 ~eqV = coerce go where + go :: [(k, v)] -> [(k, v)] -> Bool + go [] [] = True + go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all elements in the + go kvs1 [] = all (is0 . snd) kvs1 -- other list need to be zero for lists to be equal. + go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') + -- As with 'matchKVs' we check equality of all the keys first and only then check equality + -- of values. + | k1 == k2 = if go kvs1' kvs2' then eqV v1 v2 else False + | is0 v1 = go kvs1' kvs2 + -- Or if the second one is empty, then we throw that one and proceed. + | is0 v2 = go kvs1 kvs2' + | otherwise = False + {-# INLINE matchKVs #-} {- | Take a function checking whether a value is zero\/empty, a function checking /structural/ equality of two values and two key-value lists and return the result of matching the lists @@ -409,7 +449,7 @@ If the result is @MatchPartial vvs kvs1' kvs2'@, then the two lists have the sam matchKVs :: forall k v. Ord k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult k v -matchKVs ~is0 ~structEqV = go where +matchKVs is0 structEqV = go where go :: [(k, v)] -> [(k, v)] -> MatchResult k v -- Spines match, hence it's a 'MatchSuccess' so far. go [] [] = MatchSuccess @@ -449,32 +489,32 @@ matchKVs ~is0 ~structEqV = go where eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = -- Check structural equality of the lists first. - case matchKVs (Map.all (== 0)) (eqMapVia SortedMap.UnsafeSortedMap) currs1 currs2 of + case matchKVs (Map.all (== 0)) (eqMapVia id) currs1 currs2 of MatchSuccess -> True MatchFailure -> False - -- If the lists aren't structurally equal, then convert the remaining parts to 'SortedMap's - -- (by sorting first) and check structural equality of the now sorted lists. + -- If the lists aren't structurally equal, then sort them and check structural equality of + -- the now sorted lists. MatchPartial valPairs currs1' currs2' -> - if SortedMap.eqWith + if eqKVs (Map.all (== 0)) - (eqMapVia SortedMap.unsafeFromListUnique) - (SortedMap.unsafeFromListUnique currs1') - (SortedMap.unsafeFromListUnique currs2') + (eqMapVia insertionSortUnique) + (insertionSortUnique currs1') + (insertionSortUnique currs2') then -- Check equality of values that come from the common key prefix of the original -- lists. - all (uncurry (eqMapVia SortedMap.unsafeFromListUnique)) valPairs + all (uncurry (eqMapVia insertionSortUnique)) valPairs else False where - -- Check equality of two @Map@s given a function converting a list to a 'SortedMap' (two options - -- are embedding the list directly to check structural equality or sorting the list first). + -- Check equality of two @Map@s given a function transforming a list of tokens (two options for + -- the latter are the identity function to check structural equality or a sorting function). eqMapVia - :: ([(TokenName, Integer)] -> SortedMap.SortedMap TokenName Integer) + :: ([(TokenName, Integer)] -> [(TokenName, Integer)]) -> Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool - eqMapVia asSortedMap (Map.toList -> tokens1) (Map.toList -> tokens2) = - SortedMap.eqWith (== 0) (==) (asSortedMap tokens1) (asSortedMap tokens2) + eqMapVia sortTokens (Map.toList -> tokens1) (Map.toList -> tokens2) = + eqKVs (== 0) (==) (sortTokens tokens1) (sortTokens tokens2) makeLift ''CurrencySymbol makeLift ''TokenName diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden index 8754dc81c02..a50049fb58e 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ ({cpu: 2554061773 | mem: 9184542}) -({cpu: 1963474073 | mem: 7323318}) +({cpu: 1963428073 | mem: 7323118}) ({cpu: 1784902911 | mem: 6418854}) -({cpu: 1736579080 | mem: 6404716}) +({cpu: 1736533080 | mem: 6404516}) ({cpu: 1784902911 | mem: 6418854}) -({cpu: 1507311109 | mem: 5478310}) +({cpu: 1507265109 | mem: 5478110}) ({cpu: 1015744049 | mem: 3653166}) -({cpu: 1382509100 | mem: 5097564}) +({cpu: 1382463100 | mem: 5097364}) ({cpu: 1784902911 | mem: 6418854}) -({cpu: 1255334113 | mem: 4709014}) +({cpu: 1255288113 | mem: 4708814}) ({cpu: 1015744049 | mem: 3653166}) -({cpu: 1028439120 | mem: 3790412}) +({cpu: 1028393120 | mem: 3790212}) ({cpu: 1015744049 | mem: 3653166}) -({cpu: 799171149 | mem: 2864006}) +({cpu: 799125149 | mem: 2863806}) ({cpu: 246585187 | mem: 887478}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden index e408fd6c225..7b05ca6eff2 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ ({cpu: 6256100 | mem: 27300}) ({cpu: 8326100 | mem: 36300}) ({cpu: 10095491 | mem: 42702}) -({cpu: 12155980 | mem: 50404}) +({cpu: 12109980 | mem: 50204}) ({cpu: 13143371 | mem: 53406}) ({cpu: 12937980 | mem: 53804}) ({cpu: 19755076 | mem: 78312}) -({cpu: 22300174 | mem: 89412}) +({cpu: 22254174 | mem: 89212}) ({cpu: 23318467 | mem: 92514}) ({cpu: 20047361 | mem: 82008}) ({cpu: 32978486 | mem: 128124}) ({cpu: 26269675 | mem: 106512}) ({cpu: 45686385 | mem: 174438}) -({cpu: 51501613 | mem: 200636}) +({cpu: 51455613 | mem: 200436}) ({cpu: 61447806 | mem: 231456}) -({cpu: 58888646 | mem: 231438}) +({cpu: 58842646 | mem: 231238}) ({cpu: 80257541 | mem: 299178}) ({cpu: 46244912 | mem: 190816}) ({cpu: 102115590 | mem: 377604}) -({cpu: 167996644 | mem: 624858}) +({cpu: 167950644 | mem: 624658}) ({cpu: 246585187 | mem: 887478}) \ No newline at end of file diff --git a/plutus-tx/plutus-tx.cabal b/plutus-tx/plutus-tx.cabal index e87fa902585..a7819301f2e 100644 --- a/plutus-tx/plutus-tx.cabal +++ b/plutus-tx/plutus-tx.cabal @@ -79,7 +79,6 @@ library PlutusTx.Semigroup PlutusTx.Show PlutusTx.Show.TH - PlutusTx.SortedMap PlutusTx.Sqrt PlutusTx.TH PlutusTx.These diff --git a/plutus-tx/src/PlutusTx/SortedMap.hs b/plutus-tx/src/PlutusTx/SortedMap.hs deleted file mode 100644 index 01df86d3d8b..00000000000 --- a/plutus-tx/src/PlutusTx/SortedMap.hs +++ /dev/null @@ -1,79 +0,0 @@ -{-# LANGUAGE DerivingStrategies #-} -{-# LANGUAGE ViewPatterns #-} - -{-# OPTIONS_GHC -fno-omit-interface-pragmas #-} -{-# OPTIONS_GHC -fno-spec-constr #-} -{-# OPTIONS_GHC -fno-specialise #-} - -module PlutusTx.SortedMap - ( SortedMap (..) - , empty - , singleton - , unsafeFromListUnique - , eqWith - ) where - -import Prelude qualified as Haskell - -import PlutusTx.Base -import PlutusTx.Ord -import PlutusTx.Prelude - -import Data.Coerce (coerce) - --- | A map from @k@ to @v@ backed by a list that is supposed to be sorted from lowest to highest --- @k@s with no key duplicated. -newtype SortedMap k v = UnsafeSortedMap - { unSortedMap :: [(k, v)] - } deriving stock (Haskell.Show) - -{-# INLINEABLE empty #-} -empty :: SortedMap k v -empty = UnsafeSortedMap [] - -{-# INLINEABLE singleton #-} -singleton :: k -> v -> SortedMap k [v] -singleton k v = UnsafeSortedMap [(k, [v])] - -{-# INLINE unsafeInsertOneUnique #-} --- | Insert a key-value pair into the 'SortedMap' assuming the key isn't already in the map (if it --- is, the function throws). -unsafeInsertOneUnique :: forall k v. Ord k => k -> v -> SortedMap k v -> SortedMap k v -unsafeInsertOneUnique ~k0 ~v0 = coerce go where - go :: [(k, v)] -> [(k, v)] - go [] = [(k0, v0)] - go kvs@((k, v) : kvs') = - case k0 `compare` k of - LT -> (k0, v0) : kvs - -- TODO: make this @traceError duplicateElements@. - EQ -> (k, v0) : kvs' - GT -> (k, v) : go kvs' - -{-# INLINE unsafeFromListUnique #-} --- | Turn a list into a 'SortedMap' assuming all of its keys are unique (if they are not, the --- function throws). -unsafeFromListUnique :: forall k v. Ord k => [(k, v)] -> SortedMap k v -unsafeFromListUnique = go where - go :: [(k, v)] -> SortedMap k v - go [] = UnsafeSortedMap [] - go ((k, v) : kvs) = unsafeInsertOneUnique k v $ go kvs - --- The pragma trades a bit size for potentially plenty of budget. -{-# INLINE eqWith #-} --- | Check equality of 'SortedMap's by matching the underlying lists pointwise. -eqWith - :: forall k v. Eq k - => (v -> Bool) -> (v -> v -> Bool) -> SortedMap k v -> SortedMap k v -> Bool -eqWith ~is0 ~eqV = coerce go where - go :: [(k, v)] -> [(k, v)] -> Bool - go [] [] = True - go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all elements in the - go kvs1 [] = all (is0 . snd) kvs1 -- other list need to be zero for lists to be equal. - go ((k1, v1) : kvs1) ((k2, v2) : kvs2) = - -- As with 'matchKVs' we check equality of all the keys first and only then check equality - -- of values. - if k1 == k2 - then if go kvs1 kvs2 - then eqV v1 v2 - else False - else False From 2a98eae15e8740cc62e9d3ee3d2abab18ad1c76a Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 11 Oct 2023 04:07:48 +0200 Subject: [PATCH 22/40] Drop tildas --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 19ff7625f45..728fbcd6466 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -374,7 +374,7 @@ data MatchResult k v -- | Insert a key-value pair into the __sorted__ list assuming the key isn't already in the map (the -- invariants are not checked). insertUnique :: forall k v. Ord k => k -> v -> [(k, v)] -> [(k, v)] -insertUnique ~k0 ~v0 = coerce go where +insertUnique k0 v0 = coerce go where go :: [(k, v)] -> [(k, v)] go [] = [(k0, v0)] go kvs@((k, v) : kvs') = @@ -396,7 +396,7 @@ insertionSortUnique = go where {-# INLINE eqKVs #-} -- | Check equality of lists by matching them pointwise. eqKVs :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool -eqKVs ~is0 ~eqV = coerce go where +eqKVs is0 eqV = coerce go where go :: [(k, v)] -> [(k, v)] -> Bool go [] [] = True go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all elements in the From 4d5c44b22cffd407eb1bca0475f01332a7bafc9b Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 11 Oct 2023 05:28:43 +0200 Subject: [PATCH 23/40] Tweak pragmas --- ...010001020101020201010000020102.eval.golden | 4 +- ...010101010100000001000001010000.eval.golden | 4 +- ...000104030002040304020400000102.eval.golden | 4 +- ...2992faf62e0b991d7310a2f91666b8.eval.golden | 4 +- ...000001010000010001000001000101.eval.golden | 4 +- ...000201010102000102010201010000.eval.golden | 4 +- ...050807010208060100070207080202.eval.golden | 4 +- ...040300030304040400010301040303.eval.golden | 4 +- ...0d0104050a0b0f0506070f0a070008.eval.golden | 4 +- ...d266dd7544678743890b0e8e1add63.eval.golden | 4 +- ...020207000101060706050502040301.eval.golden | 4 +- ...050e0a0d06030f1006030701020607.eval.golden | 4 +- ...6a95115748c026f9ec129384c262c4.eval.golden | 4 +- ...03031d8de696d90ec789e70d6bc1d8.eval.golden | 4 +- ...151c1f1d201c040f10091b020a0e1a.eval.golden | 4 +- ...4fe55e4096f5ce2e804735a7fbaf91.eval.golden | 4 +- ...39c9b87e5d7bea570087ec506935d5.eval.golden | 4 +- ...93093efe7bc76d6322aed6ddb582ad.eval.golden | 4 +- ...020c2c133a1a3c3f3c232a26153a04.eval.golden | 4 +- ...c9fc38298d567d15ee9f2eea69d89e.eval.golden | 4 +- ...1b0823471c67737f0b076870331260.eval.golden | 4 +- ...052ebcf66ec4ad77e51c11501381c7.eval.golden | 4 +- ...010d1d1c150e110a110e1006160a0d.eval.golden | 4 +- ...2a0f1140211c3e3f171e26312b0220.eval.golden | 4 +- ...782b19ba72dc4951941fb4c20d2263.eval.golden | 4 +- ...128b4ddcf426852b441f9a9d02c882.eval.golden | 4 +- ...f7636986014de2d2aaa460ddde0bc3.eval.golden | 4 +- ...60f22719a996871ad412cbe4de78b5.eval.golden | 4 +- ...ce450b9ce8a0f42a6e313b752e6f2c.eval.golden | 4 +- ...7463d209a453048a66c6eee624a695.eval.golden | 4 +- ...f166785e8b5183c8139db2aa7312d1.eval.golden | 4 +- ...c321d13fec0375606325eee9a34a6a.eval.golden | 4 +- ...ec88446e2d10625119a9d17fa3ec3d.eval.golden | 4 +- ...e2e396c299a0ce101ee6bf4b2020db.eval.golden | 4 +- ...b321a467dedb278328215167eca455.eval.golden | 4 +- ...11a81ca3841f47f37633e8aacbb5de.eval.golden | 4 +- ...137fabffc9de499a0de7cabb335479.eval.golden | 4 +- ...7878958cab3b9d9353978b08c36d8a.eval.golden | 4 +- ...256319a7b5ce4202cb54dfef8e37e7.eval.golden | 4 +- ...c232125976f29b1c3e21d9f537845c.eval.golden | 4 +- ...12b32bd8aecb48a228b50e02b055c8.eval.golden | 4 +- ...e7af0d28e1eb68faeecc45f4655f57.eval.golden | 4 +- ...65fff00a555ce8c55e36ddc003007a.eval.golden | 4 +- ...9be5ae1892d07ee71161bfb55a7cb7.eval.golden | 4 +- ...f53b335a85a2825502ab1e0687197e.eval.golden | 4 +- ...18f38f7539b7ba7167d577c0c8b8ce.eval.golden | 4 +- ...d0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden | 4 +- ...fdfc0b8409ba1e98f95fa5b6caf999.eval.golden | 4 +- ...1c878a0e0a7d6f7fe1d4a619e06112.eval.golden | 4 +- ...7539062b5728182e073e5760561a66.eval.golden | 4 +- ...109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden | 4 +- ...b6c6712c28c54f5a25792049294acc.eval.golden | 4 +- ...2c1dc6f4e7e412eeb5a3ced42fb642.eval.golden | 4 +- ...494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden | 4 +- ...a1575294ea39061b81a194ebb9eaae.eval.golden | 4 +- ...e03805fac9d5fb4ff2d3066e53fc7e.eval.golden | 4 +- ...4bafcb38fbfa1dbc31ac2053628a38.eval.golden | 4 +- ...19d4342612accf40913f9ae9419fac.eval.golden | 4 +- ...10fccd3dce2a23910bddd35c503b71.eval.golden | 4 +- ...08009738401d264bf9b3eb7c6f49c1.eval.golden | 4 +- ...10e1e953867cc4900cc25e5b9dec47.eval.golden | 4 +- ...97a420954018d8301ec4f9783be0d7.eval.golden | 4 +- ...f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden | 4 +- ...2540a1abd79718e681228f4057403a.eval.golden | 4 +- ...35e40a5defc6f3b9be68b70b4a3db6.eval.golden | 4 +- ...8322a9dcbe277c143ed3aede9d265f.eval.golden | 4 +- ...d2e61afdb3ac18128e1688c07071ba.eval.golden | 4 +- ...2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden | 4 +- ...b3a1ce6db4e501df1086773c6c0201.eval.golden | 4 +- ...a2517055197aff6b60a87ff718d66c.eval.golden | 4 +- ...4e8e75beb636692478ec39f74ee221.eval.golden | 4 +- ...b1605fe1490aa3f4f64a3fa8881b25.eval.golden | 4 +- ...5254897d6d1d0e21bc380147687bd5.eval.golden | 4 +- ...ef42aee239a2d9bc5314d127cce592.eval.golden | 4 +- ...2cd9997bdf2d8b2998c6bfeef3b122.eval.golden | 4 +- ...73eccf3df3a605bd6bc6a456cde871.eval.golden | 4 +- ...11e81fea90e41afebd669e51bb60c8.eval.golden | 4 +- ...fcde89510b29cccce81971e38e0835.eval.golden | 4 +- ...af884e504d2c410ad63ba46d8ca35c.eval.golden | 4 +- ...948bb1d1e29eacecd022eeb168b315.eval.golden | 4 +- ...253a51a0c0c7890f2214df9ac19274.eval.golden | 4 +- ...40ba143ce0579f1602fd780cabf153.eval.golden | 4 +- ...f9e276b5dabc66ff669d5650d0be1c.eval.golden | 4 +- ...b46eec7a26fa31b80ae69d44805efc.eval.golden | 4 +- ...7cd3eccec8cac9c70a4857b88a5eb8.eval.golden | 4 +- ...122f3330fe5b77b3222f570395d9f5.eval.golden | 4 +- ...f00ba5822197ade7dd540489ec5e95.eval.golden | 4 +- ...7e11195d161b5bb0a2b58f89b2c65a.eval.golden | 4 +- ...bd9e06036460eea3705c88ea867e33.eval.golden | 4 +- ...5d054c6f7f34355fcfeefebef479f3.eval.golden | 4 +- ...3913fdc347c704ddaa27042757d990.eval.golden | 4 +- ...bac7c8323256c31c90c520ee6a1080.eval.golden | 4 +- ...5678dd8cd5ddb981375a028b3a40a5.eval.golden | 4 +- ...6c413f979f2492cf3339319d8cc079.eval.golden | 4 +- ...ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden | 4 +- ...df7131740212762ae4483ec749fe1d.eval.golden | 4 +- ...a942123cf8660aac2b5bac21ec28f0.eval.golden | 4 +- ...d4e54333bdd408cbe7c47c55e73ae4.eval.golden | 4 +- ...4dda59aa929cffe0f1ff5355db8d79.eval.golden | 4 +- ...35aa02274161b23d57709c0f8b8de6.eval.golden | 4 +- .../test/semantics/semantics.size.golden | 2 +- ...ckScriptContextEqualityTerm-20.eval.golden | 4 +- .../src/PlutusLedgerApi/V1/Value.hs | 43 ++++++++++--------- .../Spec/golden/9.2/Long.stat.golden | 30 ++++++------- .../Spec/golden/9.2/Short.stat.golden | 42 +++++++++--------- 105 files changed, 261 insertions(+), 260 deletions(-) diff --git a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden index 9ee3561137b..ee599ae59a0 100644 --- a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 671623612 -| mem: 2147959}) \ No newline at end of file +({cpu: 671968612 +| mem: 2149459}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden index e5693ed8436..7cf770c81ba 100644 --- a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1195379210 -| mem: 3873124}) \ No newline at end of file +({cpu: 1198346210 +| mem: 3886024}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden index 4833bf11b0a..1a55f4e974f 100644 --- a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1347619917 -| mem: 5114728}) \ No newline at end of file +({cpu: 1354519917 +| mem: 5144728}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden index bbdc149fb59..9a3aca244d7 100644 --- a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2420798469 -| mem: 7865867}) \ No newline at end of file +({cpu: 2423765469 +| mem: 7878767}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden index 722bd247f03..cc63dd4a4a9 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8454058933 -| mem: 24298340}) \ No newline at end of file +({cpu: 8453092933 +| mem: 24294140}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden index e1024b35c12..7f40679bb7e 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 502584098 -| mem: 1688165}) \ No newline at end of file +({cpu: 502929098 +| mem: 1689665}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden index e9ba750f041..dee9b944434 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1500463711 -| mem: 5239352}) \ No newline at end of file +({cpu: 1503430711 +| mem: 5252252}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden index 11d5a1ace7b..da70ff93070 100644 --- a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden @@ -1,2 +1,2 @@ -({cpu: 831093722 -| mem: 3151531}) \ No newline at end of file +({cpu: 831438722 +| mem: 3153031}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden index a1c1a649335..2c1e39e4052 100644 --- a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1436605978 -| mem: 4894561}) \ No newline at end of file +({cpu: 1439572978 +| mem: 4907461}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden index f6511d75ad6..73ded364e1b 100644 --- a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1075717438 -| mem: 3813487}) \ No newline at end of file +({cpu: 1076062438 +| mem: 3814987}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden index 82ecc82f8b4..024f5439e8f 100644 --- a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2420874502 -| mem: 7721414}) \ No newline at end of file +({cpu: 2419908502 +| mem: 7717214}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden index 0daf9f5bae9..78024393483 100644 --- a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1208373783 -| mem: 4540489}) \ No newline at end of file +({cpu: 1208718783 +| mem: 4541989}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden index 3840152f902..fc752f4a96c 100644 --- a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1217406413 -| mem: 4617399}) \ No newline at end of file +({cpu: 1219062413 +| mem: 4624599}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden index f30602331c4..ab5accbeb5a 100644 --- a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1914251016 -| mem: 6965206}) \ No newline at end of file +({cpu: 1919840016 +| mem: 6989506}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden index 73d856f10a4..ea29fa7443b 100644 --- a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1018468755 -| mem: 3341299}) \ No newline at end of file +({cpu: 1018813755 +| mem: 3342799}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden index 5f4b86fcdb1..50047114be4 100644 --- a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1056185790 -| mem: 3753785}) \ No newline at end of file +({cpu: 1059152790 +| mem: 3766685}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden index 34a449c0bf5..b3d5c34d6df 100644 --- a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 658003538 -| mem: 2350615}) \ No newline at end of file +({cpu: 659659538 +| mem: 2357815}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden index 9ad67e71729..6b0ecb0b13f 100644 --- a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden @@ -1,2 +1,2 @@ -({cpu: 890299719 -| mem: 3293493}) \ No newline at end of file +({cpu: 890644719 +| mem: 3294993}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden index ea30f0fc699..8ebde3becfa 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1722776084 -| mem: 5143005}) \ No newline at end of file +({cpu: 1723121084 +| mem: 5144505}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden index bd2f7c36f4a..52599bf7bc0 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1582978356 -| mem: 5589766}) \ No newline at end of file +({cpu: 1585945356 +| mem: 5602666}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden index 5de1366f50c..ee1b34f224d 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1451155650 -| mem: 4888771}) \ No newline at end of file +({cpu: 1454122650 +| mem: 4901671}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden index 3ac6dc1e445..b9524a92a5f 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 575966972 -| mem: 1896179}) \ No newline at end of file +({cpu: 576311972 +| mem: 1897679}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden index 67bc6131b70..5d9e7933b03 100644 --- a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 35964682004 -| mem: 99134220}) \ No newline at end of file +({cpu: 35963716004 +| mem: 99130020}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden index 256dcf7bc09..561775b249c 100644 --- a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192054790781 -| mem: 541490422}) \ No newline at end of file +({cpu: 192053824781 +| mem: 541486222}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden index 10a0469bd5f..c75af3891f3 100644 --- a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden @@ -1,2 +1,2 @@ -({cpu: 774707579 -| mem: 2634588}) \ No newline at end of file +({cpu: 777674579 +| mem: 2647488}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden index a612ecab18c..5d22675ad8b 100644 --- a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503481746 -| mem: 1717363}) \ No newline at end of file +({cpu: 503826746 +| mem: 1718863}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden index a22e7bad6d0..d360dfe95b5 100644 --- a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 706277654 -| mem: 2649482}) \ No newline at end of file +({cpu: 709244654 +| mem: 2662382}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden index 153f3774682..52bc5001cf4 100644 --- a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 38980848944 -| mem: 109271382}) \ No newline at end of file +({cpu: 38979882944 +| mem: 109267182}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden index 4c6146c7f53..c85d7a79104 100644 --- a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4527890727 -| mem: 13362432}) \ No newline at end of file +({cpu: 4530857727 +| mem: 13375332}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden index 970c2fd7037..da3b9aa6599 100644 --- a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden @@ -1,2 +1,2 @@ -({cpu: 844155393 -| mem: 3197929}) \ No newline at end of file +({cpu: 844500393 +| mem: 3199429}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden index f0ce4a2b2b0..400e8df79b6 100644 --- a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1528961660 -| mem: 5242926}) \ No newline at end of file +({cpu: 1531928660 +| mem: 5255826}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden index e50abcfea85..8c9be61035b 100644 --- a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1495615224 -| mem: 5633168}) \ No newline at end of file +({cpu: 1502515224 +| mem: 5663168}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden index 6a0f255455f..55f50185936 100644 --- a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 481324860 -| mem: 1637835}) \ No newline at end of file +({cpu: 481669860 +| mem: 1639335}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden index 7726bc3af77..faa7646015a 100644 --- a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden @@ -1,2 +1,2 @@ -({cpu: 637186119 -| mem: 2286395}) \ No newline at end of file +({cpu: 637531119 +| mem: 2287895}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden index ac25ea7a939..a421dfff452 100644 --- a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden @@ -1,2 +1,2 @@ -({cpu: 926248647 -| mem: 3382054}) \ No newline at end of file +({cpu: 929215647 +| mem: 3394954}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden index 5b2e1909a79..6bcb4e6d85a 100644 --- a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1011067194 -| mem: 3701714}) \ No newline at end of file +({cpu: 1014034194 +| mem: 3714614}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden index 3003fd90633..c2b913b7565 100644 --- a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden @@ -1,2 +1,2 @@ -({cpu: 570687423 -| mem: 1882943}) \ No newline at end of file +({cpu: 571032423 +| mem: 1884443}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden index 6b36202bfa1..2e57d302ea0 100644 --- a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1512308357 -| mem: 5117558}) \ No newline at end of file +({cpu: 1515275357 +| mem: 5130458}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden index 6e9e29a247e..d40ac6a3552 100644 --- a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 658805576 -| mem: 2116923}) \ No newline at end of file +({cpu: 659150576 +| mem: 2118423}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden index 6ed57e75ed1..36d947792fc 100644 --- a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1252065449 -| mem: 4709015}) \ No newline at end of file +({cpu: 1253721449 +| mem: 4716215}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden index 49dd924ad0c..958fe17527f 100644 --- a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 889468876 -| mem: 3244421}) \ No newline at end of file +({cpu: 889813876 +| mem: 3245921}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden index 13cf3186316..df5e5b56006 100644 --- a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1905340287 -| mem: 5862938}) \ No newline at end of file +({cpu: 1908307287 +| mem: 5875838}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden index a0336298083..2b2fb594cac 100644 --- a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 357673427 -| mem: 1312295}) \ No newline at end of file +({cpu: 358018427 +| mem: 1313795}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden index 286088f522d..d5ea0fb1f10 100644 --- a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 448309258 -| mem: 1566979}) \ No newline at end of file +({cpu: 448654258 +| mem: 1568479}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden index 757ff9d27b6..94a4c191c7b 100644 --- a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 541470005 -| mem: 1814485}) \ No newline at end of file +({cpu: 541815005 +| mem: 1815985}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden index d77ff981425..7c96f8cd4bb 100644 --- a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1215671193 -| mem: 4464876}) \ No newline at end of file +({cpu: 1218638193 +| mem: 4477776}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden index a612ecab18c..5d22675ad8b 100644 --- a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503481746 -| mem: 1717363}) \ No newline at end of file +({cpu: 503826746 +| mem: 1718863}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden index 59fe66715e0..1fac132bbe8 100644 --- a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden @@ -1,2 +1,2 @@ -({cpu: 585868619 -| mem: 2157817}) \ No newline at end of file +({cpu: 587524619 +| mem: 2165017}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden index 76684eebb96..9f07accc9e7 100644 --- a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1329137880 -| mem: 4654227}) \ No newline at end of file +({cpu: 1329482880 +| mem: 4655727}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden index 7e255fcd6e4..11e422d921f 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1154316663 -| mem: 4384887}) \ No newline at end of file +({cpu: 1155972663 +| mem: 4392087}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden index 8f5cb0ea247..cdbdf67732b 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 589042451 -| mem: 2183655}) \ No newline at end of file +({cpu: 590698451 +| mem: 2190855}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden index f0d5842bc76..5273121a4ae 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 505318983 -| mem: 1694167}) \ No newline at end of file +({cpu: 505663983 +| mem: 1695667}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden index cd8928e8ac9..bb494a72bc5 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1021534600 -| mem: 3775162}) \ No newline at end of file +({cpu: 1024501600 +| mem: 3788062}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden index 85ed81e6d47..177715ac3c3 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 775297258 -| mem: 2671449}) \ No newline at end of file +({cpu: 776953258 +| mem: 2678649}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden index 18324ad0ca5..a090f26c49d 100644 --- a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden @@ -1,2 +1,2 @@ -({cpu: 870728881 -| mem: 3243836}) \ No newline at end of file +({cpu: 873695881 +| mem: 3256736}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden index 3e299b07623..4ec6cfc0d36 100644 --- a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 79782609260 -| mem: 227155562}) \ No newline at end of file +({cpu: 79781643260 +| mem: 227151362}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden index c0d49589e79..ab22f336f19 100644 --- a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2602569552 -| mem: 8316620}) \ No newline at end of file +({cpu: 2605536552 +| mem: 8329520}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden index 7a7623b2407..eda48546751 100644 --- a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1251906969 -| mem: 4709587}) \ No newline at end of file +({cpu: 1253562969 +| mem: 4716787}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden index 256dcf7bc09..561775b249c 100644 --- a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192054790781 -| mem: 541490422}) \ No newline at end of file +({cpu: 192053824781 +| mem: 541486222}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden index 545bcf5e096..d2927afaa9b 100644 --- a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 618332028 -| mem: 2246735}) \ No newline at end of file +({cpu: 619988028 +| mem: 2253935}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden index 9f4f0196a97..763c5088148 100644 --- a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1075433899 -| mem: 3808985}) \ No newline at end of file +({cpu: 1078400899 +| mem: 3821885}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden index 0eac59a25cf..905b8694d71 100644 --- a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 586489699 -| mem: 2141523}) \ No newline at end of file +({cpu: 586834699 +| mem: 2143023}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden index 3d780128cda..17f59ea91e0 100644 --- a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1049933702 -| mem: 3874854}) \ No newline at end of file +({cpu: 1055522702 +| mem: 3899154}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden index 8f49f84e885..53b7ab8ead4 100644 --- a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1072990466 -| mem: 4001084}) \ No newline at end of file +({cpu: 1078579466 +| mem: 4025384}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden index 7090cdb19c3..3ebcdc24c61 100644 --- a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 886269482 -| mem: 3230177}) \ No newline at end of file +({cpu: 886614482 +| mem: 3231677}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden index e38ff599455..d85dd92a785 100644 --- a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 767568283 -| mem: 2525176}) \ No newline at end of file +({cpu: 767913283 +| mem: 2526676}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden index 665f0f38aa4..e6ce56f1af1 100644 --- a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden @@ -1,2 +1,2 @@ -({cpu: 858288620 -| mem: 2986908}) \ No newline at end of file +({cpu: 865188620 +| mem: 3016908}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden index 55fcfdb3926..b8e9711f1a7 100644 --- a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2975621145 -| mem: 9335880}) \ No newline at end of file +({cpu: 2974655145 +| mem: 9331680}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden index 7bef92fc472..2dd2eb17273 100644 --- a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1684014971 -| mem: 6170346}) \ No newline at end of file +({cpu: 1686981971 +| mem: 6183246}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden index 10a0469bd5f..c75af3891f3 100644 --- a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 774707579 -| mem: 2634588}) \ No newline at end of file +({cpu: 777674579 +| mem: 2647488}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden index c0594d00b72..94791e7ee5f 100644 --- a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden @@ -1,2 +1,2 @@ -({cpu: 859211584 -| mem: 2677951}) \ No newline at end of file +({cpu: 859556584 +| mem: 2679451}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden index 1825abc5093..01ff56609a4 100644 --- a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1084038105 -| mem: 3841193}) \ No newline at end of file +({cpu: 1084383105 +| mem: 3842693}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden index 286088f522d..d5ea0fb1f10 100644 --- a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 448309258 -| mem: 1566979}) \ No newline at end of file +({cpu: 448654258 +| mem: 1568479}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden index e38ff599455..d85dd92a785 100644 --- a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden @@ -1,2 +1,2 @@ -({cpu: 767568283 -| mem: 2525176}) \ No newline at end of file +({cpu: 767913283 +| mem: 2526676}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden index 9ae93f2d721..30720df641f 100644 --- a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden @@ -1,2 +1,2 @@ -({cpu: 950719002 -| mem: 3459604}) \ No newline at end of file +({cpu: 953686002 +| mem: 3472504}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden index a99f2117cb4..d3687e5e00f 100644 --- a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1486925027 -| mem: 4220715}) \ No newline at end of file +({cpu: 1485959027 +| mem: 4216515}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden index de3d97f0c17..fcb9e8560e5 100644 --- a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 781778848 -| mem: 2887060}) \ No newline at end of file +({cpu: 784745848 +| mem: 2899960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden index 6861adc88e6..c6f9828de65 100644 --- a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1890721159 -| mem: 6863380}) \ No newline at end of file +({cpu: 1896310159 +| mem: 6887680}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden index 255b57e60b5..b8f51a18d2b 100644 --- a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1305777677 -| mem: 4704420}) \ No newline at end of file +({cpu: 1308744677 +| mem: 4717320}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden index e170aa52514..b7d4fb99cc4 100644 --- a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1227785367 -| mem: 4607296}) \ No newline at end of file +({cpu: 1234685367 +| mem: 4637296}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden index ab09f42ec5d..618edbb13d2 100644 --- a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden @@ -1,2 +1,2 @@ -({cpu: 844271629 -| mem: 3180217}) \ No newline at end of file +({cpu: 845927629 +| mem: 3187417}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden index 7618417f2a0..bf9ec8c7500 100644 --- a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1080909765 -| mem: 4004440}) \ No newline at end of file +({cpu: 1086498765 +| mem: 4028740}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden index 30fc7137cb9..901cdec44d9 100644 --- a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 16302484383 -| mem: 46121698}) \ No newline at end of file +({cpu: 16301518383 +| mem: 46117498}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden index eb0d1d1e9f5..b5d8fa5bb98 100644 --- a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1587896797 -| mem: 5664002}) \ No newline at end of file +({cpu: 1590863797 +| mem: 5676902}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden index 1ccec8131cf..e70f82b8b19 100644 --- a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1234850119 -| mem: 4544348}) \ No newline at end of file +({cpu: 1237817119 +| mem: 4557248}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden index 6093e9c3757..67051749bef 100644 --- a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 611177456 -| mem: 2236305}) \ No newline at end of file +({cpu: 611522456 +| mem: 2237805}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden index 1bf46ff276c..2c8208069ae 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237465458896 -| mem: 687874520}) \ No newline at end of file +({cpu: 237464492896 +| mem: 687870320}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden index a3080395c3a..81f8aa2438e 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1254537254 -| mem: 4734459}) \ No newline at end of file +({cpu: 1256193254 +| mem: 4741659}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden index e1024b35c12..7f40679bb7e 100644 --- a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden @@ -1,2 +1,2 @@ -({cpu: 502584098 -| mem: 1688165}) \ No newline at end of file +({cpu: 502929098 +| mem: 1689665}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden index a5376f9a643..9185dcad193 100644 --- a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 639921004 -| mem: 2292397}) \ No newline at end of file +({cpu: 640266004 +| mem: 2293897}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden index 89ac947ae83..98d5956c53d 100644 --- a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1184890701 -| mem: 4341582}) \ No newline at end of file +({cpu: 1187857701 +| mem: 4354482}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden index 5a86c030f8d..a1412a8c862 100644 --- a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden @@ -1,2 +1,2 @@ -({cpu: 818721527 -| mem: 2744352}) \ No newline at end of file +({cpu: 821688527 +| mem: 2757252}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden index 9663cf3db4d..109e2c2c3ee 100644 --- a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 551733724 -| mem: 1973422}) \ No newline at end of file +({cpu: 554700724 +| mem: 1986322}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden index 19bece9a7e6..41ad6d91548 100644 --- a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden @@ -1,2 +1,2 @@ -({cpu: 410376762 -| mem: 1436185}) \ No newline at end of file +({cpu: 410721762 +| mem: 1437685}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden index e1c8959539d..ceb101fc37c 100644 --- a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8460779975 -| mem: 24315526}) \ No newline at end of file +({cpu: 8459813975 +| mem: 24311326}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden index b6da95574fa..ce891ab13e6 100644 --- a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 620090242 -| mem: 2023573}) \ No newline at end of file +({cpu: 620435242 +| mem: 2025073}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden index 7c52324140c..c5304cfa061 100644 --- a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1769995306 -| mem: 5779604}) \ No newline at end of file +({cpu: 1772962306 +| mem: 5792504}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden index db01f5fd386..e7c6f984b5f 100644 --- a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4410403663 -| mem: 13052684}) \ No newline at end of file +({cpu: 4409437663 +| mem: 13048484}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden index 1876fd2c94a..30288e2dfa4 100644 --- a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden @@ -1,2 +1,2 @@ -({cpu: 80483425205 -| mem: 226736958}) \ No newline at end of file +({cpu: 80482459205 +| mem: 226732758}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden index c2e0b5b3cb7..e15bd6cbeef 100644 --- a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1522362355 -| mem: 5396324}) \ No newline at end of file +({cpu: 1525329355 +| mem: 5409224}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden index 4de8656b979..70f0ea07eec 100644 --- a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden +++ b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden @@ -1 +1 @@ -14911 \ No newline at end of file +14617 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden index f5a2f50f071..93fa88acbac 100644 --- a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 243201611 -| mem: 951066}) \ No newline at end of file +({cpu: 268570611 +| mem: 1061366}) \ No newline at end of file diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 728fbcd6466..610b3b9bb7d 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -370,36 +370,36 @@ data MatchResult k v | MatchPartial [(v, v)] [(k, v)] [(k, v)] | MatchFailure -{-# INLINE insertUnique #-} +{-# INLINE unsafeInsertUnique #-} -- | Insert a key-value pair into the __sorted__ list assuming the key isn't already in the map (the -- invariants are not checked). -insertUnique :: forall k v. Ord k => k -> v -> [(k, v)] -> [(k, v)] -insertUnique k0 v0 = coerce go where +unsafeInsertUnique :: forall k v. Ord k => k -> v -> [(k, v)] -> [(k, v)] +unsafeInsertUnique k0 v0 = coerce go where go :: [(k, v)] -> [(k, v)] go [] = [(k0, v0)] go kvs@((k, v) : kvs') = case k0 `compare` k of LT -> (k0, v0) : kvs - -- TODO: make this @traceError duplicateElements@. + -- TODO: make this @traceError duplicateKeys@. EQ -> (k, v0) : kvs' GT -> (k, v) : go kvs' -{-# INLINE insertionSortUnique #-} +{-# INLINEABLE unsafeInsertionSortUnique #-} -- | Sort a list assuming all of its keys are unique (the invariant is not checked). -insertionSortUnique :: forall k v. Ord k => [(k, v)] -> [(k, v)] -insertionSortUnique = go where - go :: [(k, v)] -> [(k, v)] - go [] = [] - go ((k, v) : kvs) = insertUnique k v $ go kvs +unsafeInsertionSortUnique :: forall k v. Ord k => [(k, v)] -> [(k, v)] +unsafeInsertionSortUnique = foldr (uncurry unsafeInsertUnique) [] --- The pragma trades a bit of size for potentially plenty of budget. -{-# INLINE eqKVs #-} --- | Check equality of lists by matching them pointwise. +-- The pragma trades potentially plenty of budget for a sizeable amount of size. +{-# INLINEABLE eqKVs #-} +{- | Take a function checking whether a value is zero\/empty, a function checking /semantic/ +equality of two values and two key-value lists and return the result of matching the lists +pointwisely. +-} eqKVs :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool eqKVs is0 eqV = coerce go where go :: [(k, v)] -> [(k, v)] -> Bool go [] [] = True - go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all elements in the + go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all values in the go kvs1 [] = all (is0 . snd) kvs1 -- other list need to be zero for lists to be equal. go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') -- As with 'matchKVs' we check equality of all the keys first and only then check equality @@ -410,6 +410,7 @@ eqKVs is0 eqV = coerce go where | is0 v2 = go kvs1 kvs2' | otherwise = False +-- The pragma trades a negligible amount of size for a substantial performance boost. {-# INLINE matchKVs #-} {- | Take a function checking whether a value is zero\/empty, a function checking /structural/ equality of two values and two key-value lists and return the result of matching the lists @@ -430,7 +431,7 @@ the values, because 2. values can be maps and as such checking their equality may be very expensive, it makes sense to check equality of keys first 3. checking equality of keys makes for a less surprising user experience. If we were to process - some of the values first, a slight reordering of elements in the list could cause significant + some of the values first, a slight reordering of elements of the list could cause significant performance changes (e.g. if a larger value moves to the beginning of the list) For these reasons we decided not to pick the winner (@valueEqualsValue4@) from @@ -497,13 +498,13 @@ eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = MatchPartial valPairs currs1' currs2' -> if eqKVs (Map.all (== 0)) - (eqMapVia insertionSortUnique) - (insertionSortUnique currs1') - (insertionSortUnique currs2') + (eqMapVia unsafeInsertionSortUnique) + (unsafeInsertionSortUnique currs1') + (unsafeInsertionSortUnique currs2') then -- Check equality of values that come from the common key prefix of the original -- lists. - all (uncurry (eqMapVia insertionSortUnique)) valPairs + all (uncurry (eqMapVia unsafeInsertionSortUnique)) valPairs else False where -- Check equality of two @Map@s given a function transforming a list of tokens (two options for @@ -513,8 +514,8 @@ eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = -> Map.Map TokenName Integer -> Map.Map TokenName Integer -> Bool - eqMapVia sortTokens (Map.toList -> tokens1) (Map.toList -> tokens2) = - eqKVs (== 0) (==) (sortTokens tokens1) (sortTokens tokens2) + eqMapVia f (Map.toList -> tokens1) (Map.toList -> tokens2) = + eqKVs (== 0) (==) (f tokens1) (f tokens2) makeLift ''CurrencySymbol makeLift ''TokenName diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden index a50049fb58e..84543cf13f5 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2554061773 | mem: 9184542}) -({cpu: 1963428073 | mem: 7323118}) -({cpu: 1784902911 | mem: 6418854}) -({cpu: 1736533080 | mem: 6404516}) -({cpu: 1784902911 | mem: 6418854}) -({cpu: 1507265109 | mem: 5478110}) -({cpu: 1015744049 | mem: 3653166}) -({cpu: 1382463100 | mem: 5097364}) -({cpu: 1784902911 | mem: 6418854}) -({cpu: 1255288113 | mem: 4708814}) -({cpu: 1015744049 | mem: 3653166}) -({cpu: 1028393120 | mem: 3790212}) -({cpu: 1015744049 | mem: 3653166}) -({cpu: 799125149 | mem: 2863806}) -({cpu: 246585187 | mem: 887478}) \ No newline at end of file +({cpu: 2935930773 | mem: 10844842}) +({cpu: 2101244073 | mem: 7922318}) +({cpu: 2050759911 | mem: 7574754}) +({cpu: 1863309080 | mem: 6955716}) +({cpu: 2050759911 | mem: 7574754}) +({cpu: 1623001109 | mem: 5981310}) +({cpu: 1165589049 | mem: 4304666}) +({cpu: 1483939100 | mem: 5538564}) +({cpu: 2050759911 | mem: 7574754}) +({cpu: 1342504113 | mem: 5088014}) +({cpu: 1165589049 | mem: 4304666}) +({cpu: 1104569120 | mem: 4121412}) +({cpu: 1165589049 | mem: 4304666}) +({cpu: 864261149 | mem: 3147006}) +({cpu: 280418187 | mem: 1034578}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden index 7b05ca6eff2..bab26f64cb9 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 6256100 | mem: 27300}) -({cpu: 8326100 | mem: 36300}) -({cpu: 10095491 | mem: 42702}) -({cpu: 12109980 | mem: 50204}) -({cpu: 13143371 | mem: 53406}) -({cpu: 12937980 | mem: 53804}) -({cpu: 19755076 | mem: 78312}) -({cpu: 22254174 | mem: 89212}) -({cpu: 23318467 | mem: 92514}) -({cpu: 20047361 | mem: 82008}) -({cpu: 32978486 | mem: 128124}) -({cpu: 26269675 | mem: 106512}) -({cpu: 45686385 | mem: 174438}) -({cpu: 51455613 | mem: 200436}) -({cpu: 61447806 | mem: 231456}) -({cpu: 58842646 | mem: 231238}) -({cpu: 80257541 | mem: 299178}) -({cpu: 46244912 | mem: 190816}) -({cpu: 102115590 | mem: 377604}) -({cpu: 167950644 | mem: 624658}) -({cpu: 246585187 | mem: 887478}) \ No newline at end of file +({cpu: 4554100 | mem: 19900}) +({cpu: 6624100 | mem: 28900}) +({cpu: 9566491 | mem: 40402}) +({cpu: 11695980 | mem: 48404}) +({cpu: 12936371 | mem: 52506}) +({cpu: 11235980 | mem: 46404}) +({cpu: 21043076 | mem: 83912}) +({cpu: 23335174 | mem: 93912}) +({cpu: 25779467 | mem: 103214}) +({cpu: 18345361 | mem: 74608}) +({cpu: 37256486 | mem: 146724}) +({cpu: 24567675 | mem: 99112}) +({cpu: 52103385 | mem: 202338}) +({cpu: 53525613 | mem: 209436}) +({cpu: 70325806 | mem: 270056}) +({cpu: 60912646 | mem: 240238}) +({cpu: 91918541 | mem: 349878}) +({cpu: 44542912 | mem: 183416}) +({cpu: 116881590 | mem: 441804}) +({cpu: 178944644 | mem: 672458}) +({cpu: 280418187 | mem: 1034578}) \ No newline at end of file From faf18eded60b5039d14ac83a3f0bf3488ce4b9dd Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 11 Oct 2023 05:51:04 +0200 Subject: [PATCH 24/40] Yoda help us --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 610b3b9bb7d..8b24743b80f 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -484,20 +484,20 @@ matchKVs is0 structEqV = go where {-# INLINEABLE eq #-} -- | Check equality of two 'Value's. Does not assume orderness of lists within 'Value' or lack of --- empty values (such as a token whose quantity is zero or a currencies that has a bunch of such +-- empty values (such as a token whose quantity is zero or a currency that has a bunch of such -- tokens or no tokens at all), but does assume that no currencies or tokens within a single -- currency have multiple entries. eq :: Value -> Value -> Bool eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = -- Check structural equality of the lists first. - case matchKVs (Map.all (== 0)) (eqMapVia id) currs1 currs2 of + case matchKVs (Map.all (0 ==)) (eqMapVia id) currs1 currs2 of MatchSuccess -> True MatchFailure -> False -- If the lists aren't structurally equal, then sort them and check structural equality of -- the now sorted lists. MatchPartial valPairs currs1' currs2' -> if eqKVs - (Map.all (== 0)) + (Map.all (0 ==)) (eqMapVia unsafeInsertionSortUnique) (unsafeInsertionSortUnique currs1') (unsafeInsertionSortUnique currs2') @@ -515,7 +515,7 @@ eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = -> Map.Map TokenName Integer -> Bool eqMapVia f (Map.toList -> tokens1) (Map.toList -> tokens2) = - eqKVs (== 0) (==) (f tokens1) (f tokens2) + eqKVs (0 ==) (==) (f tokens1) (f tokens2) makeLift ''CurrencySymbol makeLift ''TokenName From 3a5b63df4d497b12776136f4f78a2423629d4e71 Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 11 Oct 2023 05:55:48 +0200 Subject: [PATCH 25/40] Move and document 'eqKVs' --- .../src/PlutusLedgerApi/V1/Value.hs | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 8b24743b80f..050b0dcae09 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -389,27 +389,6 @@ unsafeInsertUnique k0 v0 = coerce go where unsafeInsertionSortUnique :: forall k v. Ord k => [(k, v)] -> [(k, v)] unsafeInsertionSortUnique = foldr (uncurry unsafeInsertUnique) [] --- The pragma trades potentially plenty of budget for a sizeable amount of size. -{-# INLINEABLE eqKVs #-} -{- | Take a function checking whether a value is zero\/empty, a function checking /semantic/ -equality of two values and two key-value lists and return the result of matching the lists -pointwisely. --} -eqKVs :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool -eqKVs is0 eqV = coerce go where - go :: [(k, v)] -> [(k, v)] -> Bool - go [] [] = True - go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all values in the - go kvs1 [] = all (is0 . snd) kvs1 -- other list need to be zero for lists to be equal. - go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') - -- As with 'matchKVs' we check equality of all the keys first and only then check equality - -- of values. - | k1 == k2 = if go kvs1' kvs2' then eqV v1 v2 else False - | is0 v1 = go kvs1' kvs2 - -- Or if the second one is empty, then we throw that one and proceed. - | is0 v2 = go kvs1 kvs2' - | otherwise = False - -- The pragma trades a negligible amount of size for a substantial performance boost. {-# INLINE matchKVs #-} {- | Take a function checking whether a value is zero\/empty, a function checking /structural/ @@ -482,6 +461,31 @@ matchKVs is0 structEqV = go where -- Otherwise the keys in the lists have diverged and we return the remaining parts. | otherwise = MatchPartial [] kvs1 kvs2 +-- The pragma trades potentially plenty of budget for a sizeable amount of size. +{-# INLINEABLE eqKVs #-} +{- | Take a function checking whether a value is zero\/empty, a function checking /semantic/ +equality of two values and two key-value lists and return the result of matching the lists +pointwisely. + +This function is very similar to 'matchKVs', but since it checks actual semantic equality of the +given lists, it doesn't need all the 'MatchResult' logic and hence we can return a 'Bool', which +results in better performance than reusing 'matchKVs'. +-} +eqKVs :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool +eqKVs is0 eqV = coerce go where + go :: [(k, v)] -> [(k, v)] -> Bool + go [] [] = True + go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all values in the + go kvs1 [] = all (is0 . snd) kvs1 -- other list need to be zero for lists to be equal. + go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') + -- As with 'matchKVs' we check equality of all the keys first and only then check equality + -- of values. + | k1 == k2 = if go kvs1' kvs2' then eqV v1 v2 else False + | is0 v1 = go kvs1' kvs2 + -- Or if the second one is empty, then we throw that one and proceed. + | is0 v2 = go kvs1 kvs2' + | otherwise = False + {-# INLINEABLE eq #-} -- | Check equality of two 'Value's. Does not assume orderness of lists within 'Value' or lack of -- empty values (such as a token whose quantity is zero or a currency that has a bunch of such From 315ea47eafb0b8cfb8110416481da1ccae6119cc Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 12 Oct 2023 21:58:04 +0200 Subject: [PATCH 26/40] [PlutusTx] [Test] Add property tests for operations over 'Value' --- .../PlutusCore/Generators/QuickCheck/Utils.hs | 95 +++++++++++++++++++ .../test/Evaluation/Builtins/Costing.hs | 94 +----------------- plutus-ledger-api/plutus-ledger-api.cabal | 19 ++-- plutus-ledger-api/test/Spec.hs | 2 + plutus-ledger-api/test/Spec/V1/Value.hs | 84 ++++++++++++++++ .../testlib/PlutusLedgerApi/Test/V1/Value.hs | 69 ++++++++++++++ 6 files changed, 264 insertions(+), 99 deletions(-) create mode 100644 plutus-ledger-api/test/Spec/V1/Value.hs create mode 100644 plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs diff --git a/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs b/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs index 03114c16e6f..1c13fc6b5ed 100644 --- a/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs +++ b/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs @@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module PlutusCore.Generators.QuickCheck.Utils where @@ -13,7 +14,9 @@ import PlutusIR.Compiler.Datatype import PlutusIR.Core.Instance.Pretty.Readable import PlutusIR.Subst +import Data.Coerce (coerce) import Data.Kind qualified as GHC +import Data.List (sort) import Data.List.NonEmpty (NonEmpty (..)) import Data.Set (Set) import Data.Set qualified as Set @@ -123,3 +126,95 @@ matchType d@(Datatype _ (TyVarDecl _ a _) xs m cs) = (m, destrTy) mconcat [setOf ftvTy ty | VarDecl _ _ ty <- cs] maxUsed = maxUsedUnique fvs destrTy = runQuote $ markNonFresh maxUsed >> mkDestructorTy d + +-- | Generate a list of the given length, all arguments of which are distinct. Takes O(n^2) time. +uniqueVectorOf :: Eq a => Int -> Gen a -> Gen [a] +uniqueVectorOf i0 genX = go [] i0 where + go acc i + | i <= 0 = pure acc + | otherwise = do + x <- genX `suchThat` (`notElem` acc) + go (x : acc) (i - 1) + +-- | Up to what length a list is considered \"short\". +smallLength :: Int +smallLength = 6 + +-- | Calculate the maximum number of chunks to split a list of the given list into. +toMaxChunkNumber :: Int -> Int +toMaxChunkNumber len + -- For short lists we take the maximum number of chunks to be the length of the list, + -- i.e. the maximum number of chunks grows at a maximum speed for short lists. + | len <= smallLength = len + -- For longer lists the maximum number of chunks grows slower. We don't really want to split a + -- 50-element list into each of 1..50 number of chunks. + | len <= smallLength ^ (2 :: Int) = smallLength + len `div` smallLength + -- For long lists it grows even slower. + | otherwise = smallLength + round @Double (sqrt $ fromIntegral len) + +-- | Calculate the number of ways to divide a list of length @len@ into @chunkNum@ chunks. +-- Equals to @C(len - 1, chunksNum - 1)@. +toChunkNumber :: Int -> Int -> Int +toChunkNumber len chunkNum = + product [len - 1, len - 2 .. len - chunkNum + 1] `div` + product [chunkNum - 1, chunkNum - 2 .. 2] + +-- | Return a list of pairs, each of which consists of +-- +-- 1. the frequency at which a chunk length needs to be picked by the generation machinery +-- 2. the chunk length itself +-- +-- >>> toChunkFrequencies 5 +-- [(1,1),(4,2),(6,3),(4,4),(1,5)] +-- >>> toChunkFrequencies 10 +-- [(3,1),(6,2),(9,3),(12,4),(15,5),(18,6),(21,7)] +-- >>> toChunkFrequencies 50 +-- [(3,1),(4,2),(5,3),(6,4),(7,5),(8,6),(9,7),(10,8),(11,9),(12,10),(13,11),(14,12),(15,13)] +toChunkFrequencies :: Int -> [(Int, Int)] +toChunkFrequencies len + -- For short lists we calculate exact chunk numbers and use those as frequencies in order to get + -- uniform distribution of list lengths (which does not lead to uniform distribution of lengths + -- of subtrees, since subtrees with small total count of elements get generated much more often + -- than those with a big total count of elements, particularly because the latter contain the + -- former). + | len <= smallLength = map (\num -> (toChunkNumber len num, num)) chunks + | otherwise = + let -- The probability of "splitting" a list into a single sublist (i.e. simply 'pure') is + -- about 3%. + singleElemProb = 3 + -- Computing @delta@ in order for each subsequent chunk length to get picked a bit more + -- likely, so that we generate longer forests more often when we can. For not-too-long + -- lists the frequencies add up to roughly 100. For long lists the sum of frequencies + -- can be significantly greater than 100 making the chance of generating a single + -- sublist less than 3%. + deltaN = chunkMax * (chunkMax - 1) `div` 2 + delta = max 1 $ (100 - chunkMax * singleElemProb) `div` deltaN + in zip (iterate (+ delta) singleElemProb) chunks + where + chunkMax = toMaxChunkNumber len + chunks = [1 .. chunkMax] + +-- | Split the given list in chunks. The length of each chunk, apart from the final one, is taken +-- from the first argument. +-- +-- >>> toChunks [3, 1] "abcdef" +-- ["abc","d","ef"] +toChunks :: [Int] -> [a] -> [[a]] +toChunks [] xs = [xs] +toChunks (n : ns) xs = chunk : toChunks ns xs' where + (chunk, xs') = splitAt n xs + +-- | Split a list into chunks at random. Concatenating the resulting lists gives back the original +-- one. +multiSplit :: [a] -> Gen [NonEmptyList a] +multiSplit [] = pure [] +multiSplit xs = do + let len = length xs + -- Pick a number of chunks. + chunkNum <- frequency . map (fmap pure) $ toChunkFrequencies len + -- Pick a list of breakpoints. + breakpoints <- sort <$> uniqueVectorOf (chunkNum - 1) (choose (1, len - 1)) + -- Turn the list of breakpoints into a list of chunk lengths. + let chunkLens = zipWith (-) breakpoints (0 : breakpoints) + -- Chop the argument into chunks according to the list of chunk lengths. + pure . coerce $ toChunks chunkLens xs diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs index f61d9e3486f..11884dda2cd 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs @@ -13,9 +13,9 @@ import PlutusCore.Evaluation.Machine.ExBudgetStream import PlutusCore.Evaluation.Machine.ExMemory import PlutusCore.Evaluation.Machine.ExMemoryUsage import PlutusCore.Generators.QuickCheck.Builtin () +import PlutusCore.Generators.QuickCheck.Utils import Data.Bifunctor -import Data.Coerce import Data.Int import Data.List import Data.Maybe @@ -333,15 +333,6 @@ test_flattenCostRoseIsLinear = testGroup "flattenCostRose is linear" , test_flattenCostRoseIsLinearForSierpinskiRose 14 ] --- | Generate a list of the given length, all arguments of which are distinct. Takes O(n^2) time. -uniqueVectorOf :: Eq a => Int -> Gen a -> Gen [a] -uniqueVectorOf i0 genX = go [] i0 where - go acc i - | i <= 0 = pure acc - | otherwise = do - x <- genX `suchThat` (`notElem` acc) - go (x : acc) (i - 1) - {- Note [Generating a CostRose] We use an overly pedantic approach for generating 'CostRose's. The idea is simple: generate a list of costs, chop it into chunks and turn each of those into its own 'CostRose' recursively, then @@ -356,89 +347,6 @@ size-driven and minor tweaks in size handling at any step can result in major ch generation strategy such as exponential growth of the generated objects. -} --- | Up to what length a list is considered \"short\". -smallLength :: Int -smallLength = 6 - --- | Calculate the maximum number of chunks to split a list of the given list into. -toMaxChunkNumber :: Int -> Int -toMaxChunkNumber len - -- For short lists we take the maximum number of chunks to be the length of the list, - -- i.e. the maximum number of chunks grows at a maximum speed for short lists. - | len <= smallLength = len - -- For longer lists the maximum number of chunks grows slower. We don't really want to split a - -- 50-element list into each of 1..50 number of chunks. - | len <= smallLength ^ (2 :: Int) = smallLength + len `div` smallLength - -- For long lists it grows even slower. - | otherwise = smallLength + round @Double (sqrt $ fromIntegral len) - --- | Calculate the number of ways to divide a list of length @len@ into @chunkNum@ chunks. --- Equals to @C(len - 1, chunksNum - 1)@. -toChunkNumber :: Int -> Int -> Int -toChunkNumber len chunkNum = - product [len - 1, len - 2 .. len - chunkNum + 1] `div` - product [chunkNum - 1, chunkNum - 2 .. 2] - --- | Return a list of pairs, each of which consists of --- --- 1. the frequency at which a chunk length needs to be picked by the generation machinery --- 2. the chunk length itself --- --- >>> toChunkFrequencies 5 --- [(1,1),(4,2),(6,3),(4,4),(1,5)] --- >>> toChunkFrequencies 10 --- [(3,1),(6,2),(9,3),(12,4),(15,5),(18,6),(21,7)] --- >>> toChunkFrequencies 50 --- [(3,1),(4,2),(5,3),(6,4),(7,5),(8,6),(9,7),(10,8),(11,9),(12,10),(13,11),(14,12),(15,13)] -toChunkFrequencies :: Int -> [(Int, Int)] -toChunkFrequencies len - -- For short lists we calculate exact chunk numbers and use those as frequencies in order to get - -- uniform distribution of list lengths (which does not lead to uniform distribution of lengths - -- of subtrees, since subtrees with small total count of elements get generated much more often - -- than those with a big total count of elements, particularly because the latter contain the - -- former). - | len <= smallLength = map (\num -> (toChunkNumber len num, num)) chunks - | otherwise = - let -- The probability of "splitting" a list into a single sublist (i.e. simply 'pure') is - -- about 3%. - singleElemProb = 3 - -- Computing @delta@ in order for each subsequent chunk length to get picked a bit more - -- likely, so that we generate longer forests more often when we can. For not-too-long - -- lists the frequencies add up to roughly 100. For long lists the sum of frequencies - -- can be significantly greater than 100 making the chance of generating a single - -- sublist less than 3%. - deltaN = chunkMax * (chunkMax - 1) `div` 2 - delta = max 1 $ (100 - chunkMax * singleElemProb) `div` deltaN - in zip (iterate (+ delta) singleElemProb) chunks - where - chunkMax = toMaxChunkNumber len - chunks = [1 .. chunkMax] - --- | Split the given list in chunks. The length of each chunk, apart from the final one, is taken --- from the first argument. --- --- >>> toChunks [3, 1] "abcdef" --- ["abc","d","ef"] -toChunks :: [Int] -> [a] -> [[a]] -toChunks [] xs = [xs] -toChunks (n : ns) xs = chunk : toChunks ns xs' where - (chunk, xs') = splitAt n xs - --- | Split a list into chunks at random. Concatenating the resulting lists gives back the original --- one. -multiSplit :: [a] -> Gen [NonEmptyList a] -multiSplit [] = pure [] -multiSplit xs = do - let len = length xs - -- Pick a number of chunks. - chunkNum <- frequency . map (fmap pure) $ toChunkFrequencies len - -- Pick a list of breakpoints. - breakpoints <- sort <$> uniqueVectorOf (chunkNum - 1) (choose (1, len - 1)) - -- Turn the list of breakpoints into a list of chunk lengths. - let chunkLens = zipWith (-) breakpoints (0 : breakpoints) - -- Chop the argument into chunks according to the list of chunk lengths. - pure . coerce $ toChunks chunkLens xs - -- See Note [Generating a CostRose]. -- | Generate a 'CostRose' from the given list by splitting the list into sublists and generating -- a 'CostRose' for each of them recursively. diff --git a/plutus-ledger-api/plutus-ledger-api.cabal b/plutus-ledger-api/plutus-ledger-api.cabal index f8cb8573e2c..8b2179e7b2e 100644 --- a/plutus-ledger-api/plutus-ledger-api.cabal +++ b/plutus-ledger-api/plutus-ledger-api.cabal @@ -113,20 +113,23 @@ library plutus-ledger-api-testlib PlutusLedgerApi.Test.Examples PlutusLedgerApi.Test.Scripts PlutusLedgerApi.Test.V1.EvaluationContext + PlutusLedgerApi.Test.V1.Value PlutusLedgerApi.Test.V2.EvaluationContext PlutusLedgerApi.Test.V3.EvaluationContext build-depends: , barbies - , base >=4.9 && <5 + , base >=4.9 && <5 + , base16-bytestring , base64-bytestring , bytestring , containers - , plutus-core ^>=1.14 - , plutus-ledger-api ^>=1.14 - , plutus-tx ^>=1.14 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.14 + , plutus-ledger-api ^>=1.14 + , plutus-tx ^>=1.14 , prettyprinter - , PyF >=0.11.1.0 + , PyF >=0.11.1.0 + , QuickCheck , serialise , text @@ -141,6 +144,7 @@ test-suite plutus-ledger-api-test Spec.Eval Spec.Interval Spec.NoThunks + Spec.V1.Value Spec.Versions build-depends: @@ -150,11 +154,13 @@ test-suite plutus-ledger-api-test , containers , extra , hedgehog + , lens , mtl , nothunks , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.14 , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.14 - , plutus-tx:plutus-tx-testlib ^>=1.14 + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.14 + , QuickCheck , tasty , tasty-hedgehog , tasty-hunit @@ -182,6 +188,7 @@ test-suite plutus-ledger-api-plugin-test , plutus-tx ^>=1.14 , plutus-tx-plugin ^>=1.14 , prettyprinter + , QuickCheck , tasty -- This is a nightly test, so it is an executable instead of test-suite to avoid diff --git a/plutus-ledger-api/test/Spec.hs b/plutus-ledger-api/test/Spec.hs index 8d73e29526f..f25b0132146 100644 --- a/plutus-ledger-api/test/Spec.hs +++ b/plutus-ledger-api/test/Spec.hs @@ -11,6 +11,7 @@ import Spec.CostModelParams qualified import Spec.Eval qualified import Spec.Interval qualified import Spec.NoThunks qualified +import Spec.V1.Value qualified as Value import Spec.Versions qualified import Test.Tasty @@ -104,4 +105,5 @@ tests = testGroup "plutus-ledger-api" [ , Spec.CostModelParams.tests , Spec.NoThunks.tests , Spec.CBOR.DeserialiseFailureInfo.tests + , Value.test_Value ] diff --git a/plutus-ledger-api/test/Spec/V1/Value.hs b/plutus-ledger-api/test/Spec/V1/Value.hs new file mode 100644 index 00000000000..e8bbd89f2f3 --- /dev/null +++ b/plutus-ledger-api/test/Spec/V1/Value.hs @@ -0,0 +1,84 @@ +{-# LANGUAGE MultiWayIf #-} + +module Spec.V1.Value where + +import PlutusLedgerApi.Test.V1.Value as Value +import PlutusLedgerApi.V1 +import PlutusLedgerApi.V1.Value +import PlutusTx.Numeric qualified as Numeric + +import Control.Lens +import Test.QuickCheck +import Test.Tasty +import Test.Tasty.QuickCheck + +mapMany :: (a -> Gen a) -> [a] -> Gen [a] +mapMany f = traverse $ \x -> do + b <- arbitrary + if b then f x else pure x + +mapSome :: Eq a => (a -> Gen a) -> [a] -> Gen [a] +mapSome f xs = do + i <- choose (0, length xs - 1) + xs' <- mapMany f xs + ix i (\x -> if x == xs !! i then f x else pure x) xs' + +updateInteger :: Integer -> Gen Integer +updateInteger i = arbitrary `suchThat` (/= i) + +onLists + :: Value + -> ([(CurrencySymbol, [(TokenName, Integer)])] -> + Gen [(CurrencySymbol, [(TokenName, Integer)])]) + -> (Value -> Property) + -> Property +onLists value f = forAll (fmap listsToValue . f $ valueToLists value) + +test_Monoid :: TestTree +test_Monoid = testProperty "Monoid" . withMaxSuccess 500 . mapSize (* 5) $ \value1 -> + if isZero value1 + then conjoin + [ value1 === mempty + , forAll arbitrary $ \value2 -> value1 <> value2 === value2 + ] + else conjoin + [ value1 =/= mempty + , value1 <> value1 === Numeric.scale 2 value1 + , forAll arbitrary $ \value2 -> + if isZero value2 + then value1 <> value2 === value1 + else conjoin + [ value1 <> value2 =/= value1 + , value1 <> value2 =/= value2 + , value1 <> value2 === value2 <> value1 + , forAll arbitrary $ \value3 -> + not (isZero value3) ==> + (value1 <> value2) <> value3 === value1 <> (value2 <> value3) + ] + ] + +test_updateSome :: TestTree +test_updateSome = testProperty "updateSome" . withMaxSuccess 1000 . mapSize (* 10) $ \value -> + any (any $ not . null) (valueToLists value) ==> + onLists value (mapSome . traverse . mapSome $ traverse updateInteger) + (\value' -> value =/= value') + +test_unordered :: TestTree +test_unordered = testProperty "unordered" . withMaxSuccess 500 . mapSize (* 5) $ \value1 -> + conjoin + [ onLists value1 shuffle $ \value1' -> value1 === value1' + , onLists value1 (mapMany $ traverse shuffle) $ \value1' -> value1 === value1' + ] + +test_split :: TestTree +test_split = testProperty "split" . withMaxSuccess 500 . mapSize (* 5) $ \value -> + let (valueL, valueR) = split value + in Numeric.negate valueL <> valueR === value + +test_Value :: TestTree +test_Value = testGroup "Value" + [ test_Monoid + , test_updateSome + , test_unordered + , test_split + ] diff --git a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs new file mode 100644 index 00000000000..f225a6aede7 --- /dev/null +++ b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs @@ -0,0 +1,69 @@ +{-# LANGUAGE TupleSections #-} +{-# LANGUAGE TypeApplications #-} + +{-# OPTIONS_GHC -fno-warn-orphans #-} + +module PlutusLedgerApi.Test.V1.Value where + +import PlutusLedgerApi.V1 +import PlutusTx.AssocMap qualified as AssocMap +import PlutusTx.List qualified as ListTx + +import PlutusCore.Generators.QuickCheck.Utils (multiSplit, uniqueVectorOf) + +import Data.ByteString.Base16 qualified as Base16 +import Data.ByteString.Char8 qualified as BS8 +import Data.Coerce +import Test.QuickCheck + +listsToValue :: [(CurrencySymbol, [(TokenName, Integer)])] -> Value +listsToValue = Value . AssocMap.fromList . ListTx.map (fmap AssocMap.fromList) + +valueToLists :: Value -> [(CurrencySymbol, [(TokenName, Integer)])] +valueToLists = ListTx.map (fmap AssocMap.toList) . AssocMap.toList . getValue + +-- >>> map (\i -> (i, toNameCandidatesNumber i)) [1..13] +-- [(1,6),(2,6),(3,6),(4,8),(5,11),(6,14),(7,18),(8,22),(9,27),(10,31),(11,36),(12,41),(13,46)] +toNameCandidatesNumber :: Int -> Int +toNameCandidatesNumber i = max 6 . floor @Double $ fromIntegral i ** 1.5 + +genShortHex :: Int -> Gen BuiltinByteString +genShortHex i = + toBuiltin . Base16.encode . BS8.pack . show <$> elements [0 .. toNameCandidatesNumber i] + +uniqueNames :: Eq name => (BuiltinByteString -> name) -> [b] -> Gen [(name, b)] +uniqueNames wrap ys = do + let len = length ys + xs <- uniqueVectorOf len $ wrap <$> genShortHex len + pure $ zip xs ys + +newtype FaceValue = FaceValue + { unFaceValue :: Integer + } + +instance Arbitrary FaceValue where + -- We want to generate zeroes often, because there's a lot of corner cases associated with them + -- and all non-zero numbers are handled pretty much the same anyway, so there isn't much point + -- in diversifying them as much as possible. + arbitrary = frequency + [ (2, pure $ FaceValue 0) + , (1, FaceValue . fromIntegral <$> arbitrary @Int) + ] + +newtype NoArbitrary a = NoArbitrary + { unNoArbitrary :: a + } + +instance Arbitrary (NoArbitrary a) where + arbitrary = error "No such 'Arbitrary' instance" + +instance Arbitrary Value where + arbitrary = do + faceValues <- fmap (map getNonEmpty) . multiSplit . map unFaceValue =<< arbitrary + currencies <- uniqueNames CurrencySymbol =<< traverse (uniqueNames TokenName) faceValues + pure $ listsToValue currencies + + shrink + = map listsToValue + . coerce (shrink @[(NoArbitrary CurrencySymbol, [(NoArbitrary TokenName, Integer)])]) + . valueToLists From 26fc545c50e14eb460f11210cf4957f41d3c1af3 Mon Sep 17 00:00:00 2001 From: effectfully Date: Fri, 13 Oct 2023 23:18:41 +0200 Subject: [PATCH 27/40] Reimplement equality checking --- ...010001020101020201010000020102.eval.golden | 4 +- ...010101010100000001000001010000.eval.golden | 4 +- ...000104030002040304020400000102.eval.golden | 4 +- ...2992faf62e0b991d7310a2f91666b8.eval.golden | 4 +- ...000001010000010001000001000101.eval.golden | 4 +- ...000201010102000102010201010000.eval.golden | 4 +- ...050807010208060100070207080202.eval.golden | 4 +- ...040300030304040400010301040303.eval.golden | 4 +- ...0d0104050a0b0f0506070f0a070008.eval.golden | 4 +- ...d266dd7544678743890b0e8e1add63.eval.golden | 4 +- ...020207000101060706050502040301.eval.golden | 4 +- ...050e0a0d06030f1006030701020607.eval.golden | 4 +- ...6a95115748c026f9ec129384c262c4.eval.golden | 4 +- ...03031d8de696d90ec789e70d6bc1d8.eval.golden | 4 +- ...151c1f1d201c040f10091b020a0e1a.eval.golden | 4 +- ...4fe55e4096f5ce2e804735a7fbaf91.eval.golden | 4 +- ...39c9b87e5d7bea570087ec506935d5.eval.golden | 4 +- ...93093efe7bc76d6322aed6ddb582ad.eval.golden | 4 +- ...020c2c133a1a3c3f3c232a26153a04.eval.golden | 4 +- ...c9fc38298d567d15ee9f2eea69d89e.eval.golden | 4 +- ...1b0823471c67737f0b076870331260.eval.golden | 4 +- ...052ebcf66ec4ad77e51c11501381c7.eval.golden | 4 +- ...010d1d1c150e110a110e1006160a0d.eval.golden | 4 +- ...2a0f1140211c3e3f171e26312b0220.eval.golden | 4 +- ...782b19ba72dc4951941fb4c20d2263.eval.golden | 4 +- ...128b4ddcf426852b441f9a9d02c882.eval.golden | 4 +- ...f7636986014de2d2aaa460ddde0bc3.eval.golden | 4 +- ...60f22719a996871ad412cbe4de78b5.eval.golden | 4 +- ...ce450b9ce8a0f42a6e313b752e6f2c.eval.golden | 4 +- ...7463d209a453048a66c6eee624a695.eval.golden | 4 +- ...f166785e8b5183c8139db2aa7312d1.eval.golden | 4 +- ...c321d13fec0375606325eee9a34a6a.eval.golden | 4 +- ...ec88446e2d10625119a9d17fa3ec3d.eval.golden | 4 +- ...e2e396c299a0ce101ee6bf4b2020db.eval.golden | 4 +- ...b321a467dedb278328215167eca455.eval.golden | 4 +- ...11a81ca3841f47f37633e8aacbb5de.eval.golden | 4 +- ...137fabffc9de499a0de7cabb335479.eval.golden | 4 +- ...7878958cab3b9d9353978b08c36d8a.eval.golden | 4 +- ...256319a7b5ce4202cb54dfef8e37e7.eval.golden | 4 +- ...c232125976f29b1c3e21d9f537845c.eval.golden | 4 +- ...12b32bd8aecb48a228b50e02b055c8.eval.golden | 4 +- ...e7af0d28e1eb68faeecc45f4655f57.eval.golden | 4 +- ...65fff00a555ce8c55e36ddc003007a.eval.golden | 4 +- ...9be5ae1892d07ee71161bfb55a7cb7.eval.golden | 4 +- ...f53b335a85a2825502ab1e0687197e.eval.golden | 4 +- ...18f38f7539b7ba7167d577c0c8b8ce.eval.golden | 4 +- ...d0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden | 4 +- ...fdfc0b8409ba1e98f95fa5b6caf999.eval.golden | 4 +- ...1c878a0e0a7d6f7fe1d4a619e06112.eval.golden | 4 +- ...7539062b5728182e073e5760561a66.eval.golden | 4 +- ...109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden | 4 +- ...b6c6712c28c54f5a25792049294acc.eval.golden | 4 +- ...2c1dc6f4e7e412eeb5a3ced42fb642.eval.golden | 4 +- ...494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden | 4 +- ...a1575294ea39061b81a194ebb9eaae.eval.golden | 4 +- ...e03805fac9d5fb4ff2d3066e53fc7e.eval.golden | 4 +- ...4bafcb38fbfa1dbc31ac2053628a38.eval.golden | 4 +- ...19d4342612accf40913f9ae9419fac.eval.golden | 4 +- ...10fccd3dce2a23910bddd35c503b71.eval.golden | 4 +- ...08009738401d264bf9b3eb7c6f49c1.eval.golden | 4 +- ...10e1e953867cc4900cc25e5b9dec47.eval.golden | 4 +- ...97a420954018d8301ec4f9783be0d7.eval.golden | 4 +- ...f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden | 4 +- ...2540a1abd79718e681228f4057403a.eval.golden | 4 +- ...35e40a5defc6f3b9be68b70b4a3db6.eval.golden | 4 +- ...8322a9dcbe277c143ed3aede9d265f.eval.golden | 4 +- ...d2e61afdb3ac18128e1688c07071ba.eval.golden | 4 +- ...2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden | 4 +- ...b3a1ce6db4e501df1086773c6c0201.eval.golden | 4 +- ...a2517055197aff6b60a87ff718d66c.eval.golden | 4 +- ...4e8e75beb636692478ec39f74ee221.eval.golden | 4 +- ...b1605fe1490aa3f4f64a3fa8881b25.eval.golden | 4 +- ...5254897d6d1d0e21bc380147687bd5.eval.golden | 4 +- ...ef42aee239a2d9bc5314d127cce592.eval.golden | 4 +- ...2cd9997bdf2d8b2998c6bfeef3b122.eval.golden | 4 +- ...73eccf3df3a605bd6bc6a456cde871.eval.golden | 4 +- ...11e81fea90e41afebd669e51bb60c8.eval.golden | 4 +- ...fcde89510b29cccce81971e38e0835.eval.golden | 4 +- ...af884e504d2c410ad63ba46d8ca35c.eval.golden | 4 +- ...948bb1d1e29eacecd022eeb168b315.eval.golden | 4 +- ...253a51a0c0c7890f2214df9ac19274.eval.golden | 4 +- ...40ba143ce0579f1602fd780cabf153.eval.golden | 4 +- ...f9e276b5dabc66ff669d5650d0be1c.eval.golden | 4 +- ...b46eec7a26fa31b80ae69d44805efc.eval.golden | 4 +- ...7cd3eccec8cac9c70a4857b88a5eb8.eval.golden | 4 +- ...122f3330fe5b77b3222f570395d9f5.eval.golden | 4 +- ...f00ba5822197ade7dd540489ec5e95.eval.golden | 4 +- ...7e11195d161b5bb0a2b58f89b2c65a.eval.golden | 4 +- ...bd9e06036460eea3705c88ea867e33.eval.golden | 4 +- ...5d054c6f7f34355fcfeefebef479f3.eval.golden | 4 +- ...3913fdc347c704ddaa27042757d990.eval.golden | 4 +- ...bac7c8323256c31c90c520ee6a1080.eval.golden | 4 +- ...5678dd8cd5ddb981375a028b3a40a5.eval.golden | 4 +- ...6c413f979f2492cf3339319d8cc079.eval.golden | 4 +- ...ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden | 4 +- ...df7131740212762ae4483ec749fe1d.eval.golden | 4 +- ...a942123cf8660aac2b5bac21ec28f0.eval.golden | 4 +- ...d4e54333bdd408cbe7c47c55e73ae4.eval.golden | 4 +- ...4dda59aa929cffe0f1ff5355db8d79.eval.golden | 4 +- ...35aa02274161b23d57709c0f8b8de6.eval.golden | 4 +- .../test/semantics/semantics.size.golden | 2 +- ...ckScriptContextEqualityTerm-20.eval.golden | 4 +- .../src/PlutusLedgerApi/V1/Value.hs | 242 +++++------------- .../Spec/golden/9.2/Long.stat.golden | 30 +-- .../Spec/golden/9.2/Short.stat.golden | 42 +-- plutus-tx/src/PlutusTx/List.hs | 19 +- 106 files changed, 310 insertions(+), 429 deletions(-) diff --git a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden index ee599ae59a0..b9a9f1d96c5 100644 --- a/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0000020002010200020101020201000100010001020101020201010000020102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 671968612 -| mem: 2149459}) \ No newline at end of file +({cpu: 670289612 +| mem: 2142159}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden index 7cf770c81ba..ddf5fb9a219 100644 --- a/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0001000101000000010101000001000001010101010100000001000001010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1198346210 -| mem: 3886024}) \ No newline at end of file +({cpu: 1199381210 +| mem: 3890524}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden index 1a55f4e974f..d684923636f 100644 --- a/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0003040402030103010203030303000200000104030002040304020400000102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1354519917 -| mem: 5144728}) \ No newline at end of file +({cpu: 1351989917 +| mem: 5133728}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden index 9a3aca244d7..6f31accae30 100644 --- a/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2423765469 -| mem: 7878767}) \ No newline at end of file +({cpu: 2424800469 +| mem: 7883267}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden index cc63dd4a4a9..674bfffcc42 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101010001010101010101000100010100000001010000010001000001000101.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8453092933 -| mem: 24294140}) \ No newline at end of file +({cpu: 8456542933 +| mem: 24309140}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden index 7f40679bb7e..8321fb888b4 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101020201010201010200010102000201000201010102000102010201010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 502929098 -| mem: 1689665}) \ No newline at end of file +({cpu: 501250098 +| mem: 1682365}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden index dee9b944434..7b0989f5f42 100644 --- a/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0101080808040600020306010000000302050807010208060100070207080202.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1503430711 -| mem: 5252252}) \ No newline at end of file +({cpu: 1504465711 +| mem: 5256752}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden index da70ff93070..d974e6d5159 100644 --- a/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0104010200020000040103020102020004040300030304040400010301040303.eval.golden @@ -1,2 +1,2 @@ -({cpu: 831438722 -| mem: 3153031}) \ No newline at end of file +({cpu: 829759722 +| mem: 3145731}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden index 2c1e39e4052..477e484754b 100644 --- a/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1439572978 -| mem: 4907461}) \ No newline at end of file +({cpu: 1440607978 +| mem: 4911961}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden index 73ded364e1b..5fad2d947d5 100644 --- a/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1076062438 -| mem: 3814987}) \ No newline at end of file +({cpu: 1074383438 +| mem: 3807687}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden index 024f5439e8f..7d33b4ba2d6 100644 --- a/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0705030002040601010206030604080208020207000101060706050502040301.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2419908502 -| mem: 7717214}) \ No newline at end of file +({cpu: 2423358502 +| mem: 7732214}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden index 78024393483..79069041eea 100644 --- a/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1208718783 -| mem: 4541989}) \ No newline at end of file +({cpu: 1207039783 +| mem: 4534689}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden index fc752f4a96c..88a5a07b52a 100644 --- a/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1219062413 -| mem: 4624599}) \ No newline at end of file +({cpu: 1216578413 +| mem: 4613799}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden index ab5accbeb5a..69015b2d052 100644 --- a/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1919840016 -| mem: 6989506}) \ No newline at end of file +({cpu: 1919265016 +| mem: 6987006}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden index ea29fa7443b..57e5ae8b436 100644 --- a/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1018813755 -| mem: 3342799}) \ No newline at end of file +({cpu: 1017134755 +| mem: 3335499}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden index 50047114be4..44c4b84806f 100644 --- a/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1059152790 -| mem: 3766685}) \ No newline at end of file +({cpu: 1060187790 +| mem: 3771185}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden index b3d5c34d6df..b40cac0d329 100644 --- a/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 659659538 -| mem: 2357815}) \ No newline at end of file +({cpu: 657175538 +| mem: 2347015}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden index 6b0ecb0b13f..67da2d60d5e 100644 --- a/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden @@ -1,2 +1,2 @@ -({cpu: 890644719 -| mem: 3294993}) \ No newline at end of file +({cpu: 888965719 +| mem: 3287693}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden index 8ebde3becfa..8ec9eb4237d 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1723121084 -| mem: 5144505}) \ No newline at end of file +({cpu: 1721442084 +| mem: 5137205}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden index 52599bf7bc0..f90925bed80 100644 --- a/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1585945356 -| mem: 5602666}) \ No newline at end of file +({cpu: 1586980356 +| mem: 5607166}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden index ee1b34f224d..4a5304b96ec 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1454122650 -| mem: 4901671}) \ No newline at end of file +({cpu: 1455157650 +| mem: 4906171}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden index b9524a92a5f..ab1648c37e7 100644 --- a/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 576311972 -| mem: 1897679}) \ No newline at end of file +({cpu: 574632972 +| mem: 1890379}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden index 5d9e7933b03..4052a34523d 100644 --- a/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 35963716004 -| mem: 99130020}) \ No newline at end of file +({cpu: 35967166004 +| mem: 99145020}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden index 561775b249c..28e22fd0a22 100644 --- a/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192053824781 -| mem: 541486222}) \ No newline at end of file +({cpu: 192057274781 +| mem: 541501222}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden index c75af3891f3..6b21b5ed32e 100644 --- a/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden @@ -1,2 +1,2 @@ -({cpu: 777674579 -| mem: 2647488}) \ No newline at end of file +({cpu: 778709579 +| mem: 2651988}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden index 5d22675ad8b..8dc518bb05c 100644 --- a/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503826746 -| mem: 1718863}) \ No newline at end of file +({cpu: 502147746 +| mem: 1711563}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden index d360dfe95b5..918265cc9e7 100644 --- a/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 709244654 -| mem: 2662382}) \ No newline at end of file +({cpu: 710279654 +| mem: 2666882}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden index 52bc5001cf4..9e4c04f2df9 100644 --- a/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 38979882944 -| mem: 109267182}) \ No newline at end of file +({cpu: 38983332944 +| mem: 109282182}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden index c85d7a79104..f9be9234ac5 100644 --- a/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4530857727 -| mem: 13375332}) \ No newline at end of file +({cpu: 4531892727 +| mem: 13379832}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden index da3b9aa6599..3d15d3f32dd 100644 --- a/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden @@ -1,2 +1,2 @@ -({cpu: 844500393 -| mem: 3199429}) \ No newline at end of file +({cpu: 842821393 +| mem: 3192129}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden index 400e8df79b6..52d1a8b2369 100644 --- a/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1531928660 -| mem: 5255826}) \ No newline at end of file +({cpu: 1532963660 +| mem: 5260326}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden index 8c9be61035b..2021f306a41 100644 --- a/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1502515224 -| mem: 5663168}) \ No newline at end of file +({cpu: 1499985224 +| mem: 5652168}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden index 55f50185936..446f945c819 100644 --- a/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 481669860 -| mem: 1639335}) \ No newline at end of file +({cpu: 479990860 +| mem: 1632035}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden index faa7646015a..aefca6de50a 100644 --- a/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden @@ -1,2 +1,2 @@ -({cpu: 637531119 -| mem: 2287895}) \ No newline at end of file +({cpu: 635852119 +| mem: 2280595}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden index a421dfff452..48c5eb545ad 100644 --- a/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden @@ -1,2 +1,2 @@ -({cpu: 929215647 -| mem: 3394954}) \ No newline at end of file +({cpu: 930250647 +| mem: 3399454}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden index 6bcb4e6d85a..c153dcae8d6 100644 --- a/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1014034194 -| mem: 3714614}) \ No newline at end of file +({cpu: 1015069194 +| mem: 3719114}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden index c2b913b7565..a572af5b1df 100644 --- a/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden @@ -1,2 +1,2 @@ -({cpu: 571032423 -| mem: 1884443}) \ No newline at end of file +({cpu: 569353423 +| mem: 1877143}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden index 2e57d302ea0..686bf5e40c5 100644 --- a/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1515275357 -| mem: 5130458}) \ No newline at end of file +({cpu: 1516310357 +| mem: 5134958}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden index d40ac6a3552..6dbcc180ae6 100644 --- a/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 659150576 -| mem: 2118423}) \ No newline at end of file +({cpu: 657471576 +| mem: 2111123}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden index 36d947792fc..419be8181b6 100644 --- a/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1253721449 -| mem: 4716215}) \ No newline at end of file +({cpu: 1251237449 +| mem: 4705415}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden index 958fe17527f..1d18d23eb64 100644 --- a/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 889813876 -| mem: 3245921}) \ No newline at end of file +({cpu: 888134876 +| mem: 3238621}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden index df5e5b56006..a765105960a 100644 --- a/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1908307287 -| mem: 5875838}) \ No newline at end of file +({cpu: 1909342287 +| mem: 5880338}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden index 2b2fb594cac..2cb63929505 100644 --- a/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 358018427 -| mem: 1313795}) \ No newline at end of file +({cpu: 356339427 +| mem: 1306495}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden index d5ea0fb1f10..7a692c12824 100644 --- a/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 448654258 -| mem: 1568479}) \ No newline at end of file +({cpu: 446975258 +| mem: 1561179}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden index 94a4c191c7b..207b1e6cb60 100644 --- a/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 541815005 -| mem: 1815985}) \ No newline at end of file +({cpu: 540136005 +| mem: 1808685}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden index 7c96f8cd4bb..3e25b409efe 100644 --- a/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1218638193 -| mem: 4477776}) \ No newline at end of file +({cpu: 1219673193 +| mem: 4482276}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden index 5d22675ad8b..8dc518bb05c 100644 --- a/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 503826746 -| mem: 1718863}) \ No newline at end of file +({cpu: 502147746 +| mem: 1711563}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden index 1fac132bbe8..ce9b78e2300 100644 --- a/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden @@ -1,2 +1,2 @@ -({cpu: 587524619 -| mem: 2165017}) \ No newline at end of file +({cpu: 585040619 +| mem: 2154217}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden index 9f07accc9e7..9782ec6edbc 100644 --- a/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1329482880 -| mem: 4655727}) \ No newline at end of file +({cpu: 1327803880 +| mem: 4648427}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden index 11e422d921f..5c961e07ace 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1155972663 -| mem: 4392087}) \ No newline at end of file +({cpu: 1153488663 +| mem: 4381287}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden index cdbdf67732b..2d5ffe05243 100644 --- a/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 590698451 -| mem: 2190855}) \ No newline at end of file +({cpu: 588214451 +| mem: 2180055}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden index 5273121a4ae..dc44969c8b1 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 505663983 -| mem: 1695667}) \ No newline at end of file +({cpu: 503984983 +| mem: 1688367}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden index bb494a72bc5..e7f87867401 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1024501600 -| mem: 3788062}) \ No newline at end of file +({cpu: 1025536600 +| mem: 3792562}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden index 177715ac3c3..b69cc2d6b05 100644 --- a/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 776953258 -| mem: 2678649}) \ No newline at end of file +({cpu: 774469258 +| mem: 2667849}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden index a090f26c49d..d04ce31cfdb 100644 --- a/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden @@ -1,2 +1,2 @@ -({cpu: 873695881 -| mem: 3256736}) \ No newline at end of file +({cpu: 874730881 +| mem: 3261236}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden index 4ec6cfc0d36..2cd25079e79 100644 --- a/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 79781643260 -| mem: 227151362}) \ No newline at end of file +({cpu: 79785093260 +| mem: 227166362}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden index ab22f336f19..3695ccb63b9 100644 --- a/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2605536552 -| mem: 8329520}) \ No newline at end of file +({cpu: 2606571552 +| mem: 8334020}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden index eda48546751..b015efde885 100644 --- a/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1253562969 -| mem: 4716787}) \ No newline at end of file +({cpu: 1251078969 +| mem: 4705987}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden index 561775b249c..28e22fd0a22 100644 --- a/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192053824781 -| mem: 541486222}) \ No newline at end of file +({cpu: 192057274781 +| mem: 541501222}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden index d2927afaa9b..9efaef5c212 100644 --- a/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 619988028 -| mem: 2253935}) \ No newline at end of file +({cpu: 617504028 +| mem: 2243135}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden index 763c5088148..2a63fb59493 100644 --- a/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1078400899 -| mem: 3821885}) \ No newline at end of file +({cpu: 1079435899 +| mem: 3826385}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden index 905b8694d71..a3d04148867 100644 --- a/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 586834699 -| mem: 2143023}) \ No newline at end of file +({cpu: 585155699 +| mem: 2135723}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden index 17f59ea91e0..1fe3d4750c8 100644 --- a/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1055522702 -| mem: 3899154}) \ No newline at end of file +({cpu: 1054947702 +| mem: 3896654}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden index 53b7ab8ead4..ef608ddfb54 100644 --- a/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1078579466 -| mem: 4025384}) \ No newline at end of file +({cpu: 1078004466 +| mem: 4022884}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden index 3ebcdc24c61..3f6ef0a790d 100644 --- a/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 886614482 -| mem: 3231677}) \ No newline at end of file +({cpu: 884935482 +| mem: 3224377}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden index d85dd92a785..39276bfe8bb 100644 --- a/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 767913283 -| mem: 2526676}) \ No newline at end of file +({cpu: 766234283 +| mem: 2519376}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden index e6ce56f1af1..2f043506191 100644 --- a/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden @@ -1,2 +1,2 @@ -({cpu: 865188620 -| mem: 3016908}) \ No newline at end of file +({cpu: 863808620 +| mem: 3010908}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden index b8e9711f1a7..baf47f02ae2 100644 --- a/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2974655145 -| mem: 9331680}) \ No newline at end of file +({cpu: 2978105145 +| mem: 9346680}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden index 2dd2eb17273..6d5c4bf7930 100644 --- a/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1686981971 -| mem: 6183246}) \ No newline at end of file +({cpu: 1688016971 +| mem: 6187746}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden index c75af3891f3..6b21b5ed32e 100644 --- a/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 777674579 -| mem: 2647488}) \ No newline at end of file +({cpu: 778709579 +| mem: 2651988}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden index 94791e7ee5f..47d38eb2261 100644 --- a/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden @@ -1,2 +1,2 @@ -({cpu: 859556584 -| mem: 2679451}) \ No newline at end of file +({cpu: 857877584 +| mem: 2672151}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden index 01ff56609a4..2b88b7426fc 100644 --- a/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1084383105 -| mem: 3842693}) \ No newline at end of file +({cpu: 1082704105 +| mem: 3835393}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden index d5ea0fb1f10..7a692c12824 100644 --- a/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 448654258 -| mem: 1568479}) \ No newline at end of file +({cpu: 446975258 +| mem: 1561179}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden index d85dd92a785..39276bfe8bb 100644 --- a/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden @@ -1,2 +1,2 @@ -({cpu: 767913283 -| mem: 2526676}) \ No newline at end of file +({cpu: 766234283 +| mem: 2519376}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden index 30720df641f..6d344fa8051 100644 --- a/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden @@ -1,2 +1,2 @@ -({cpu: 953686002 -| mem: 3472504}) \ No newline at end of file +({cpu: 954721002 +| mem: 3477004}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden index d3687e5e00f..14784147ab6 100644 --- a/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1485959027 -| mem: 4216515}) \ No newline at end of file +({cpu: 1485085027 +| mem: 4212715}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden index fcb9e8560e5..4bb097f5884 100644 --- a/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 784745848 -| mem: 2899960}) \ No newline at end of file +({cpu: 785780848 +| mem: 2904460}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden index c6f9828de65..cafae4c7557 100644 --- a/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1896310159 -| mem: 6887680}) \ No newline at end of file +({cpu: 1895735159 +| mem: 6885180}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden index b8f51a18d2b..23a52aef24f 100644 --- a/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1308744677 -| mem: 4717320}) \ No newline at end of file +({cpu: 1309779677 +| mem: 4721820}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden index b7d4fb99cc4..b180993987b 100644 --- a/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1234685367 -| mem: 4637296}) \ No newline at end of file +({cpu: 1233305367 +| mem: 4631296}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden index 618edbb13d2..8a7e91f2324 100644 --- a/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden @@ -1,2 +1,2 @@ -({cpu: 845927629 -| mem: 3187417}) \ No newline at end of file +({cpu: 843443629 +| mem: 3176617}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden index bf9ec8c7500..aa754972373 100644 --- a/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1086498765 -| mem: 4028740}) \ No newline at end of file +({cpu: 1085923765 +| mem: 4026240}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden index 901cdec44d9..c6ea5ef003e 100644 --- a/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 16301518383 -| mem: 46117498}) \ No newline at end of file +({cpu: 16304968383 +| mem: 46132498}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden index b5d8fa5bb98..801089921e0 100644 --- a/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1590863797 -| mem: 5676902}) \ No newline at end of file +({cpu: 1591898797 +| mem: 5681402}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden index e70f82b8b19..6d9ea586c7a 100644 --- a/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1237817119 -| mem: 4557248}) \ No newline at end of file +({cpu: 1238852119 +| mem: 4561748}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden index 67051749bef..2468c3d341d 100644 --- a/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 611522456 -| mem: 2237805}) \ No newline at end of file +({cpu: 609843456 +| mem: 2230505}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden index 2c8208069ae..847aec8bc5e 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237464492896 -| mem: 687870320}) \ No newline at end of file +({cpu: 237467942896 +| mem: 687885320}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden index 81f8aa2438e..90eb78a9493 100644 --- a/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1256193254 -| mem: 4741659}) \ No newline at end of file +({cpu: 1253709254 +| mem: 4730859}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden index 7f40679bb7e..8321fb888b4 100644 --- a/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden @@ -1,2 +1,2 @@ -({cpu: 502929098 -| mem: 1689665}) \ No newline at end of file +({cpu: 501250098 +| mem: 1682365}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden index 9185dcad193..f3edb9f563e 100644 --- a/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 640266004 -| mem: 2293897}) \ No newline at end of file +({cpu: 638587004 +| mem: 2286597}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden index 98d5956c53d..fe01d464206 100644 --- a/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1187857701 -| mem: 4354482}) \ No newline at end of file +({cpu: 1188892701 +| mem: 4358982}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden index a1412a8c862..fd94a93ba80 100644 --- a/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden @@ -1,2 +1,2 @@ -({cpu: 821688527 -| mem: 2757252}) \ No newline at end of file +({cpu: 822723527 +| mem: 2761752}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden index 109e2c2c3ee..73f02843ae9 100644 --- a/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 554700724 -| mem: 1986322}) \ No newline at end of file +({cpu: 555735724 +| mem: 1990822}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden index 41ad6d91548..91aef6be580 100644 --- a/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden @@ -1,2 +1,2 @@ -({cpu: 410721762 -| mem: 1437685}) \ No newline at end of file +({cpu: 409042762 +| mem: 1430385}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden index ceb101fc37c..ab4ae81d282 100644 --- a/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8459813975 -| mem: 24311326}) \ No newline at end of file +({cpu: 8463263975 +| mem: 24326326}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden index ce891ab13e6..6aa9d3debb8 100644 --- a/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 620435242 -| mem: 2025073}) \ No newline at end of file +({cpu: 618756242 +| mem: 2017773}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden index c5304cfa061..a4971a02ae6 100644 --- a/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1772962306 -| mem: 5792504}) \ No newline at end of file +({cpu: 1773997306 +| mem: 5797004}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden index e7c6f984b5f..0eda4677d75 100644 --- a/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4409437663 -| mem: 13048484}) \ No newline at end of file +({cpu: 4412887663 +| mem: 13063484}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden index 30288e2dfa4..e693113187b 100644 --- a/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden @@ -1,2 +1,2 @@ -({cpu: 80482459205 -| mem: 226732758}) \ No newline at end of file +({cpu: 80485909205 +| mem: 226747758}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden index e15bd6cbeef..c041a8ddd3f 100644 --- a/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1525329355 -| mem: 5409224}) \ No newline at end of file +({cpu: 1526364355 +| mem: 5413724}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden index 70f0ea07eec..ae7df1dc758 100644 --- a/plutus-benchmark/marlowe/test/semantics/semantics.size.golden +++ b/plutus-benchmark/marlowe/test/semantics/semantics.size.golden @@ -1 +1 @@ -14617 \ No newline at end of file +13972 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden index 93fa88acbac..4a04cf00853 100644 --- a/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/checkScriptContextEqualityTerm-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 268570611 -| mem: 1061366}) \ No newline at end of file +({cpu: 311488611 +| mem: 1247966}) \ No newline at end of file diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 050b0dcae09..e9851d42f52 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -14,39 +14,41 @@ {-# OPTIONS_GHC -fno-spec-constr #-} {-# OPTIONS_GHC -fno-specialise #-} +module PlutusLedgerApi.V1.Value where + -- | Functions for working with 'Value'. -module PlutusLedgerApi.V1.Value ( - -- ** Currency symbols - CurrencySymbol(..) - , currencySymbol - , adaSymbol - -- ** Token names - , TokenName(..) - , tokenName - , toString - , adaToken - -- * Asset classes - , AssetClass(..) - , assetClass - , assetClassValue - , assetClassValueOf - -- ** Value - , Value(..) - , singleton - , valueOf - , scale - , symbols - -- * Partial order operations - , geq - , gt - , leq - , lt - -- * Etc. - , isZero - , split - , unionWith - , flattenValue - ) where +-- module PlutusLedgerApi.V1.Value ( +-- -- ** Currency symbols +-- CurrencySymbol(..) +-- , currencySymbol +-- , adaSymbol +-- -- ** Token names +-- , TokenName(..) +-- , tokenName +-- , toString +-- , adaToken +-- -- * Asset classes +-- , AssetClass(..) +-- , assetClass +-- , assetClassValue +-- , assetClassValueOf +-- -- ** Value +-- , Value(..) +-- , singleton +-- , valueOf +-- , scale +-- , symbols +-- -- * Partial order operations +-- , geq +-- , gt +-- , leq +-- , lt +-- -- * Etc. +-- , isZero +-- , split +-- , unionWith +-- , flattenValue +-- ) where import Prelude qualified as Haskell @@ -364,162 +366,32 @@ split (Value mp) = (negate (Value neg), Value pos) where splitIntl mp' = These l r where (l, r) = Map.mapThese (\i -> if i <= 0 then This i else That i) mp' --- | The type of values that 'matchKVs' returns. See its Haddock for details. -data MatchResult k v - = MatchSuccess - | MatchPartial [(v, v)] [(k, v)] [(k, v)] - | MatchFailure - -{-# INLINE unsafeInsertUnique #-} --- | Insert a key-value pair into the __sorted__ list assuming the key isn't already in the map (the --- invariants are not checked). -unsafeInsertUnique :: forall k v. Ord k => k -> v -> [(k, v)] -> [(k, v)] -unsafeInsertUnique k0 v0 = coerce go where - go :: [(k, v)] -> [(k, v)] - go [] = [(k0, v0)] - go kvs@((k, v) : kvs') = - case k0 `compare` k of - LT -> (k0, v0) : kvs - -- TODO: make this @traceError duplicateKeys@. - EQ -> (k, v0) : kvs' - GT -> (k, v) : go kvs' - -{-# INLINEABLE unsafeInsertionSortUnique #-} --- | Sort a list assuming all of its keys are unique (the invariant is not checked). -unsafeInsertionSortUnique :: forall k v. Ord k => [(k, v)] -> [(k, v)] -unsafeInsertionSortUnique = foldr (uncurry unsafeInsertUnique) [] - --- The pragma trades a negligible amount of size for a substantial performance boost. -{-# INLINE matchKVs #-} -{- | Take a function checking whether a value is zero\/empty, a function checking /structural/ -equality of two values and two key-value lists and return the result of matching the lists -pointwisely and exactly. - -This function performs a fast-and-loose equality checking in a linear fashion and either returns a -conclusive result or pieces required to complete equality checking in a non-linear fashion without -replicating the already performed work. This way checking equality of two structurally equal values -is as cheap as it gets and checking equality of other kinds of values has reasonable cost as little -work is duplicated. - -The rule of thumb is that we always check equality of all keys before checking equality of any of -the values, because - -1. checking equality of two keys before checking equality of their values is necessary anyway and - doing that for all keys before starting to check equality of values is a simple rule allowing us - to communicate to the user how they should align their 'Value's to optimize equality checks -2. values can be maps and as such checking their equality may be very expensive, it makes sense to - check equality of keys first -3. checking equality of keys makes for a less surprising user experience. If we were to process - some of the values first, a slight reordering of elements of the list could cause significant - performance changes (e.g. if a larger value moves to the beginning of the list) - -For these reasons we decided not to pick the winner (@valueEqualsValue4@) from - https://github.com/input-output-hk/plutus/issues/5135#issuecomment-1459327829 -despite the fact that in some cases it performs much better than our solution (while performing -substantially worse in others). - -If the result is 'MatchSuccess', then the two lists are equal. -If the result is 'MatchFailure', then the two lists are not equal (pointwise at least). -If the result is @MatchPartial vvs kvs1' kvs2'@, then the two lists have the same keys in the - beginning (@length vvs@ of them), but diverge at some point. @vvs@ contains values associated with - the matching keys (the first component of each tuple comes from the first list, the second - component of each tuple comes from the second list). @kvs1'@ and @kvs2'@ are the first and the - second list with their prefixes (those that have matching keys) stripped. --} -matchKVs - :: forall k v. Ord k - => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> MatchResult k v -matchKVs is0 structEqV = go where - go :: [(k, v)] -> [(k, v)] -> MatchResult k v - -- Spines match, hence it's a 'MatchSuccess' so far. - go [] [] = MatchSuccess - -- One spine is longer than the other one, but this still can be a 'MatchSuccess' if the - -- non-empty lists only consists of empty values. - go [] kvs2 = if all (is0 . snd) kvs2 then MatchSuccess else MatchFailure - -- Symmetric to the previous case. - go kvs1 [] = if all (is0 . snd) kvs1 then MatchSuccess else MatchFailure - -- Both spines are non-empty. - go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') - -- If keys are equal - | k1 == k2 = - -- then continue checking equality of spines. - case go kvs1' kvs2' of - -- If spines are equal, then we can proceed to checking equality of values as by - -- this point we've ensured that the keys in the lists match exactly. - MatchSuccess -> if structEqV v1 v2 then MatchSuccess else MatchFailure - -- If there was a key mismatch down the line, then we cons the values associated - -- with @k1@ and @k2@ onto @vvs@ to check their equality after we ensure that keys - -- from @kvs1''@ are a permutation of those from @kvs2''@. - MatchPartial vvs kvs1'' kvs2'' -> MatchPartial ((v1, v2) : vvs) kvs1'' kvs2'' - -- A failure stays a failure. - MatchFailure -> MatchFailure - -- If the keys aren't equal, then maybe the first value is empty, in which case we throw it - -- out and proceed. - | is0 v1 = go kvs1' kvs2 - -- Or if the second one is empty, then we throw that one and proceed. - | is0 v2 = go kvs1 kvs2' - -- Otherwise the keys in the lists have diverged and we return the remaining parts. - | otherwise = MatchPartial [] kvs1 kvs2 - --- The pragma trades potentially plenty of budget for a sizeable amount of size. -{-# INLINEABLE eqKVs #-} -{- | Take a function checking whether a value is zero\/empty, a function checking /semantic/ -equality of two values and two key-value lists and return the result of matching the lists -pointwisely. - -This function is very similar to 'matchKVs', but since it checks actual semantic equality of the -given lists, it doesn't need all the 'MatchResult' logic and hence we can return a 'Bool', which -results in better performance than reusing 'matchKVs'. --} -eqKVs :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool -eqKVs is0 eqV = coerce go where - go :: [(k, v)] -> [(k, v)] -> Bool - go [] [] = True - go [] kvs2 = all (is0 . snd) kvs2 -- If one of the lists is empty then all values in the - go kvs1 [] = all (is0 . snd) kvs1 -- other list need to be zero for lists to be equal. - go kvs1@((k1, v1) : kvs1') kvs2@((k2, v2) : kvs2') - -- As with 'matchKVs' we check equality of all the keys first and only then check equality - -- of values. - | k1 == k2 = if go kvs1' kvs2' then eqV v1 v2 else False - | is0 v1 = go kvs1' kvs2 - -- Or if the second one is empty, then we throw that one and proceed. - | is0 v2 = go kvs1 kvs2' - | otherwise = False +{-# INLINEABLE eqListWith #-} +eqListWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool +eqListWith is0 eqV = goL where + goL :: [(k, v)] -> [(k, v)] -> Bool + goL [] kvs2 = all (is0 . snd) kvs2 + goL kvs1 [] = all (is0 . snd) kvs1 + goL ((k1, v1) : kvs1') kvs2@(kv02@(k02, v02) : kvs02') + | k1 == k02 = if goL kvs1' kvs02' then v1 `eqV` v02 else False + | is0 v1 = goL kvs1' kvs2 + | otherwise = goR [kv02 | not $ is0 v02] kvs02' + where + goR :: [(k, v)] -> [(k, v)] -> Bool + goR _ [] = False + goR acc (kv2@(k2, v2) : kvs2') + | is0 v2 = goR acc kvs2' + | k1 == k2 = if goL kvs1' (appendR acc kvs2') then v1 `eqV` v2 else False + | otherwise = goR (kv2 : acc) kvs2' + +{-# INLINE eqMapWith #-} +eqMapWith :: + forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> Map.Map k v -> Map.Map k v -> Bool +eqMapWith is0 eqV (Map.toList -> xs1) (Map.toList -> xs2) = eqListWith is0 eqV xs1 xs2 {-# INLINEABLE eq #-} --- | Check equality of two 'Value's. Does not assume orderness of lists within 'Value' or lack of --- empty values (such as a token whose quantity is zero or a currency that has a bunch of such --- tokens or no tokens at all), but does assume that no currencies or tokens within a single --- currency have multiple entries. eq :: Value -> Value -> Bool -eq (Value (Map.toList -> currs1)) (Value (Map.toList -> currs2)) = - -- Check structural equality of the lists first. - case matchKVs (Map.all (0 ==)) (eqMapVia id) currs1 currs2 of - MatchSuccess -> True - MatchFailure -> False - -- If the lists aren't structurally equal, then sort them and check structural equality of - -- the now sorted lists. - MatchPartial valPairs currs1' currs2' -> - if eqKVs - (Map.all (0 ==)) - (eqMapVia unsafeInsertionSortUnique) - (unsafeInsertionSortUnique currs1') - (unsafeInsertionSortUnique currs2') - then - -- Check equality of values that come from the common key prefix of the original - -- lists. - all (uncurry (eqMapVia unsafeInsertionSortUnique)) valPairs - else False - where - -- Check equality of two @Map@s given a function transforming a list of tokens (two options for - -- the latter are the identity function to check structural equality or a sorting function). - eqMapVia - :: ([(TokenName, Integer)] -> [(TokenName, Integer)]) - -> Map.Map TokenName Integer - -> Map.Map TokenName Integer - -> Bool - eqMapVia f (Map.toList -> tokens1) (Map.toList -> tokens2) = - eqKVs (0 ==) (==) (f tokens1) (f tokens2) +eq (Value currs1) (Value currs2) = eqMapWith (Map.all (0 ==)) (eqMapWith (0 ==) (==)) currs1 currs2 makeLift ''CurrencySymbol makeLift ''TokenName diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden index 84543cf13f5..2f67231fce3 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 2935930773 | mem: 10844842}) -({cpu: 2101244073 | mem: 7922318}) -({cpu: 2050759911 | mem: 7574754}) -({cpu: 1863309080 | mem: 6955716}) -({cpu: 2050759911 | mem: 7574754}) -({cpu: 1623001109 | mem: 5981310}) -({cpu: 1165589049 | mem: 4304666}) -({cpu: 1483939100 | mem: 5538564}) -({cpu: 2050759911 | mem: 7574754}) -({cpu: 1342504113 | mem: 5088014}) -({cpu: 1165589049 | mem: 4304666}) -({cpu: 1104569120 | mem: 4121412}) -({cpu: 1165589049 | mem: 4304666}) -({cpu: 864261149 | mem: 3147006}) -({cpu: 280418187 | mem: 1034578}) \ No newline at end of file +({cpu: 3012635773 | mem: 11178342}) +({cpu: 1570668749 | mem: 6132256}) +({cpu: 2104648911 | mem: 7809054}) +({cpu: 2193494913 | mem: 8238056}) +({cpu: 2104648911 | mem: 7809054}) +({cpu: 1026886774 | mem: 4011090}) +({cpu: 1196662049 | mem: 4439766}) +({cpu: 1865183067 | mem: 6985792}) +({cpu: 2104648911 | mem: 7809054}) +({cpu: 1412919260 | mem: 5376460}) +({cpu: 1196662049 | mem: 4439766}) +({cpu: 1060928893 | mem: 4014800}) +({cpu: 1196662049 | mem: 4439766}) +({cpu: 245389408 | mem: 1035248}) +({cpu: 288675187 | mem: 1070478}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden index bab26f64cb9..b0a5076c415 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 4554100 | mem: 19900}) -({cpu: 6624100 | mem: 28900}) -({cpu: 9566491 | mem: 40402}) -({cpu: 11695980 | mem: 48404}) -({cpu: 12936371 | mem: 52506}) -({cpu: 11235980 | mem: 46404}) -({cpu: 21043076 | mem: 83912}) -({cpu: 23335174 | mem: 93912}) -({cpu: 25779467 | mem: 103214}) -({cpu: 18345361 | mem: 74608}) -({cpu: 37256486 | mem: 146724}) -({cpu: 24567675 | mem: 99112}) -({cpu: 52103385 | mem: 202338}) -({cpu: 53525613 | mem: 209436}) -({cpu: 70325806 | mem: 270056}) -({cpu: 60912646 | mem: 240238}) -({cpu: 91918541 | mem: 349878}) -({cpu: 44542912 | mem: 183416}) -({cpu: 116881590 | mem: 441804}) -({cpu: 178944644 | mem: 672458}) -({cpu: 280418187 | mem: 1034578}) \ No newline at end of file +({cpu: 4991100 | mem: 21800}) +({cpu: 6716100 | mem: 29300}) +({cpu: 9267491 | mem: 39102}) +({cpu: 10982980 | mem: 45304}) +({cpu: 12913371 | mem: 52406}) +({cpu: 11787980 | mem: 48804}) +({cpu: 20560076 | mem: 81812}) +({cpu: 21955174 | mem: 87912}) +({cpu: 24560467 | mem: 97914}) +({cpu: 19886361 | mem: 81308}) +({cpu: 35853486 | mem: 140624}) +({cpu: 26568675 | mem: 107812}) +({cpu: 50792385 | mem: 196638}) +({cpu: 41473501 | mem: 163626}) +({cpu: 69382806 | mem: 265956}) +({cpu: 49090534 | mem: 195428}) +({cpu: 91619541 | mem: 348578}) +({cpu: 47854912 | mem: 197816}) +({cpu: 117502590 | mem: 444504}) +({cpu: 138399221 | mem: 540594}) +({cpu: 288675187 | mem: 1070478}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index 9a04d508ab2..793c64a25ee 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -20,6 +20,7 @@ module PlutusTx.List ( findIndex, foldr, foldl, + appendR, reverse, concat, concatMap, @@ -245,14 +246,22 @@ xs0 !! n0 = go n0 xs0 then x else go (Builtins.subtractInteger n 1) xs +{-# INLINEABLE appendR #-} +-- | Cons each element of the first list to the second one in reverse order (i.e. the last element +-- of the first list is the head of the result). +-- +-- > appendR xs ys === reverse xs ++ ys +-- +-- >>> appendR "abc" "de" +-- "cbade" +appendR :: [a] -> [a] -> [a] +appendR [] ys = ys +appendR (x:xs) ys = appendR xs (x:ys) + {-# INLINABLE reverse #-} -- | Plutus Tx version of 'Data.List.reverse'. reverse :: [a] -> [a] -reverse l = rev l [] - where - rev [] a = a - rev (x:xs) a = rev xs (x:a) - +reverse l = appendR l [] {-# INLINABLE zip #-} -- | Plutus Tx version of 'Data.List.zip'. From 8ef70f0f217644a36bebef2529a054d86ba8f97d Mon Sep 17 00:00:00 2001 From: effectfully Date: Sat, 14 Oct 2023 00:06:07 +0200 Subject: [PATCH 28/40] Tweaks --- plutus-ledger-api/plutus-ledger-api.cabal | 1 - .../src/PlutusLedgerApi/V1/Value.hs | 67 +++++++++---------- plutus-ledger-api/test/Spec/V1/Value.hs | 15 +++-- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git a/plutus-ledger-api/plutus-ledger-api.cabal b/plutus-ledger-api/plutus-ledger-api.cabal index 8b2179e7b2e..2114b56ff1e 100644 --- a/plutus-ledger-api/plutus-ledger-api.cabal +++ b/plutus-ledger-api/plutus-ledger-api.cabal @@ -160,7 +160,6 @@ test-suite plutus-ledger-api-test , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.14 , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.14 , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.14 - , QuickCheck , tasty , tasty-hedgehog , tasty-hunit diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index e9851d42f52..09abdfe2c98 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -14,47 +14,44 @@ {-# OPTIONS_GHC -fno-spec-constr #-} {-# OPTIONS_GHC -fno-specialise #-} -module PlutusLedgerApi.V1.Value where - -- | Functions for working with 'Value'. --- module PlutusLedgerApi.V1.Value ( --- -- ** Currency symbols --- CurrencySymbol(..) --- , currencySymbol --- , adaSymbol --- -- ** Token names --- , TokenName(..) --- , tokenName --- , toString --- , adaToken --- -- * Asset classes --- , AssetClass(..) --- , assetClass --- , assetClassValue --- , assetClassValueOf --- -- ** Value --- , Value(..) --- , singleton --- , valueOf --- , scale --- , symbols --- -- * Partial order operations --- , geq --- , gt --- , leq --- , lt --- -- * Etc. --- , isZero --- , split --- , unionWith --- , flattenValue --- ) where +module PlutusLedgerApi.V1.Value ( + -- ** Currency symbols + CurrencySymbol(..) + , currencySymbol + , adaSymbol + -- ** Token names + , TokenName(..) + , tokenName + , toString + , adaToken + -- * Asset classes + , AssetClass(..) + , assetClass + , assetClassValue + , assetClassValueOf + -- ** Value + , Value(..) + , singleton + , valueOf + , scale + , symbols + -- * Partial order operations + , geq + , gt + , leq + , lt + -- * Etc. + , isZero + , split + , unionWith + , flattenValue + ) where import Prelude qualified as Haskell import Control.DeepSeq (NFData) import Data.ByteString qualified as BS -import Data.Coerce (coerce) import Data.Data (Data) import Data.String (IsString (fromString)) import Data.Text (Text) diff --git a/plutus-ledger-api/test/Spec/V1/Value.hs b/plutus-ledger-api/test/Spec/V1/Value.hs index e8bbd89f2f3..eb65c16be06 100644 --- a/plutus-ledger-api/test/Spec/V1/Value.hs +++ b/plutus-ledger-api/test/Spec/V1/Value.hs @@ -8,10 +8,12 @@ import PlutusLedgerApi.V1.Value import PlutusTx.Numeric qualified as Numeric import Control.Lens -import Test.QuickCheck import Test.Tasty import Test.Tasty.QuickCheck +scaleTestsBy :: Testable prop => Int -> prop -> Property +scaleTestsBy factor = withMaxSuccess (100 * factor) . mapSize (* factor) + mapMany :: (a -> Gen a) -> [a] -> Gen [a] mapMany f = traverse $ \x -> do b <- arbitrary @@ -21,7 +23,8 @@ mapSome :: Eq a => (a -> Gen a) -> [a] -> Gen [a] mapSome f xs = do i <- choose (0, length xs - 1) xs' <- mapMany f xs - ix i (\x -> if x == xs !! i then f x else pure x) xs' + let xi = xs !! i + ix i (\x -> if x == xi then f x else pure x) xs' updateInteger :: Integer -> Gen Integer updateInteger i = arbitrary `suchThat` (/= i) @@ -35,7 +38,7 @@ onLists onLists value f = forAll (fmap listsToValue . f $ valueToLists value) test_Monoid :: TestTree -test_Monoid = testProperty "Monoid" . withMaxSuccess 500 . mapSize (* 5) $ \value1 -> +test_Monoid = testProperty "Monoid" . scaleTestsBy 5 $ \value1 -> if isZero value1 then conjoin [ value1 === mempty @@ -58,20 +61,20 @@ test_Monoid = testProperty "Monoid" . withMaxSuccess 500 . mapSize (* 5) $ \valu ] test_updateSome :: TestTree -test_updateSome = testProperty "updateSome" . withMaxSuccess 1000 . mapSize (* 10) $ \value -> +test_updateSome = testProperty "updateSome" . scaleTestsBy 15 $ \value -> any (any $ not . null) (valueToLists value) ==> onLists value (mapSome . traverse . mapSome $ traverse updateInteger) (\value' -> value =/= value') test_unordered :: TestTree -test_unordered = testProperty "unordered" . withMaxSuccess 500 . mapSize (* 5) $ \value1 -> +test_unordered = testProperty "unordered" . scaleTestsBy 10 $ \value1 -> conjoin [ onLists value1 shuffle $ \value1' -> value1 === value1' , onLists value1 (mapMany $ traverse shuffle) $ \value1' -> value1 === value1' ] test_split :: TestTree -test_split = testProperty "split" . withMaxSuccess 500 . mapSize (* 5) $ \value -> +test_split = testProperty "split" . scaleTestsBy 7 $ \value -> let (valueL, valueR) = split value in Numeric.negate valueL <> valueR === value From a1b0b3e7c9965f6fd19ebd31e7fa25f168ffe378 Mon Sep 17 00:00:00 2001 From: effectfully Date: Sat, 14 Oct 2023 01:19:34 +0200 Subject: [PATCH 29/40] Test both ways --- plutus-ledger-api/test/Spec/V1/Value.hs | 32 +++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/plutus-ledger-api/test/Spec/V1/Value.hs b/plutus-ledger-api/test/Spec/V1/Value.hs index eb65c16be06..2525ca3a34d 100644 --- a/plutus-ledger-api/test/Spec/V1/Value.hs +++ b/plutus-ledger-api/test/Spec/V1/Value.hs @@ -11,6 +11,14 @@ import Control.Lens import Test.Tasty import Test.Tasty.QuickCheck +infix 4 <=> +(<=>) :: (Eq a, Show a) => a -> a -> Property +x <=> y = x === y .&&. y === x + +infix 4 +() :: (Eq a, Show a) => a -> a -> Property +x y = x =/= y .&&. y =/= x + scaleTestsBy :: Testable prop => Int -> prop -> Property scaleTestsBy factor = withMaxSuccess (100 * factor) . mapSize (* factor) @@ -41,22 +49,22 @@ test_Monoid :: TestTree test_Monoid = testProperty "Monoid" . scaleTestsBy 5 $ \value1 -> if isZero value1 then conjoin - [ value1 === mempty - , forAll arbitrary $ \value2 -> value1 <> value2 === value2 + [ value1 <=> mempty + , forAll arbitrary $ \value2 -> value1 <> value2 <=> value2 ] else conjoin - [ value1 =/= mempty - , value1 <> value1 === Numeric.scale 2 value1 + [ value1 mempty + , value1 <> value1 <=> Numeric.scale 2 value1 , forAll arbitrary $ \value2 -> if isZero value2 - then value1 <> value2 === value1 + then value1 <> value2 <=> value1 else conjoin - [ value1 <> value2 =/= value1 - , value1 <> value2 =/= value2 - , value1 <> value2 === value2 <> value1 + [ value1 <> value2 value1 + , value1 <> value2 value2 + , value1 <> value2 <=> value2 <> value1 , forAll arbitrary $ \value3 -> not (isZero value3) ==> - (value1 <> value2) <> value3 === value1 <> (value2 <> value3) + (value1 <> value2) <> value3 <=> value1 <> (value2 <> value3) ] ] @@ -69,14 +77,14 @@ test_updateSome = testProperty "updateSome" . scaleTestsBy 15 $ \value -> test_unordered :: TestTree test_unordered = testProperty "unordered" . scaleTestsBy 10 $ \value1 -> conjoin - [ onLists value1 shuffle $ \value1' -> value1 === value1' - , onLists value1 (mapMany $ traverse shuffle) $ \value1' -> value1 === value1' + [ onLists value1 shuffle $ \value1' -> value1 <=> value1' + , onLists value1 (mapMany $ traverse shuffle) $ \value1' -> value1 <=> value1' ] test_split :: TestTree test_split = testProperty "split" . scaleTestsBy 7 $ \value -> let (valueL, valueR) = split value - in Numeric.negate valueL <> valueR === value + in Numeric.negate valueL <> valueR <=> value test_Value :: TestTree test_Value = testGroup "Value" From 4a7432e4465cb79f52dde404d8ea61ace7874d85 Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 18 Oct 2023 00:49:02 +0200 Subject: [PATCH 30/40] Document the bloody thing, switch to checking equality of values first --- .../src/PlutusLedgerApi/V1/Value.hs | 90 ++++++++++++++----- .../Spec/golden/9.2/Long.stat.golden | 30 +++---- .../Spec/golden/9.2/Short.stat.golden | 42 ++++----- plutus-ledger-api/test/Spec/V1/Value.hs | 26 ++++-- .../testlib/PlutusLedgerApi/Test/V1/Value.hs | 36 ++++++-- 5 files changed, 155 insertions(+), 69 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 09abdfe2c98..fa36f883e4c 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -162,6 +162,13 @@ newtype AssetClass = AssetClass { unAssetClass :: (CurrencySymbol, TokenName) } assetClass :: CurrencySymbol -> TokenName -> AssetClass assetClass s t = AssetClass (s, t) +{- Note [Value vs value] +We call two completely different things "values": the 'Value' type and a value within a key-value +pair. To distinguish between the two we write the former with a capital "V" and enclosed in single +quotes and we write the latter with a lower case "v" and without the quotes, i.e. 'Value' vs value. +-} + +-- See Note [Value vs value]. {- | The 'Value' type represents a collection of amounts of different currencies. We can think of 'Value' as a vector space whose dimensions are currencies. To create a value of 'Value', we need to specify a currency. This can be done @@ -284,7 +291,7 @@ unionWith f ls rs = in Value (fmap (fmap unThese) combined) {-# INLINABLE flattenValue #-} --- | Convert a value to a simple list, keeping only the non-zero amounts. +-- | Convert a 'Value' to a simple list, keeping only the non-zero amounts. flattenValue :: Value -> [(CurrencySymbol, TokenName, Integer)] flattenValue v = goOuter [] (Map.toList $ getValue v) where @@ -325,13 +332,15 @@ checkBinRel f l r = in checkPred unThese l r {-# INLINABLE geq #-} --- | Check whether one 'Value' is greater than or equal to another. See 'Value' for an explanation of how operations on 'Value's work. +-- | Check whether one 'Value' is greater than or equal to another. See 'Value' for an explanation +-- of how operations on 'Value's work. geq :: Value -> Value -> Bool -- If both are zero then checkBinRel will be vacuously true, but this is fine. geq = checkBinRel (>=) {-# INLINABLE leq #-} --- | Check whether one 'Value' is less than or equal to another. See 'Value' for an explanation of how operations on 'Value's work. +-- | Check whether one 'Value' is less than or equal to another. See 'Value' for an explanation of +-- how operations on 'Value's work. leq :: Value -> Value -> Bool -- If both are zero then checkBinRel will be vacuously true, but this is fine. leq = checkBinRel (<=) @@ -348,8 +357,8 @@ gt l r = geq l r && not (eq l r) lt :: Value -> Value -> Bool lt l r = leq l r && not (eq l r) --- | Split a value into its positive and negative parts. The first element of --- the tuple contains the negative parts of the value, the second element +-- | Split a 'Value' into its positive and negative parts. The first element of +-- the tuple contains the negative parts of the 'Value', the second element -- contains the positive parts. -- -- @negate (fst (split a)) `plus` (snd (split a)) == a@ @@ -363,30 +372,67 @@ split (Value mp) = (negate (Value neg), Value pos) where splitIntl mp' = These l r where (l, r) = Map.mapThese (\i -> if i <= 0 then This i else That i) mp' -{-# INLINEABLE eqListWith #-} -eqListWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool -eqListWith is0 eqV = goL where +{-# INLINABLE unordEqWith #-} +{- | Check equality of two lists given a function checking whether a 'Value' is zero and a function +checking equality of values. + +This function recurses on both the lists in parallel and checks whether the key-value pairs are +equal pointwise. If there is a mismatch, then it tries to find the left key-value pair in the right +list. If that succeeds then the pair is removed from both the lists and recursion proceeds pointwise +as before until there's another mismatch. If at some point a key-value pair from the left list is +not found in the right one, then the function returns 'False'. If the left list is exhausted, but +the right one still has some non-zero elements, the function returns 'False' as well. + +We check equality of values of two key-value pairs right after ensuring that the keys match. This is +disadvantageous if the values are big and there's a key that is present in one of the lists but not +in the other, since in that case computing equality of values was expensive and pointless. However + +1. we don't really know whether this can be a common situation +2. computing equality of values before ensuring equality of all the keys certainly does help when we + check equality of 'TokenName'-value pairs, since the value of a 'TokenName' is an 'Integer' and + @(==) :: Integer -> Integer -> Bool@ is generally much faster than repeatedly searching for keys + in a list +3. having some clever logic for computing equality of values right away in some cases, but not in + others would not only complicate the algorithm, but also increase the size of the function and + this resource is quite scarce as the size of a program growing beyond what's acceptable by the + network can be a real deal breaker, while general performance concerns don't seem to be as + pressing +-} +unordEqWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool +unordEqWith is0 eqV = goL where goL :: [(k, v)] -> [(k, v)] -> Bool - goL [] kvs2 = all (is0 . snd) kvs2 - goL kvs1 [] = all (is0 . snd) kvs1 - goL ((k1, v1) : kvs1') kvs2@(kv02@(k02, v02) : kvs02') - | k1 == k02 = if goL kvs1' kvs02' then v1 `eqV` v02 else False - | is0 v1 = goL kvs1' kvs2 - | otherwise = goR [kv02 | not $ is0 v02] kvs02' + goL [] kvsR = all (is0 . snd) kvsR + goL kvsL [] = all (is0 . snd) kvsL + goL ((kL, vL) : kvsL') kvsR0@(kvR0@(kR0, vR0) : kvsR0') + -- We could've avoided having this clause if we always searched for the right key-value pair + -- using @goR@, however the sheer act of invoking that function, passing an empty list to it + -- as an accumulator and calling 'appendR' afterwards affects performance quite a bit, + -- considering that all of that happens for every single element of the left list. Hence we + -- handle the special case of lists being equal pointwise (or at least their prefixes being + -- equal pointwise) with a bit of additional logic to get some easy performance gains. + | kL == kR0 = if vL `eqV` vR0 then goL kvsL' kvsR0' else False + | is0 vL = goL kvsL' kvsR0 + | otherwise = goR [kvR0 | not $ is0 vR0] kvsR0' where goR :: [(k, v)] -> [(k, v)] -> Bool goR _ [] = False - goR acc (kv2@(k2, v2) : kvs2') - | is0 v2 = goR acc kvs2' - | k1 == k2 = if goL kvs1' (appendR acc kvs2') then v1 `eqV` v2 else False - | otherwise = goR (kv2 : acc) kvs2' - -{-# INLINE eqMapWith #-} + goR acc (kvR@(kR, vR) : kvsR') + | is0 vR = goR acc kvsR' + | kL == kR = if vL `eqV` vR then goL kvsL' (appendR acc kvsR') else False + | otherwise = goR (kvR : acc) kvsR' + +{-# INLINABLE eqMapWith #-} +-- | Check equality of two 'Map's given a function checking whether a value is zero and a function +-- checking equality of values. eqMapWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> Map.Map k v -> Map.Map k v -> Bool -eqMapWith is0 eqV (Map.toList -> xs1) (Map.toList -> xs2) = eqListWith is0 eqV xs1 xs2 +eqMapWith is0 eqV (Map.toList -> xs1) (Map.toList -> xs2) = unordEqWith is0 eqV xs1 xs2 -{-# INLINEABLE eq #-} +{-# INLINABLE eq #-} +-- | Check equality of two 'Value's. Does not assume orderness of lists within a 'Value' or a lack +-- of empty values (such as a token whose quantity is zero or a currency that has a bunch of such +-- tokens or no tokens at all), but does assume that no currencies or tokens within a single +-- currency have multiple entries. eq :: Value -> Value -> Bool eq (Value currs1) (Value currs2) = eqMapWith (Map.all (0 ==)) (eqMapWith (0 ==) (==)) currs1 currs2 diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden index 2f67231fce3..1fad3bcd3ee 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 3012635773 | mem: 11178342}) -({cpu: 1570668749 | mem: 6132256}) -({cpu: 2104648911 | mem: 7809054}) -({cpu: 2193494913 | mem: 8238056}) -({cpu: 2104648911 | mem: 7809054}) -({cpu: 1026886774 | mem: 4011090}) -({cpu: 1196662049 | mem: 4439766}) -({cpu: 1865183067 | mem: 6985792}) -({cpu: 2104648911 | mem: 7809054}) -({cpu: 1412919260 | mem: 5376460}) -({cpu: 1196662049 | mem: 4439766}) -({cpu: 1060928893 | mem: 4014800}) -({cpu: 1196662049 | mem: 4439766}) -({cpu: 245389408 | mem: 1035248}) -({cpu: 288675187 | mem: 1070478}) \ No newline at end of file +({cpu: 3012083773 | mem: 11175942}) +({cpu: 713195980 | mem: 3098404}) +({cpu: 2104096911 | mem: 7806654}) +({cpu: 587845980 | mem: 2553404}) +({cpu: 2104096911 | mem: 7806654}) +({cpu: 462219980 | mem: 2007204}) +({cpu: 1196110049 | mem: 4437366}) +({cpu: 462357980 | mem: 2007804}) +({cpu: 2104096911 | mem: 7806654}) +({cpu: 462219980 | mem: 2007204}) +({cpu: 1196110049 | mem: 4437366}) +({cpu: 336869980 | mem: 1462204}) +({cpu: 1196110049 | mem: 4437366}) +({cpu: 211243980 | mem: 916004}) +({cpu: 288123187 | mem: 1068078}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden index b0a5076c415..4ba4e6449c8 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.2/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 4991100 | mem: 21800}) -({cpu: 6716100 | mem: 29300}) -({cpu: 9267491 | mem: 39102}) -({cpu: 10982980 | mem: 45304}) -({cpu: 12913371 | mem: 52406}) -({cpu: 11787980 | mem: 48804}) -({cpu: 20560076 | mem: 81812}) -({cpu: 21955174 | mem: 87912}) -({cpu: 24560467 | mem: 97914}) -({cpu: 19886361 | mem: 81308}) -({cpu: 35853486 | mem: 140624}) -({cpu: 26568675 | mem: 107812}) -({cpu: 50792385 | mem: 196638}) -({cpu: 41473501 | mem: 163626}) -({cpu: 69382806 | mem: 265956}) -({cpu: 49090534 | mem: 195428}) -({cpu: 91619541 | mem: 348578}) -({cpu: 47854912 | mem: 197816}) -({cpu: 117502590 | mem: 444504}) -({cpu: 138399221 | mem: 540594}) -({cpu: 288675187 | mem: 1070478}) \ No newline at end of file +({cpu: 4439100 | mem: 19400}) +({cpu: 6164100 | mem: 26900}) +({cpu: 8715491 | mem: 36702}) +({cpu: 10430980 | mem: 42904}) +({cpu: 12361371 | mem: 50006}) +({cpu: 14812860 | mem: 59408}) +({cpu: 20008076 | mem: 79412}) +({cpu: 21403174 | mem: 85512}) +({cpu: 24008467 | mem: 95514}) +({cpu: 19600850 | mem: 78810}) +({cpu: 35301486 | mem: 138224}) +({cpu: 20954294 | mem: 86108}) +({cpu: 50240385 | mem: 194238}) +({cpu: 60750649 | mem: 232150}) +({cpu: 68830806 | mem: 263556}) +({cpu: 79847070 | mem: 303668}) +({cpu: 91067541 | mem: 346178}) +({cpu: 96049030 | mem: 366580}) +({cpu: 116950590 | mem: 442104}) +({cpu: 91897795 | mem: 373840}) +({cpu: 288123187 | mem: 1068078}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec/V1/Value.hs b/plutus-ledger-api/test/Spec/V1/Value.hs index 2525ca3a34d..78facbd5a37 100644 --- a/plutus-ledger-api/test/Spec/V1/Value.hs +++ b/plutus-ledger-api/test/Spec/V1/Value.hs @@ -11,22 +11,30 @@ import Control.Lens import Test.Tasty import Test.Tasty.QuickCheck -infix 4 <=> +infix 4 <=>, + +-- | Ensure that @x@ equals @y@ and vice versa. The latter part is needed to ensure that @(==)@ is +-- symmetric for the specific type. (<=>) :: (Eq a, Show a) => a -> a -> Property x <=> y = x === y .&&. y === x -infix 4 +-- | Ensure that @x@ doesn't equal @y@ and vice versa. The latter part is needed to ensure that +-- @(/=)@ is symmetric for the specific type. () :: (Eq a, Show a) => a -> a -> Property x y = x =/= y .&&. y =/= x scaleTestsBy :: Testable prop => Int -> prop -> Property scaleTestsBy factor = withMaxSuccess (100 * factor) . mapSize (* factor) +-- | Apply a function to an arbitrary number of elements of the given list. The elements are chosen +-- at random. mapMany :: (a -> Gen a) -> [a] -> Gen [a] mapMany f = traverse $ \x -> do b <- arbitrary if b then f x else pure x +-- | Apply a function to an arbitrary non-zero number of elements of the given list. The elements +-- are chosen at random. mapSome :: Eq a => (a -> Gen a) -> [a] -> Gen [a] mapSome f xs = do i <- choose (0, length xs - 1) @@ -34,6 +42,7 @@ mapSome f xs = do let xi = xs !! i ix i (\x -> if x == xi then f x else pure x) xs' +-- | Generate an 'Integer' that is not equal to the given one. updateInteger :: Integer -> Gen Integer updateInteger i = arbitrary `suchThat` (/= i) @@ -45,6 +54,8 @@ onLists -> Property onLists value f = forAll (fmap listsToValue . f $ valueToLists value) +-- | Test that the 'Monoid' instance of 'Value' is law-abiding and that merging two non-zero values +-- creates a value that isn't equal to any of the original ones. test_Monoid :: TestTree test_Monoid = testProperty "Monoid" . scaleTestsBy 5 $ \value1 -> if isZero value1 @@ -68,14 +79,17 @@ test_Monoid = testProperty "Monoid" . scaleTestsBy 5 $ \value1 -> ] ] +-- | Test that changing the values of some of the 'TokenName's creates a different 'Value'. test_updateSome :: TestTree test_updateSome = testProperty "updateSome" . scaleTestsBy 15 $ \value -> any (any $ not . null) (valueToLists value) ==> onLists value (mapSome . traverse . mapSome $ traverse updateInteger) - (\value' -> value =/= value') + (\value' -> value value') -test_unordered :: TestTree -test_unordered = testProperty "unordered" . scaleTestsBy 10 $ \value1 -> +-- | Test that shuffling 'CurrencySymbol's or 'TokenName's creates a 'Value' that is equal to the +-- original one. +test_shuffle :: TestTree +test_shuffle = testProperty "shuffle" . scaleTestsBy 10 $ \value1 -> conjoin [ onLists value1 shuffle $ \value1' -> value1 <=> value1' , onLists value1 (mapMany $ traverse shuffle) $ \value1' -> value1 <=> value1' @@ -90,6 +104,6 @@ test_Value :: TestTree test_Value = testGroup "Value" [ test_Monoid , test_updateSome - , test_unordered + , test_shuffle , test_split ] diff --git a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs index f225a6aede7..319cf14fed0 100644 --- a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs +++ b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs @@ -16,27 +16,46 @@ import Data.ByteString.Char8 qualified as BS8 import Data.Coerce import Test.QuickCheck +-- | Convert a list representation of a 'Value' to the 'Value'. listsToValue :: [(CurrencySymbol, [(TokenName, Integer)])] -> Value listsToValue = Value . AssocMap.fromList . ListTx.map (fmap AssocMap.fromList) +-- | Convert a 'Value' to its list representation. valueToLists :: Value -> [(CurrencySymbol, [(TokenName, Integer)])] valueToLists = ListTx.map (fmap AssocMap.toList) . AssocMap.toList . getValue --- >>> map (\i -> (i, toNameCandidatesNumber i)) [1..13] +-- | Return how many candidates to randomly choose from to fill the given number of cells. For +-- example, if we only need to fill a single cell, we choose from 6 different candidates, and if we +-- need to fill 5 cells, we choose from 11 candidates. +-- +-- >>> map (\i -> (i, toCellCandidatesNumber i)) [1..13] -- [(1,6),(2,6),(3,6),(4,8),(5,11),(6,14),(7,18),(8,22),(9,27),(10,31),(11,36),(12,41),(13,46)] -toNameCandidatesNumber :: Int -> Int -toNameCandidatesNumber i = max 6 . floor @Double $ fromIntegral i ** 1.5 - +toCellCandidatesNumber :: Int -> Int +toCellCandidatesNumber i = max 6 . floor @Double $ fromIntegral i ** 1.5 + +-- | Generate a 'BuiltinByteString' by picking one of the predetermined ones, given a number of +-- cells to fill (see 'toCellCandidatesNumber'). The idea is that we want to occasionally generate +-- the same 'CurrencySymbol' or 'TokenName' for different 'Value's to have decent test coverage, +-- hence to make name clashing more likely we pick from a predetermined set of +-- 'BuiltinByteString's. Otherwise the chance of generating the same 'BuiltinByteString' for two +-- different 'Value's would be virtually zero. genShortHex :: Int -> Gen BuiltinByteString genShortHex i = - toBuiltin . Base16.encode . BS8.pack . show <$> elements [0 .. toNameCandidatesNumber i] + toBuiltin . Base16.encode . BS8.pack . show <$> elements [0 .. toCellCandidatesNumber i] +-- | Annotate each element of the give list with a @name@, given a function turning +-- 'BuiltinByteString' into names. uniqueNames :: Eq name => (BuiltinByteString -> name) -> [b] -> Gen [(name, b)] uniqueNames wrap ys = do let len = length ys + -- We always generate unique 'CurrencySymbol's within a single 'Value' and 'TokenName' within a + -- single 'CurrencySymbol', because functions over 'Value' don't handle duplicated names anyway. + -- Note that we can generate the same 'TokenName' within different 'CurrencySymbol's within the + -- same 'Value'. xs <- uniqueVectorOf len $ wrap <$> genShortHex len pure $ zip xs ys +-- | The value of a 'TokenName' in a 'Value'. newtype FaceValue = FaceValue { unFaceValue :: Integer } @@ -50,16 +69,23 @@ instance Arbitrary FaceValue where , (1, FaceValue . fromIntegral <$> arbitrary @Int) ] +-- | A wrapper for satisfying an @Arbitrary a@ constraint without implementing an 'Arbitrary' +-- instance for @a@. newtype NoArbitrary a = NoArbitrary { unNoArbitrary :: a } +-- | 'arbitrary' throws, 'shrink' neither throws nor shrinks. instance Arbitrary (NoArbitrary a) where arbitrary = error "No such 'Arbitrary' instance" + shrink _ = [] instance Arbitrary Value where arbitrary = do + -- Generate values for all of the 'TokenName's in the final 'Value' and split them into a + -- list of lists. faceValues <- fmap (map getNonEmpty) . multiSplit . map unFaceValue =<< arbitrary + -- Generate 'TokenName's and 'CurrencySymbol's. currencies <- uniqueNames CurrencySymbol =<< traverse (uniqueNames TokenName) faceValues pure $ listsToValue currencies From 468522b57f7f21a53f053c3f75eeeadf7fec0cfa Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 18 Oct 2023 01:47:45 +0200 Subject: [PATCH 31/40] Fixups --- ...experiment_with_MatchUnclear_and_tildas.md | 2 +- plutus-ledger-api/plutus-ledger-api.cabal | 1 - .../Spec/golden/9.6/Long.stat.golden | 15 +++++++++++++ .../Spec/golden/9.6/Short.stat.golden | 21 +++++++++++++++++++ plutus-tx/src/PlutusTx/List.hs | 2 +- 5 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden create mode 100644 plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden diff --git a/plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md b/plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md index 593bc8c9328..a87faf7ba8d 100644 --- a/plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md +++ b/plutus-ledger-api/changelog.d/20231010_053352_effectfully_experiment_with_MatchUnclear_and_tildas.md @@ -1,3 +1,3 @@ ### Changed -- Optimized equality checking of `Value`s in [#5577](https://github.com/input-output-hk/plutus/pull/5577) +- Optimized equality checking of `Value`s in [#5593](https://github.com/input-output-hk/plutus/pull/5593) diff --git a/plutus-ledger-api/plutus-ledger-api.cabal b/plutus-ledger-api/plutus-ledger-api.cabal index c61e6d4f501..40f4cfd355a 100644 --- a/plutus-ledger-api/plutus-ledger-api.cabal +++ b/plutus-ledger-api/plutus-ledger-api.cabal @@ -187,7 +187,6 @@ test-suite plutus-ledger-api-plugin-test , plutus-tx ^>=1.15 , plutus-tx-plugin ^>=1.15 , prettyprinter - , QuickCheck , tasty -- This is a nightly test, so it is an executable instead of test-suite to avoid diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden new file mode 100644 index 00000000000..1fad3bcd3ee --- /dev/null +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden @@ -0,0 +1,15 @@ +({cpu: 3012083773 | mem: 11175942}) +({cpu: 713195980 | mem: 3098404}) +({cpu: 2104096911 | mem: 7806654}) +({cpu: 587845980 | mem: 2553404}) +({cpu: 2104096911 | mem: 7806654}) +({cpu: 462219980 | mem: 2007204}) +({cpu: 1196110049 | mem: 4437366}) +({cpu: 462357980 | mem: 2007804}) +({cpu: 2104096911 | mem: 7806654}) +({cpu: 462219980 | mem: 2007204}) +({cpu: 1196110049 | mem: 4437366}) +({cpu: 336869980 | mem: 1462204}) +({cpu: 1196110049 | mem: 4437366}) +({cpu: 211243980 | mem: 916004}) +({cpu: 288123187 | mem: 1068078}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden new file mode 100644 index 00000000000..4ba4e6449c8 --- /dev/null +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden @@ -0,0 +1,21 @@ +({cpu: 4439100 | mem: 19400}) +({cpu: 6164100 | mem: 26900}) +({cpu: 8715491 | mem: 36702}) +({cpu: 10430980 | mem: 42904}) +({cpu: 12361371 | mem: 50006}) +({cpu: 14812860 | mem: 59408}) +({cpu: 20008076 | mem: 79412}) +({cpu: 21403174 | mem: 85512}) +({cpu: 24008467 | mem: 95514}) +({cpu: 19600850 | mem: 78810}) +({cpu: 35301486 | mem: 138224}) +({cpu: 20954294 | mem: 86108}) +({cpu: 50240385 | mem: 194238}) +({cpu: 60750649 | mem: 232150}) +({cpu: 68830806 | mem: 263556}) +({cpu: 79847070 | mem: 303668}) +({cpu: 91067541 | mem: 346178}) +({cpu: 96049030 | mem: 366580}) +({cpu: 116950590 | mem: 442104}) +({cpu: 91897795 | mem: 373840}) +({cpu: 288123187 | mem: 1068078}) \ No newline at end of file diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index 7927b1f2a65..ac165980d68 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -108,7 +108,7 @@ any f = go x : xs -> if f x then True else go xs -- The pragma improves some of the budget tests. -{-# INLINE all #-} +{-# INLINABLE all #-} -- | Determines whether all elements of the list satisfy the predicate. all :: forall a. (a -> Bool) -> [a] -> Bool all f = go From 298ca59496d11b18f04744602cd1064ffa024e6d Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 18 Oct 2023 05:46:36 +0200 Subject: [PATCH 32/40] Improve docs --- .../src/PlutusLedgerApi/V1/Value.hs | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index fa36f883e4c..16e1d1632e2 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -399,27 +399,38 @@ in the other, since in that case computing equality of values was expensive and pressing -} unordEqWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool -unordEqWith is0 eqV = goL where - goL :: [(k, v)] -> [(k, v)] -> Bool - goL [] kvsR = all (is0 . snd) kvsR - goL kvsL [] = all (is0 . snd) kvsL - goL ((kL, vL) : kvsL') kvsR0@(kvR0@(kR0, vR0) : kvsR0') +unordEqWith is0 eqV = goBoth where + -- Recurse on the spines of both the lists simultaneously. + goBoth :: [(k, v)] -> [(k, v)] -> Bool + -- One spine is longer than the other one, but this still can result in a succeeding equality + -- check if the non-empty list only contains zero values. + goBoth [] kvsR = all (is0 . snd) kvsR + -- Symmetric to the previous case. + goBoth kvsL [] = all (is0 . snd) kvsL + -- Both spines are non-empty. + goBoth ((kL, vL) : kvsL') kvsR0@(kvR0@(kR0, vR0) : kvsR0') -- We could've avoided having this clause if we always searched for the right key-value pair - -- using @goR@, however the sheer act of invoking that function, passing an empty list to it - -- as an accumulator and calling 'appendR' afterwards affects performance quite a bit, + -- using @goRight@, however the sheer act of invoking that function, passing an empty list + -- to it as an accumulator and calling 'appendR' afterwards affects performance quite a bit, -- considering that all of that happens for every single element of the left list. Hence we -- handle the special case of lists being equal pointwise (or at least their prefixes being -- equal pointwise) with a bit of additional logic to get some easy performance gains. - | kL == kR0 = if vL `eqV` vR0 then goL kvsL' kvsR0' else False - | is0 vL = goL kvsL' kvsR0 - | otherwise = goR [kvR0 | not $ is0 vR0] kvsR0' + | kL == kR0 = if vL `eqV` vR0 then goBoth kvsL' kvsR0' else False + | is0 vL = goBoth kvsL' kvsR0 + | otherwise = goRight [kvR0 | not $ is0 vR0] kvsR0' where - goR :: [(k, v)] -> [(k, v)] -> Bool - goR _ [] = False - goR acc (kvR@(kR, vR) : kvsR') - | is0 vR = goR acc kvsR' - | kL == kR = if vL `eqV` vR then goL kvsL' (appendR acc kvsR') else False - | otherwise = goR (kvR : acc) kvsR' + -- Recurse on the spine of the right list looking for a key-value pair whose key matches + -- @kL@, i.e. the first key in the remaining part of the left list. The accumulator + -- contains (in reverse order) all elements of the right list processed so far whose + -- keys are not equal to @kL@ and values are non-zero. + goRight :: [(k, v)] -> [(k, v)] -> Bool + goRight _ [] = False + goRight acc (kvR@(kR, vR) : kvsR') + | is0 vR = goRight acc kvsR' + -- @appendR@ recreates @kvsR0'@ with @(kR, vR)@ removed, since that pair + -- equals @(kL, vL)@ from the left list, hence we throw both of them away. + | kL == kR = if vL `eqV` vR then goBoth kvsL' $ appendR acc kvsR' else False + | otherwise = goRight (kvR : acc) kvsR' {-# INLINABLE eqMapWith #-} -- | Check equality of two 'Map's given a function checking whether a value is zero and a function From 7d94751b3308ca4741f298ae54343c7d57f899e4 Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 18 Oct 2023 17:35:23 +0200 Subject: [PATCH 33/40] A tweak --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 16e1d1632e2..26272152634 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -429,7 +429,7 @@ unordEqWith is0 eqV = goBoth where | is0 vR = goRight acc kvsR' -- @appendR@ recreates @kvsR0'@ with @(kR, vR)@ removed, since that pair -- equals @(kL, vL)@ from the left list, hence we throw both of them away. - | kL == kR = if vL `eqV` vR then goBoth kvsL' $ appendR acc kvsR' else False + | kL == kR = if vL `eqV` vR then goBoth kvsL' (appendR acc kvsR') else False | otherwise = goRight (kvR : acc) kvsR' {-# INLINABLE eqMapWith #-} From a4838d6b1a5aeae1fa67f6530b9b68f4574dc4dd Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 19 Oct 2023 00:04:23 +0200 Subject: [PATCH 34/40] Tweak a Note --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 26272152634..7670e83a604 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -387,7 +387,8 @@ We check equality of values of two key-value pairs right after ensuring that the disadvantageous if the values are big and there's a key that is present in one of the lists but not in the other, since in that case computing equality of values was expensive and pointless. However -1. we don't really know whether this can be a common situation +1. we've checked and on the chain 'Value's very rarely contain 'CurrencySymbol's with more than 3 + 'TokenName's associated with them, so we optimize for the most common use case 2. computing equality of values before ensuring equality of all the keys certainly does help when we check equality of 'TokenName'-value pairs, since the value of a 'TokenName' is an 'Integer' and @(==) :: Integer -> Integer -> Bool@ is generally much faster than repeatedly searching for keys From a0c01fbf08a441a7c16291c3ed69b550251eb40b Mon Sep 17 00:00:00 2001 From: effectfully Date: Thu, 19 Oct 2023 14:37:06 +0200 Subject: [PATCH 35/40] Fix 9.6 golden tests --- ...0101020201000100010001020101020201010000020102.eval.golden | 4 ++-- ...0101000001000001010101010100000001000001010000.eval.golden | 4 ++-- ...0203030303000200000104030002040304020400000102.eval.golden | 4 ++-- ...fa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden | 4 ++-- ...0101000100010100000001010000010001000001000101.eval.golden | 4 ++-- ...0200010102000201000201010102000102010201010000.eval.golden | 4 ++-- ...0306010000000302050807010208060100070207080202.eval.golden | 4 ++-- ...0103020102020004040300030304040400010301040303.eval.golden | 4 ++-- ...0e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden | 4 ++-- ...db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden | 4 ++-- ...0206030604080208020207000101060706050502040301.eval.golden | 4 ++-- ...010e050d00040907050e0a0d06030f1006030701020607.eval.golden | 4 ++-- ...8de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden | 4 ++-- ...28d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden | 4 ++-- ...1e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden | 4 ++-- ...2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden | 4 ++-- ...379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden | 4 ++-- ...14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden | 4 ++-- ...16090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden | 4 ++-- ...9ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden | 4 ++-- ...4c672a282663643b1b0823471c67737f0b076870331260.eval.golden | 4 ++-- ...5e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden | 4 ++-- ...201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden | 4 ++-- ...3405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden | 4 ++-- ...cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden | 4 ++-- ...db514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden | 4 ++-- ...4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden | 4 ++-- ...e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden | 4 ++-- ...8fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden | 4 ++-- ...b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden | 4 ++-- ...e9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden | 4 ++-- ...569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden | 4 ++-- ...182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden | 4 ++-- ...3c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden | 4 ++-- ...62b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden | 4 ++-- ...f507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden | 4 ++-- ...eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden | 4 ++-- ...a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden | 4 ++-- ...637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden | 4 ++-- ...a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden | 4 ++-- ...5a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden | 4 ++-- ...350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden | 4 ++-- ...837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden | 4 ++-- ...eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden | 4 ++-- ...8df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden | 4 ++-- ...5463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden | 4 ++-- ...786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden | 4 ++-- ...eccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden | 4 ++-- ...e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden | 4 ++-- ...41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden | 4 ++-- ...6636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden | 4 ++-- ...ab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden | 4 ++-- ...b6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden | 4 ++-- ...4f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden | 4 ++-- ...c4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden | 4 ++-- ...0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden | 4 ++-- ...971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden | 4 ++-- ...d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden | 4 ++-- ...4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden | 4 ++-- ...c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden | 4 ++-- ...3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden | 4 ++-- ...1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden | 4 ++-- ...c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden | 4 ++-- ...da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden | 4 ++-- ...e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden | 4 ++-- ...2c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden | 4 ++-- ...5aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden | 4 ++-- ...46438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden | 4 ++-- ...074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden | 4 ++-- ...5a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden | 4 ++-- ...2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden | 4 ++-- ...b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden | 4 ++-- ...fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden | 4 ++-- ...d2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden | 4 ++-- ...674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden | 4 ++-- ...3322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden | 4 ++-- ...604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden | 4 ++-- ...1a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden | 4 ++-- ...558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden | 4 ++-- ...e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden | 4 ++-- ...fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden | 4 ++-- ...7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden | 4 ++-- ...0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden | 4 ++-- ...dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden | 4 ++-- ...1e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden | 4 ++-- ...2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden | 4 ++-- ...845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden | 4 ++-- ...b38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden | 4 ++-- ...81547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden | 4 ++-- ...6d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden | 4 ++-- ...25319768989313a93913fdc347c704ddaa27042757d990.eval.golden | 4 ++-- ...0c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden | 4 ++-- ...c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden | 4 ++-- ...cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden | 4 ++-- ...f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden | 4 ++-- ...e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden | 4 ++-- ...8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden | 4 ++-- ...01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden | 4 ++-- ...b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden | 4 ++-- ...4c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden | 4 ++-- .../marlowe/test/semantics/9.6/semantics.size.golden | 2 +- .../test/9.6/checkScriptContextEqualityTerm-20.eval.golden | 4 ++-- 102 files changed, 203 insertions(+), 203 deletions(-) diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.eval.golden index 90e0429e510..9e5bce3fec9 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 685167394 -| mem: 2204263}) \ No newline at end of file +({cpu: 666770612 +| mem: 2126859}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.eval.golden index 449b303277c..b2a253e1114 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1249626556 -| mem: 4101236}) \ No newline at end of file +({cpu: 1193539210 +| mem: 3865124}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.eval.golden index 3ea65fa9a8e..9f63cc4c3fa 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1486937955 -| mem: 5691072}) \ No newline at end of file +({cpu: 1346262917 +| mem: 5108828}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden index c1bc9ae4624..a1a28e757e8 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2472331815 -| mem: 8082179}) \ No newline at end of file +({cpu: 2416244469 +| mem: 7846067}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.eval.golden index 9f8669f4f2b..a969af06964 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8450056933 -| mem: 24280940}) \ No newline at end of file +({cpu: 8445157933 +| mem: 24259640}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.eval.golden index 342a8480f4c..ff0bcc102cd 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 516311880 -| mem: 1745269}) \ No newline at end of file +({cpu: 497915098 +| mem: 1667865}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.eval.golden index f2aa31d6257..99a06c866f0 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1557563057 -| mem: 5479864}) \ No newline at end of file +({cpu: 1501475711 +| mem: 5243752}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.eval.golden index f6e2f769164..627e48ce4ea 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.eval.golden @@ -1,2 +1,2 @@ -({cpu: 845396504 -| mem: 3211135}) \ No newline at end of file +({cpu: 826723722 +| mem: 3132531}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden index 1eb03135c48..cb9f4784329 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1490830324 -| mem: 5122573}) \ No newline at end of file +({cpu: 1434742978 +| mem: 4886461}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden index 9297a47bac7..4edadf26595 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1087237220 -| mem: 3860991}) \ No newline at end of file +({cpu: 1068702438 +| mem: 3782987}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.eval.golden index 6631b9df9bc..7873f61ee8d 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2423795502 -| mem: 7734114}) \ No newline at end of file +({cpu: 2418896502 +| mem: 7712814}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden index 6b8841f86bc..4997b4163e2 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1220560565 -| mem: 4590893}) \ No newline at end of file +({cpu: 1201818783 +| mem: 4511989}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden index bc234c548e0..10bbfbbfcf9 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1251792275 -| mem: 4758911}) \ No newline at end of file +({cpu: 1212277413 +| mem: 4595099}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden index 067bce2fed7..b4d93a09f8e 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2014874646 -| mem: 7384134}) \ No newline at end of file +({cpu: 1917034016 +| mem: 6977306}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden index 2fd6bd6856a..a78bd599ef9 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1033507537 -| mem: 3404103}) \ No newline at end of file +({cpu: 1014972755 +| mem: 3326099}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden index 59683c021b7..3365fe9f48a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1110203136 -| mem: 3980897}) \ No newline at end of file +({cpu: 1054115790 +| mem: 3744785}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden index 6daa8e84cb9..8b194d3ce99 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 693677400 -| mem: 2497727}) \ No newline at end of file +({cpu: 654507538 +| mem: 2335415}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden index 1bfcb40b9fa..7f5f5a44537 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.eval.golden @@ -1,2 +1,2 @@ -({cpu: 903935501 -| mem: 3350197}) \ No newline at end of file +({cpu: 885331719 +| mem: 3271893}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden index e2f3a4a9b93..589731f9811 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1736319866 -| mem: 5199309}) \ No newline at end of file +({cpu: 1717923084 +| mem: 5121905}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden index ce74daf49e5..0be7f3b7827 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1644401702 -| mem: 5849078}) \ No newline at end of file +({cpu: 1588314356 +| mem: 5612966}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden index f18e0dfc07e..acd084aba76 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1506115996 -| mem: 5119983}) \ No newline at end of file +({cpu: 1450028650 +| mem: 4883871}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden index 352c6e94971..dd8f168a4b7 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 589510754 -| mem: 1952483}) \ No newline at end of file +({cpu: 571113972 +| mem: 1875079}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden index 51e1a46b1e7..96b244b377f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 35959093004 -| mem: 99109920}) \ No newline at end of file +({cpu: 35954194004 +| mem: 99088620}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden index f8387ea6220..cc2697811b2 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.eval.golden @@ -1,2 +1,2 @@ -({cpu: 191985238781 -| mem: 541188022}) \ No newline at end of file +({cpu: 191980339781 +| mem: 541166722}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden index 8a92a6ab9a3..815141c653f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.eval.golden @@ -1,2 +1,2 @@ -({cpu: 829368925 -| mem: 2864500}) \ No newline at end of file +({cpu: 773281579 +| mem: 2628388}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden index bf3e63fca81..6feddf4cdda 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.eval.golden @@ -1,2 +1,2 @@ -({cpu: 517209528 -| mem: 1774467}) \ No newline at end of file +({cpu: 498812746 +| mem: 1697063}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden index d4ac9c99799..2629c37d438 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 761491000 -| mem: 2881794}) \ No newline at end of file +({cpu: 705403654 +| mem: 2645682}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden index 177b9459150..b394eb0722d 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 38967370944 -| mem: 109212782}) \ No newline at end of file +({cpu: 38962471944 +| mem: 109191482}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden index a69fc88aa8f..db51f6a4879 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4580482073 -| mem: 13583344}) \ No newline at end of file +({cpu: 4524394727 +| mem: 13347232}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden index d4309b2ffa5..054f51b1dab 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.eval.golden @@ -1,2 +1,2 @@ -({cpu: 857032175 -| mem: 3251333}) \ No newline at end of file +({cpu: 838497393 +| mem: 3173329}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden index b4096cbc413..22bebbaae62 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1587441006 -| mem: 5489438}) \ No newline at end of file +({cpu: 1531353660 +| mem: 5253326}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden index 76c7480a3da..d784c5f4a0d 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1632472262 -| mem: 6198812}) \ No newline at end of file +({cpu: 1491797224 +| mem: 5616568}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden index a1e455646eb..7b9a407166b 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 494868642 -| mem: 1694139}) \ No newline at end of file +({cpu: 476471860 +| mem: 1616735}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden index ad222816ebc..dcb8667a552 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.eval.golden @@ -1,2 +1,2 @@ -({cpu: 652362901 -| mem: 2349799}) \ No newline at end of file +({cpu: 633966119 +| mem: 2272395}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden index 55252e77eda..e30c8d8414b 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.eval.golden @@ -1,2 +1,2 @@ -({cpu: 983945993 -| mem: 3625166}) \ No newline at end of file +({cpu: 927858647 +| mem: 3389054}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden index 4d6928a6d4d..e23b0760870 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1066257540 -| mem: 3933926}) \ No newline at end of file +({cpu: 1010170194 +| mem: 3697814}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden index ed9920880ab..a66e7f2e241 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.eval.golden @@ -1,2 +1,2 @@ -({cpu: 584415205 -| mem: 1940047}) \ No newline at end of file +({cpu: 566018423 +| mem: 1862643}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden index f6bfb61ec4a..b312b99cd8a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1565980703 -| mem: 5343170}) \ No newline at end of file +({cpu: 1509893357 +| mem: 5107058}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden index 8d65ed764ba..1e7264b17e7 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 672533358 -| mem: 2174027}) \ No newline at end of file +({cpu: 654136576 +| mem: 2096623}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden index ff03b2d5f6a..cda6708a034 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1286244373 -| mem: 4849627}) \ No newline at end of file +({cpu: 1246660449 +| mem: 4685515}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden index a7b2df0a3ed..2815fd3f813 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 905105658 -| mem: 3309825}) \ No newline at end of file +({cpu: 886432876 +| mem: 3231221}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden index 4d7e2e02dd7..153af6342cc 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1959541633 -| mem: 6090850}) \ No newline at end of file +({cpu: 1903454287 +| mem: 5854738}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden index cba6081035b..18b3a0fa815 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 371217209 -| mem: 1368599}) \ No newline at end of file +({cpu: 352820427 +| mem: 1291195}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden index 50eb20048f4..57f8d6e88e1 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 462037040 -| mem: 1624083}) \ No newline at end of file +({cpu: 443640258 +| mem: 1546679}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden index c8a3f55a9bb..1f0fdf6b402 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 555197787 -| mem: 1871589}) \ No newline at end of file +({cpu: 536801005 +| mem: 1794185}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden index 047ef1db800..1ccf5fecff0 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1273207539 -| mem: 4707288}) \ No newline at end of file +({cpu: 1217120193 +| mem: 4471176}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden index bf3e63fca81..6feddf4cdda 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 517209528 -| mem: 1774467}) \ No newline at end of file +({cpu: 498812746 +| mem: 1697063}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden index f9e063914fa..0e40b330cee 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.eval.golden @@ -1,2 +1,2 @@ -({cpu: 620806481 -| mem: 2301729}) \ No newline at end of file +({cpu: 581567619 +| mem: 2139117}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden index 3f48c9f5f90..f7c842a7cbd 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1339139662 -| mem: 4695131}) \ No newline at end of file +({cpu: 1320604880 +| mem: 4617127}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden index ceadf158a81..0c7b76f3f8c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1190726587 -| mem: 4535199}) \ No newline at end of file +({cpu: 1151004663 +| mem: 4370487}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden index 1f19112e1c6..8454877f901 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 622738375 -| mem: 2322167}) \ No newline at end of file +({cpu: 583499451 +| mem: 2159555}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden index 8fc32e53bf0..c058f2d4342 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 518862765 -| mem: 1750471}) \ No newline at end of file +({cpu: 500465983 +| mem: 1673067}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden index 1b5e83d28b7..7f503689a51 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1076218946 -| mem: 4005174}) \ No newline at end of file +({cpu: 1020131600 +| mem: 3769062}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden index 94fa16420fb..2dead830f2e 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 810235182 -| mem: 2815361}) \ No newline at end of file +({cpu: 770996258 +| mem: 2652749}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden index cec87b2d4e4..5ea551be81c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.eval.golden @@ -1,2 +1,2 @@ -({cpu: 928104227 -| mem: 3485548}) \ No newline at end of file +({cpu: 872016881 +| mem: 3249436}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden index f3f8e29cb52..62282704342 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 79747833260 -| mem: 227004362}) \ No newline at end of file +({cpu: 79742934260 +| mem: 226983062}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden index 8ecaca7e214..f841d4b1bac 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2658426898 -| mem: 8551732}) \ No newline at end of file +({cpu: 2602339552 +| mem: 8315620}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden index b5e7fd9da59..096e0c1cb38 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1285464893 -| mem: 4847499}) \ No newline at end of file +({cpu: 1245949969 +| mem: 4683687}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden index f8387ea6220..cc2697811b2 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.eval.golden @@ -1,2 +1,2 @@ -({cpu: 191985238781 -| mem: 541188022}) \ No newline at end of file +({cpu: 191980339781 +| mem: 541166722}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden index 68171502256..a4790b80733 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 653085952 -| mem: 2389847}) \ No newline at end of file +({cpu: 613847028 +| mem: 2227235}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden index c32582950e8..7d6ff82b2d7 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1129681245 -| mem: 4037097}) \ No newline at end of file +({cpu: 1073593899 +| mem: 3800985}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden index 67da519e785..93bcb87436f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 601344481 -| mem: 2203527}) \ No newline at end of file +({cpu: 582809699 +| mem: 2125523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden index 0c8eddad75d..71d9255e877 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1148763332 -| mem: 4285982}) \ No newline at end of file +({cpu: 1051129702 +| mem: 3880054}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden index bc4d0aab479..f235888a3ba 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1170394096 -| mem: 4406012}) \ No newline at end of file +({cpu: 1072760466 +| mem: 4000084}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden index e9fef5bc3e5..83bc7381401 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 901952264 -| mem: 3295781}) \ No newline at end of file +({cpu: 883417482 +| mem: 3217777}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden index 43dbab9b753..d0baf9507ee 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 779640065 -| mem: 2575080}) \ No newline at end of file +({cpu: 761243283 +| mem: 2497676}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden index 44d018a22f7..76df42ae05a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.eval.golden @@ -1,2 +1,2 @@ -({cpu: 978374206 -| mem: 3485044}) \ No newline at end of file +({cpu: 860036620 +| mem: 2994508}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden index 52aef07c483..9826f557041 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 2971826145 -| mem: 9319380}) \ No newline at end of file +({cpu: 2966927145 +| mem: 9298080}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden index 4aaaa8ad7ac..9259554b61e 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1740631317 -| mem: 6408758}) \ No newline at end of file +({cpu: 1684336971 +| mem: 6171746}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden index 8a92a6ab9a3..815141c653f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 829368925 -| mem: 2864500}) \ No newline at end of file +({cpu: 773281579 +| mem: 2628388}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden index 04b4b494517..50d52e19760 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.eval.golden @@ -1,2 +1,2 @@ -({cpu: 872755366 -| mem: 2734255}) \ No newline at end of file +({cpu: 854358584 +| mem: 2656851}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden index 8b07e5437d8..69979b833cb 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1095373887 -| mem: 3887897}) \ No newline at end of file +({cpu: 1076839105 +| mem: 3809893}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden index 50eb20048f4..57f8d6e88e1 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 462037040 -| mem: 1624083}) \ No newline at end of file +({cpu: 443640258 +| mem: 1546679}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden index 43dbab9b753..d0baf9507ee 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.eval.golden @@ -1,2 +1,2 @@ -({cpu: 779640065 -| mem: 2575080}) \ No newline at end of file +({cpu: 761243283 +| mem: 2497676}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden index 8f206a83bd6..f423f57353b 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1007726348 -| mem: 3699716}) \ No newline at end of file +({cpu: 951639002 +| mem: 3463604}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden index 9cfa16f7e52..10762ac6c72 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1483521027 -| mem: 4205915}) \ No newline at end of file +({cpu: 1482210027 +| mem: 4200215}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden index 499a2ddc014..052669ffbe4 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 837705194 -| mem: 3122472}) \ No newline at end of file +({cpu: 781617848 +| mem: 2886360}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden index cea66d9a719..971391e1afe 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1992034789 -| mem: 7285308}) \ No newline at end of file +({cpu: 1894194159 +| mem: 6878480}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden index b8f36f2ed70..8dc9363c0c5 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1365614023 -| mem: 4956832}) \ No newline at end of file +({cpu: 1309526677 +| mem: 4720720}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden index 349ca44b3e3..bad86129c05 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1349895139 -| mem: 5114232}) \ No newline at end of file +({cpu: 1231281367 +| mem: 4622496}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden index 201d3189fc3..2d86a23c4ec 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.eval.golden @@ -1,2 +1,2 @@ -({cpu: 879899553 -| mem: 3327129}) \ No newline at end of file +({cpu: 840591629 +| mem: 3164217}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden index 9cf6e6c9e83..65b39c62c0f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1178129395 -| mem: 4408568}) \ No newline at end of file +({cpu: 1080495765 +| mem: 4002640}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden index c8337a6beb3..7720e695b11 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 16296964383 -| mem: 46097698}) \ No newline at end of file +({cpu: 16292065383 +| mem: 46076398}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden index 4d6962f55d4..ee0d2fa11d5 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1647296143 -| mem: 5914514}) \ No newline at end of file +({cpu: 1591208797 +| mem: 5678402}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden index cef51081f40..b262bd6deb7 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1295192465 -| mem: 4798960}) \ No newline at end of file +({cpu: 1239105119 +| mem: 4562848}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden index 3881c8607d3..355c05d8a71 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 626216238 -| mem: 2299109}) \ No newline at end of file +({cpu: 607681456 +| mem: 2221105}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden index 7932adde26c..5ee31c513fa 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237292199896 -| mem: 687121220}) \ No newline at end of file +({cpu: 237287300896 +| mem: 687099920}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden index 14358e4ed39..1ee40701455 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1288026178 -| mem: 4872071}) \ No newline at end of file +({cpu: 1248580254 +| mem: 4708559}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden index 342a8480f4c..ff0bcc102cd 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.eval.golden @@ -1,2 +1,2 @@ -({cpu: 516311880 -| mem: 1745269}) \ No newline at end of file +({cpu: 497915098 +| mem: 1667865}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden index 617da485f59..4492fa826bc 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.eval.golden @@ -1,2 +1,2 @@ -({cpu: 654913786 -| mem: 2355001}) \ No newline at end of file +({cpu: 636517004 +| mem: 2277597}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden index 3eb4dc9043e..dab2b959720 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1245141047 -| mem: 4595794}) \ No newline at end of file +({cpu: 1189053701 +| mem: 4359682}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden index 1b220ee9737..e96b5c19fad 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.eval.golden @@ -1,2 +1,2 @@ -({cpu: 873198873 -| mem: 2973464}) \ No newline at end of file +({cpu: 817111527 +| mem: 2737352}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden index 1cf5f492ae1..75f18504514 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 606763070 -| mem: 2204934}) \ No newline at end of file +({cpu: 550675724 +| mem: 1968822}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden index 8e15eda8df9..0b7cc704145 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.eval.golden @@ -1,2 +1,2 @@ -({cpu: 423920544 -| mem: 1492489}) \ No newline at end of file +({cpu: 405523762 +| mem: 1415085}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden index 29d04eff177..97e3badebe5 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8457260975 -| mem: 24300226}) \ No newline at end of file +({cpu: 8452361975 +| mem: 24278926}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden index bccef93b09d..07b1ba134e3 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 633818024 -| mem: 2080677}) \ No newline at end of file +({cpu: 615421242 +| mem: 2003273}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden index fc7042c1919..743a8c5538a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1824196652 -| mem: 6007516}) \ No newline at end of file +({cpu: 1768109306 +| mem: 5771404}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden index 2224a288220..99beb358465 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 4410150663 -| mem: 13051584}) \ No newline at end of file +({cpu: 4405251663 +| mem: 13030284}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden index dcf036a1773..bdb996f43e8 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.eval.golden @@ -1,2 +1,2 @@ -({cpu: 80450029205 -| mem: 226591758}) \ No newline at end of file +({cpu: 80445130205 +| mem: 226570458}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden index 6ff3fa41b28..5484ad47881 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1580243701 -| mem: 5640236}) \ No newline at end of file +({cpu: 1524087355 +| mem: 5403824}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/semantics.size.golden b/plutus-benchmark/marlowe/test/semantics/9.6/semantics.size.golden index 869755e6863..224df0385b3 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/semantics.size.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/semantics.size.golden @@ -1 +1 @@ -13570 \ No newline at end of file +13877 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden index 1d7da7b6a79..3e43f147376 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 540435251 -| mem: 2191746}) \ No newline at end of file +({cpu: 310775611 +| mem: 1244866}) \ No newline at end of file From 4e89171e5176d5fcf49f80d8cd94992f5c5d58ee Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 24 Oct 2023 05:49:52 +0200 Subject: [PATCH 36/40] Generate empty lists too --- plutus-core/plutus-core.cabal | 3 + .../test/Generators/QuickCheck/Utils.hs | 52 ++++++++++ plutus-core/plutus-core/test/Spec.hs | 2 + .../PlutusCore/Generators/QuickCheck/Utils.hs | 97 ++++++++++++++++++- .../test/Evaluation/Builtins/Costing.hs | 20 +--- plutus-ledger-api/test/Spec/V1/Value.hs | 5 +- .../testlib/PlutusLedgerApi/Test/V1/Value.hs | 2 +- 7 files changed, 155 insertions(+), 26 deletions(-) create mode 100644 plutus-core/plutus-core/test/Generators/QuickCheck/Utils.hs diff --git a/plutus-core/plutus-core.cabal b/plutus-core/plutus-core.cabal index 03c7694d0c5..71271c3cde8 100644 --- a/plutus-core/plutus-core.cabal +++ b/plutus-core/plutus-core.cabal @@ -342,6 +342,7 @@ test-suite plutus-core-test CostModelInterface.Spec Evaluation.Machines Evaluation.Spec + Generators.QuickCheck.Utils Names.Spec Normalization.Check Normalization.Type @@ -364,11 +365,13 @@ test-suite plutus-core-test , mtl , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.15 , prettyprinter + , QuickCheck , serialise , tasty , tasty-golden , tasty-hedgehog , tasty-hunit + , tasty-quickcheck , template-haskell , text , th-lift-instances diff --git a/plutus-core/plutus-core/test/Generators/QuickCheck/Utils.hs b/plutus-core/plutus-core/test/Generators/QuickCheck/Utils.hs new file mode 100644 index 00000000000..45ed4d7cc96 --- /dev/null +++ b/plutus-core/plutus-core/test/Generators/QuickCheck/Utils.hs @@ -0,0 +1,52 @@ +{-# LANGUAGE TypeApplications #-} + +module Generators.QuickCheck.Utils where + +import PlutusCore.Generators.QuickCheck.Utils + +import Data.Coerce +import Test.Tasty +import Test.Tasty.QuickCheck + +-- | Test that both 'multiSplit1' and 'multiSplit' produce a list such that 'concat'ing it gives +-- back the input. +test_multiSplitSound :: TestTree +test_multiSplitSound = + testGroup "soundness" $ do + (name, split) <- + [ ("multiSplit1", coerce $ multiSplit1 @Int) + , ("multiSplit", multiSplit 0.1) + ] + pure . testProperty name $ \(xs :: [Int]) -> + withMaxSuccess 10000 . forAll (split xs) $ \aSplit -> + xs === concat aSplit + +-- | Show the distribution of lists generated by 'multiSplit' for a list of the given length. +test_listDistribution :: Int -> ([()] -> Gen [[()]]) -> Int -> TestTree +test_listDistribution numRuns split n = + testProperty ("for a list of length " ++ show n) $ + withMaxSuccess numRuns . forAll (split $ replicate n ()) $ \aSplit -> + label (show $ map length aSplit) True + +test_multiSplitDistribution :: TestTree +test_multiSplitDistribution = + testGroup "distribution of values generated by" + [ testGroup "multiSplit1" + [ test_listDistribution 10000 (coerce $ multiSplit1 @()) 1 + , test_listDistribution 10000 (coerce $ multiSplit1 @()) 2 + , test_listDistribution 10000 (coerce $ multiSplit1 @()) 3 + , test_listDistribution 10000 (coerce $ multiSplit1 @()) 4 + , test_listDistribution 10000 (coerce $ multiSplit1 @()) 5 + ] + , testGroup "multiSplit" + [ test_listDistribution 1000 (multiSplit 0.1) 1 + , test_listDistribution 1000 (multiSplit 0.05) 2 + , test_listDistribution 1000 (multiSplit 0.01) 3 + ] + ] + +test_utils :: TestTree +test_utils = testGroup "utils" + [ test_multiSplitSound + , test_multiSplitDistribution + ] diff --git a/plutus-core/plutus-core/test/Spec.hs b/plutus-core/plutus-core/test/Spec.hs index bc0087b1fa5..60b520b6907 100644 --- a/plutus-core/plutus-core/test/Spec.hs +++ b/plutus-core/plutus-core/test/Spec.hs @@ -15,6 +15,7 @@ import CBOR.DataStability qualified import Check.Spec qualified as Check import CostModelInterface.Spec import Evaluation.Spec (test_evaluation) +import Generators.QuickCheck.Utils (test_utils) import Names.Spec import Normalization.Check import Normalization.Type @@ -336,4 +337,5 @@ allTests plcFiles rwFiles typeFiles typeErrorFiles = , Check.tests , NEAT.tests , Parser.tests + , test_utils ] diff --git a/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs b/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs index 1c13fc6b5ed..82f91f18cf4 100644 --- a/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs +++ b/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Utils.hs @@ -14,6 +14,8 @@ import PlutusIR.Compiler.Datatype import PlutusIR.Core.Instance.Pretty.Readable import PlutusIR.Subst +import Control.Monad +import Data.Bifunctor import Data.Coerce (coerce) import Data.Kind qualified as GHC import Data.List (sort) @@ -205,10 +207,10 @@ toChunks (n : ns) xs = chunk : toChunks ns xs' where (chunk, xs') = splitAt n xs -- | Split a list into chunks at random. Concatenating the resulting lists gives back the original --- one. -multiSplit :: [a] -> Gen [NonEmptyList a] -multiSplit [] = pure [] -multiSplit xs = do +-- one. Doesn't generate empty chunks. +multiSplit1 :: [a] -> Gen [NonEmptyList a] +multiSplit1 [] = pure [] +multiSplit1 xs = do let len = length xs -- Pick a number of chunks. chunkNum <- frequency . map (fmap pure) $ toChunkFrequencies len @@ -218,3 +220,90 @@ multiSplit xs = do let chunkLens = zipWith (-) breakpoints (0 : breakpoints) -- Chop the argument into chunks according to the list of chunk lengths. pure . coerce $ toChunks chunkLens xs + +-- | Return the left and the right halves of the given list. The first argument controls whether +-- the middle element of a list having an odd length goes into the left half or the right one. +-- +-- >>> halve True [1 :: Int] +-- ([1],[]) +-- >>> halve True [1, 2 :: Int] +-- ([1],[2]) +-- >>> halve True [1, 2, 3 :: Int] +-- ([1,2],[3]) +-- >>> halve False [1 :: Int] +-- ([],[1]) +-- >>> halve False [1, 2 :: Int] +-- ([1],[2]) +-- >>> halve False [1, 2, 3 :: Int] +-- ([1],[2,3]) +halve :: Bool -> [a] -> ([a], [a]) +halve isOddToLeft xs0 = go xs0 xs0 where + go (_ : _ : xsFast) (x : xsSlow) = first (x :) $ go xsFast xsSlow + go [_] (x : xsSlow) | isOddToLeft = ([x], xsSlow) + go _ xsSlow = ([], xsSlow) + +-- | Insert a value into a list an arbitrary number of times. The first argument controls whether +-- to allow inserting at the beginning of the list, the second argument is the probability of +-- inserting an element at the end of the list. +insertManyPreferRight :: forall a. Bool -> Double -> a -> [a] -> Gen [a] +insertManyPreferRight keepPrefix lastProb y xs0 = go keepPrefix initWeight xs0 where + -- The weight of the "insert @y@ operation" operation at the beginning of the list. + initWeight = 10 + -- How more likely we're to insert an element when moving one element forward in the list. + -- Should we make it dependent on the length of the list? Maybe it's fine. + scaling = 1.1 + -- The weight of the "insert @y@ operation" operation at the end of the list. + topWeight = scaling ** fromIntegral (length xs0) * initWeight + -- The weight of the "do nothing" operation. + noopWeight = floor $ topWeight * (1 / lastProb - 1) + + go :: Bool -> Double -> [a] -> Gen [a] + go keep weight xs = do + doCons <- frequency [(floor weight, pure True), (noopWeight, pure False)] + if doCons + -- If we don't want to insert elements into the head of the list, then we simply ignore + -- the generated one and carry on. Ugly, but works. + then ([y | keep] ++) <$> go keep weight xs + else case xs of + [] -> pure [] + x : xs' -> (x :) <$> go True (weight * scaling) xs' + +-- | Insert a value into a list an arbitrary number of times. The first argument controls whether +-- to allow inserting at the end of the list, the second argument is the probability of +-- inserting an element at the beginning of the list. +insertManyPreferLeft :: Bool -> Double -> a -> [a] -> Gen [a] +insertManyPreferLeft keepSuffix headProb y = + fmap reverse . insertManyPreferRight keepSuffix headProb y . reverse + +-- | Insert a value into a list an arbitrary number of times. The first argument is the probability +-- of inserting an element at an end of the list (i.e. either the beginning or the end, not +-- combined). See 'multiSplit' for what this function allows us to do. +insertManyPreferEnds :: Double -> a -> [a] -> Gen [a] +-- Cut the list in half, insert into the left half skewing generation towards the beginning, insert +-- into the right half skewing generation towards the end, then append the results of those two +-- operations, so that we get a list where additional elements are more likely to occur close to +-- the sides. +insertManyPreferEnds endProb y xs = do + -- In order not to get skewed results we sometimes put the middle element of the list into its + -- first half and sometimes into its second half. + isOddToLeft <- arbitrary + let (xsL, xsR) = halve isOddToLeft xs + -- If the list has even length, then it was cut into two halves of equal length meaning one slot + -- for to put an element in appears twice: at the end of the left half and at the beginning of + -- the right one. Hence in order to avoid skeweness we don't put anything into this slot at the + -- end of the left half. + -- Maybe we do want to skew generation to favor the middle of the list like we do for its ends, + -- but then we need to do that intentionally and systematically, not randomly and a little bit. + xsL' <- insertManyPreferLeft (length xsL /= length xsR) endProb y xsL + xsR' <- insertManyPreferRight True endProb y xsR + pure $ xsL' ++ xsR' + +-- | Split a list into chunks at random. Concatenating the resulting lists gives back the original +-- one. Generates empty chunks. The first argument is the probability of generating at least one +-- empty chunk as the first element of the resulting list. It is also the probability of generating +-- an empty chunk as the last element of the resulting list. The probability of generating empty +-- chunks decreases as we go from either of the ends of the resulting list (this is so that we are +-- more likely to hit a corner case related to handling elements at the beginning or the end of a +-- list). +multiSplit :: Double -> [a] -> Gen [[a]] +multiSplit endProb = multiSplit1 >=> insertManyPreferEnds endProb [] . coerce diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs index 11884dda2cd..3960673589a 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Costing.hs @@ -353,7 +353,7 @@ generation strategy such as exponential growth of the generated objects. genCostRose :: NonEmptyList SatInt -> Gen CostRose genCostRose (NonEmpty []) = error "Panic: an empty non-empty list" genCostRose (NonEmpty (cost : costs)) = - CostRose cost <$> (traverse genCostRose =<< multiSplit costs) + CostRose cost <$> (traverse genCostRose =<< multiSplit1 costs) fromCostRose :: CostRose -> NonEmptyList SatInt fromCostRose (CostRose cost costs) = @@ -369,23 +369,6 @@ instance Arbitrary CostRose where (costs', cost') <- shrink (costs, cost) pure $ CostRose cost' costs' --- | Show the distribution of lists generated by 'multiSplit' for a list of the given length. -test_multiSplitDistributionAt :: Int -> TestTree -test_multiSplitDistributionAt n = - testProperty ("for a list of length " ++ show n) $ - withMaxSuccess 10000 . forAll (multiSplit $ replicate n ()) $ \aSplit -> - label (show $ map length aSplit) True - -test_multiSplitDistribution :: TestTree -test_multiSplitDistribution = - testGroup ("distribution of values generated by multiSplit") $ - [ test_multiSplitDistributionAt 1 - , test_multiSplitDistributionAt 2 - , test_multiSplitDistributionAt 3 - , test_multiSplitDistributionAt 4 - , test_multiSplitDistributionAt 5 - ] - -- | Return the lengths of all the forests in a 'CostRose'. collectListLengths :: CostRose -> [Int] collectListLengths (CostRose _ costs) = length costs : concatMap collectListLengths costs @@ -469,7 +452,6 @@ test_costing = testGroup "costing" , test_minCostStreamHandlesBottom , test_zipCostStreamHandlesBottom , test_flattenCostRoseIsLinear - , test_multiSplitDistribution , test_CostRoseListLengthsDistribution , test_genCostRoseSound , test_flattenCostRoseSound diff --git a/plutus-ledger-api/test/Spec/V1/Value.hs b/plutus-ledger-api/test/Spec/V1/Value.hs index 78facbd5a37..a5db2dbc0de 100644 --- a/plutus-ledger-api/test/Spec/V1/Value.hs +++ b/plutus-ledger-api/test/Spec/V1/Value.hs @@ -81,8 +81,9 @@ test_Monoid = testProperty "Monoid" . scaleTestsBy 5 $ \value1 -> -- | Test that changing the values of some of the 'TokenName's creates a different 'Value'. test_updateSome :: TestTree -test_updateSome = testProperty "updateSome" . scaleTestsBy 15 $ \value -> - any (any $ not . null) (valueToLists value) ==> +test_updateSome = testProperty "updateSome" . scaleTestsBy 10 $ \value -> + let lists = valueToLists value + in not (null lists || any (any null) lists) ==> onLists value (mapSome . traverse . mapSome $ traverse updateInteger) (\value' -> value value') diff --git a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs index 319cf14fed0..fb2580815b8 100644 --- a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs +++ b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V1/Value.hs @@ -84,7 +84,7 @@ instance Arbitrary Value where arbitrary = do -- Generate values for all of the 'TokenName's in the final 'Value' and split them into a -- list of lists. - faceValues <- fmap (map getNonEmpty) . multiSplit . map unFaceValue =<< arbitrary + faceValues <- multiSplit 0.2 . map unFaceValue =<< arbitrary -- Generate 'TokenName's and 'CurrencySymbol's. currencies <- uniqueNames CurrencySymbol =<< traverse (uniqueNames TokenName) faceValues pure $ listsToValue currencies From 2a492413817cccefa95797a9fc341a8415f5466e Mon Sep 17 00:00:00 2001 From: effectfully Date: Tue, 24 Oct 2023 23:56:00 +0200 Subject: [PATCH 37/40] Address comments --- .../src/PlutusLedgerApi/V1/Value.hs | 15 +++--- plutus-ledger-api/test/Spec/V1/Value.hs | 48 +++++++++++++------ plutus-tx/src/PlutusTx/List.hs | 14 +++--- 3 files changed, 50 insertions(+), 27 deletions(-) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index aa15ba99c99..36777e36741 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -296,6 +296,8 @@ unionWith f ls rs = {-# INLINABLE flattenValue #-} -- | Convert a 'Value' to a simple list, keeping only the non-zero amounts. +-- Note that the result isn't sorted, meaning @v1 == v2@ doesn't generally imply +-- @flattenValue v1 == flattenValue v2@. flattenValue :: Value -> [(CurrencySymbol, TokenName, Integer)] flattenValue v = goOuter [] (Map.toList $ getValue v) where @@ -416,10 +418,11 @@ unordEqWith is0 eqV = goBoth where goBoth ((kL, vL) : kvsL') kvsR0@(kvR0@(kR0, vR0) : kvsR0') -- We could've avoided having this clause if we always searched for the right key-value pair -- using @goRight@, however the sheer act of invoking that function, passing an empty list - -- to it as an accumulator and calling 'appendR' afterwards affects performance quite a bit, - -- considering that all of that happens for every single element of the left list. Hence we - -- handle the special case of lists being equal pointwise (or at least their prefixes being - -- equal pointwise) with a bit of additional logic to get some easy performance gains. + -- to it as an accumulator and calling 'revAppend' afterwards affects performance quite a + -- bit, considering that all of that happens for every single element of the left list. + -- Hence we handle the special case of lists being equal pointwise (or at least their + -- prefixes being equal pointwise) with a bit of additional logic to get some easy + -- performance gains. | kL == kR0 = if vL `eqV` vR0 then goBoth kvsL' kvsR0' else False | is0 vL = goBoth kvsL' kvsR0 | otherwise = goRight [kvR0 | not $ is0 vR0] kvsR0' @@ -432,9 +435,9 @@ unordEqWith is0 eqV = goBoth where goRight _ [] = False goRight acc (kvR@(kR, vR) : kvsR') | is0 vR = goRight acc kvsR' - -- @appendR@ recreates @kvsR0'@ with @(kR, vR)@ removed, since that pair + -- @revAppend@ recreates @kvsR0'@ with @(kR, vR)@ removed, since that pair -- equals @(kL, vL)@ from the left list, hence we throw both of them away. - | kL == kR = if vL `eqV` vR then goBoth kvsL' (appendR acc kvsR') else False + | kL == kR = if vL `eqV` vR then goBoth kvsL' (revAppend acc kvsR') else False | otherwise = goRight (kvR : acc) kvsR' {-# INLINABLE eqMapWith #-} diff --git a/plutus-ledger-api/test/Spec/V1/Value.hs b/plutus-ledger-api/test/Spec/V1/Value.hs index a5db2dbc0de..acabeb57244 100644 --- a/plutus-ledger-api/test/Spec/V1/Value.hs +++ b/plutus-ledger-api/test/Spec/V1/Value.hs @@ -37,8 +37,8 @@ mapMany f = traverse $ \x -> do -- are chosen at random. mapSome :: Eq a => (a -> Gen a) -> [a] -> Gen [a] mapSome f xs = do - i <- choose (0, length xs - 1) xs' <- mapMany f xs + i <- choose (0, length xs - 1) let xi = xs !! i ix i (\x -> if x == xi then f x else pure x) xs' @@ -46,6 +46,12 @@ mapSome f xs = do updateInteger :: Integer -> Gen Integer updateInteger i = arbitrary `suchThat` (/= i) +-- | Generate new 'TokenName's such that the resulting list is not equal to the given one. +freshenTokenNames :: [(TokenName, Integer)] -> Gen [(TokenName, Integer)] +freshenTokenNames tokens = + uniqueNames TokenName (map snd tokens) `suchThat` \tokens' -> + filter ((/= 0) . snd) tokens /= filter ((/= 0) . snd) tokens' + onLists :: Value -> ([(CurrencySymbol, [(TokenName, Integer)])] -> @@ -54,18 +60,18 @@ onLists -> Property onLists value f = forAll (fmap listsToValue . f $ valueToLists value) --- | Test that the 'Monoid' instance of 'Value' is law-abiding and that merging two non-zero values --- creates a value that isn't equal to any of the original ones. -test_Monoid :: TestTree -test_Monoid = testProperty "Monoid" . scaleTestsBy 5 $ \value1 -> - if isZero value1 +-- | Test various laws for operations over 'Value'. +test_laws :: TestTree +test_laws = testProperty "laws" . scaleTestsBy 5 $ \value1 -> conjoin + [ value1 <> value1 <=> Numeric.scale 2 value1 + , value1 <> Numeric.negate value1 <=> mempty + , if isZero value1 then conjoin [ value1 <=> mempty , forAll arbitrary $ \value2 -> value1 <> value2 <=> value2 ] else conjoin [ value1 mempty - , value1 <> value1 <=> Numeric.scale 2 value1 , forAll arbitrary $ \value2 -> if isZero value2 then value1 <> value2 <=> value1 @@ -78,15 +84,28 @@ test_Monoid = testProperty "Monoid" . scaleTestsBy 5 $ \value1 -> (value1 <> value2) <> value3 <=> value1 <> (value2 <> value3) ] ] + ] --- | Test that changing the values of some of the 'TokenName's creates a different 'Value'. -test_updateSome :: TestTree -test_updateSome = testProperty "updateSome" . scaleTestsBy 10 $ \value -> - let lists = valueToLists value - in not (null lists || any (any null) lists) ==> +-- | Test that changing the values of some of the values of 'TokenName's creates a different +-- 'Value'. +test_updateSomeTokenValues :: TestTree +test_updateSomeTokenValues = testProperty "updateSomeTokenValues" . scaleTestsBy 15 $ \prevalue -> + let lists = filter (not . null . snd) $ valueToLists prevalue + value = listsToValue lists + in not (null lists) ==> onLists value (mapSome . traverse . mapSome $ traverse updateInteger) (\value' -> value value') +-- | Test that changing the values of some of the 'TokenName's creates a different 'Value'. +test_updateSomeTokenNames :: TestTree +test_updateSomeTokenNames = testProperty "updateSomeTokenNames" . scaleTestsBy 15 $ \prevalue -> + let lists = filter (not . null . snd) . map (fmap . filter $ (/= 0) . snd) $ + valueToLists prevalue + value = listsToValue lists + in not (null lists) ==> + onLists value (mapSome $ traverse freshenTokenNames) + (\value' -> value value') + -- | Test that shuffling 'CurrencySymbol's or 'TokenName's creates a 'Value' that is equal to the -- original one. test_shuffle :: TestTree @@ -103,8 +122,9 @@ test_split = testProperty "split" . scaleTestsBy 7 $ \value -> test_Value :: TestTree test_Value = testGroup "Value" - [ test_Monoid - , test_updateSome + [ test_laws + , test_updateSomeTokenValues + , test_updateSomeTokenNames , test_shuffle , test_split ] diff --git a/plutus-tx/src/PlutusTx/List.hs b/plutus-tx/src/PlutusTx/List.hs index ac165980d68..77c49b800c0 100644 --- a/plutus-tx/src/PlutusTx/List.hs +++ b/plutus-tx/src/PlutusTx/List.hs @@ -20,7 +20,7 @@ module PlutusTx.List ( findIndex, foldr, foldl, - appendR, + revAppend, reverse, concat, concatMap, @@ -246,16 +246,16 @@ xs0 !! n0 = go n0 xs0 then x else go (Builtins.subtractInteger n 1) xs -{-# INLINABLE appendR #-} +{-# INLINABLE revAppend #-} -- | Cons each element of the first list to the second one in reverse order (i.e. the last element -- of the first list is the head of the result). -- --- > appendR xs ys === reverse xs ++ ys +-- > revAppend xs ys === reverse xs ++ ys -- --- >>> appendR "abc" "de" +-- >>> revAppend "abc" "de" -- "cbade" -appendR :: forall a. [a] -> [a] -> [a] -appendR = rev where +revAppend :: forall a. [a] -> [a] -> [a] +revAppend = rev where rev :: [a] -> [a] -> [a] rev [] a = a rev (x:xs) a = rev xs (x:a) @@ -263,7 +263,7 @@ appendR = rev where {-# INLINABLE reverse #-} -- | Plutus Tx version of 'Data.List.reverse'. reverse :: [a] -> [a] -reverse l = appendR l [] +reverse l = revAppend l [] {-# INLINABLE zip #-} -- | Plutus Tx version of 'Data.List.zip'. From 7a2ce721bbf8f00818cc00b4fd2ca6bd0c69b66e Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 25 Oct 2023 00:05:41 +0200 Subject: [PATCH 38/40] Fix 'freshenTokenNames' --- plutus-ledger-api/test/Spec/V1/Value.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plutus-ledger-api/test/Spec/V1/Value.hs b/plutus-ledger-api/test/Spec/V1/Value.hs index acabeb57244..422bc740752 100644 --- a/plutus-ledger-api/test/Spec/V1/Value.hs +++ b/plutus-ledger-api/test/Spec/V1/Value.hs @@ -8,6 +8,7 @@ import PlutusLedgerApi.V1.Value import PlutusTx.Numeric qualified as Numeric import Control.Lens +import Data.List (sort) import Test.Tasty import Test.Tasty.QuickCheck @@ -46,11 +47,12 @@ mapSome f xs = do updateInteger :: Integer -> Gen Integer updateInteger i = arbitrary `suchThat` (/= i) --- | Generate new 'TokenName's such that the resulting list is not equal to the given one. +-- | Generate new 'TokenName's such that the resulting list, being sorted, is not equal to the given +-- one, being sorted as well. freshenTokenNames :: [(TokenName, Integer)] -> Gen [(TokenName, Integer)] freshenTokenNames tokens = uniqueNames TokenName (map snd tokens) `suchThat` \tokens' -> - filter ((/= 0) . snd) tokens /= filter ((/= 0) . snd) tokens' + sort (filter ((/= 0) . snd) tokens) /= sort (filter ((/= 0) . snd) tokens') onLists :: Value From dfdd0412e729c5b36181d08e2175ea732c03a560 Mon Sep 17 00:00:00 2001 From: effectfully Date: Wed, 25 Oct 2023 00:58:42 +0200 Subject: [PATCH 39/40] Remove 'QuickCheck' from dependencies --- plutus-core/plutus-core.cabal | 1 - 1 file changed, 1 deletion(-) diff --git a/plutus-core/plutus-core.cabal b/plutus-core/plutus-core.cabal index 71271c3cde8..b617251865f 100644 --- a/plutus-core/plutus-core.cabal +++ b/plutus-core/plutus-core.cabal @@ -365,7 +365,6 @@ test-suite plutus-core-test , mtl , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.15 , prettyprinter - , QuickCheck , serialise , tasty , tasty-golden From c8cf5adb53c86a71cbb2111ec08979a3a8467c07 Mon Sep 17 00:00:00 2001 From: effectfully Date: Fri, 27 Oct 2023 01:34:17 +0200 Subject: [PATCH 40/40] Mention https://github.com/input-output-hk/plutus/issues/5135 --- plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs index 36777e36741..6b67996cb5f 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/Value.hs @@ -404,6 +404,9 @@ in the other, since in that case computing equality of values was expensive and this resource is quite scarce as the size of a program growing beyond what's acceptable by the network can be a real deal breaker, while general performance concerns don't seem to be as pressing + +The algorithm we use here is very similar, if not identical, to @valueEqualsValue4@ from +https://github.com/input-output-hk/plutus/issues/5135 -} unordEqWith :: forall k v. Eq k => (v -> Bool) -> (v -> v -> Bool) -> [(k, v)] -> [(k, v)] -> Bool unordEqWith is0 eqV = goBoth where