From 01986c38c8b95b33ec1c209b5513c79cfded1168 Mon Sep 17 00:00:00 2001 From: Ziyang Liu Date: Wed, 3 Jan 2024 20:26:54 -0800 Subject: [PATCH] Data-backed map for Plutus Tx --- .../Marlowe/Core/V1/Semantics.hs | 29 +- .../Marlowe/Core/V1/Semantics/Types.hs | 4 +- .../Marlowe/Scripts/Semantics.hs | 29 +- ...010104020201030001000204020401.eval.golden | 4 +- ...000101000001000000010000010000.eval.golden | 4 +- ...010101000001000001000000010101.eval.golden | 4 +- ...b7ca0e04093ef8ecce291667a99a4c.eval.golden | 4 +- ...020200000002010200000101010100.eval.golden | 4 +- ...010101020102010001010101000100.eval.golden | 4 +- ...070100050401080304020801030001.eval.golden | 4 +- ...631109559d0e56f44ea8489f57ba97.eval.golden | 4 +- ...3ea36c26b41cd1a1e00d39fda3d6cc.eval.golden | 4 +- ...010101000304030001040404030100.eval.golden | 4 +- ...040301010800080207080704020206.eval.golden | 4 +- ...16370d300f2d28342d0f2f0e182e01.eval.golden | 4 +- ...58f04e2fb910c37d8e2417e9db46e5.eval.golden | 4 +- ...ff37a2f6fe0f3ce842178c16981027.eval.golden | 4 +- ...18a9e09ee8ac424afa33ca923f7954.eval.golden | 4 +- ...9349ba7f4c0a6be5f166fe239bfcae.eval.golden | 4 +- ...52e84e2054e913092cd84ac071b961.eval.golden | 4 +- ...dc77af9426459417a56ec73240f0e0.eval.golden | 4 +- ...06000d0a041003040e0f100e0a0408.eval.golden | 4 +- ...54003077a8473abc0457f18e025960.eval.golden | 4 +- ...08021d081e1b120219081312081e15.eval.golden | 4 +- ...5400cf7fdd7dae62fbba5fc770936d.eval.golden | 4 +- ...7b035af16ab299258adab93be0911a.eval.golden | 4 +- ...0d100f0c080c0c05000d04100c100f.eval.golden | 4 +- ...38230121fbecebee8c039776a88c0c.eval.golden | 4 +- ...090a0e031c071419121f141409031d.eval.golden | 4 +- ...8f5d2839ca7e1b34c7f2afc7ffb58e.eval.golden | 4 +- ...14163435331a6622311f7323433f1c.eval.golden | 4 +- ...c12f930ab4feab3a5064cfb3bc536a.eval.golden | 4 +- ...643a3d605f63772524034f0a4a7632.eval.golden | 4 +- ...a6e740ef509b1cdd423395f010e0ca.eval.golden | 4 +- ...0c59a6bd1604405148e43768c487ef.eval.golden | 4 +- ...0e0e1518332f273f141b23243f2a07.eval.golden | 4 +- ...16366769aad89e03389f5ec4ce26d7.eval.golden | 4 +- ...6d5af52722307a0af72bae87e256dc.eval.golden | 4 +- ...3371e27bb9fff5464301678e809c40.eval.golden | 4 +- ...270b27dc42035addd7ff9f7e0d05e7.eval.golden | 4 +- ...64c3fdaa58a3826c808b5a768c303d.eval.golden | 4 +- ...8445cdd66b29e5ba382be2e02a174a.eval.golden | 4 +- ...571a7c25cb7f766bf49f12dab308be.eval.golden | 4 +- ...6cc25c755a18b1e3274c964ed5ec99.eval.golden | 4 +- ...1425fb8c19556080e124d75bad7bd6.eval.golden | 4 +- ...4e8228c0a0aa50e7c55f35c3ecaa1c.eval.golden | 4 +- ...fc35fb43b78e7de68c1f3519b536bd.eval.golden | 4 +- ...f1c07108e980bd9f820911ad711ff2.eval.golden | 4 +- ...d9da7519353e3da3ef0c564e1eb344.eval.golden | 4 +- ...f8c9dd2d201e8806125e5fbcc081f9.eval.golden | 4 +- ...50937eb562b7748c275f9e40bed596.eval.golden | 4 +- ...5c6ebbe321e873ace8b804363fa82c.eval.golden | 4 +- ...16d95a5a58fd92486bedaae8d9526b.eval.golden | 4 +- ...25acc5b4a74a8cebccdfd853ce63d2.eval.golden | 4 +- ...296f60a5b7c172a6dc286faa7284fa.eval.golden | 4 +- ...0e29bdd5b16c82c6c52cf959092ec4.eval.golden | 4 +- ...c27714276c49c38dfae0a47a561a1e.eval.golden | 4 +- ...83d0b9ad189b7cd74baac232c3b9fc.eval.golden | 4 +- ...9d96e343f23dc481e8ffda13af424f.eval.golden | 4 +- ...19d39787522af4f83f01285991e93c.eval.golden | 4 +- ...c7bf1eafebab5aadf5b73cfb9024ed.eval.golden | 4 +- ...74d6a7c6f3d5ec837c39d29784aade.eval.golden | 4 +- ...301bc329e2d849d5f5a47dddf479ec.eval.golden | 4 +- ...7862ce68aa4abcb438e3c034bd0899.eval.golden | 4 +- ...85ded7c3c81c08cdbd8705829af6e6.eval.golden | 4 +- ...64e9b03c1986647134cfd329ec5139.eval.golden | 4 +- ...9b36785f8858f5cb098e91c159dde9.eval.golden | 4 +- ...ad1b85800b889d5815a0106388e1d7.eval.golden | 4 +- ...73f1edae097b9325c6117a0ff40d3b.eval.golden | 4 +- ...d4bbaae19ab06fdf50cedc26cee68d.eval.golden | 4 +- ...c39da6bdd294fb2c33c3f58e6a8994.eval.golden | 4 +- ...20a39372331678a3b3690312560ce9.eval.golden | 4 +- ...07268e472a569f584cc6b1d8c017e8.eval.golden | 4 +- ...382b458486129efcff18f8912bf302.eval.golden | 4 +- ...fced54eb963df08d322216e27373cb.eval.golden | 4 +- ...4e7364a4247c9247132a927e914753.eval.golden | 4 +- ...6f378d3891e5cb3e353b30d4f3fb10.eval.golden | 4 +- ...7d2783eeef76f6d59beb2360da6e90.eval.golden | 4 +- ...e08cbf4400b340b8707c14b34317cd.eval.golden | 4 +- ...2e7e4934fec1b44e2d06eb34f36eb8.eval.golden | 4 +- ...18fe4a266f018bcea0c78a9085a271.eval.golden | 4 +- ...5cbc3437957e74a8862281a700700b.eval.golden | 4 +- ...3935e73a75c856e326dbcf6672f3bf.eval.golden | 4 +- ...42f10c8e6e513f872327fa895bfc7e.eval.golden | 4 +- ...1928837c6e7563d8283cce67ce2e02.eval.golden | 4 +- ...794815acbc2ec74c2c2c42ba272e4d.eval.golden | 4 +- ...75526dea6026b4552b88d2cc729716.eval.golden | 4 +- ...1fa8b2a6e9cba5012dbe4978065832.eval.golden | 4 +- ...2066e1d4a6627c21955944ac9bd528.eval.golden | 4 +- ...a43e4b42cd3573ac2d8fcb29115997.eval.golden | 4 +- ...fea896e1009dd396610a90e3943032.eval.golden | 4 +- ...54e9af7e10ffe95c911a9ef97e77bd.eval.golden | 4 +- ...f0e6925b9b2fabbc9df7cde65af62e.eval.golden | 4 +- ...f02f37edc0c235f34ef01cb12604f6.eval.golden | 4 +- ...adba534f7e1a517d75410028fa0d6c.eval.golden | 4 +- ...5fa52994747526ffd2a4f4f84dd58e.eval.golden | 4 +- ...0b1daf6cda3b8a4bcfd6deeb5b4c53.eval.golden | 4 +- ...1abf043c6a0ea83bfea9ec6a0f08d8.eval.golden | 4 +- ...9d9751d75d56d5e14efa5bbed981df.eval.golden | 4 +- ...a1f39034c0f52dee2e5634ef66e747.eval.golden | 4 +- ...dd28965a4efbe510a89b077ff9417f.eval.golden | 4 +- ...45a94d5e1a5bda1555c45ddb059f82.eval.golden | 4 +- ...2ecbfcd19b284f60255718e4ec7548.eval.golden | 4 +- .../role-payout/9.6/role-payout.size.golden | 2 +- ...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/9.6/semantics.size.golden | 2 +- plutus-ledger-api/plutus-ledger-api.cabal | 1 + .../src/PlutusLedgerApi/Data/V1/Value.hs | 134 ++++++ plutus-tx-plugin/plutus-tx-plugin.cabal | 1 + .../test/Budget/9.6/map1-budget.eval.golden | 2 + .../test/Budget/9.6/map1.eval.golden | 8 + .../test/Budget/9.6/map1.pir.golden | 410 ++++++++++++++++ .../test/Budget/9.6/map1.uplc.golden | 442 ++++++++++++++++++ .../test/Budget/9.6/map2-budget.eval.golden | 2 + .../test/Budget/9.6/map2.eval.golden | 27 ++ .../test/Budget/9.6/map2.pir.golden | 343 ++++++++++++++ .../test/Budget/9.6/map2.uplc.golden | 288 ++++++++++++ plutus-tx-plugin/test/Budget/Spec.hs | 2 +- plutus-tx-plugin/test/Map/Spec.hs | 94 ++++ plutus-tx-plugin/test/Spec.hs | 2 + .../20240103_195929_unsafeFixIO_map.md | 4 + plutus-tx/plutus-tx.cabal | 1 + plutus-tx/src/PlutusTx/AssocMap.hs | 3 +- plutus-tx/src/PlutusTx/Builtins.hs | 5 + plutus-tx/src/PlutusTx/DataMap.hs | 355 ++++++++++++++ plutus-tx/src/PlutusTx/IsData/Instances.hs | 2 + 225 files changed, 2551 insertions(+), 441 deletions(-) create mode 100644 plutus-ledger-api/src/PlutusLedgerApi/Data/V1/Value.hs create mode 100644 plutus-tx-plugin/test/Budget/9.6/map1-budget.eval.golden create mode 100644 plutus-tx-plugin/test/Budget/9.6/map1.eval.golden create mode 100644 plutus-tx-plugin/test/Budget/9.6/map1.pir.golden create mode 100644 plutus-tx-plugin/test/Budget/9.6/map1.uplc.golden create mode 100644 plutus-tx-plugin/test/Budget/9.6/map2-budget.eval.golden create mode 100644 plutus-tx-plugin/test/Budget/9.6/map2.eval.golden create mode 100644 plutus-tx-plugin/test/Budget/9.6/map2.pir.golden create mode 100644 plutus-tx-plugin/test/Budget/9.6/map2.uplc.golden create mode 100644 plutus-tx-plugin/test/Map/Spec.hs create mode 100644 plutus-tx/changelog.d/20240103_195929_unsafeFixIO_map.md create mode 100644 plutus-tx/src/PlutusTx/DataMap.hs diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics.hs index 221603c2b35..09dda2791a7 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics.hs @@ -113,8 +113,8 @@ import PlutusTx.Prelude (AdditiveGroup ((-)), AdditiveSemigroup ((+)), Bool (..) not, otherwise, reverse, snd, ($), (&&), (++), (||)) import PlutusLedgerApi.V2 qualified as Val -import PlutusTx.AssocMap qualified as Map import PlutusTx.Builtins qualified as Builtins +import PlutusTx.DataMap qualified as Map import Prelude qualified as Haskell @@ -322,19 +322,20 @@ evalObservation env state obs = let -- | Pick the first account with money in it. refundOne :: Accounts -> Maybe ((Party, Token, Integer), Accounts) -refundOne accounts = case Map.toList accounts of - [] -> Nothing - -- SCP-5126: The return value of this function differs from - -- Isabelle semantics in that it returns the least-recently - -- added account-token combination rather than the first - -- lexicographically ordered one. Also, the sequence - -- `Map.fromList . tail . Map.toList` preserves the - -- invariants of order and non-duplication. - ((accId, token), balance) : rest -> - if balance > 0 - then Just ((accId, token, balance), Map.fromList rest) - else refundOne (Map.fromList rest) - +refundOne accounts = + if Map.null accounts + then Nothing + else + -- SCP-5126: The return value of this function differs from + -- Isabelle semantics in that it returns the least-recently + -- added account-token combination rather than the first + -- lexicographically ordered one. Also, the sequence + -- `Map.fromList . tail . Map.toList` preserves the + -- invariants of order and non-duplication. + let (((accId, token), balance), rest) = Map.unsafeUncons accounts + in if balance > 0 + then Just ((accId, token, balance), rest) + else refundOne rest -- | Obtains the amount of money available an account. moneyInAccount :: AccountId -> Token -> Accounts -> Integer diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs index b442ad2d2cc..e6f9d1478b6 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Core/V1/Semantics/Types.hs @@ -43,7 +43,7 @@ import GHC.Generics (Generic) import PlutusBenchmark.Marlowe.Core.V1.Semantics.Types.Address (Network) import PlutusLedgerApi.V2 (CurrencySymbol, POSIXTime (..), TokenName) import PlutusTx.AsData (asData) -import PlutusTx.AssocMap (Map) +import PlutusTx.DataMap (Map) import PlutusTx.IsData (FromData, ToData, UnsafeFromData, makeIsDataIndexed, unstableMakeIsData) import PlutusTx.Lift (makeLift) import PlutusTx.Prelude (Bool (..), BuiltinByteString, Eq (..), Integer, Ord ((<=), (>=)), any, @@ -52,7 +52,7 @@ import PlutusTx.Prelude (Bool (..), BuiltinByteString, Eq (..), Integer, Ord ((< import PlutusLedgerApi.V1.Value qualified as Val import PlutusLedgerApi.V2 qualified as Ledger (Address (..), Credential (..), PubKeyHash (..), ScriptHash (..), StakingCredential (..)) -import PlutusTx.AssocMap qualified as Map +import PlutusTx.DataMap qualified as Map import Prelude qualified as Haskell deriving stock instance Data POSIXTime diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs index fcf33a09fc6..6e12296c4a0 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs @@ -68,10 +68,9 @@ import PlutusTx.Plugin () import PlutusTx.Prelude as PlutusTxPrelude (AdditiveGroup ((-)), AdditiveMonoid (zero), AdditiveSemigroup ((+)), Bool (..), BuiltinByteString, BuiltinData, BuiltinString, Enum (fromEnum), Eq (..), - Functor (fmap), Integer, Maybe (..), Ord ((>)), - Semigroup ((<>)), all, any, check, elem, filter, find, - foldMap, null, otherwise, snd, toBuiltin, ($), (&&), - (.), (/=), (||)) + Functor (fmap), Maybe (..), Ord ((>)), Semigroup ((<>)), + all, any, check, filter, find, foldMap, null, otherwise, + snd, toBuiltin, ($), (&&), (.), (/=), (||)) import Cardano.Crypto.Hash qualified as Hash import Data.ByteString qualified as BS @@ -82,6 +81,7 @@ import PlutusLedgerApi.V1.Value qualified as Val import PlutusLedgerApi.V2 qualified as Ledger (Address (Address)) import PlutusTx qualified import PlutusTx.AssocMap qualified as AssocMap +import PlutusTx.DataMap qualified as Map import PlutusTx.Trace (traceError, traceIfFalse) import Prelude qualified as Haskell @@ -265,29 +265,16 @@ mkMarloweValidator -- Check a state for the correct value, positive accounts, and no duplicates. checkState :: BuiltinString -> Val.Value -> State -> Bool checkState tag expected State{..} = - let - positiveBalance :: (a, Integer) -> Bool - positiveBalance (_, balance) = balance > 0 - noDuplicates :: Eq k => AssocMap.Map k v -> Bool - noDuplicates am = - let - test [] = True -- An empty list has no duplicates. - test (x : xs) -- Look for a duplicate of the head in the tail. - | elem x xs = False -- A duplicate is present. - | otherwise = test xs -- Continue searching for a duplicate. - in - test $ AssocMap.keys am - in -- [Marlowe-Cardano Specification: "Constraint 5. Input value from script".] -- and/or -- [Marlowe-Cardano Specification: "Constraint 18. Final balance."] traceIfFalse ("v" <> tag) (totalBalance accounts == expected) -- [Marlowe-Cardano Specification: "Constraint 13. Positive balances".] - && traceIfFalse ("b" <> tag) (all positiveBalance $ AssocMap.toList accounts) + && traceIfFalse ("b" <> tag) (Map.all (> 0) accounts) -- [Marlowe-Cardano Specification: "Constraint 19. No duplicates".] - && traceIfFalse ("ea" <> tag) (noDuplicates accounts) - && traceIfFalse ("ec" <> tag) (noDuplicates choices) - && traceIfFalse ("eb" <> tag) (noDuplicates boundValues) + && traceIfFalse ("ea" <> tag) (Map.noDuplicateKeys accounts) + && traceIfFalse ("ec" <> tag) (Map.noDuplicateKeys choices) + && traceIfFalse ("eb" <> tag) (Map.noDuplicateKeys boundValues) -- Look up the Datum hash for specific data. findDatumHash' :: PlutusTx.ToData o => o -> Maybe DatumHash diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.eval.golden index 0bcd0fa3a2b..664802fb11e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.eval.golden @@ -1,2 +1,2 @@ -({cpu: 215190496 -| mem: 740280}) \ No newline at end of file +({cpu: 216800496 +| mem: 747280}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.eval.golden index 4e53e811801..8997d2824bf 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.eval.golden @@ -1,2 +1,2 @@ -({cpu: 318563258 -| mem: 1148984}) \ No newline at end of file +({cpu: 321921258 +| mem: 1163584}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.eval.golden index 3992fe7c118..e5ac354dff4 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.eval.golden @@ -1,2 +1,2 @@ -({cpu: 233064631 -| mem: 813142}) \ No newline at end of file +({cpu: 235778631 +| mem: 824942}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.eval.golden index 0742449755d..f5ae8138279 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 193813161 -| mem: 665714}) \ No newline at end of file +({cpu: 195607161 +| mem: 673514}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.eval.golden index 7be6b2dadd5..2a07bce271a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.eval.golden @@ -1,2 +1,2 @@ -({cpu: 215630084 -| mem: 741820}) \ No newline at end of file +({cpu: 217332084 +| mem: 749220}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.eval.golden index b13c109aebf..78d37a0f7ef 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.eval.golden @@ -1,2 +1,2 @@ -({cpu: 198410174 -| mem: 675264}) \ No newline at end of file +({cpu: 199606174 +| mem: 680464}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.eval.golden index f9b063de1e1..f375b7259f0 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196916597 -| mem: 670062}) \ No newline at end of file +({cpu: 198112597 +| mem: 675262}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.eval.golden index b3a2fa5eea1..5aa557dbcd9 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.eval.golden @@ -1,2 +1,2 @@ -({cpu: 242350272 -| mem: 842458}) \ No newline at end of file +({cpu: 244512272 +| mem: 851858}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.eval.golden index 8bf896954d9..7a4dc1186c1 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 231983448 -| mem: 807632}) \ No newline at end of file +({cpu: 234099448 +| mem: 816832}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.eval.golden index a77f499e23f..090c41b0714 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.eval.golden @@ -1,2 +1,2 @@ -({cpu: 212366629 -| mem: 731700}) \ No newline at end of file +({cpu: 214114629 +| mem: 739300}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.eval.golden index 213223b9d73..24e847b2ea5 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.eval.golden @@ -1,2 +1,2 @@ -({cpu: 228876366 -| mem: 790180}) \ No newline at end of file +({cpu: 230486366 +| mem: 797180}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.eval.golden index 2193ff60420..88230498511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.eval.golden @@ -1,2 +1,2 @@ -({cpu: 237522811 -| mem: 833156}) \ No newline at end of file +({cpu: 239684811 +| mem: 842556}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.eval.golden index 983dfb9c7dc..4b80e454d0c 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.eval.golden @@ -1,2 +1,2 @@ -({cpu: 271106152 -| mem: 953580}) \ No newline at end of file +({cpu: 274464152 +| mem: 968180}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.eval.golden index 6f462e93acb..8b6cabcacce 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.eval.golden @@ -1,2 +1,2 @@ -({cpu: 194025187 -| mem: 663336}) \ No newline at end of file +({cpu: 195267187 +| mem: 668736}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.eval.golden index 8291fc0edbd..616ddf0c0e3 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.eval.golden @@ -1,2 +1,2 @@ -({cpu: 211186829 -| mem: 726696}) \ No newline at end of file +({cpu: 213348829 +| mem: 736096}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.eval.golden index 3ca65a9a187..2514acabdaf 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.eval.golden @@ -1,2 +1,2 @@ -({cpu: 195543413 -| mem: 663662}) \ No newline at end of file +({cpu: 197337413 +| mem: 671462}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.eval.golden index c438e7c8be0..b7caeca68cc 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.eval.golden @@ -1,2 +1,2 @@ -({cpu: 231957108 -| mem: 816128}) \ No newline at end of file +({cpu: 233659108 +| mem: 823528}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.eval.golden index 626cb7c2eb9..bb7133ca6a8 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.eval.golden @@ -1,2 +1,2 @@ -({cpu: 208852885 -| mem: 721874}) \ No newline at end of file +({cpu: 211152885 +| mem: 731874}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.eval.golden index 83a3255afc8..139ac811bc1 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.eval.golden @@ -1,2 +1,2 @@ -({cpu: 210080867 -| mem: 737000}) \ No newline at end of file +({cpu: 212334867 +| mem: 746800}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.eval.golden index ed0ae21f8ae..8f3ea15609f 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.eval.golden @@ -1,2 +1,2 @@ -({cpu: 236972199 -| mem: 830902}) \ No newline at end of file +({cpu: 240100199 +| mem: 844502}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.eval.golden index b7c69c0e363..b48a24e32ba 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197071500 -| mem: 677660}) \ No newline at end of file +({cpu: 198359500 +| mem: 683260}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.eval.golden index 2eb37bc75aa..71e0d5ed184 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 221821467 -| mem: 767608}) \ No newline at end of file +({cpu: 223983467 +| mem: 777008}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.eval.golden index 0bcd0fa3a2b..664802fb11e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 215190496 -| mem: 740280}) \ No newline at end of file +({cpu: 216800496 +| mem: 747280}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.eval.golden index c4c3f9d3e82..891d1268ffa 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 229625754 -| mem: 799928}) \ No newline at end of file +({cpu: 231235754 +| mem: 806928}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.eval.golden index 007dd69e7d9..02e06df07ff 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 201406281 -| mem: 686966}) \ No newline at end of file +({cpu: 203108281 +| mem: 694366}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.eval.golden index 98266a57f2e..b55d85f5b09 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 198198210 -| mem: 677642}) \ No newline at end of file +({cpu: 199946210 +| mem: 685242}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.eval.golden index 9a9896e1d21..a3c451926ca 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192531548 -| mem: 658134}) \ No newline at end of file +({cpu: 193773548 +| mem: 663534}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.eval.golden index 20ac291ba82..df9b20d1729 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 218883854 -| mem: 752828}) \ No newline at end of file +({cpu: 220585854 +| mem: 760228}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.eval.golden index 928617f8c0c..007c6fa1788 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.eval.golden @@ -1,2 +1,2 @@ -({cpu: 206252520 -| mem: 706212}) \ No newline at end of file +({cpu: 207448520 +| mem: 711412}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.eval.golden index 175b4eff4a7..f2140cbffaf 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.eval.golden @@ -1,2 +1,2 @@ -({cpu: 223621194 -| mem: 779702}) \ No newline at end of file +({cpu: 225783194 +| mem: 789102}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.eval.golden index 007dd69e7d9..02e06df07ff 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.eval.golden @@ -1,2 +1,2 @@ -({cpu: 201406281 -| mem: 686966}) \ No newline at end of file +({cpu: 203108281 +| mem: 694366}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.eval.golden index 538b50223b6..e54112b506d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.eval.golden @@ -1,2 +1,2 @@ -({cpu: 188734988 -| mem: 647508}) \ No newline at end of file +({cpu: 190022988 +| mem: 653108}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.eval.golden index 78c1d3f235a..d95e41b3f28 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 211833524 -| mem: 731194}) \ No newline at end of file +({cpu: 213581524 +| mem: 738794}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.eval.golden index 046ce65577f..b227527bcbb 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 194025125 -| mem: 663336}) \ No newline at end of file +({cpu: 195267125 +| mem: 668736}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.eval.golden index 046ce65577f..b227527bcbb 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.eval.golden @@ -1,2 +1,2 @@ -({cpu: 194025125 -| mem: 663336}) \ No newline at end of file +({cpu: 195267125 +| mem: 668736}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.eval.golden index 00505aebbcd..b63cc49be02 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 233147796 -| mem: 807900}) \ No newline at end of file +({cpu: 235171796 +| mem: 816700}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.eval.golden index 4b11cf26dbc..6b16c8e1a94 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 204935205 -| mem: 705448}) \ No newline at end of file +({cpu: 206683205 +| mem: 713048}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.eval.golden index 854cd16e999..4e993c3c7d9 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.eval.golden @@ -1,2 +1,2 @@ -({cpu: 232567113 -| mem: 815654}) \ No newline at end of file +({cpu: 235189113 +| mem: 827054}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.eval.golden index 0bcd0fa3a2b..664802fb11e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.eval.golden @@ -1,2 +1,2 @@ -({cpu: 215190496 -| mem: 740280}) \ No newline at end of file +({cpu: 216800496 +| mem: 747280}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.eval.golden index 2a69bc42c3d..cfed61a8e0d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.eval.golden @@ -1,2 +1,2 @@ -({cpu: 240291811 -| mem: 832034}) \ No newline at end of file +({cpu: 243327811 +| mem: 845234}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.eval.golden index d15a312dce7..4acc5579a7e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.eval.golden @@ -1,2 +1,2 @@ -({cpu: 208036964 -| mem: 720568}) \ No newline at end of file +({cpu: 209830964 +| mem: 728368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.eval.golden index 2a1bfd1219b..dcdfc6393ac 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 260312640 -| mem: 920068}) \ No newline at end of file +({cpu: 263348640 +| mem: 933268}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.eval.golden index 58eced362f6..7176c80e0ce 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.eval.golden @@ -1,2 +1,2 @@ -({cpu: 251578853 -| mem: 885456}) \ No newline at end of file +({cpu: 253740853 +| mem: 894856}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.eval.golden index 3f9c21f096c..68ede75dace 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.eval.golden @@ -1,2 +1,2 @@ -({cpu: 207597376 -| mem: 719028}) \ No newline at end of file +({cpu: 209299376 +| mem: 726428}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.eval.golden index ee06225dfba..aa8f57b841c 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 286673345 -| mem: 1028492}) \ No newline at end of file +({cpu: 289663345 +| mem: 1041492}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.eval.golden index c438e7c8be0..b7caeca68cc 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 231957108 -| mem: 816128}) \ No newline at end of file +({cpu: 233659108 +| mem: 823528}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.eval.golden index d15a312dce7..4acc5579a7e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.eval.golden @@ -1,2 +1,2 @@ -({cpu: 208036964 -| mem: 720568}) \ No newline at end of file +({cpu: 209830964 +| mem: 728368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.eval.golden index 405fa06a55a..cd6d81be2e0 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.eval.golden @@ -1,2 +1,2 @@ -({cpu: 239672827 -| mem: 838084}) \ No newline at end of file +({cpu: 242248827 +| mem: 849284}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.eval.golden index f85900bad28..3bece337156 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 219701342 -| mem: 762476}) \ No newline at end of file +({cpu: 221311342 +| mem: 769476}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.eval.golden index 9a9896e1d21..a3c451926ca 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192531548 -| mem: 658134}) \ No newline at end of file +({cpu: 193773548 +| mem: 663534}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.eval.golden index 3ca65a9a187..2514acabdaf 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 195543413 -| mem: 663662}) \ No newline at end of file +({cpu: 197337413 +| mem: 671462}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.eval.golden index 08d26c3c803..b7b9e7f5011 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.eval.golden @@ -1,2 +1,2 @@ -({cpu: 234696761 -| mem: 829842}) \ No newline at end of file +({cpu: 237410761 +| mem: 841642}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.eval.golden index 9c30c0e8b92..389960a9930 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.eval.golden @@ -1,2 +1,2 @@ -({cpu: 231809122 -| mem: 810296}) \ No newline at end of file +({cpu: 233925122 +| mem: 819496}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.eval.golden index 8a2b5cd500f..4d5aca0b52a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 243197868 -| mem: 862792}) \ No newline at end of file +({cpu: 245819868 +| mem: 874192}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.eval.golden index 24c0bd08b39..669761ba904 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.eval.golden @@ -1,2 +1,2 @@ -({cpu: 215904782 -| mem: 751850}) \ No newline at end of file +({cpu: 217560782 +| mem: 759050}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.eval.golden index 6191a6d0d4f..66217657491 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.eval.golden @@ -1,2 +1,2 @@ -({cpu: 202455960 -| mem: 695586}) \ No newline at end of file +({cpu: 203697960 +| mem: 700986}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.eval.golden index 3e028ad3b74..c1888d39706 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.eval.golden @@ -1,2 +1,2 @@ -({cpu: 218916647 -| mem: 757378}) \ No newline at end of file +({cpu: 221124647 +| mem: 766978}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.eval.golden index 9dcd9412391..a508eacc2fe 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 223662727 -| mem: 772690}) \ No newline at end of file +({cpu: 226284727 +| mem: 784090}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.eval.golden index e307c8efce8..7e5f2eac112 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 192319770 -| mem: 660512}) \ No newline at end of file +({cpu: 194113770 +| mem: 668312}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.eval.golden index 08bc306ffa0..a557076c6aa 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.eval.golden @@ -1,2 +1,2 @@ -({cpu: 245405868 -| mem: 872392}) \ No newline at end of file +({cpu: 247521868 +| mem: 881592}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.eval.golden index d0d2fef80d1..34eb7c49d75 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.eval.golden @@ -1,2 +1,2 @@ -({cpu: 232559307 -| mem: 806598}) \ No newline at end of file +({cpu: 234583307 +| mem: 815398}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.eval.golden index a3378385138..294fc0329f8 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.eval.golden @@ -1,2 +1,2 @@ -({cpu: 267307346 -| mem: 935364}) \ No newline at end of file +({cpu: 269837346 +| mem: 946364}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.eval.golden index 7d41ecd9215..c5eb835db22 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.eval.golden @@ -1,2 +1,2 @@ -({cpu: 298824488 -| mem: 1070278}) \ No newline at end of file +({cpu: 300894488 +| mem: 1079278}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.eval.golden index ef00b661876..a750753dcc6 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.eval.golden @@ -1,2 +1,2 @@ -({cpu: 224966187 -| mem: 785346}) \ No newline at end of file +({cpu: 227082187 +| mem: 794546}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.eval.golden index c4c3f9d3e82..891d1268ffa 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.eval.golden @@ -1,2 +1,2 @@ -({cpu: 229625754 -| mem: 799928}) \ No newline at end of file +({cpu: 231235754 +| mem: 806928}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.eval.golden index b13c109aebf..78d37a0f7ef 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.eval.golden @@ -1,2 +1,2 @@ -({cpu: 198410174 -| mem: 675264}) \ No newline at end of file +({cpu: 199606174 +| mem: 680464}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.eval.golden index 5d15e14635e..69a64e07186 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 212108222 -| mem: 741224}) \ No newline at end of file +({cpu: 213810222 +| mem: 748624}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.eval.golden index e4626b863be..bb2e7804f15 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.eval.golden @@ -1,2 +1,2 @@ -({cpu: 214978532 -| mem: 742658}) \ No newline at end of file +({cpu: 217140532 +| mem: 752058}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.eval.golden index 0d6436dc6e4..e6b14fa509a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.eval.golden @@ -1,2 +1,2 @@ -({cpu: 250971633 -| mem: 889420}) \ No newline at end of file +({cpu: 253547633 +| mem: 900620}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.eval.golden index 3ca65a9a187..2514acabdaf 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.eval.golden @@ -1,2 +1,2 @@ -({cpu: 195543413 -| mem: 663662}) \ No newline at end of file +({cpu: 197337413 +| mem: 671462}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.eval.golden index b13c109aebf..78d37a0f7ef 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.eval.golden @@ -1,2 +1,2 @@ -({cpu: 198410174 -| mem: 675264}) \ No newline at end of file +({cpu: 199606174 +| mem: 680464}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.eval.golden index 711318c18d0..be6ef855302 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.eval.golden @@ -1,2 +1,2 @@ -({cpu: 226315278 -| mem: 779080}) \ No newline at end of file +({cpu: 228017278 +| mem: 786480}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.eval.golden index 898c89de1ea..7aed10b850b 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.eval.golden @@ -1,2 +1,2 @@ -({cpu: 227025482 -| mem: 788228}) \ No newline at end of file +({cpu: 229233482 +| mem: 797828}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.eval.golden index ef00b661876..a750753dcc6 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.eval.golden @@ -1,2 +1,2 @@ -({cpu: 224966187 -| mem: 785346}) \ No newline at end of file +({cpu: 227082187 +| mem: 794546}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.eval.golden index baf09a5ed00..4f673bfaa79 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.eval.golden @@ -1,2 +1,2 @@ -({cpu: 207559321 -| mem: 716070}) \ No newline at end of file +({cpu: 209767321 +| mem: 725670}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.eval.golden index 0707bbdd0db..0e730b54103 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 204664620 -| mem: 698912}) \ No newline at end of file +({cpu: 205860620 +| mem: 704112}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.eval.golden index afc80da9b2c..b2c7e6745f3 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.eval.golden @@ -1,2 +1,2 @@ -({cpu: 205253109 -| mem: 700214}) \ No newline at end of file +({cpu: 206449109 +| mem: 705414}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.eval.golden index 4ae479fdbdb..963e37a9f27 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.eval.golden @@ -1,2 +1,2 @@ -({cpu: 226101344 -| mem: 781116}) \ No newline at end of file +({cpu: 227297344 +| mem: 786316}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.eval.golden index c4c3f9d3e82..891d1268ffa 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.eval.golden @@ -1,2 +1,2 @@ -({cpu: 229625754 -| mem: 799928}) \ No newline at end of file +({cpu: 231235754 +| mem: 806928}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.eval.golden index a30c9aec79d..6bf6d497dae 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.eval.golden @@ -1,2 +1,2 @@ -({cpu: 196328108 -| mem: 668760}) \ No newline at end of file +({cpu: 197524108 +| mem: 673960}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.eval.golden index 046ce65577f..b227527bcbb 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.eval.golden @@ -1,2 +1,2 @@ -({cpu: 194025125 -| mem: 663336}) \ No newline at end of file +({cpu: 195267125 +| mem: 668736}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.eval.golden index 8f470f5e669..7fa67245140 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.eval.golden @@ -1,2 +1,2 @@ -({cpu: 218775092 -| mem: 753284}) \ No newline at end of file +({cpu: 220891092 +| mem: 762484}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.eval.golden index 016aa727481..0137ae6820a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.eval.golden @@ -1,2 +1,2 @@ -({cpu: 197821685 -| mem: 673962}) \ No newline at end of file +({cpu: 199017685 +| mem: 679162}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.eval.golden index 928617f8c0c..007c6fa1788 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.eval.golden @@ -1,2 +1,2 @@ -({cpu: 206252520 -| mem: 706212}) \ No newline at end of file +({cpu: 207448520 +| mem: 711412}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.eval.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.eval.golden index 3f1f17655f1..dc4b7ee03e6 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.eval.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.eval.golden @@ -1,2 +1,2 @@ -({cpu: 243134948 -| mem: 850384}) \ No newline at end of file +({cpu: 245250948 +| mem: 859584}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/role-payout.size.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/role-payout.size.golden index 2c028237fd8..48d70c72494 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/role-payout.size.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/role-payout.size.golden @@ -1 +1 @@ -2741 \ No newline at end of file +2769 \ No newline at end of file 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 e5348c52ae1..836e9a25d5a 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: 380649073 -| mem: 1362575}) \ No newline at end of file +({cpu: 335455685 +| mem: 1195046}) \ 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 ef9b320c6b8..70dfb0ac501 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: 519978055 -| mem: 1821088}) \ No newline at end of file +({cpu: 445367823 +| mem: 1534609}) \ 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 6b54725145b..37d41289267 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: 1287822389 -| mem: 4797386}) \ No newline at end of file +({cpu: 1185875460 +| mem: 4405107}) \ 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 aadb85d6ee3..f9c4e820282 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: 938538384 -| mem: 3318309}) \ No newline at end of file +({cpu: 789713900 +| mem: 2761728}) \ 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 7eaa0f38708..fb06eb2da65 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: 821932243 -| mem: 2388770}) \ No newline at end of file +({cpu: 738239445 +| mem: 2057071}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 7a40c8b3014..baeca1bc5e4 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: 963701230 -| mem: 3508428}) \ No newline at end of file +({cpu: 839585459 +| mem: 3025911}) \ 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 e0af4ef0298..ccc287f1fd5 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: 873661939 -| mem: 3135281}) \ No newline at end of file +({cpu: 742664565 +| mem: 2673973}) \ 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 4776c1d29cb..cbfba8e5812 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: 880121899 -| mem: 3149631}) \ No newline at end of file +({cpu: 719433287 +| mem: 2548348}) \ 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 9e0c86f942d..22b6cc880f9 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: 1273704981 -| mem: 4358113}) \ No newline at end of file +({cpu: 817788198 +| mem: 2761379}) \ 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 98a84eb6160..f0d7923ad1b 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: 1413845462 -| mem: 4721874}) \ No newline at end of file +({cpu: 878083316 +| mem: 2609383}) \ 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 49878677bec..24b95cf8ef2 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: 1149814881 -| mem: 4088327}) \ No newline at end of file +({cpu: 1008716070 +| mem: 3578616}) \ 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 ad01300d6d4..042a0f351c6 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: 1284089899 -| mem: 4558999}) \ No newline at end of file +({cpu: 1030392455 +| mem: 3682165}) \ 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 9c4899bb2f3..b1935bb28f4 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: 1675227064 -| mem: 6033056}) \ No newline at end of file +({cpu: 1430783159 +| mem: 5147113}) \ 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 275d608f760..0804fe7b91d 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: 547185391 -| mem: 1972559}) \ No newline at end of file +({cpu: 470263156 +| mem: 1695735}) \ 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 add32a3f111..f4b52c2f6aa 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: 903671184 -| mem: 3242027}) \ No newline at end of file +({cpu: 754846700 +| mem: 2685446}) \ 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 ef3ff8c307f..1ca15784d23 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: 591361557 -| mem: 2148915}) \ No newline at end of file +({cpu: 493119304 +| mem: 1795535}) \ 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 4345d4052ab..6cde62357bc 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: 855483023 -| mem: 3058193}) \ No newline at end of file +({cpu: 770259368 +| mem: 2746260}) \ 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 8cee4b6ab20..689409b1594 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: 358323609 -| mem: 1290535}) \ No newline at end of file +({cpu: 313130221 +| mem: 1123006}) \ 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 0e1bd3510e4..72320d7422a 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: 1129387999 -| mem: 4111758}) \ No newline at end of file +({cpu: 1042454715 +| mem: 3749545}) \ 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 99d0fce81ed..42a1ddd44b0 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: 895028709 -| mem: 3146077}) \ No newline at end of file +({cpu: 734340097 +| mem: 2544794}) \ 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 4bd353b8b02..767bef0a654 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: 358348781 -| mem: 1290535}) \ No newline at end of file +({cpu: 313155393 +| mem: 1123006}) \ 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 d7e1ce00821..30d6a44c58e 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: 685726087 -| mem: 1321998}) \ No newline at end of file +({cpu: 627129185 +| mem: 1096059}) \ 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 8a9c2b6e0cf..d132382219c 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: 2101319886 -| mem: 1704778}) \ No newline at end of file +({cpu: 2051790969 +| mem: 1505797}) \ 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 3488f5d477c..e7f5e98feb7 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: 451577627 -| mem: 1664532}) \ No newline at end of file +({cpu: 405567048 +| mem: 1481807}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 0a079c2f3f8..988e950d1c1 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: 686513033 -| mem: 2539880}) \ No newline at end of file +({cpu: 633678951 +| mem: 2341147}) \ 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 404828c19c7..df3ed320dcd 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: 1126510862 -| mem: 1710098}) \ No newline at end of file +({cpu: 1068320363 +| mem: 1478149}) \ 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 6a2e8f166fe..f284e52fc3b 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: 995915680 -| mem: 3240224}) \ No newline at end of file +({cpu: 741312789 +| mem: 2274949}) \ 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 ec4bfdd6c75..7113e7ccc88 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: 885717679 -| mem: 3177647}) \ No newline at end of file +({cpu: 754720305 +| mem: 2716339}) \ 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 581b152f1ad..e6fe88a8b59 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: 915740490 -| mem: 3293538}) \ No newline at end of file +({cpu: 819562115 +| mem: 2922565}) \ 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 ec674a4add3..df6e3051bca 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: 1425599110 -| mem: 5255536}) \ No newline at end of file +({cpu: 1300056278 +| mem: 4774125}) \ 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 8cee4b6ab20..689409b1594 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: 358323609 -| mem: 1290535}) \ No newline at end of file +({cpu: 313130221 +| mem: 1123006}) \ 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 914cccde383..b57a538c4e8 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: 550774131 -| mem: 2002315}) \ No newline at end of file +({cpu: 473667896 +| mem: 1724691}) \ 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 c4cd838e7ba..d4463d52eda 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: 767665998 -| mem: 2842112}) \ No newline at end of file +({cpu: 692195334 +| mem: 2553165}) \ 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 434f907415b..90732f9d0c3 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: 918478797 -| mem: 3323814}) \ No newline at end of file +({cpu: 814466208 +| mem: 2928455}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 f57bf9b0c95..5a82135b26e 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: 978620139 -| mem: 3469170}) \ No newline at end of file +({cpu: 774496667 +| mem: 2707553}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 76a757f80ed..d398da0a1aa 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: 1151229252 -| mem: 4124321}) \ No newline at end of file +({cpu: 1012558437 +| mem: 3633941}) \ 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 19a1589074d..2eb347f2e24 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: 789571238 -| mem: 2846393}) \ No newline at end of file +({cpu: 673539978 +| mem: 2434977}) \ 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 989f29e19bf..42e8b999c6d 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: 476706264 -| mem: 1694868}) \ No newline at end of file +({cpu: 423148388 +| mem: 1491405}) \ 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 4d598250510..45feefed950 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: 436054837 -| mem: 1550625}) \ No newline at end of file +({cpu: 323689950 +| mem: 1155816}) \ 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 f16fa2a02e2..bf3028c114b 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: 447330533 -| mem: 1585417}) \ No newline at end of file +({cpu: 326638315 +| mem: 1160974}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 8dab4737329..0b347996504 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: 979539875 -| mem: 3638816}) \ No newline at end of file +({cpu: 912733250 +| mem: 3364857}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 e69375c62a8..2e470419346 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: 562187659 -| mem: 2025943}) \ No newline at end of file +({cpu: 484667424 +| mem: 1746519}) \ 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 d478ff2afab..5339f4e9912 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: 1233601424 -| mem: 4311985}) \ No newline at end of file +({cpu: 939671620 +| mem: 3278891}) \ 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 665da6707d6..4311ed059c8 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: 1097008039 -| mem: 3825127}) \ No newline at end of file +({cpu: 908593679 +| mem: 3169714}) \ 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 a74a065ee5d..a5d42c68efd 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: 598535384 -| mem: 2131617}) \ No newline at end of file +({cpu: 514986899 +| mem: 1828658}) \ 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 8cee4b6ab20..689409b1594 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: 358323609 -| mem: 1290535}) \ No newline at end of file +({cpu: 313130221 +| mem: 1123006}) \ 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 420e82143a3..4b3e95310a7 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: 928411134 -| mem: 3394594}) \ No newline at end of file +({cpu: 824398545 +| mem: 2999235}) \ 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 b5e78cfb762..25a58fdf3ee 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: 564522181 -| mem: 2034135}) \ No newline at end of file +({cpu: 487001946 +| mem: 1754711}) \ 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 cc50ecaf128..3febd4521f4 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: 821800010 -| mem: 3023622}) \ No newline at end of file +({cpu: 732020427 +| mem: 2678775}) \ 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 137ba2d57db..a583ecf6f49 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: 1339663748 -| mem: 1875932}) \ No newline at end of file +({cpu: 1255556950 +| mem: 1542433}) \ 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 af81bf4505c..df933c7c215 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: 1677729405 -| mem: 5561556}) \ No newline at end of file +({cpu: 1076645822 +| mem: 3169413}) \ 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 587128fd973..3bd682f31a7 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: 1169775329 -| mem: 4172883}) \ No newline at end of file +({cpu: 1031104514 +| mem: 3682503}) \ 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 8a9c2b6e0cf..d132382219c 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: 2101319886 -| mem: 1704778}) \ No newline at end of file +({cpu: 2051790969 +| mem: 1505797}) \ 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 0fc3806a07c..78606830d87 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: 564782496 -| mem: 2031445}) \ No newline at end of file +({cpu: 487262261 +| mem: 1752021}) \ 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 1ef4ec43d64..6d1ba6ac581 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: 922873293 -| mem: 3297027}) \ No newline at end of file +({cpu: 774048809 +| mem: 2740446}) \ 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 87d29f32b0a..9e266cf2444 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: 549830448 -| mem: 1978061}) \ No newline at end of file +({cpu: 472908213 +| mem: 1701237}) \ 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 28db597def6..144331f3b99 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: 979166158 -| mem: 3591398}) \ No newline at end of file +({cpu: 858166376 +| mem: 3126699}) \ 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 d293ff201e4..ce772100502 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: 1000508784 -| mem: 3709492}) \ No newline at end of file +({cpu: 879509002 +| mem: 3244793}) \ 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 f6f5262ae5f..310700b775b 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: 786515913 -| mem: 2833117}) \ No newline at end of file +({cpu: 670484653 +| mem: 2421701}) \ 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 1db4b186ba1..f58f6635eb4 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: 613390525 -| mem: 2138136}) \ No newline at end of file +({cpu: 517353023 +| mem: 1789385}) \ 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 265a94f5ece..139c15f580e 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: 604116750 -| mem: 2220254}) \ No newline at end of file +({cpu: 557715492 +| mem: 2032779}) \ 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 912be9fdb14..acaafb73622 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: 1483823823 -| mem: 4897976}) \ No newline at end of file +({cpu: 1050627001 +| mem: 3253285}) \ 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 c7482e7e224..0d61711187c 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: 1388177647 -| mem: 5054956}) \ No newline at end of file +({cpu: 1265921019 +| mem: 4606593}) \ 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 3488f5d477c..e7f5e98feb7 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: 451577627 -| mem: 1664532}) \ No newline at end of file +({cpu: 405567048 +| mem: 1481807}) \ 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 8cee4b6ab20..689409b1594 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: 358323609 -| mem: 1290535}) \ No newline at end of file +({cpu: 313130221 +| mem: 1123006}) \ 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 3785411c035..8c70d19c91f 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: 1283801260 -| mem: 4385219}) \ No newline at end of file +({cpu: 828031756 +| mem: 2783233}) \ 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 f16fa2a02e2..bf3028c114b 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: 447330533 -| mem: 1585417}) \ No newline at end of file +({cpu: 326638315 +| mem: 1160974}) \ 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 1db4b186ba1..f58f6635eb4 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: 613390525 -| mem: 2138136}) \ No newline at end of file +({cpu: 517353023 +| mem: 1789385}) \ 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 5bbecf79d96..6ba01c58ae3 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: 791555284 -| mem: 2916794}) \ No newline at end of file +({cpu: 716084620 +| mem: 2627847}) \ 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 5370e63283b..597975e5436 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: 403146675 -| mem: 1397853}) \ No newline at end of file +({cpu: 259839675 +| mem: 819537}) \ 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 6417bf10b9a..65596b3f900 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: 710667967 -| mem: 2606328}) \ No newline at end of file +({cpu: 640981633 +| mem: 2336163}) \ 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 8e8f9d34a5e..ad8f70801c3 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: 1652991276 -| mem: 5937198}) \ No newline at end of file +({cpu: 1408547371 +| mem: 5051255}) \ 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 4fabab0107b..253841ca9d8 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: 953877147 -| mem: 3528596}) \ No newline at end of file +({cpu: 887070522 +| mem: 3254637}) \ 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 eb6dba9c96d..9a9a28bc8b7 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: 1148443111 -| mem: 4175054}) \ No newline at end of file +({cpu: 1003701394 +| mem: 3651083}) \ 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 ee6ee12bc86..d7683a79009 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: 838044252 -| mem: 3039155}) \ No newline at end of file +({cpu: 721828992 +| mem: 2626939}) \ 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 4b46e95415a..affe8cee00f 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: 1008894152 -| mem: 3715216}) \ No newline at end of file +({cpu: 887894370 +| mem: 3250517}) \ 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 bf3efc43bf3..1a7e325a92d 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: 674717039 -| mem: 1286760}) \ No newline at end of file +({cpu: 621073380 +| mem: 1081303}) \ 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 866d4325087..5bacf3fe9a8 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: 1132276371 -| mem: 4176826}) \ No newline at end of file +({cpu: 1045343087 +| mem: 3814613}) \ 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 0df355f3263..fe3328e2f37 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: 1057248243 -| mem: 3886766}) \ No newline at end of file +({cpu: 965927484 +| mem: 3534969}) \ 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 950a623279f..335181fcded 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: 571488769 -| mem: 2058971}) \ No newline at end of file +({cpu: 474028516 +| mem: 1708991}) \ 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 f251610a64d..edc4b0fdb1c 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: 8429985323 -| mem: 1142014}) \ No newline at end of file +({cpu: 8405621759 +| mem: 1040567}) \ 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 3cbdf8ab55b..6d69cea7af2 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: 1154131988 -| mem: 4151297}) \ No newline at end of file +({cpu: 1015461173 +| mem: 3660917}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 ecca35894ff..cd5a4ca0b28 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: 553394016 -| mem: 2007817}) \ No newline at end of file +({cpu: 476287781 +| mem: 1730193}) \ 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 fef568c5639..c87ba54e8f5 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: 951111452 -| mem: 3526090}) \ No newline at end of file +({cpu: 884304827 +| mem: 3252131}) \ 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 de16e4427ef..ec86a6937ea 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: 446806545 -| mem: 1610078}) \ No newline at end of file +({cpu: 411662365 +| mem: 1468989}) \ 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 fc3a4962152..9291f339642 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: 502802733 -| mem: 1845922}) \ No newline at end of file +({cpu: 422583864 +| mem: 1538705}) \ 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 8cee4b6ab20..689409b1594 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: 358323609 -| mem: 1290535}) \ No newline at end of file +({cpu: 313130221 +| mem: 1123006}) \ 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 84f6d7b1ed9..56cfea0fb57 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: 859609586 -| mem: 2498142}) \ No newline at end of file +({cpu: 743932961 +| mem: 2032181}) \ 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 23d7e0d3cf3..5dfa1d14904 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: 355703724 -| mem: 1285033}) \ No newline at end of file +({cpu: 310510336 +| mem: 1117504}) \ 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 6ac9c1e8bbe..c40d667a654 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: 781874155 -| mem: 2811290}) \ No newline at end of file +({cpu: 672184620 +| mem: 2405755}) \ 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 ea026bc16db..a89cfbd9c38 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: 861967898 -| mem: 2870914}) \ No newline at end of file +({cpu: 617985013 +| mem: 1905145}) \ 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 b40ec59b2d7..80bd5569ce3 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: 1957328142 -| mem: 1226804}) \ No newline at end of file +({cpu: 1914550882 +| mem: 1062983}) \ 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 81514c388f3..f10b03e073a 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: 1153604467 -| mem: 4200330}) \ No newline at end of file +({cpu: 1052192162 +| mem: 3811251}) \ 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 27eb4006ec4..6dd6f322199 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 @@ -11710 \ No newline at end of file +11882 \ No newline at end of file diff --git a/plutus-ledger-api/plutus-ledger-api.cabal b/plutus-ledger-api/plutus-ledger-api.cabal index f4f5fd4d40e..25c8b330ac7 100644 --- a/plutus-ledger-api/plutus-ledger-api.cabal +++ b/plutus-ledger-api/plutus-ledger-api.cabal @@ -59,6 +59,7 @@ library Codec.CBOR.Extras PlutusLedgerApi.Common PlutusLedgerApi.Common.Versions + PlutusLedgerApi.Data.V1.Value PlutusLedgerApi.V1 PlutusLedgerApi.V1.Address PlutusLedgerApi.V1.Bytes diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Data/V1/Value.hs b/plutus-ledger-api/src/PlutusLedgerApi/Data/V1/Value.hs new file mode 100644 index 00000000000..9d3a9ad905e --- /dev/null +++ b/plutus-ledger-api/src/PlutusLedgerApi/Data/V1/Value.hs @@ -0,0 +1,134 @@ +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE ViewPatterns #-} + +module PlutusLedgerApi.Data.V1.Value where + +import PlutusLedgerApi.V1.Value hiding (Value (..)) +import PlutusTx qualified +import PlutusTx.Builtins.Internal qualified as BI +import PlutusTx.DataMap (Map) +import PlutusTx.DataMap qualified as Map +import PlutusTx.Prelude as PlutusTx + +import Prelude qualified as Haskell + +newtype Value = Value {getValue :: Map.Map CurrencySymbol (Map.Map TokenName Integer)} + deriving stock (Haskell.Show) + deriving newtype (PlutusTx.ToData, PlutusTx.FromData, PlutusTx.UnsafeFromData) + +instance Haskell.Eq Value where + (==) = eq + +instance Eq Value where + {-# INLINEABLE (==) #-} + (==) = eq + +{-# INLINEABLE 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'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 + 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 + +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 a. + ( PlutusTx.Eq k + , PlutusTx.UnsafeFromData k + , PlutusTx.UnsafeFromData a + , PlutusTx.ToData k + , PlutusTx.ToData a + ) => + (a -> Bool) -> + (a -> a -> Bool) -> + Map k a -> + Map k a -> + Bool +unordEqWith is0 eqV = goBoth + where + -- Recurse on the spines of both the lists simultaneously. + goBoth kvsL kvsR + -- 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. + | Map.null kvsL = Map.all is0 kvsR + -- Symmetric to the previous case. + | Map.null kvsR = Map.all is0 kvsL + -- Both spines are non-empty. + | otherwise = + let ((kL, vL), kvsL') = Map.unsafeUncons kvsL + (kvR0@(kR0, vR0), kvsR0') = Map.unsafeUncons kvsR + in if + -- 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 + -- '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' kvsR + | otherwise -> + let reassemble :: [(k, a)] -> Map k a -> Map k a + reassemble [] m = m + reassemble ((k, a) : xs) m = + let tl = Map.toBuiltinList m + hd = + BI.mkPairData + (PlutusTx.toBuiltinData k) + (PlutusTx.toBuiltinData a) + in reassemble xs (Map.unsafeFromBuiltinList (BI.mkCons hd tl)) + + -- 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, a)] -> Map k a -> Bool + goRight acc kvsR1' + | Map.null kvsR1' = False + | otherwise = + let (kvR@(kR, vR), kvsR') = Map.unsafeUncons kvsR1' + in if kL == kR + then + if vL `eqV` vR + then goBoth kvsL' (reassemble acc kvsR') + else False + else goRight (kvR : acc) kvsR' + in goRight [kvR0 | not (is0 vR0)] kvsR0' + +{-# INLINEABLE 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) = + unordEqWith (Map.all (0 ==)) (unordEqWith (0 ==) (==)) currs1 currs2 diff --git a/plutus-tx-plugin/plutus-tx-plugin.cabal b/plutus-tx-plugin/plutus-tx-plugin.cabal index cbad48165fd..d6f7a88c3b9 100644 --- a/plutus-tx-plugin/plutus-tx-plugin.cabal +++ b/plutus-tx-plugin/plutus-tx-plugin.cabal @@ -136,6 +136,7 @@ test-suite plutus-tx-plugin-tests IsData.Spec Lib Lift.Spec + Map.Spec Optimization.Spec Plugin.Basic.Spec Plugin.Coverage.Spec diff --git a/plutus-tx-plugin/test/Budget/9.6/map1-budget.eval.golden b/plutus-tx-plugin/test/Budget/9.6/map1-budget.eval.golden new file mode 100644 index 00000000000..58fe6da0c88 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1-budget.eval.golden @@ -0,0 +1,2 @@ +({cpu: 466761976 +| mem: 1170537}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map1.eval.golden b/plutus-tx-plugin/test/Budget/9.6/map1.eval.golden new file mode 100644 index 00000000000..2976eddf5c9 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1.eval.golden @@ -0,0 +1,8 @@ +(constr + 0 + (constr 0 (con bytestring #30)) + (constr 0 (con bytestring #35)) + (constr 0 (con bytestring #3130)) + (constr 1) + (constr 1) +) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map1.pir.golden b/plutus-tx-plugin/test/Budget/9.6/map1.pir.golden new file mode 100644 index 00000000000..199881e4d75 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1.pir.golden @@ -0,0 +1,410 @@ +letrec + data (List :: * -> *) a | List_match where + Nil : List a + Cons : a -> List a -> List a +in +letrec + !`$fEnumBool_$cenumFromTo` : integer -> integer -> List integer + = \(x : integer) (lim : integer) -> + ifThenElse + {all dead. List integer} + (lessThanEqualsInteger x lim) + (/\dead -> + Cons {integer} x (`$fEnumBool_$cenumFromTo` (addInteger 1 x) lim)) + (/\dead -> Nil {integer}) + {all dead. dead} +in +let + !y : integer = 10 +in +letrec + !go : List integer -> integer -> List integer + = \(acc : List integer) (n : integer) -> + let + !x : integer = quotientInteger n y + in + ifThenElse + {all dead. List integer} + (equalsInteger 0 x) + (/\dead -> Cons {integer} (remainderInteger n y) acc) + (/\dead -> go (Cons {integer} (remainderInteger n y) acc) x) + {all dead. dead} +in +letrec + !go : + List integer -> List string -> List string + = \(ds : List integer) -> + List_match + {integer} + ds + {all dead. List string -> List string} + (/\dead -> \(x : List string) -> x) + (\(x : integer) + (xs : List integer) -> + /\dead -> + let + !acc : List string -> List string = go xs + in + \(eta : List string) -> + Cons + {string} + (ifThenElse + {all dead. string} + (equalsInteger 0 x) + (/\dead -> "0") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 1 x) + (/\dead -> "1") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 2 x) + (/\dead -> "2") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 3 x) + (/\dead -> "3") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 4 x) + (/\dead -> "4") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 5 x) + (/\dead -> "5") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 6 x) + (/\dead -> "6") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 7 x) + (/\dead -> "7") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger + 8 + x) + (/\dead -> "8") + (/\dead -> + ifThenElse + {string} + (equalsInteger + 9 + x) + "9" + "") + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + (acc eta)) + {all dead. dead} +in +letrec + !`$fShowBuiltinByteString_$cshowsPrec` : + integer -> integer -> List string -> List string + = \(p : integer) (n : integer) -> + ifThenElse + {all dead. List string -> List string} + (lessThanInteger n 0) + (/\dead -> + \(eta : List string) -> + Cons + {string} + "-" + (`$fShowBuiltinByteString_$cshowsPrec` + p + (subtractInteger 0 n) + eta)) + (/\dead -> go (go (Nil {integer}) n)) + {all dead. dead} +in +let + data (Tuple5 :: * -> * -> * -> * -> * -> *) a b c d e | Tuple5_match where + Tuple5 : a -> b -> c -> d -> e -> Tuple5 a b c d e + data (Tuple2 :: * -> * -> *) a b | Tuple2_match where + Tuple2 : a -> b -> Tuple2 a b +in +letrec + !go : all a. integer -> List a -> Tuple2 (List a) (List a) + = /\a -> + \(ds : integer) (ds : List a) -> + List_match + {a} + ds + {all dead. Tuple2 (List a) (List a)} + (/\dead -> Tuple2 {List a} {List a} (Nil {a}) (Nil {a})) + (\(y : a) (ys : List a) -> + /\dead -> + ifThenElse + {all dead. Tuple2 (List a) (List a)} + (equalsInteger 1 ds) + (/\dead -> + Tuple2 + {List a} + {List a} + ((let + a = List a + in + \(c : a -> a -> a) (n : a) -> c y n) + (\(ds : a) (ds : List a) -> Cons {a} ds ds) + (Nil {a})) + ys) + (/\dead -> + Tuple2_match + {List a} + {List a} + (go {a} (subtractInteger ds 1) ys) + {Tuple2 (List a) (List a)} + (\(zs : List a) (ws : List a) -> + Tuple2 {List a} {List a} (Cons {a} y zs) ws)) + {all dead. dead}) + {all dead. dead} +in +letrec + !go : List string -> integer + = \(ds : List string) -> + List_match + {string} + ds + {all dead. integer} + (/\dead -> 0) + (\(x : string) (xs : List string) -> /\dead -> addInteger 1 (go xs)) + {all dead. dead} +in +letrec + !concatBuiltinStrings : List string -> string + = \(ds : List string) -> + List_match + {string} + ds + {string} + "" + (\(x : string) (ds : List string) -> + List_match + {string} + ds + {all dead. string} + (/\dead -> x) + (\(ipv : string) (ipv : List string) -> + /\dead -> + Tuple2_match + {List string} + {List string} + (let + !n : integer = divideInteger (go ds) 2 + in + ifThenElse + {all dead. Tuple2 (List string) (List string)} + (lessThanEqualsInteger n 0) + (/\dead -> + Tuple2 {List string} {List string} (Nil {string}) ds) + (/\dead -> go {string} n ds) + {all dead. dead}) + {string} + (\(ipv : List string) (ipv : List string) -> + appendString + (concatBuiltinStrings ipv) + (concatBuiltinStrings ipv))) + {all dead. dead}) +in +let + data (Maybe :: * -> *) a | Maybe_match where + Just : a -> Maybe a + Nothing : Maybe a + data Unit | Unit_match where + Unit : Unit + !lookup : + all k a. + (\a -> a -> data) k -> + (\a -> data -> a) a -> + k -> + (\k a -> data) k a -> + Maybe a + = /\k a -> + \(`$dToData` : (\a -> a -> data) k) + (`$dUnsafeFromData` : (\a -> data -> a) a) + (ds : k) + (m : (\k a -> data) k a) -> + Maybe_match + {data} + (let + !k : data = `$dToData` ds + in + letrec + !go : list (pair data data) -> Maybe data + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Maybe data} + xs + (\(ds : Unit) -> Nothing {data}) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl : list (pair data data) + = tailList {pair data data} xs + in + ifThenElse + {all dead. Maybe data} + (equalsData k (fstPair {data} {data} hd)) + (/\dead -> Just {data} (sndPair {data} {data} hd)) + (/\dead -> go tl) + {all dead. dead}) + Unit + in + let + !eta : list (pair data data) = unMapData m + in + go eta) + {all dead. Maybe a} + (\(a : data) -> /\dead -> Just {a} (`$dUnsafeFromData` a)) + (/\dead -> Nothing {a}) + {all dead. dead} + !matchList : all a r. list a -> r -> (a -> list a -> r) -> r + = /\a r -> + \(l : list a) (nilCase : r) (consCase : a -> list a -> r) -> + chooseList + {a} + {Unit -> r} + l + (\(ds : Unit) -> nilCase) + (\(ds : Unit) -> consCase (headList {a} l) (tailList {a} l)) + Unit + !nil : list (pair data data) = [] + data Bool | Bool_match where + True : Bool + False : Bool +in +\(n : integer) -> + let + !nt : data + = (let + b = (\k a -> data) integer bytestring + in + \(k : integer -> b -> b) (z : b) -> + letrec + !go : List integer -> b + = \(ds : List integer) -> + List_match + {integer} + ds + {all dead. b} + (/\dead -> z) + (\(y : integer) (ys : List integer) -> + /\dead -> k y (go ys)) + {all dead. dead} + in + \(eta : List integer) -> go eta) + (\(i : integer) -> + let + !ds : integer = addInteger n i + ~k : data = iData ds + !ds : bytestring + = encodeUtf8 + (concatBuiltinStrings + (`$fShowBuiltinByteString_$cshowsPrec` + 0 + i + (Nil {string}))) + ~a : data = bData ds + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + matchList + {pair data data} + {list (pair data data)} + xs + (mkCons {pair data data} (mkPairData k a) nil) + (\(hd : pair data data) (tl : list (pair data data)) -> + let + !k' : data = fstPair {data} {data} hd + !d : data = k + in + ifThenElse + {all dead. list (pair data data)} + (equalsData d k') + (/\dead -> + mkCons {pair data data} (mkPairData d a) tl) + (/\dead -> mkCons {pair data data} hd (go tl)) + {all dead. dead}) + in + \(m : (\k a -> data) integer bytestring) -> + mapData (go (unMapData m))) + (mapData (mkCons {pair data data} (mkPairData (iData n) (B #30)) nil)) + (`$fEnumBool_$cenumFromTo` 1 10) + !nt : data + = let + !ds : integer = addInteger 5 n + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + matchList + {pair data data} + {list (pair data data)} + xs + nil + (\(hd : pair data data) (tl : list (pair data data)) -> + let + !k' : data = fstPair {data} {data} hd + in + ifThenElse + {all dead. list (pair data data)} + (equalsData (iData ds) k') + (/\dead -> tl) + (/\dead -> mkCons {pair data data} hd (go tl)) + {all dead. dead}) + in + mapData (go (unMapData nt)) + in + Tuple5 + {Maybe bytestring} + {Maybe bytestring} + {Maybe bytestring} + {Maybe bytestring} + {Maybe bytestring} + (lookup {integer} {bytestring} (\(i : integer) -> iData i) unBData n nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 5 n) + nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 10 n) + nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 20 n) + nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 5 n) + nt) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map1.uplc.golden b/plutus-tx-plugin/test/Budget/9.6/map1.uplc.golden new file mode 100644 index 00000000000..617eb3a94ef --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1.uplc.golden @@ -0,0 +1,442 @@ +program + 1.1.0 + ((\fix1 -> + (\`$fEnumBool_$cenumFromTo` -> + (\y -> + (\go -> + (\go -> + (\`$fShowBuiltinByteString_$cshowsPrec` -> + (\go -> + (\go -> + (\concatBuiltinStrings + n -> + (\nil -> + (\matchList -> + (\nt -> + (\cse -> + (\nt -> + (\lookup -> + constr 0 + [ (lookup + (\i -> iData i) + unBData + n + nt) + , (lookup + (\i -> iData i) + unBData + cse + nt) + , (lookup + (\i -> iData i) + unBData + (addInteger 10 n) + nt) + , (lookup + (\i -> iData i) + unBData + (addInteger 20 n) + nt) + , (lookup + (\i -> iData i) + unBData + cse + nt) ]) + (\`$dToData` + `$dUnsafeFromData` + ds + m -> + force + (case + ((\k -> + fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + constr 1 + []) + (\ds -> + (\hd -> + (\tl -> + force + (force + ifThenElse + (equalsData + k + (force + (force + fstPair) + hd)) + (delay + (constr 0 + [ (force + (force + sndPair) + hd) ])) + (delay + (go + tl)))) + (force + tailList + xs)) + (force + headList + xs)) + (constr 0 [])) + (unMapData m)) + (`$dToData` ds)) + [ (\a -> + delay + (constr 0 + [ (`$dUnsafeFromData` + a) ])) + , (delay + (constr 1 [])) ]))) + (mapData + (fix1 + (\go + xs -> + matchList + xs + nil + (\hd + tl -> + (\k' -> + force + (force + ifThenElse + (equalsData + (iData cse) + k') + (delay tl) + (delay + (force + mkCons + hd + (go + tl))))) + (force + (force fstPair) + hd))) + (unMapData nt)))) + (addInteger 5 n)) + ((\z -> + (\go eta -> + go eta) + (fix1 + (\go + ds -> + force + (case + ds + [ (delay z) + , (\y + ys -> + delay + ((\ds -> + (\ds -> + (\go + m -> + mapData + (go + (unMapData + m))) + (fix1 + (\go + xs -> + (\cse -> + (\cse -> + (\cse -> + (\cse -> + matchList + xs + (cse + nil) + (\hd + tl -> + (\k' -> + force + (force + ifThenElse + (equalsData + cse + k') + (delay + (cse + tl)) + (delay + (force + mkCons + hd + (go + tl))))) + (force + (force + fstPair) + hd))) + (force + mkCons + cse)) + (mkPairData + cse + cse)) + (iData + ds)) + (bData + ds)))) + (encodeUtf8 + (concatBuiltinStrings + (`$fShowBuiltinByteString_$cshowsPrec` + 0 + y + (constr 0 + [ ]))))) + (addInteger + n + y) + (go ys))) ])))) + (mapData + (force mkCons + (mkPairData (iData n) (B #30)) + nil)) + (`$fEnumBool_$cenumFromTo` 1 10))) + (\l nilCase consCase -> + force (force chooseList) + l + (\ds -> nilCase) + (\ds -> + consCase + (force headList l) + (force tailList l)) + (constr 0 []))) + []) + (fix1 + (\concatBuiltinStrings + ds -> + case + ds + [ "" + , (\x + ds -> + force + (case + ds + [ (delay x) + , (\ipv + ipv -> + delay + (case + ((\n -> + force + (force + ifThenElse + (lessThanEqualsInteger + n + 0) + (delay + (constr 0 + [ (constr 0 + []) + , ds ])) + (delay + (force go + n + ds)))) + (divideInteger + (go ds) + 2)) + [ (\ipv + ipv -> + appendString + (concatBuiltinStrings + ipv) + (concatBuiltinStrings + ipv)) ])) ])) ]))) + (fix1 + (\go ds -> + force + (case + ds + [ (delay 0) + , (\x xs -> + delay (addInteger 1 (go xs))) ])))) + (fix1 + (\go + arg -> + delay + (\ds + ds -> + force + (case + ds + [ (delay + (constr 0 + [(constr 0 []), (constr 0 [])])) + , (\y + ys -> + delay + (force + (force + ifThenElse + (equalsInteger 1 ds) + (delay + (constr 0 + [ (constr 1 + [ y + , (constr 0 + []) ]) + , ys ])) + (delay + (case + (force + (go + (delay + (\x -> x))) + (subtractInteger + ds + 1) + ys) + [ (\zs + ws -> + constr 0 + [ (constr 1 + [y, zs]) + , ws ]) ]))))) ]))) + (delay (\x -> x)))) + (fix1 + (\`$fShowBuiltinByteString_$cshowsPrec` p n -> + force + (force ifThenElse + (lessThanInteger n 0) + (delay + (\eta -> + constr 1 + [ "-" + , (`$fShowBuiltinByteString_$cshowsPrec` + p + (subtractInteger 0 n) + eta) ])) + (delay (go (go (constr 0 []) n))))))) + (fix1 + (\go + ds -> + force + (case + ds + [ (delay (\x -> x)) + , (\x + xs -> + delay + ((\acc + eta -> + constr 1 + [ (force + (force + ifThenElse + (equalsInteger 0 x) + (delay "0") + (delay + (force + (force + ifThenElse + (equalsInteger 1 x) + (delay "1") + (delay + (force + (force + ifThenElse + (equalsInteger + 2 + x) + (delay "2") + (delay + (force + (force + ifThenElse + (equalsInteger + 3 + x) + (delay + "3") + (delay + (force + (force + ifThenElse + (equalsInteger + 4 + x) + (delay + "4") + (delay + (force + (force + ifThenElse + (equalsInteger + 5 + x) + (delay + "5") + (delay + (force + (force + ifThenElse + (equalsInteger + 6 + x) + (delay + "6") + (delay + (force + (force + ifThenElse + (equalsInteger + 7 + x) + (delay + "7") + (delay + (force + (force + ifThenElse + (equalsInteger + 8 + x) + (delay + "8") + (delay + (force + ifThenElse + (equalsInteger + 9 + x) + "9" + "")))))))))))))))))))))))))))) + , (acc eta) ]) + (go xs))) ])))) + (fix1 + (\go acc n -> + (\x -> + force + (force ifThenElse + (equalsInteger 0 x) + (delay (constr 1 [(remainderInteger n y), acc])) + (delay + (go + (constr 1 [(remainderInteger n y), acc]) + x)))) + (quotientInteger n y)))) + 10) + (fix1 + (\`$fEnumBool_$cenumFromTo` x lim -> + force + (force ifThenElse + (lessThanEqualsInteger x lim) + (delay + (constr 1 + [x, (`$fEnumBool_$cenumFromTo` (addInteger 1 x) lim)])) + (delay (constr 0 [])))))) + (\f -> (\s -> s s) (\s x -> f (s s) x))) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2-budget.eval.golden b/plutus-tx-plugin/test/Budget/9.6/map2-budget.eval.golden new file mode 100644 index 00000000000..bb3ab267bd6 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2-budget.eval.golden @@ -0,0 +1,2 @@ +({cpu: 165965000 +| mem: 436918}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2.eval.golden b/plutus-tx-plugin/test/Budget/9.6/map2.eval.golden new file mode 100644 index 00000000000..e8e3b12565c --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2.eval.golden @@ -0,0 +1,27 @@ +(constr + 1 + (constr 0 (con integer 105) (con string "five")) + (constr + 1 + (constr 0 (con integer 104) (con string "fourFOUR")) + (constr + 1 + (constr 0 (con integer 103) (con string "threeTHREE")) + (constr + 1 + (constr 0 (con integer 102) (con string "two")) + (constr + 1 + (constr 0 (con integer 101) (con string "one")) + (constr + 1 + (constr 0 (con integer 106) (con string "SIX")) + (constr + 1 (constr 0 (con integer 107) (con string "SEVEN")) (constr 0) + ) + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2.pir.golden b/plutus-tx-plugin/test/Budget/9.6/map2.pir.golden new file mode 100644 index 00000000000..d05bf4044c5 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2.pir.golden @@ -0,0 +1,343 @@ +let + data Unit | Unit_match where + Unit : Unit + data (Tuple2 :: * -> * -> *) a b | Tuple2_match where + Tuple2 : a -> b -> Tuple2 a b +in +letrec + data (List :: * -> *) a | List_match where + Nil : List a + Cons : a -> List a -> List a +in +letrec + !go : list (pair data data) -> List (Tuple2 integer bytestring) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> List (Tuple2 integer bytestring)} + xs + (\(ds : Unit) -> Nil {Tuple2 integer bytestring}) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl : list (pair data data) = tailList {pair data data} xs + in + Cons + {Tuple2 integer bytestring} + (Tuple2 + {integer} + {bytestring} + (unIData (fstPair {data} {data} hd)) + (unBData (sndPair {data} {data} hd))) + (go tl)) + Unit +in +letrec + !go : list (pair data data) -> list (pair data data) -> list (pair data data) + = \(acc : list (pair data data)) (xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> acc) + (\(ds : Unit) -> + go + (mkCons {pair data data} (headList {pair data data} xs) acc) + (tailList {pair data data} xs)) + Unit +in +let + data (Maybe :: * -> *) a | Maybe_match where + Just : a -> Maybe a + Nothing : Maybe a + !matchList : all a r. list a -> r -> (a -> list a -> r) -> r + = /\a r -> + \(l : list a) (nilCase : r) (consCase : a -> list a -> r) -> + chooseList + {a} + {Unit -> r} + l + (\(ds : Unit) -> nilCase) + (\(ds : Unit) -> consCase (headList {a} l) (tailList {a} l)) + Unit + data Bool | Bool_match where + True : Bool + False : Bool + !unitval : unit = () + ~nil : list (pair data data) = mkNilPairData unitval +in +letrec + !`$fToBuiltinListBuiltinList_$ctoBuiltin` : + List (Tuple2 data data) -> list (pair data data) + = \(ds : List (Tuple2 data data)) -> + List_match + {Tuple2 data data} + ds + {all dead. list (pair data data)} + (/\dead -> mkNilPairData unitval) + (\(d : Tuple2 data data) (ds : List (Tuple2 data data)) -> + /\dead -> + mkCons + {pair data data} + (Tuple2_match + {data} + {data} + d + {pair data data} + (\(d : data) (d : data) -> mkPairData d d)) + (`$fToBuiltinListBuiltinList_$ctoBuiltin` ds)) + {all dead. dead} +in +let + !unsafeFromList : + all k a. + (\a -> a -> data) k -> + (\a -> a -> data) a -> + List (Tuple2 k a) -> + (\k a -> data) k a + = /\k a -> + \(`$dToData` : (\a -> a -> data) k) + (`$dToData` : (\a -> a -> data) a) -> + letrec + !go : List (Tuple2 k a) -> List (Tuple2 data data) + = \(ds : List (Tuple2 k a)) -> + List_match + {Tuple2 k a} + ds + {all dead. List (Tuple2 data data)} + (/\dead -> Nil {Tuple2 data data}) + (\(x : Tuple2 k a) (xs : List (Tuple2 k a)) -> + /\dead -> + Cons + {Tuple2 data data} + (Tuple2_match + {k} + {a} + x + {Tuple2 data data} + (\(k : k) (a : a) -> + Tuple2 + {data} + {data} + (`$dToData` k) + (`$dToData` a))) + (go xs)) + {all dead. dead} + in + \(eta : List (Tuple2 k a)) -> + mapData (`$fToBuiltinListBuiltinList_$ctoBuiltin` (go eta)) +in +\(n : integer) -> + let + !nt : data + = unsafeFromList + {integer} + {bytestring} + (\(i : integer) -> iData i) + bData + ((let + a = Tuple2 integer bytestring + in + \(g : all b. (a -> b -> b) -> b -> b) -> + g {List a} (\(ds : a) (ds : List a) -> Cons {a} ds ds) (Nil {a})) + (/\a -> + \(c : Tuple2 integer bytestring -> a -> a) (n : a) -> + c + (Tuple2 {integer} {bytestring} (addInteger 3 n) #5448524545) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 4 n) + #464f5552) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 6 n) + #534958) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 7 n) + #534556454e) + n))))) + ~rs : list (pair data data) = unMapData nt + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + matchList + {pair data data} + {list (pair data data)} + xs + nil + (\(hd : pair data data) (tl : list (pair data data)) -> + let + !v' : data = sndPair {data} {data} hd + !k' : data = fstPair {data} {data} hd + in + letrec + !go : list (pair data data) -> Maybe data + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Maybe data} + xs + (\(ds : Unit) -> Nothing {data}) + (\(ds : Unit) -> + let + !hd : pair data data + = headList {pair data data} xs + !tl : list (pair data data) + = tailList {pair data data} xs + in + ifThenElse + {all dead. Maybe data} + (equalsData k' (fstPair {data} {data} hd)) + (/\dead -> Just {data} (sndPair {data} {data} hd)) + (/\dead -> go tl) + {all dead. dead}) + Unit + in + Maybe_match + {data} + (let + !eta : list (pair data data) = rs + in + go eta) + {all dead. list (pair data data)} + (\(r : data) -> + /\dead -> + mkCons + {pair data data} + (mkPairData + k' + (bData (appendByteString (unBData v') (unBData r)))) + (go tl)) + (/\dead -> mkCons {pair data data} (mkPairData k' v') (go tl)) + {all dead. dead}) + in + let + !nt : data + = unsafeFromList + {integer} + {bytestring} + (\(i : integer) -> iData i) + bData + ((let + a = Tuple2 integer bytestring + in + \(g : all b. (a -> b -> b) -> b -> b) -> + g {List a} (\(ds : a) (ds : List a) -> Cons {a} ds ds) (Nil {a})) + (/\a -> + \(c : Tuple2 integer bytestring -> a -> a) (n : a) -> + c + (Tuple2 {integer} {bytestring} (addInteger 1 n) #6f6e65) + (c + (Tuple2 {integer} {bytestring} (addInteger 2 n) #74776f) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 3 n) + #7468726565) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 4 n) + #666f7572) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 5 n) + #66697665) + n)))))) + ~ls : list (pair data data) = unMapData nt + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + matchList + {pair data data} + {list (pair data data)} + xs + nil + (\(hd : pair data data) (tl : list (pair data data)) -> + let + !tl' : list (pair data data) = go tl + in + Bool_match + (let + !k : data = fstPair {data} {data} hd + in + letrec + !go : list (pair data data) -> Bool + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Bool} + xs + (\(ds : Unit) -> False) + (\(ds : Unit) -> + let + !hd : pair data data + = headList {pair data data} xs + !tl : list (pair data data) + = tailList {pair data data} xs + in + ifThenElse + {all dead. Bool} + (equalsData k (fstPair {data} {data} hd)) + (/\dead -> True) + (/\dead -> go tl) + {all dead. dead}) + Unit + in + let + !eta : list (pair data data) = ls + in + go eta) + {all dead. list (pair data data)} + (/\dead -> tl') + (/\dead -> mkCons {pair data data} hd tl') + {all dead. dead}) + in + let + !nt : data + = let + !rs' : list (pair data data) = go rs + !ls' : list (pair data data) = go ls + in + mapData (go rs' ls') + in + (let + a = Tuple2 integer bytestring + in + /\b -> + \(f : a -> b) -> + letrec + !go : List a -> List b + = \(ds : List a) -> + List_match + {a} + ds + {all dead. List b} + (/\dead -> Nil {b}) + (\(x : a) (xs : List a) -> /\dead -> Cons {b} (f x) (go xs)) + {all dead. dead} + in + \(eta : List a) -> go eta) + {Tuple2 integer string} + (\(ds : Tuple2 integer bytestring) -> + Tuple2_match + {integer} + {bytestring} + ds + {Tuple2 integer string} + (\(k : integer) (v : bytestring) -> + Tuple2 {integer} {string} k (decodeUtf8 v))) + (go (unMapData nt)) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2.uplc.golden b/plutus-tx-plugin/test/Budget/9.6/map2.uplc.golden new file mode 100644 index 00000000000..e88a22b64d3 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2.uplc.golden @@ -0,0 +1,288 @@ +program + 1.1.0 + ((\fix1 -> + (\go -> + (\go -> + (\unitval -> + (\matchList -> + (\`$fToBuiltinListBuiltinList_$ctoBuiltin` + n -> + (\unsafeFromList -> + (\cse -> + (\cse -> + (\nt -> + (\go -> + (\nt -> + (\nt -> + fix1 + (\go + ds -> + force + (case + ds + [ (delay (constr 0 [])) + , (\x + xs -> + delay + (constr 1 + [ (case + x + [ (\k + v -> + constr 0 + [ k + , (decodeUtf8 + v) ]) ]) + , (go xs) ])) ])) + (go (unMapData nt))) + ((\rs' -> + (\ls' -> mapData (go rs' ls')) + (go (unMapData nt))) + (fix1 + (\go + xs -> + matchList + xs + (mkNilPairData unitval) + (\hd + tl -> + (\tl' -> + force + (case + ((\k -> + fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + constr 1 + [ ]) + (\ds -> + (\hd -> + (\tl -> + force + (force + ifThenElse + (equalsData + k + (force + (force + fstPair) + hd)) + (delay + (constr 0 + [ ])) + (delay + (go + tl)))) + (force + tailList + xs)) + (force + headList + xs)) + (constr 0 + [ ])) + (unMapData + nt)) + (force + (force + fstPair) + hd)) + [ (delay tl') + , (delay + (force + mkCons + hd + tl')) ])) + (go tl))) + (unMapData nt)))) + (unsafeFromList + (\i -> iData i) + bData + (constr 1 + [ (constr 0 + [(addInteger 1 n), #6f6e65]) + , (constr 1 + [ (constr 0 + [ (addInteger 2 n) + , #74776f ]) + , (constr 1 + [ (constr 0 + [cse, #7468726565]) + , (constr 1 + [ (constr 0 + [ cse + , #666f7572 ]) + , (constr 1 + [ (constr 0 + [ (addInteger + 5 + n) + , #66697665 ]) + , (constr 0 + [ ]) ]) ]) ]) ]) ]))) + (fix1 + (\go + xs -> + matchList + xs + (mkNilPairData unitval) + (\hd + tl -> + (\v' -> + (\k' -> + force + (case + (fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + constr 1 []) + (\ds -> + (\hd -> + (\tl -> + force + (force + ifThenElse + (equalsData + k' + (force + (force + fstPair) + hd)) + (delay + (constr 0 + [ (force + (force + sndPair) + hd) ])) + (delay + (go + tl)))) + (force + tailList + xs)) + (force + headList + xs)) + (constr 0 [])) + (unMapData nt)) + [ (\r -> + delay + (force + mkCons + (mkPairData + k' + (bData + (appendByteString + (unBData + v') + (unBData + r)))) + (go tl))) + , (delay + (force mkCons + (mkPairData + k' + v') + (go tl))) ])) + (force (force fstPair) hd)) + (force (force sndPair) hd))))) + (unsafeFromList + (\i -> iData i) + bData + (constr 1 + [ (constr 0 [cse, #5448524545]) + , (constr 1 + [ (constr 0 [cse, #464f5552]) + , (constr 1 + [ (constr 0 + [ (addInteger 6 n) + , #534958 ]) + , (constr 1 + [ (constr 0 + [ (addInteger 7 n) + , #534556454e ]) + , (constr 0 + []) ]) ]) ]) ]))) + (addInteger 3 n)) + (addInteger 4 n)) + (\`$dToData` `$dToData` -> + (\go eta -> + mapData + (`$fToBuiltinListBuiltinList_$ctoBuiltin` + (go eta))) + (fix1 + (\go ds -> + force + (case + ds + [ (delay (constr 0 [])) + , (\x xs -> + delay + (constr 1 + [ (case + x + [ (\k a -> + constr 0 + [ (`$dToData` k) + , (`$dToData` + a) ]) ]) + , (go xs) ])) ]))))) + (fix1 + (\`$fToBuiltinListBuiltinList_$ctoBuiltin` + ds -> + force + (case + ds + [ (delay (mkNilPairData unitval)) + , (\d + ds -> + delay + (force + mkCons + (case d [(\d d -> mkPairData d d)]) + (`$fToBuiltinListBuiltinList_$ctoBuiltin` + ds))) ])))) + (\l nilCase consCase -> + force (force chooseList) + l + (\ds -> nilCase) + (\ds -> consCase (force headList l) (force tailList l)) + (constr 0 []))) + ()) + (fix1 + (\go acc xs -> + force (force chooseList) + xs + (\ds -> acc) + (\ds -> + go + (force mkCons (force headList xs) acc) + (force tailList xs)) + (constr 0 [])))) + (fix1 + (\go xs -> + force (force chooseList) + xs + (\ds -> constr 0 []) + (\ds -> + (\hd -> + (\tl -> + constr 1 + [ (constr 0 + [ (unIData (force (force fstPair) hd)) + , (unBData (force (force sndPair) hd)) ]) + , (go tl) ]) + (force tailList xs)) + (force headList xs)) + (constr 0 [])))) + (\f -> (\s -> s s) (\s x -> f (s s) x))) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/Spec.hs b/plutus-tx-plugin/test/Budget/Spec.hs index 6b38cf459f5..acd474b129e 100644 --- a/plutus-tx-plugin/test/Budget/Spec.hs +++ b/plutus-tx-plugin/test/Budget/Spec.hs @@ -17,7 +17,7 @@ module Budget.Spec where import Test.Tasty.Extras import PlutusTx.AsData qualified as AsData -import PlutusTx.Builtins qualified as PlutusTx +import PlutusTx.Builtins qualified as PlutusTx hiding (null) import PlutusTx.Code import PlutusTx.IsData qualified as IsData import PlutusTx.Lift (liftCodeDef, makeLift) diff --git a/plutus-tx-plugin/test/Map/Spec.hs b/plutus-tx-plugin/test/Map/Spec.hs new file mode 100644 index 00000000000..a2a25deb882 --- /dev/null +++ b/plutus-tx-plugin/test/Map/Spec.hs @@ -0,0 +1,94 @@ +-- editorconfig-checker-disable-file +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE NegativeLiterals #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE ViewPatterns #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:context-level=0 #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:defer-errors #-} + +module Map.Spec where + +import Test.Tasty.Extras + +import PlutusTx.Builtins qualified as PlutusTx +import PlutusTx.Code +import PlutusTx.DataMap qualified as Map +import PlutusTx.Lift (liftCodeDef) +import PlutusTx.Prelude qualified as PlutusTx +import PlutusTx.Show qualified as PlutusTx +import PlutusTx.Test +import PlutusTx.TH (compile) + +tests :: TestNested +tests = + testNestedGhc + "Budget" + [ goldenPirReadable "map1" map1 + , goldenUPlcReadable "map1" map1 + , goldenEvalCekCatch "map1" $ [map1 `unsafeApplyCode` (liftCodeDef 100)] + , goldenBudget "map1-budget" $ map1 `unsafeApplyCode` (liftCodeDef 100) + , goldenPirReadable "map2" map2 + , goldenUPlcReadable "map2" map2 + , goldenEvalCekCatch "map2" $ [map2 `unsafeApplyCode` (liftCodeDef 100)] + , goldenBudget "map2-budget" $ map2 `unsafeApplyCode` (liftCodeDef 100) + ] + +map1 :: + CompiledCode + ( Integer -> + ( Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + ) + ) +map1 = + $$( compile + [|| + \n -> + let m :: Map.Map Integer PlutusTx.BuiltinByteString + m = + foldr + (\i -> Map.insert (n PlutusTx.+ i) (PlutusTx.encodeUtf8 (PlutusTx.show i))) + (Map.singleton n "0") + (PlutusTx.enumFromTo 1 10) + m' = Map.delete (n PlutusTx.+ 5) m + in ( Map.lookup n m + , Map.lookup (n PlutusTx.+ 5) m + , Map.lookup (n PlutusTx.+ 10) m + , Map.lookup (n PlutusTx.+ 20) m + , Map.lookup (n PlutusTx.+ 5) m' + ) + ||] + ) + +map2 :: CompiledCode (Integer -> [(Integer, PlutusTx.BuiltinString)]) +map2 = + $$( compile + [|| + \n -> + let m1 = + Map.unsafeFromList + [ (n PlutusTx.+ 1, "one") + , (n PlutusTx.+ 2, "two") + , (n PlutusTx.+ 3, "three") + , (n PlutusTx.+ 4, "four") + , (n PlutusTx.+ 5, "five") + ] + m2 = + Map.unsafeFromList + [ (n PlutusTx.+ 3, "THREE") + , (n PlutusTx.+ 4, "FOUR") + , (n PlutusTx.+ 6, "SIX") + , (n PlutusTx.+ 7, "SEVEN") + ] + m = Map.unionWith PlutusTx.appendByteString m1 m2 + in PlutusTx.fmap (\(k, v) -> (k, PlutusTx.decodeUtf8 v)) (Map.toList m) + ||] + ) diff --git a/plutus-tx-plugin/test/Spec.hs b/plutus-tx-plugin/test/Spec.hs index 9bc0fc60924..9864f4de6f6 100644 --- a/plutus-tx-plugin/test/Spec.hs +++ b/plutus-tx-plugin/test/Spec.hs @@ -9,6 +9,7 @@ import IntegerLiterals.Strict.NegativeLiterals.Spec qualified as IntegerLiterals import IntegerLiterals.Strict.NoNegativeLiterals.Spec qualified as IntegerLiterals.Strict.NoNegativeLiterals import IsData.Spec qualified as IsData import Lift.Spec qualified as Lift +import Map.Spec qualified as Map import Optimization.Spec qualified as Optimization import Plugin.Spec qualified as Plugin import StdLib.Spec qualified as Lib @@ -32,6 +33,7 @@ tests = , IntegerLiterals.Strict.NoNegativeLiterals.tests , IsData.tests , Lift.tests + , Map.tests , TH.tests , Lib.tests , Budget.tests diff --git a/plutus-tx/changelog.d/20240103_195929_unsafeFixIO_map.md b/plutus-tx/changelog.d/20240103_195929_unsafeFixIO_map.md new file mode 100644 index 00000000000..de6413ee955 --- /dev/null +++ b/plutus-tx/changelog.d/20240103_195929_unsafeFixIO_map.md @@ -0,0 +1,4 @@ + +### Added + +- Module `PlutusTx.DataMap`, providing a Data-backed map implementation for Plutus Tx. diff --git a/plutus-tx/plutus-tx.cabal b/plutus-tx/plutus-tx.cabal index b893a77505f..a91e0d45e40 100644 --- a/plutus-tx/plutus-tx.cabal +++ b/plutus-tx/plutus-tx.cabal @@ -56,6 +56,7 @@ library PlutusTx.Builtins.Internal PlutusTx.Code PlutusTx.Coverage + PlutusTx.DataMap PlutusTx.Either PlutusTx.Enum PlutusTx.Eq diff --git a/plutus-tx/src/PlutusTx/AssocMap.hs b/plutus-tx/src/PlutusTx/AssocMap.hs index 9ab4ed0a72e..618e4122113 100644 --- a/plutus-tx/src/PlutusTx/AssocMap.hs +++ b/plutus-tx/src/PlutusTx/AssocMap.hs @@ -38,7 +38,7 @@ module PlutusTx.AssocMap ( import Prelude qualified as Haskell -import PlutusTx.Builtins qualified as P +import PlutusTx.Builtins qualified as P hiding (null) import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.IsData import PlutusTx.Lift (makeLift) @@ -198,6 +198,7 @@ delete key (Map ls) = Map (go ls) keys :: Map k v -> [k] keys (Map xs) = P.fmap (\(k, _ :: v) -> k) xs +{-# INLINEABLE union #-} -- | Combine two 'Map's. union :: forall k v r. (Eq k) => Map k v -> Map k r -> Map k (These v r) union (Map ls) (Map rs) = diff --git a/plutus-tx/src/PlutusTx/Builtins.hs b/plutus-tx/src/PlutusTx/Builtins.hs index 392a479fbfa..89f8ee53ea3 100644 --- a/plutus-tx/src/PlutusTx/Builtins.hs +++ b/plutus-tx/src/PlutusTx/Builtins.hs @@ -68,6 +68,7 @@ module PlutusTx.Builtins ( -- * Pairs , pairToPair -- * Lists + , null , matchList , headMaybe , BI.head @@ -381,6 +382,10 @@ trace = BI.trace encodeUtf8 :: BuiltinString -> BuiltinByteString encodeUtf8 = BI.encodeUtf8 +{-# INLINABLE null #-} +null :: forall a. BI.BuiltinList a -> Bool +null l = fromBuiltin (BI.null l) + {-# INLINABLE matchList #-} matchList :: forall a r . BI.BuiltinList a -> r -> (a -> BI.BuiltinList a -> r) -> r matchList l nilCase consCase = BI.chooseList l (const nilCase) (\_ -> consCase (BI.head l) (BI.tail l)) () diff --git a/plutus-tx/src/PlutusTx/DataMap.hs b/plutus-tx/src/PlutusTx/DataMap.hs new file mode 100644 index 00000000000..f1951b37d3c --- /dev/null +++ b/plutus-tx/src/PlutusTx/DataMap.hs @@ -0,0 +1,355 @@ +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE TupleSections #-} +{-# LANGUAGE ViewPatterns #-} + +module PlutusTx.DataMap where + +import PlutusTx.Builtins qualified as P +import PlutusTx.Builtins.Internal qualified as BI +import PlutusTx.IsData qualified as P +import PlutusTx.Prelude hiding (null, toList) +import PlutusTx.These + +import Prelude qualified as Haskell + +{- | An associative map implementation backed by `P.BuiltinData`. + +This map implementation has the following characteristics: + + * The `P.toBuiltinData` and `P.unsafeFromBuiltinData` operations are no-op. + * Other operations are slower than @PlutusTx.AssocMap.Map@, although equality + checks on keys can be faster due to `P.equalsData`. + * Many operations involve converting the keys and/or values to/from `P.BuiltinData`. + +Therefore this map implementation is likely a better choice than @PlutusTx.AssocMap.Map@ +if it is part of a data type defined using @asData@, and the key and value types +have efficient `P.toBuiltinData` and `P.unsafeFromBuiltinData` operations (e.g., they +are primitive types or types defined using @asData@). +-} +newtype Map k a = Map P.BuiltinData + deriving stock (Haskell.Eq, Haskell.Show) + deriving newtype (Eq) + +instance P.ToData (Map k a) where + {-# INLINEABLE toBuiltinData #-} + toBuiltinData (Map d) = d + +instance P.FromData (Map k a) where + fromBuiltinData = Just . Map + +instance P.UnsafeFromData (Map k a) where + unsafeFromBuiltinData = Map + +{-# INLINEABLE lookup #-} +lookup :: forall k a. (P.ToData k, P.UnsafeFromData a) => k -> Map k a -> Maybe a +lookup (P.toBuiltinData -> k) m = case lookup' k (toBuiltinList m) of + Just a -> Just (P.unsafeFromBuiltinData a) + Nothing -> Nothing + +{-# INLINEABLE lookup' #-} +lookup' :: + BuiltinData -> + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + Maybe BuiltinData +lookup' k = go + where + go xs = + P.matchList + xs + Nothing + ( \hd tl -> + let k' = BI.fst hd + in if P.equalsData k k' + then Just (BI.snd hd) + else go tl + ) + +{-# INLINEABLE member #-} +member :: forall k a. (P.ToData k) => k -> Map k a -> Bool +member (P.toBuiltinData -> k) m = member' k (toBuiltinList m) + +{-# INLINEABLE member' #-} +member' :: BuiltinData -> BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool +member' k = go + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + False + ( \hd tl -> + let k' = BI.fst hd + in if P.equalsData k k' + then True + else go tl + ) + +{-# INLINEABLE insert #-} +insert :: forall k a. (P.ToData k, P.ToData a) => k -> a -> Map k a -> Map k a +insert (P.toBuiltinData -> k) (P.toBuiltinData -> a) m = + unsafeFromBuiltinList (go (toBuiltinList m)) + where + go :: + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + go xs = + P.matchList + xs + (BI.mkCons (BI.mkPairData k a) nil) + ( \hd tl -> + let k' = BI.fst hd + in if P.equalsData k k' + then BI.mkCons (BI.mkPairData k a) tl + else BI.mkCons hd (go tl) + ) + +{-# INLINEABLE delete #-} +delete :: forall k a. (P.ToData k) => k -> Map k a -> Map k a +delete (P.toBuiltinData -> k) m = unsafeFromBuiltinList (go (toBuiltinList m)) + where + go :: + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + go xs = + P.matchList + xs + nil + ( \hd tl -> + let k' = BI.fst hd + in if P.equalsData k k' + then tl + else BI.mkCons hd (go tl) + ) + +{-# INLINEABLE singleton #-} +singleton :: forall k a. (P.ToData k, P.ToData a) => k -> a -> Map k a +singleton (P.toBuiltinData -> k) (P.toBuiltinData -> a) = unsafeFromBuiltinList xs + where + xs = BI.mkCons (BI.mkPairData k a) nil + +{-# INLINEABLE empty #-} +empty :: forall k a. Map k a +empty = unsafeFromBuiltinList nil + +{-# INLINEABLE null #-} +null :: forall k a. Map k a -> Bool +null = P.null . toBuiltinList + +{-# INLINEABLE unsafeFromList #-} +unsafeFromList :: (P.ToData k, P.ToData a) => [(k, a)] -> Map k a +unsafeFromList = + unsafeFromBuiltinList + . toBuiltin + . PlutusTx.Prelude.map (\(k, a) -> (P.toBuiltinData k, P.toBuiltinData a)) + +{-# INLINEABLE uncons #-} +uncons :: + forall k a. + (P.UnsafeFromData k, P.UnsafeFromData a) => + Map k a -> + Maybe ((k, a), Map k a) +uncons m = case P.uncons (toBuiltinList m) of + Nothing -> Nothing + Just (pair, rest) -> + let (k, a) = P.pairToPair pair + in Just ((P.unsafeFromBuiltinData k, P.unsafeFromBuiltinData a), unsafeFromBuiltinList rest) + +{-# INLINEABLE unsafeUncons #-} +unsafeUncons :: + forall k a. + (P.UnsafeFromData k, P.UnsafeFromData a) => + Map k a -> + ((k, a), Map k a) +unsafeUncons m = + ((P.unsafeFromBuiltinData k, P.unsafeFromBuiltinData a), unsafeFromBuiltinList tl) + where + (hd, tl) = P.unsafeUncons (toBuiltinList m) + (k, a) = P.pairToPair hd + +{-# INLINEABLE noDuplicateKeys #-} +noDuplicateKeys :: forall k a. Map k a -> Bool +noDuplicateKeys m = go (toBuiltinList m) + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + True + ( \hd tl -> + let k = BI.fst hd + in if member' k tl then False else go tl + ) + +{-# INLINEABLE all #-} +all :: forall k a. (P.UnsafeFromData a) => (a -> Bool) -> Map k a -> Bool +all p m = go (toBuiltinList m) + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + True + ( \hd tl -> + let a = P.unsafeFromBuiltinData (BI.snd hd) + in if p a then go tl else False + ) + +{-# INLINEABLE any #-} +any :: forall k a. (P.UnsafeFromData a) => (a -> Bool) -> Map k a -> Bool +any p m = go (toBuiltinList m) + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + False + ( \hd tl -> + let a = P.unsafeFromBuiltinData (BI.snd hd) + in if p a then True else go tl + ) + +{-# INLINEABLE union #-} + +-- | Combine two 'Map's. +union :: + forall k a b. + (P.UnsafeFromData a, P.UnsafeFromData b, P.ToData a, P.ToData b) => + Map k a -> + Map k b -> + Map k (These a b) +union (toBuiltinList -> ls) (toBuiltinList -> rs) = unsafeFromBuiltinList res + where + ls' :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + ls' = go ls + where + go xs = + P.matchList + xs + nil + ( \hd tl -> + let k' = BI.fst hd + v' = BI.snd hd + v'' = case lookup' k' rs of + Just r -> + P.toBuiltinData + ( These + (P.unsafeFromBuiltinData v') + (P.unsafeFromBuiltinData r) :: + These a b + ) + Nothing -> P.toBuiltinData (This (P.unsafeFromBuiltinData v') :: These a b) + in BI.mkCons (BI.mkPairData k' v'') (go tl) + ) + + rs' :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + rs' = go rs + where + go xs = + P.matchList + xs + nil + ( \hd tl -> + let k' = BI.fst hd + tl' = go tl + in if member' k' ls + then tl' + else BI.mkCons hd tl' + ) + + res :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + res = go rs' ls' + where + go acc xs = + P.matchList + xs + acc + (\hd -> go (BI.mkCons hd acc)) + +-- | Combine two 'Map's with the given combination function. +unionWith :: + forall k a. + (P.UnsafeFromData a, P.ToData a) => + (a -> a -> a) -> + Map k a -> + Map k a -> + Map k a +unionWith f (toBuiltinList -> ls) (toBuiltinList -> rs) = + unsafeFromBuiltinList res + where + ls' :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + ls' = go ls + where + go xs = + P.matchList + xs + nil + ( \hd tl -> + let k' = BI.fst hd + v' = BI.snd hd + v'' = case lookup' k' rs of + Just r -> + P.toBuiltinData + (f (P.unsafeFromBuiltinData v') (P.unsafeFromBuiltinData r)) + Nothing -> v' + in BI.mkCons (BI.mkPairData k' v'') (go tl) + ) + + rs' :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + rs' = go rs + where + go xs = + P.matchList + xs + nil + ( \hd tl -> + let k' = BI.fst hd + tl' = go tl + in if member' k' ls + then tl' + else BI.mkCons hd tl' + ) + + res :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + res = go rs' ls' + where + go acc xs = + P.matchList + xs + acc + (\hd -> go (BI.mkCons hd acc)) + +{-# INLINEABLE toList #-} + +{- | `toList` is expensive since it traverses the whole map. +`toBuiltinList` is much faster. +-} +toList :: (P.UnsafeFromData k, P.UnsafeFromData a) => Map k a -> [(k, a)] +toList d = go (toBuiltinList d) + where + go xs = + P.matchList + xs + [] + ( \hd tl -> + (P.unsafeFromBuiltinData (BI.fst hd), P.unsafeFromBuiltinData (BI.snd hd)) + : go tl + ) + +{-# INLINEABLE toBuiltinList #-} +toBuiltinList :: Map k a -> BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) +toBuiltinList (Map d) = BI.unsafeDataAsMap d + +{-# INLINEABLE unsafeFromBuiltinList #-} +unsafeFromBuiltinList :: + forall k a. + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + Map k a +unsafeFromBuiltinList = Map . BI.mkMap + +{-# INLINEABLE nil #-} +nil :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) +nil = BI.mkNilPairData BI.unitval diff --git a/plutus-tx/src/PlutusTx/IsData/Instances.hs b/plutus-tx/src/PlutusTx/IsData/Instances.hs index 7ba73932838..29bb1375e5a 100644 --- a/plutus-tx/src/PlutusTx/IsData/Instances.hs +++ b/plutus-tx/src/PlutusTx/IsData/Instances.hs @@ -12,12 +12,14 @@ import PlutusTx.Bool (Bool (..)) import PlutusTx.Either (Either (..)) import PlutusTx.IsData.TH import PlutusTx.Maybe (Maybe (..)) +import PlutusTx.These (These (..)) -- While these types should be stable, we really don't want them changing, so index -- them explicitly to be sure. makeIsDataIndexed ''Bool [('False,0),('True,1)] makeIsDataIndexed ''Maybe [('Just,0),('Nothing,1)] makeIsDataIndexed ''Either [('Left,0),('Right,1)] +makeIsDataIndexed ''These [('This,1),('That,2),('These,3)] -- Okay to use unstableMakeIsData here since there's only one alternative and we're sure that will never change unstableMakeIsData ''()