From 0f2adfb9fb20b5d66d45efece18f2bb69a7adfaa Mon Sep 17 00:00:00 2001 From: Ziyang Liu Date: Fri, 8 Dec 2023 17:32:12 -0800 Subject: [PATCH 1/3] Improve beta reduction in callsite inliner for PIR --- ...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 +- .../nofib/test/9.6/queens4-bt.eval.golden | 4 +- .../nofib/test/9.6/queens4-bt.size.golden | 2 +- .../nofib/test/9.6/queens5-fc.eval.golden | 4 +- .../nofib/test/9.6/queens5-fc.size.golden | 2 +- .../9.6/checkScriptContext1-20.eval.golden | 4 +- .../9.6/checkScriptContext1-4.eval.golden | 4 +- .../test/9.6/checkScriptContext1.pir.golden | 1106 ++++++++-------- .../test/9.6/checkScriptContext1.size.golden | 2 +- .../9.6/checkScriptContext2-20.eval.golden | 4 +- .../9.6/checkScriptContext2-4.eval.golden | 4 +- .../test/9.6/checkScriptContext2.pir.golden | 1138 ++++++++--------- .../test/9.6/checkScriptContext2.size.golden | 2 +- ...ckScriptContextEqualityTerm-20.eval.golden | 4 +- .../20231208_173127_unsafeFixIO_beta.md | 3 + plutus-core/plutus-core.cabal | 1 - .../Transform/Inline/CallSiteInline.hs | 156 --- .../src/PlutusIR/Transform/Inline/Inline.hs | 258 +++- .../Transform/Inline/letTypeApp2.golden | 5 +- .../Budget/9.6/patternMatching.uplc.golden | 8 +- .../test/Budget/9.6/monadicDo.eval.golden | 4 +- .../test/Budget/9.6/monadicDo.pir.golden | 21 +- .../test/Budget/9.6/monadicDo.uplc.golden | 11 +- 123 files changed, 1508 insertions(+), 1641 deletions(-) create mode 100644 plutus-core/changelog.d/20231208_173127_unsafeFixIO_beta.md delete mode 100644 plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/CallSiteInline.hs 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 f32425b3918..b27a35f2f7e 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: 407601855 -| mem: 1477179}) \ No newline at end of file +({cpu: 403906327 +| mem: 1462823}) \ 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 cdabe44c93d..6224ffb16eb 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: 522255055 -| mem: 1830988}) \ No newline at end of file +({cpu: 518007527 +| mem: 1814232}) \ 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 2077a52be16..9a7366c2924 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: 1407720402 -| mem: 5294910}) \ No newline at end of file +({cpu: 1401772742 +| mem: 5271190}) \ 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 fc2ed644cd0..fe2ae00cd50 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: 1001034366 -| mem: 3583519}) \ No newline at end of file +({cpu: 993884746 +| mem: 3555539}) \ 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 e10b851b73f..8031cfa00ca 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: 860793592 -| mem: 2553876}) \ No newline at end of file +({cpu: 855491800 +| mem: 2533392}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 0e3b6620290..d97fbe2bab3 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: 1030696397 -| mem: 3782440}) \ No newline at end of file +({cpu: 1025197173 +| mem: 3760352}) \ 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 ff2b3e93c19..bc76ef593d9 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: 1019865402 -| mem: 3749907}) \ No newline at end of file +({cpu: 1016672138 +| mem: 3736879}) \ 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 10c4ed9490b..39a6f30eb08 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: 954833105 -| mem: 3455845}) \ No newline at end of file +({cpu: 948210617 +| mem: 3429729}) \ 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 b41b2b6f3c2..3d90996e840 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: 1402115404 -| mem: 4890633}) \ No newline at end of file +({cpu: 1397296612 +| mem: 4872249}) \ 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 84f02dc6d93..dddb92bc0f5 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: 1553252794 -| mem: 5294410}) \ No newline at end of file +({cpu: 1545004778 +| mem: 5262938}) \ 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 b4601db169f..3904c72bacc 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: 1384046735 -| mem: 5072467}) \ No newline at end of file +({cpu: 1379868207 +| mem: 5056011}) \ 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 267c89ac4eb..7f12e00bb98 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: 1520150355 -| mem: 5545241}) \ No newline at end of file +({cpu: 1516222959 +| mem: 5529449}) \ 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 3cd370cb5e4..62250a6e15d 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: 1844252158 -| mem: 6726088}) \ No newline at end of file +({cpu: 1837457234 +| mem: 6699540}) \ 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 faabc6b4483..9b38da06405 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: 627192737 -| mem: 2312671}) \ No newline at end of file +({cpu: 624551473 +| mem: 2302043}) \ 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 4354ee1d65e..b544336f147 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: 966167166 -| mem: 3507237}) \ No newline at end of file +({cpu: 959017546 +| mem: 3479257}) \ 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 ae71d97bf1c..415e1f5a89b 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: 648299297 -| mem: 2391323}) \ No newline at end of file +({cpu: 645451033 +| mem: 2379795}) \ 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 5f24665c7c5..d80decd485d 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: 988547033 -| mem: 3618315}) \ No newline at end of file +({cpu: 984895637 +| mem: 3603723}) \ 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 9c4f57de238..0417c15d87d 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: 385276391 -| mem: 1405139}) \ No newline at end of file +({cpu: 382704127 +| mem: 1394811}) \ 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 8e564d2884f..76c52a18d1f 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: 1209908119 -| mem: 4440272}) \ No newline at end of file +({cpu: 1205108591 +| mem: 4421116}) \ 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 b84507ee723..cbec35bfe2c 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: 970061915 -| mem: 3453691}) \ No newline at end of file +({cpu: 963439427 +| mem: 3427575}) \ 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 d8337597d2a..fab36bf6dcd 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: 385301563 -| mem: 1405139}) \ No newline at end of file +({cpu: 382729299 +| mem: 1394811}) \ 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 b17ce727152..502b88c7e68 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: 686071087 -| mem: 1323498}) \ No newline at end of file +({cpu: 682444559 +| mem: 1309442}) \ 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 46438cbd2e2..788baf1c258 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: 2110450886 -| mem: 1744478}) \ No newline at end of file +({cpu: 2105149094 +| mem: 1723994}) \ 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 d00e47dd7d1..53cecff6479 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: 453854627 -| mem: 1674432}) \ No newline at end of file +({cpu: 449607099 +| mem: 1657676}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 9454f2db530..3244bb55ccb 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: 732763263 -| mem: 2726188}) \ No newline at end of file +({cpu: 725958515 +| mem: 2699072}) \ 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 3df4e2197f2..919875e4902 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: 1144496862 -| mem: 1788298}) \ No newline at end of file +({cpu: 1137440982 +| mem: 1760518}) \ 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 bcb2e498101..599b195a9c4 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: 1065684631 -| mem: 3528838}) \ No newline at end of file +({cpu: 1057239183 +| mem: 3495762}) \ 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 fb55230d148..a9ddfafd64f 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: 1031599142 -| mem: 3790873}) \ No newline at end of file +({cpu: 1028405878 +| mem: 3777845}) \ 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 7a74c477b8f..9a6d646f844 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: 967726957 -| mem: 3514346}) \ No newline at end of file +({cpu: 962227733 +| mem: 3492258}) \ 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 8594bb5b968..1a1095d2977 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: 1564645258 -| mem: 5830862}) \ No newline at end of file +({cpu: 1558170466 +| mem: 5805278}) \ 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 9c4f57de238..0417c15d87d 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: 385276391 -| mem: 1405139}) \ No newline at end of file +({cpu: 382704127 +| mem: 1394811}) \ 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 bbc51680e5a..00a1007757d 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: 608309685 -| mem: 2247323}) \ No newline at end of file +({cpu: 605668421 +| mem: 2236695}) \ 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 a49be2c5f1e..a3d9b48f573 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: 817352465 -| mem: 3052920}) \ No newline at end of file +({cpu: 811853241 +| mem: 3030832}) \ 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 3a88ccbaa94..a25f3cbd7ae 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: 986784461 -| mem: 3610124}) \ No newline at end of file +({cpu: 980058409 +| mem: 3583240}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 61d061977b0..70599643eb7 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: 1036215512 -| mem: 3711782}) \ No newline at end of file +({cpu: 1029765588 +| mem: 3686734}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 57e1ac150e5..16e2563a4fa 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: 1401095650 -| mem: 5167867}) \ No newline at end of file +({cpu: 1397168254 +| mem: 5152075}) \ 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 8c98d4052a7..c1e0d6be994 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: 914550051 -| mem: 3376813}) \ No newline at end of file +({cpu: 910657091 +| mem: 3360853}) \ 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 30fe8214c40..61a903da0a4 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: 478983264 -| mem: 1704768}) \ No newline at end of file +({cpu: 474735736 +| mem: 1688012}) \ 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 0244cc73411..d9e1cf41ab1 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: 463007619 -| mem: 1665229}) \ No newline at end of file +({cpu: 460435355 +| mem: 1654901}) \ 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 8a52fe46661..88845b9b974 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: 474283315 -| mem: 1700021}) \ No newline at end of file +({cpu: 471711051 +| mem: 1689693}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 62e6763c496..d9d1d725170 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: 1049030736 -| mem: 3924828}) \ No newline at end of file +({cpu: 1044231208 +| mem: 3905672}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 8d7f8f43964..5cd4b647892 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: 642606928 -| mem: 2367755}) \ No newline at end of file +({cpu: 639758664 +| mem: 2356227}) \ 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 99c1c27698d..b3a7265dc6c 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: 1404404084 -| mem: 5028113}) \ No newline at end of file +({cpu: 1398298904 +| mem: 5003293}) \ 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 cec9b105863..cd8f38ad0f1 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: 1408600460 -| mem: 5119979}) \ No newline at end of file +({cpu: 1402209712 +| mem: 5094663}) \ 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 2f4037db9cf..41b41245f9f 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: 678954715 -| mem: 2473429}) \ No newline at end of file +({cpu: 675648319 +| mem: 2460337}) \ 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 9c4f57de238..0417c15d87d 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: 385276391 -| mem: 1405139}) \ No newline at end of file +({cpu: 382704127 +| mem: 1394811}) \ 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 3eb54fa9612..a14f569c8e2 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: 996716798 -| mem: 3680904}) \ No newline at end of file +({cpu: 989990746 +| mem: 3654020}) \ 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 a274b44d332..e44647a3307 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: 644941512 -| mem: 2375947}) \ No newline at end of file +({cpu: 642093248 +| mem: 2364419}) \ 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 51c8f9313c6..82506912024 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: 878938534 -| mem: 3260832}) \ No newline at end of file +({cpu: 872739614 +| mem: 3235812}) \ 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 ed9b7e1c26b..f0bee3fd753 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: 1355371139 -| mem: 1942934}) \ No newline at end of file +({cpu: 1350069347 +| mem: 1922450}) \ 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 c2365c5486f..3ea751e7c8e 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: 1828221128 -| mem: 6180994}) \ No newline at end of file +({cpu: 1819352112 +| mem: 6146822}) \ 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 9e8747511dd..54e0ce42d43 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: 1418456079 -| mem: 5211329}) \ No newline at end of file +({cpu: 1414252683 +| mem: 5194337}) \ 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 46438cbd2e2..788baf1c258 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: 2110450886 -| mem: 1744478}) \ No newline at end of file +({cpu: 2105149094 +| mem: 1723994}) \ 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 59094fd72b1..c998c7dcf8e 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: 645201827 -| mem: 2373257}) \ No newline at end of file +({cpu: 642353563 +| mem: 2361729}) \ 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 3fed9186770..199ec505636 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: 985691275 -| mem: 3563637}) \ No newline at end of file +({cpu: 978541655 +| mem: 3535657}) \ 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 4b854d98a74..898695d2cc5 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: 629837794 -| mem: 2318173}) \ No newline at end of file +({cpu: 627196530 +| mem: 2307545}) \ 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 7929991c874..2a67f11f7da 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: 1049297414 -| mem: 3883112}) \ No newline at end of file +({cpu: 1044083886 +| mem: 3862156}) \ 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 e551e00d9ea..9917018e27a 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: 1070962040 -| mem: 4002606}) \ No newline at end of file +({cpu: 1065748512 +| mem: 3981650}) \ 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 a62cfec177f..afd8cc652ac 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: 911494726 -| mem: 3363537}) \ No newline at end of file +({cpu: 907601766 +| mem: 3347577}) \ 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 2f69eaa6d5a..341dbd37916 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: 648922307 -| mem: 2290040}) \ No newline at end of file +({cpu: 641866427 +| mem: 2262260}) \ 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 07d7d027eda..7f1097d977c 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: 608325750 -| mem: 2238554}) \ No newline at end of file +({cpu: 603457222 +| mem: 2219098}) \ 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 4bb3a61a8d5..756514f4b44 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: 1585968300 -| mem: 5327898}) \ No newline at end of file +({cpu: 1579016112 +| mem: 5301522}) \ 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 c1d1821daf6..9ad9ecfafca 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: 1584456023 -| mem: 5845494}) \ No newline at end of file +({cpu: 1578602231 +| mem: 5822610}) \ 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 d00e47dd7d1..53cecff6479 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: 453854627 -| mem: 1674432}) \ No newline at end of file +({cpu: 449607099 +| mem: 1657676}) \ 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 9c4f57de238..0417c15d87d 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: 385276391 -| mem: 1405139}) \ No newline at end of file +({cpu: 382704127 +| mem: 1394811}) \ 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 4e33cc6a817..ac63af6980c 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: 1412211683 -| mem: 4917739}) \ No newline at end of file +({cpu: 1407392891 +| mem: 4899355}) \ 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 8a52fe46661..88845b9b974 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: 474283315 -| mem: 1700021}) \ No newline at end of file +({cpu: 471711051 +| mem: 1689693}) \ 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 2f69eaa6d5a..341dbd37916 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: 648922307 -| mem: 2290040}) \ No newline at end of file +({cpu: 641866427 +| mem: 2262260}) \ 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 6f8504cea71..fd7bcf96dcc 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: 841241751 -| mem: 3127602}) \ No newline at end of file +({cpu: 835742527 +| mem: 3105514}) \ 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 d5138470bb8..6e74ed9b31a 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: 403215675 -| mem: 1398153}) \ No newline at end of file +({cpu: 400919411 +| mem: 1389025}) \ 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 c66e698ccc2..387e2b3b700 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: 765506491 -| mem: 2833538}) \ No newline at end of file +({cpu: 759307571 +| mem: 2808518}) \ 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 498423d5360..1147fa3f743 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: 1821372370 -| mem: 6627430}) \ No newline at end of file +({cpu: 1814577446 +| mem: 6600882}) \ 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 bd0371862cc..98eba04d806 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: 1023690070 -| mem: 3816008}) \ No newline at end of file +({cpu: 1018890542 +| mem: 3796852}) \ 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 d6ab0dd7c52..b0554d1fae6 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: 1317570652 -| mem: 4863586}) \ No newline at end of file +({cpu: 1309617772 +| mem: 4831906}) \ 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 0a8f305f661..9f08846ddaa 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: 975932642 -| mem: 3623079}) \ No newline at end of file +({cpu: 970778290 +| mem: 3601855}) \ 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 d0c822149b7..14b315f6361 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: 1078703408 -| mem: 4005530}) \ No newline at end of file +({cpu: 1073489880 +| mem: 3984574}) \ 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 e8d059ec611..f78ff55a2fd 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: 675062039 -| mem: 1288260}) \ No newline at end of file +({cpu: 671435511 +| mem: 1274204}) \ 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 7fe51676abd..21242d89085 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: 1212796491 -| mem: 4505340}) \ No newline at end of file +({cpu: 1207996963 +| mem: 4486184}) \ 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 f9f29af7997..3f710c40071 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: 1135382428 -| mem: 4199182}) \ No newline at end of file +({cpu: 1130582900 +| mem: 4180026}) \ 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 6723b4f72db..464abe35c6d 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: 651496115 -| mem: 2399083}) \ No newline at end of file +({cpu: 648854851 +| mem: 2388455}) \ 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 821aba07f18..0cd0e78ae68 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: 8430330323 -| mem: 1143514}) \ No newline at end of file +({cpu: 8426703795 +| mem: 1129458}) \ 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 7558a95924a..e852713ffc3 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: 1403032386 -| mem: 5190643}) \ No newline at end of file +({cpu: 1399104990 +| mem: 5174851}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 7f423afe330..41f345c06ba 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: 610929570 -| mem: 2252825}) \ No newline at end of file +({cpu: 608288306 +| mem: 2242197}) \ 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 f66bb8af3ad..998e2e8227e 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: 1020924313 -| mem: 3813502}) \ No newline at end of file +({cpu: 1016124785 +| mem: 3794346}) \ 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 707a2aae068..99ac3e7ace6 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: 449083545 -| mem: 1619978}) \ No newline at end of file +({cpu: 444836017 +| mem: 1603222}) \ 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 197602b46ea..c8daf157d4a 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: 505079733 -| mem: 1855822}) \ No newline at end of file +({cpu: 500832205 +| mem: 1839066}) \ 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 9c4f57de238..0417c15d87d 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: 385276391 -| mem: 1405139}) \ No newline at end of file +({cpu: 382704127 +| mem: 1394811}) \ 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 50386bc325c..57dbf5e3f35 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: 905047326 -| mem: 2690550}) \ No newline at end of file +({cpu: 899745534 +| mem: 2670066}) \ 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 8aca40a8faa..3606ca47d4a 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: 382656506 -| mem: 1399637}) \ No newline at end of file +({cpu: 380084242 +| mem: 1389309}) \ 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 dbfea32a864..618bd96ed00 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: 836610327 -| mem: 3038000}) \ No newline at end of file +({cpu: 830583971 +| mem: 3014048}) \ 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 9d2faafa8a9..c2eeb335da1 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: 943141631 -| mem: 3206532}) \ No newline at end of file +({cpu: 935317183 +| mem: 3176156}) \ 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 4d1e2a524e4..c866e2bbca9 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: 1957673142 -| mem: 1228304}) \ No newline at end of file +({cpu: 1954046614 +| mem: 1214248}) \ 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 38cd113e394..603c72fda60 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: 1249749110 -| mem: 4599646}) \ No newline at end of file +({cpu: 1244422450 +| mem: 4578626}) \ 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 8b263e9cb95..ea066eb4fcb 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 @@ -11609 \ No newline at end of file +11733 \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/9.6/queens4-bt.eval.golden b/plutus-benchmark/nofib/test/9.6/queens4-bt.eval.golden index 1e51ec96f7a..a07bc06fcb5 100644 --- a/plutus-benchmark/nofib/test/9.6/queens4-bt.eval.golden +++ b/plutus-benchmark/nofib/test/9.6/queens4-bt.eval.golden @@ -1,2 +1,2 @@ -({cpu: 8028768773 -| mem: 28840930}) \ No newline at end of file +({cpu: 8027457773 +| mem: 28835230}) \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/9.6/queens4-bt.size.golden b/plutus-benchmark/nofib/test/9.6/queens4-bt.size.golden index 3d99cf3b62a..fac82753fd5 100644 --- a/plutus-benchmark/nofib/test/9.6/queens4-bt.size.golden +++ b/plutus-benchmark/nofib/test/9.6/queens4-bt.size.golden @@ -1 +1 @@ -1930 \ No newline at end of file +1946 \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/9.6/queens5-fc.eval.golden b/plutus-benchmark/nofib/test/9.6/queens5-fc.eval.golden index 58a40d16544..a27ffc000ad 100644 --- a/plutus-benchmark/nofib/test/9.6/queens5-fc.eval.golden +++ b/plutus-benchmark/nofib/test/9.6/queens5-fc.eval.golden @@ -1,2 +1,2 @@ -({cpu: 284714232581 -| mem: 1087139966}) \ No newline at end of file +({cpu: 284440785581 +| mem: 1085951066}) \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/9.6/queens5-fc.size.golden b/plutus-benchmark/nofib/test/9.6/queens5-fc.size.golden index 3d99cf3b62a..fac82753fd5 100644 --- a/plutus-benchmark/nofib/test/9.6/queens5-fc.size.golden +++ b/plutus-benchmark/nofib/test/9.6/queens5-fc.size.golden @@ -1 +1 @@ -1930 \ No newline at end of file +1946 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.eval.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.eval.golden index 467c51fc8a8..663e152d87e 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 385307086 -| mem: 1190395}) \ No newline at end of file +({cpu: 368586086 +| mem: 1117695}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.eval.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.eval.golden index 52a8b9014ec..86d2cf5b9a2 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.eval.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 117167854 -| mem: 366171}) \ No newline at end of file +({cpu: 114430854 +| mem: 354271}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden index 6ad6fb74950..fb4ed5d2ace 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden @@ -45,68 +45,8 @@ {all dead. dead} in let - !`$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` : data -> data - = \(d : data) -> d - !reconstructCaseError : string = "PT1" data Unit | Unit_match where Unit : Unit - !traceError : all a. string -> a - = /\a -> - \(str : string) -> let !x : Unit = trace {Unit} str Unit in error {a} - data Bool | Bool_match where - True : Bool - False : Bool - !`$fUnsafeFromDataBool_$cunsafeFromBuiltinData` : data -> Bool - = \(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Bool} - (equalsInteger 0 index) - (/\dead -> False) - (/\dead -> - ifThenElse - {all dead. Bool} - (equalsInteger 1 index) - (/\dead -> True) - (/\dead -> traceError {Bool} reconstructCaseError) - {all dead. dead}) - {all dead. dead} - data (Extended :: * -> *) a | Extended_match where - Finite : a -> Extended a - NegInf : Extended a - PosInf : Extended a - !`$fUnsafeFromDataExtended_$cunsafeFromBuiltinData` : - all a. (\a -> data -> a) a -> data -> Extended a - = /\a -> - \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Extended a} - (equalsInteger 0 index) - (/\dead -> NegInf {a}) - (/\dead -> - ifThenElse - {all dead. Extended a} - (equalsInteger 1 index) - (/\dead -> - Finite {a} (`$dUnsafeFromData` (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. Extended a} - (equalsInteger 2 index) - (/\dead -> PosInf {a}) - (/\dead -> traceError {Extended a} reconstructCaseError) - {all dead. dead}) - {all dead. dead}) - {all dead. dead} !`$fUnsafeFromDataList_$cunsafeFromBuiltinData` : all a. (\a -> data -> a) a -> data -> List a = /\a -> @@ -127,6 +67,10 @@ Unit in \(d : data) -> go (unListData d) + !reconstructCaseError : string = "PT1" + !traceError : all a. string -> a + = /\a -> + \(str : string) -> let !x : Unit = trace {Unit} str Unit in error {a} !`$fUnsafeFromDataTxId_$cunsafeFromBuiltinData` : data -> bytestring = \(d : data) -> let @@ -160,6 +104,530 @@ (unIData (headList {data} (tailList {data} args)))) (/\dead -> traceError {GovernanceActionId} reconstructCaseError) {all dead. dead} + !`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` : data -> Credential + = \(d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Credential} + (equalsInteger 0 index) + (/\dead -> PubKeyCredential (unBData (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. Credential} + (equalsInteger 1 index) + (/\dead -> ScriptCredential (unBData (headList {data} args))) + (/\dead -> traceError {Credential} reconstructCaseError) + {all dead. dead}) + {all dead. dead} + !`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` : + all a. (\a -> data -> a) a -> data -> Maybe a + = /\a -> + \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Maybe a} + (equalsInteger 1 index) + (/\dead -> Nothing {a}) + (/\dead -> + ifThenElse + {all dead. Maybe a} + (equalsInteger 0 index) + (/\dead -> + Just {a} (`$dUnsafeFromData` (headList {data} args))) + (/\dead -> traceError {Maybe a} reconstructCaseError) + {all dead. dead}) + {all dead. dead} + !`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` : + all k v. + (\a -> data -> a) k -> + (\a -> data -> a) v -> + data -> + (\k v -> List (Tuple2 k v)) k v + = /\k v -> + \(`$dUnsafeFromData` : (\a -> data -> a) k) + (`$dUnsafeFromData` : (\a -> data -> a) v) -> + letrec + !go : list (pair data data) -> List (Tuple2 k v) + = \(l : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> List (Tuple2 k v)} + l + (\(ds : Unit) -> Nil {Tuple2 k v}) + (\(ds : Unit) -> + let + !tup : pair data data = headList {pair data data} l + in + Cons + {Tuple2 k v} + (Tuple2 + {k} + {v} + (`$dUnsafeFromData` (fstPair {data} {data} tup)) + (`$dUnsafeFromData` (sndPair {data} {data} tup))) + (go (tailList {pair data data} l))) + Unit + in + \(d : data) -> go (unMapData d) + ~`$fUnsafeFromDataValue` : + data -> (\k v -> List (Tuple2 k v)) bytestring integer + = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {bytestring} + {integer} + unBData + unIData + ~`$fUnsafeFromDataValue` : + data -> + (\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) bytestring integer) + = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {bytestring} + {(\k v -> List (Tuple2 k v)) bytestring integer} + unBData + `$fUnsafeFromDataValue` + data Rational | Rational_match where + Rational : integer -> integer -> Rational + data Committee | Committee_match where + Committee : + (\k v -> List (Tuple2 k v)) Credential integer -> Rational -> Committee + data ProtocolVersion | ProtocolVersion_match where + ProtocolVersion : integer -> integer -> ProtocolVersion + data GovernanceAction | GovernanceAction_match where + HardForkInitiation : + Maybe GovernanceActionId -> ProtocolVersion -> GovernanceAction + InfoAction : GovernanceAction + NewCommittee : + Maybe GovernanceActionId -> + List Credential -> + Committee -> + GovernanceAction + NewConstitution : + Maybe GovernanceActionId -> Maybe bytestring -> GovernanceAction + NoConfidence : Maybe GovernanceActionId -> GovernanceAction + ParameterChange : Maybe GovernanceActionId -> data -> GovernanceAction + TreasuryWithdrawals : + (\k v -> List (Tuple2 k v)) + Credential + ((\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) bytestring integer)) -> + GovernanceAction + data ProposalProcedure | ProposalProcedure_match where + ProposalProcedure : + (\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) bytestring integer) -> + Credential -> + GovernanceAction -> + ProposalProcedure + !`$fAdditiveMonoidInteger_$czero` : integer = 0 + in + letrec + !euclid : integer -> integer -> integer + = \(x : integer) (y : integer) -> + ifThenElse + {all dead. integer} + (equalsInteger y `$fAdditiveMonoidInteger_$czero`) + (/\dead -> x) + (/\dead -> euclid y (modInteger x y)) + {all dead. dead} + in + letrec + !unsafeRatio : integer -> integer -> Rational + = \(n : integer) (d : integer) -> + ifThenElse + {all dead. Rational} + (equalsInteger d `$fAdditiveMonoidInteger_$czero`) + (/\dead -> error {Rational}) + (/\dead -> + ifThenElse + {all dead. Rational} + (lessThanInteger d `$fAdditiveMonoidInteger_$czero`) + (/\dead -> + unsafeRatio + (subtractInteger `$fAdditiveMonoidInteger_$czero` n) + (subtractInteger `$fAdditiveMonoidInteger_$czero` d)) + (/\dead -> + let + !gcd' : integer = euclid n d + in + Rational (quotientInteger n gcd') (quotientInteger d gcd')) + {all dead. dead}) + {all dead. dead} + in + letrec + !go : + list data -> List ProposalProcedure + = \(l : list data) -> + chooseList + {data} + {Unit -> List ProposalProcedure} + l + (\(ds : Unit) -> Nil {ProposalProcedure}) + (\(ds : Unit) -> + Cons + {ProposalProcedure} + (let + !tup : pair integer (list data) + = unConstrData (headList {data} l) + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ProposalProcedure} + (equalsInteger 0 index) + (/\dead -> + let + !l : list data = tailList {data} args + in + ProposalProcedure + (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {bytestring} + {(\k v -> List (Tuple2 k v)) bytestring integer} + unBData + `$fUnsafeFromDataValue` + (headList {data} args)) + (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} l)) + (let + !tup : pair integer (list data) + = unConstrData (headList {data} (tailList {data} l)) + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 0 index) + (/\dead -> + ParameterChange + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args)) + (headList {data} (tailList {data} args))) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 1 index) + (/\dead -> + HardForkInitiation + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args)) + (let + !tup : pair integer (list data) + = unConstrData + (headList + {data} + (tailList {data} args)) + !index : integer + = fstPair {integer} {list data} tup + !args : list data + = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ProtocolVersion} + (equalsInteger 0 index) + (/\dead -> + ProtocolVersion + (unIData (headList {data} args)) + (unIData + (headList + {data} + (tailList {data} args)))) + (/\dead -> + traceError + {ProtocolVersion} + reconstructCaseError) + {all dead. dead})) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 2 index) + (/\dead -> + TreasuryWithdrawals + (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {Credential} + {(\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) + bytestring + integer)} + `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + `$fUnsafeFromDataValue` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 3 index) + (/\dead -> + NoConfidence + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 4 index) + (/\dead -> + let + !l : list data + = tailList {data} args + in + NewCommittee + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args)) + (`$fUnsafeFromDataList_$cunsafeFromBuiltinData` + {Credential} + `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} l)) + (let + !tup : + pair integer (list data) + = unConstrData + (headList + {data} + (tailList + {data} + l)) + !index : integer + = fstPair + {integer} + {list data} + tup + !args : list data + = sndPair + {integer} + {list data} + tup + in + ifThenElse + {all dead. Committee} + (equalsInteger 0 index) + (/\dead -> + Committee + (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {Credential} + {integer} + `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + unIData + (headList + {data} + args)) + (let + !x : data + = headList + {data} + (tailList + {data} + args) + in + Tuple2_match + {integer} + {integer} + (let + !tup : + pair + integer + (list data) + = unConstrData x + !index : integer + = fstPair + {integer} + {list data} + tup + !args : list data + = sndPair + {integer} + {list data} + tup + in + ifThenElse + {all dead. + Tuple2 + integer + integer} + (equalsInteger + 0 + index) + (/\dead -> + Tuple2 + {integer} + {integer} + (unIData + (headList + {data} + args)) + (unIData + (headList + {data} + (tailList + {data} + args)))) + (/\dead -> + traceError + {Tuple2 + integer + integer} + reconstructCaseError) + {all dead. dead}) + {Rational} + (\(a : integer) + (b : integer) -> + unsafeRatio + a + b))) + (/\dead -> + traceError + {Committee} + reconstructCaseError) + {all dead. dead})) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 5 index) + (/\dead -> + NewConstitution + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList + {data} + args)) + (let + !tup : + pair + integer + (list data) + = unConstrData + (headList + {data} + (tailList + {data} + args)) + !index : integer + = fstPair + {integer} + {list data} + tup + !args : list data + = sndPair + {integer} + {list data} + tup + in + ifThenElse + {all dead. + Maybe bytestring} + (equalsInteger + 0 + index) + (/\dead -> + `$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {bytestring} + unBData + (headList + {data} + args)) + (/\dead -> + traceError + {Maybe + bytestring} + reconstructCaseError) + {all dead. dead})) + (/\dead -> + ifThenElse + {all dead. + GovernanceAction} + (equalsInteger 6 index) + (/\dead -> InfoAction) + (/\dead -> + traceError + {GovernanceAction} + reconstructCaseError) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead})) + (/\dead -> + traceError {ProposalProcedure} reconstructCaseError) + {all dead. dead}) + (go (tailList {data} l))) + Unit + in + let + !`$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` : data -> data + = \(d : data) -> d + data Bool | Bool_match where + True : Bool + False : Bool + !`$fUnsafeFromDataBool_$cunsafeFromBuiltinData` : data -> Bool + = \(d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Bool} + (equalsInteger 0 index) + (/\dead -> False) + (/\dead -> + ifThenElse + {all dead. Bool} + (equalsInteger 1 index) + (/\dead -> True) + (/\dead -> traceError {Bool} reconstructCaseError) + {all dead. dead}) + {all dead. dead} + data (Extended :: * -> *) a | Extended_match where + Finite : a -> Extended a + NegInf : Extended a + PosInf : Extended a + !`$fUnsafeFromDataExtended_$cunsafeFromBuiltinData` : + all a. (\a -> data -> a) a -> data -> Extended a + = /\a -> + \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Extended a} + (equalsInteger 0 index) + (/\dead -> NegInf {a}) + (/\dead -> + ifThenElse + {all dead. Extended a} + (equalsInteger 1 index) + (/\dead -> + Finite {a} (`$dUnsafeFromData` (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. Extended a} + (equalsInteger 2 index) + (/\dead -> PosInf {a}) + (/\dead -> traceError {Extended a} reconstructCaseError) + {all dead. dead}) + {all dead. dead}) + {all dead. dead} data TxOutRef | TxOutRef_match where TxOutRef : bytestring -> integer -> TxOutRef !`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` : data -> TxOutRef @@ -179,25 +647,6 @@ (unIData (headList {data} (tailList {data} args)))) (/\dead -> traceError {TxOutRef} reconstructCaseError) {all dead. dead} - !`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` : data -> Credential - = \(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Credential} - (equalsInteger 0 index) - (/\dead -> PubKeyCredential (unBData (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. Credential} - (equalsInteger 1 index) - (/\dead -> ScriptCredential (unBData (headList {data} args))) - (/\dead -> traceError {Credential} reconstructCaseError) - {all dead. dead}) - {all dead. dead} data DRep | DRep_match where DRep : Credential -> DRep DRepAlwaysAbstain : DRep @@ -266,77 +715,6 @@ {all dead. dead}) {all dead. dead}) {all dead. dead} - !`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` : - all a. (\a -> data -> a) a -> data -> Maybe a - = /\a -> - \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Maybe a} - (equalsInteger 1 index) - (/\dead -> Nothing {a}) - (/\dead -> - ifThenElse - {all dead. Maybe a} - (equalsInteger 0 index) - (/\dead -> - Just {a} (`$dUnsafeFromData` (headList {data} args))) - (/\dead -> traceError {Maybe a} reconstructCaseError) - {all dead. dead}) - {all dead. dead} - !`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` : - all k v. - (\a -> data -> a) k -> - (\a -> data -> a) v -> - data -> - (\k v -> List (Tuple2 k v)) k v - = /\k v -> - \(`$dUnsafeFromData` : (\a -> data -> a) k) - (`$dUnsafeFromData` : (\a -> data -> a) v) -> - letrec - !go : list (pair data data) -> List (Tuple2 k v) - = \(l : list (pair data data)) -> - chooseList - {pair data data} - {Unit -> List (Tuple2 k v)} - l - (\(ds : Unit) -> Nil {Tuple2 k v}) - (\(ds : Unit) -> - let - !tup : pair data data = headList {pair data data} l - in - Cons - {Tuple2 k v} - (Tuple2 - {k} - {v} - (`$dUnsafeFromData` (fstPair {data} {data} tup)) - (`$dUnsafeFromData` (sndPair {data} {data} tup))) - (go (tailList {pair data data} l))) - Unit - in - \(d : data) -> go (unMapData d) - ~`$fUnsafeFromDataValue` : - data -> (\k v -> List (Tuple2 k v)) bytestring integer - = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {bytestring} - {integer} - unBData - unIData - ~`$fUnsafeFromDataValue` : - data -> - (\k v -> List (Tuple2 k v)) - bytestring - ((\k v -> List (Tuple2 k v)) bytestring integer) - = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {bytestring} - {(\k v -> List (Tuple2 k v)) bytestring integer} - unBData - `$fUnsafeFromDataValue` data TxCert | TxCert_match where TxCertAuthHotCommittee : Credential -> Credential -> TxCert TxCertDelegStaking : Credential -> Delegatee -> TxCert @@ -803,41 +1181,6 @@ UpperBound : Extended a -> Bool -> UpperBound a data (Interval :: * -> *) a | Interval_match where Interval : LowerBound a -> UpperBound a -> Interval a - data Rational | Rational_match where - Rational : integer -> integer -> Rational - data Committee | Committee_match where - Committee : - (\k v -> List (Tuple2 k v)) Credential integer -> Rational -> Committee - data ProtocolVersion | ProtocolVersion_match where - ProtocolVersion : integer -> integer -> ProtocolVersion - data GovernanceAction | GovernanceAction_match where - HardForkInitiation : - Maybe GovernanceActionId -> ProtocolVersion -> GovernanceAction - InfoAction : GovernanceAction - NewCommittee : - Maybe GovernanceActionId -> - List Credential -> - Committee -> - GovernanceAction - NewConstitution : - Maybe GovernanceActionId -> Maybe bytestring -> GovernanceAction - NoConfidence : Maybe GovernanceActionId -> GovernanceAction - ParameterChange : Maybe GovernanceActionId -> data -> GovernanceAction - TreasuryWithdrawals : - (\k v -> List (Tuple2 k v)) - Credential - ((\k v -> List (Tuple2 k v)) - bytestring - ((\k v -> List (Tuple2 k v)) bytestring integer)) -> - GovernanceAction - data ProposalProcedure | ProposalProcedure_match where - ProposalProcedure : - (\k v -> List (Tuple2 k v)) - bytestring - ((\k v -> List (Tuple2 k v)) bytestring integer) -> - Credential -> - GovernanceAction -> - ProposalProcedure data Vote | Vote_match where Abstain : Vote VoteNo : Vote @@ -875,40 +1218,6 @@ TxInfo data ScriptContext | ScriptContext_match where ScriptContext : TxInfo -> ScriptPurpose -> ScriptContext - !`$fAdditiveMonoidInteger_$czero` : integer = 0 - in - letrec - !euclid : integer -> integer -> integer - = \(x : integer) (y : integer) -> - ifThenElse - {all dead. integer} - (equalsInteger y `$fAdditiveMonoidInteger_$czero`) - (/\dead -> x) - (/\dead -> euclid y (modInteger x y)) - {all dead. dead} - in - letrec - !unsafeRatio : integer -> integer -> Rational - = \(n : integer) (d : integer) -> - ifThenElse - {all dead. Rational} - (equalsInteger d `$fAdditiveMonoidInteger_$czero`) - (/\dead -> error {Rational}) - (/\dead -> - ifThenElse - {all dead. Rational} - (lessThanInteger d `$fAdditiveMonoidInteger_$czero`) - (/\dead -> - unsafeRatio - (subtractInteger `$fAdditiveMonoidInteger_$czero` n) - (subtractInteger `$fAdditiveMonoidInteger_$czero` d)) - (/\dead -> - let - !gcd' : integer = euclid n d - in - Rational (quotientInteger n gcd') (quotientInteger d gcd')) - {all dead. dead}) - {all dead. dead} in \(d : data) -> ScriptContext_match @@ -1105,361 +1414,10 @@ {all dead. dead}) {all dead. dead})) (headList {data} l)) - (`$fUnsafeFromDataList_$cunsafeFromBuiltinData` - {ProposalProcedure} - (\(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data - = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. ProposalProcedure} - (equalsInteger 0 index) - (/\dead -> - let - !l : list data = tailList {data} args - in - ProposalProcedure - (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {bytestring} - {(\k v -> List (Tuple2 k v)) - bytestring - integer} - unBData - `$fUnsafeFromDataValue` - (headList {data} args)) - (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - (headList {data} l)) - (let - !tup : pair integer (list data) - = unConstrData - (headList {data} (tailList {data} l)) - !index : integer - = fstPair {integer} {list data} tup - !args : list data - = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 0 index) - (/\dead -> - ParameterChange - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList {data} args)) - (headList - {data} - (tailList {data} args))) - (/\dead -> - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 1 index) - (/\dead -> - HardForkInitiation - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList {data} args)) - (let - !tup : pair integer (list data) - = unConstrData - (headList - {data} - (tailList {data} args)) - !index : integer - = fstPair - {integer} - {list data} - tup - !args : list data - = sndPair - {integer} - {list data} - tup - in - ifThenElse - {all dead. ProtocolVersion} - (equalsInteger 0 index) - (/\dead -> - ProtocolVersion - (unIData - (headList {data} args)) - (unIData - (headList - {data} - (tailList - {data} - args)))) - (/\dead -> - traceError - {ProtocolVersion} - reconstructCaseError) - {all dead. dead})) - (/\dead -> - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 2 index) - (/\dead -> - TreasuryWithdrawals - (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {Credential} - {(\k v -> - List (Tuple2 k v)) - bytestring - ((\k v -> - List (Tuple2 k v)) - bytestring - integer)} - `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - `$fUnsafeFromDataValue` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 3 index) - (/\dead -> - NoConfidence - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList - {data} - args))) - (/\dead -> - ifThenElse - {all dead. - GovernanceAction} - (equalsInteger 4 index) - (/\dead -> - let - !l : list data - = tailList - {data} - args - in - NewCommittee - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList - {data} - args)) - (`$fUnsafeFromDataList_$cunsafeFromBuiltinData` - {Credential} - `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - (headList - {data} - l)) - (let - !tup : - pair - integer - (list data) - = unConstrData - (headList - {data} - (tailList - {data} - l)) - !index : integer - = fstPair - {integer} - {list data} - tup - !args : list data - = sndPair - {integer} - {list data} - tup - in - ifThenElse - {all dead. - Committee} - (equalsInteger - 0 - index) - (/\dead -> - Committee - (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {Credential} - {integer} - `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - unIData - (headList - {data} - args)) - (let - !x : - data - = headList - {data} - (tailList - {data} - args) - in - Tuple2_match - {integer} - {integer} - (let - !tup : - pair - integer - (list - data) - = unConstrData - x - !index : - integer - = fstPair - {integer} - {list - data} - tup - !args : - list - data - = sndPair - {integer} - {list - data} - tup - in - ifThenElse - {all dead. - Tuple2 - integer - integer} - (equalsInteger - 0 - index) - (/\dead -> - Tuple2 - {integer} - {integer} - (unIData - (headList - {data} - args)) - (unIData - (headList - {data} - (tailList - {data} - args)))) - (/\dead -> - traceError - {Tuple2 - integer - integer} - reconstructCaseError) - {all dead. - dead}) - {Rational} - (\(a : - integer) - (b : - integer) -> - unsafeRatio - a - b))) - (/\dead -> - traceError - {Committee} - reconstructCaseError) - {all dead. dead})) - (/\dead -> - ifThenElse - {all dead. - GovernanceAction} - (equalsInteger - 5 - index) - (/\dead -> - NewConstitution - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList - {data} - args)) - (let - !tup : - pair - integer - (list - data) - = unConstrData - (headList - {data} - (tailList - {data} - args)) - !index : - integer - = fstPair - {integer} - {list - data} - tup - !args : - list data - = sndPair - {integer} - {list - data} - tup - in - ifThenElse - {all dead. - Maybe - bytestring} - (equalsInteger - 0 - index) - (/\dead -> - `$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {bytestring} - unBData - (headList - {data} - args)) - (/\dead -> - traceError - {Maybe - bytestring} - reconstructCaseError) - {all dead. - dead})) - (/\dead -> - ifThenElse - {all dead. - GovernanceAction} - (equalsInteger - 6 - index) - (/\dead -> - InfoAction) - (/\dead -> - traceError - {GovernanceAction} - reconstructCaseError) - {all dead. - dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead})) - (/\dead -> - traceError - {ProposalProcedure} - reconstructCaseError) - {all dead. dead}) - (headList {data} l)) + (let + !d : data = headList {data} l + in + go (unListData d)) (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` {(\k v -> List (Tuple2 k v)) bytestring diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden index 4b9661fc97b..4de13e8abe6 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden @@ -1 +1 @@ -2829 \ No newline at end of file +2903 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.eval.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.eval.golden index a9f6112f81a..a90e5438bba 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 368842597 -| mem: 1139952}) \ No newline at end of file +({cpu: 352121597 +| mem: 1067252}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.eval.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.eval.golden index 2014e24d50b..d92f185ad6b 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.eval.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.eval.golden @@ -1,2 +1,2 @@ -({cpu: 112102997 -| mem: 350960}) \ No newline at end of file +({cpu: 109365997 +| mem: 339060}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden index aead50dfeba..eb8eb451ec8 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden @@ -1,73 +1,11 @@ -(let - !`$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` : data -> data - = \(d : data) -> d - !reconstructCaseError : string = "PT1" - data Unit | Unit_match where - Unit : Unit - !traceError : all a. string -> a - = /\a -> - \(str : string) -> let !x : Unit = trace {Unit} str Unit in error {a} - data Bool | Bool_match where - True : Bool - False : Bool - !`$fUnsafeFromDataBool_$cunsafeFromBuiltinData` : data -> Bool - = \(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Bool} - (equalsInteger 0 index) - (/\dead -> False) - (/\dead -> - ifThenElse - {all dead. Bool} - (equalsInteger 1 index) - (/\dead -> True) - (/\dead -> traceError {Bool} reconstructCaseError) - {all dead. dead}) - {all dead. dead} - data (Extended :: * -> *) a | Extended_match where - Finite : a -> Extended a - NegInf : Extended a - PosInf : Extended a - !`$fUnsafeFromDataExtended_$cunsafeFromBuiltinData` : - all a. (\a -> data -> a) a -> data -> Extended a - = /\a -> - \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Extended a} - (equalsInteger 0 index) - (/\dead -> NegInf {a}) - (/\dead -> - ifThenElse - {all dead. Extended a} - (equalsInteger 1 index) - (/\dead -> - Finite {a} (`$dUnsafeFromData` (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. Extended a} - (equalsInteger 2 index) - (/\dead -> PosInf {a}) - (/\dead -> traceError {Extended a} reconstructCaseError) - {all dead. dead}) - {all dead. dead}) - {all dead. dead} - in - letrec +(letrec data (List :: * -> *) a | List_match where Nil : List a Cons : a -> List a -> List a in let + data Unit | Unit_match where + Unit : Unit !`$fUnsafeFromDataList_$cunsafeFromBuiltinData` : all a. (\a -> data -> a) a -> data -> List a = /\a -> @@ -88,6 +26,10 @@ Unit in \(d : data) -> go (unListData d) + !reconstructCaseError : string = "PT1" + !traceError : all a. string -> a + = /\a -> + \(str : string) -> let !x : Unit = trace {Unit} str Unit in error {a} !`$fUnsafeFromDataTxId_$cunsafeFromBuiltinData` : data -> bytestring = \(d : data) -> let @@ -121,6 +63,538 @@ (unIData (headList {data} (tailList {data} args)))) (/\dead -> traceError {GovernanceActionId} reconstructCaseError) {all dead. dead} + data Credential | Credential_match where + PubKeyCredential : bytestring -> Credential + ScriptCredential : bytestring -> Credential + !`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` : data -> Credential + = \(d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Credential} + (equalsInteger 0 index) + (/\dead -> PubKeyCredential (unBData (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. Credential} + (equalsInteger 1 index) + (/\dead -> ScriptCredential (unBData (headList {data} args))) + (/\dead -> traceError {Credential} reconstructCaseError) + {all dead. dead}) + {all dead. dead} + data (Maybe :: * -> *) a | Maybe_match where + Just : a -> Maybe a + Nothing : Maybe a + !`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` : + all a. (\a -> data -> a) a -> data -> Maybe a + = /\a -> + \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Maybe a} + (equalsInteger 1 index) + (/\dead -> Nothing {a}) + (/\dead -> + ifThenElse + {all dead. Maybe a} + (equalsInteger 0 index) + (/\dead -> + Just {a} (`$dUnsafeFromData` (headList {data} args))) + (/\dead -> traceError {Maybe a} reconstructCaseError) + {all dead. dead}) + {all dead. dead} + data (Tuple2 :: * -> * -> *) a b | Tuple2_match where + Tuple2 : a -> b -> Tuple2 a b + !`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` : + all k v. + (\a -> data -> a) k -> + (\a -> data -> a) v -> + data -> + (\k v -> List (Tuple2 k v)) k v + = /\k v -> + \(`$dUnsafeFromData` : (\a -> data -> a) k) + (`$dUnsafeFromData` : (\a -> data -> a) v) -> + letrec + !go : list (pair data data) -> List (Tuple2 k v) + = \(l : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> List (Tuple2 k v)} + l + (\(ds : Unit) -> Nil {Tuple2 k v}) + (\(ds : Unit) -> + let + !tup : pair data data = headList {pair data data} l + in + Cons + {Tuple2 k v} + (Tuple2 + {k} + {v} + (`$dUnsafeFromData` (fstPair {data} {data} tup)) + (`$dUnsafeFromData` (sndPair {data} {data} tup))) + (go (tailList {pair data data} l))) + Unit + in + \(d : data) -> go (unMapData d) + ~`$fUnsafeFromDataValue` : + data -> (\k v -> List (Tuple2 k v)) bytestring integer + = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {bytestring} + {integer} + unBData + unIData + ~`$fUnsafeFromDataValue` : + data -> + (\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) bytestring integer) + = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {bytestring} + {(\k v -> List (Tuple2 k v)) bytestring integer} + unBData + `$fUnsafeFromDataValue` + data Rational | Rational_match where + Rational : integer -> integer -> Rational + data Committee | Committee_match where + Committee : + (\k v -> List (Tuple2 k v)) Credential integer -> Rational -> Committee + data ProtocolVersion | ProtocolVersion_match where + ProtocolVersion : integer -> integer -> ProtocolVersion + data GovernanceAction | GovernanceAction_match where + HardForkInitiation : + Maybe GovernanceActionId -> ProtocolVersion -> GovernanceAction + InfoAction : GovernanceAction + NewCommittee : + Maybe GovernanceActionId -> + List Credential -> + Committee -> + GovernanceAction + NewConstitution : + Maybe GovernanceActionId -> Maybe bytestring -> GovernanceAction + NoConfidence : Maybe GovernanceActionId -> GovernanceAction + ParameterChange : Maybe GovernanceActionId -> data -> GovernanceAction + TreasuryWithdrawals : + (\k v -> List (Tuple2 k v)) + Credential + ((\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) bytestring integer)) -> + GovernanceAction + data ProposalProcedure | ProposalProcedure_match where + ProposalProcedure : + (\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) bytestring integer) -> + Credential -> + GovernanceAction -> + ProposalProcedure + !`$fAdditiveMonoidInteger_$czero` : integer = 0 + in + letrec + !euclid : integer -> integer -> integer + = \(x : integer) (y : integer) -> + ifThenElse + {all dead. integer} + (equalsInteger y `$fAdditiveMonoidInteger_$czero`) + (/\dead -> x) + (/\dead -> euclid y (modInteger x y)) + {all dead. dead} + in + letrec + !unsafeRatio : integer -> integer -> Rational + = \(n : integer) (d : integer) -> + ifThenElse + {all dead. Rational} + (equalsInteger d `$fAdditiveMonoidInteger_$czero`) + (/\dead -> error {Rational}) + (/\dead -> + ifThenElse + {all dead. Rational} + (lessThanInteger d `$fAdditiveMonoidInteger_$czero`) + (/\dead -> + unsafeRatio + (subtractInteger `$fAdditiveMonoidInteger_$czero` n) + (subtractInteger `$fAdditiveMonoidInteger_$czero` d)) + (/\dead -> + let + !gcd' : integer = euclid n d + in + Rational (quotientInteger n gcd') (quotientInteger d gcd')) + {all dead. dead}) + {all dead. dead} + in + letrec + !go : + list data -> List ProposalProcedure + = \(l : list data) -> + chooseList + {data} + {Unit -> List ProposalProcedure} + l + (\(ds : Unit) -> Nil {ProposalProcedure}) + (\(ds : Unit) -> + Cons + {ProposalProcedure} + (let + !tup : pair integer (list data) + = unConstrData (headList {data} l) + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ProposalProcedure} + (equalsInteger 0 index) + (/\dead -> + let + !l : list data = tailList {data} args + in + ProposalProcedure + (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {bytestring} + {(\k v -> List (Tuple2 k v)) bytestring integer} + unBData + `$fUnsafeFromDataValue` + (headList {data} args)) + (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} l)) + (let + !tup : pair integer (list data) + = unConstrData (headList {data} (tailList {data} l)) + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 0 index) + (/\dead -> + ParameterChange + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args)) + (headList {data} (tailList {data} args))) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 1 index) + (/\dead -> + HardForkInitiation + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args)) + (let + !tup : pair integer (list data) + = unConstrData + (headList + {data} + (tailList {data} args)) + !index : integer + = fstPair {integer} {list data} tup + !args : list data + = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ProtocolVersion} + (equalsInteger 0 index) + (/\dead -> + ProtocolVersion + (unIData (headList {data} args)) + (unIData + (headList + {data} + (tailList {data} args)))) + (/\dead -> + traceError + {ProtocolVersion} + reconstructCaseError) + {all dead. dead})) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 2 index) + (/\dead -> + TreasuryWithdrawals + (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {Credential} + {(\k v -> List (Tuple2 k v)) + bytestring + ((\k v -> List (Tuple2 k v)) + bytestring + integer)} + `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + `$fUnsafeFromDataValue` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 3 index) + (/\dead -> + NoConfidence + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 4 index) + (/\dead -> + let + !l : list data + = tailList {data} args + in + NewCommittee + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList {data} args)) + (`$fUnsafeFromDataList_$cunsafeFromBuiltinData` + {Credential} + `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} l)) + (let + !tup : + pair integer (list data) + = unConstrData + (headList + {data} + (tailList + {data} + l)) + !index : integer + = fstPair + {integer} + {list data} + tup + !args : list data + = sndPair + {integer} + {list data} + tup + in + ifThenElse + {all dead. Committee} + (equalsInteger 0 index) + (/\dead -> + Committee + (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` + {Credential} + {integer} + `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + unIData + (headList + {data} + args)) + (let + !x : data + = headList + {data} + (tailList + {data} + args) + in + Tuple2_match + {integer} + {integer} + (let + !tup : + pair + integer + (list data) + = unConstrData x + !index : integer + = fstPair + {integer} + {list data} + tup + !args : list data + = sndPair + {integer} + {list data} + tup + in + ifThenElse + {all dead. + Tuple2 + integer + integer} + (equalsInteger + 0 + index) + (/\dead -> + Tuple2 + {integer} + {integer} + (unIData + (headList + {data} + args)) + (unIData + (headList + {data} + (tailList + {data} + args)))) + (/\dead -> + traceError + {Tuple2 + integer + integer} + reconstructCaseError) + {all dead. dead}) + {Rational} + (\(a : integer) + (b : integer) -> + unsafeRatio + a + b))) + (/\dead -> + traceError + {Committee} + reconstructCaseError) + {all dead. dead})) + (/\dead -> + ifThenElse + {all dead. GovernanceAction} + (equalsInteger 5 index) + (/\dead -> + NewConstitution + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {GovernanceActionId} + `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` + (headList + {data} + args)) + (let + !tup : + pair + integer + (list data) + = unConstrData + (headList + {data} + (tailList + {data} + args)) + !index : integer + = fstPair + {integer} + {list data} + tup + !args : list data + = sndPair + {integer} + {list data} + tup + in + ifThenElse + {all dead. + Maybe bytestring} + (equalsInteger + 0 + index) + (/\dead -> + `$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {bytestring} + unBData + (headList + {data} + args)) + (/\dead -> + traceError + {Maybe + bytestring} + reconstructCaseError) + {all dead. dead})) + (/\dead -> + ifThenElse + {all dead. + GovernanceAction} + (equalsInteger 6 index) + (/\dead -> InfoAction) + (/\dead -> + traceError + {GovernanceAction} + reconstructCaseError) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead})) + (/\dead -> + traceError {ProposalProcedure} reconstructCaseError) + {all dead. dead}) + (go (tailList {data} l))) + Unit + in + let + !`$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` : data -> data + = \(d : data) -> d + data Bool | Bool_match where + True : Bool + False : Bool + !`$fUnsafeFromDataBool_$cunsafeFromBuiltinData` : data -> Bool + = \(d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Bool} + (equalsInteger 0 index) + (/\dead -> False) + (/\dead -> + ifThenElse + {all dead. Bool} + (equalsInteger 1 index) + (/\dead -> True) + (/\dead -> traceError {Bool} reconstructCaseError) + {all dead. dead}) + {all dead. dead} + data (Extended :: * -> *) a | Extended_match where + Finite : a -> Extended a + NegInf : Extended a + PosInf : Extended a + !`$fUnsafeFromDataExtended_$cunsafeFromBuiltinData` : + all a. (\a -> data -> a) a -> data -> Extended a + = /\a -> + \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. Extended a} + (equalsInteger 0 index) + (/\dead -> NegInf {a}) + (/\dead -> + ifThenElse + {all dead. Extended a} + (equalsInteger 1 index) + (/\dead -> + Finite {a} (`$dUnsafeFromData` (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. Extended a} + (equalsInteger 2 index) + (/\dead -> PosInf {a}) + (/\dead -> traceError {Extended a} reconstructCaseError) + {all dead. dead}) + {all dead. dead}) + {all dead. dead} data TxOutRef | TxOutRef_match where TxOutRef : bytestring -> integer -> TxOutRef !`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` : data -> TxOutRef @@ -140,28 +614,6 @@ (unIData (headList {data} (tailList {data} args)))) (/\dead -> traceError {TxOutRef} reconstructCaseError) {all dead. dead} - data Credential | Credential_match where - PubKeyCredential : bytestring -> Credential - ScriptCredential : bytestring -> Credential - !`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` : data -> Credential - = \(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Credential} - (equalsInteger 0 index) - (/\dead -> PubKeyCredential (unBData (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. Credential} - (equalsInteger 1 index) - (/\dead -> ScriptCredential (unBData (headList {data} args))) - (/\dead -> traceError {Credential} reconstructCaseError) - {all dead. dead}) - {all dead. dead} data DRep | DRep_match where DRep : Credential -> DRep DRepAlwaysAbstain : DRep @@ -230,82 +682,6 @@ {all dead. dead}) {all dead. dead}) {all dead. dead} - data (Maybe :: * -> *) a | Maybe_match where - Just : a -> Maybe a - Nothing : Maybe a - !`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` : - all a. (\a -> data -> a) a -> data -> Maybe a - = /\a -> - \(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. Maybe a} - (equalsInteger 1 index) - (/\dead -> Nothing {a}) - (/\dead -> - ifThenElse - {all dead. Maybe a} - (equalsInteger 0 index) - (/\dead -> - Just {a} (`$dUnsafeFromData` (headList {data} args))) - (/\dead -> traceError {Maybe a} reconstructCaseError) - {all dead. dead}) - {all dead. dead} - data (Tuple2 :: * -> * -> *) a b | Tuple2_match where - Tuple2 : a -> b -> Tuple2 a b - !`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` : - all k v. - (\a -> data -> a) k -> - (\a -> data -> a) v -> - data -> - (\k v -> List (Tuple2 k v)) k v - = /\k v -> - \(`$dUnsafeFromData` : (\a -> data -> a) k) - (`$dUnsafeFromData` : (\a -> data -> a) v) -> - letrec - !go : list (pair data data) -> List (Tuple2 k v) - = \(l : list (pair data data)) -> - chooseList - {pair data data} - {Unit -> List (Tuple2 k v)} - l - (\(ds : Unit) -> Nil {Tuple2 k v}) - (\(ds : Unit) -> - let - !tup : pair data data = headList {pair data data} l - in - Cons - {Tuple2 k v} - (Tuple2 - {k} - {v} - (`$dUnsafeFromData` (fstPair {data} {data} tup)) - (`$dUnsafeFromData` (sndPair {data} {data} tup))) - (go (tailList {pair data data} l))) - Unit - in - \(d : data) -> go (unMapData d) - ~`$fUnsafeFromDataValue` : - data -> (\k v -> List (Tuple2 k v)) bytestring integer - = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {bytestring} - {integer} - unBData - unIData - ~`$fUnsafeFromDataValue` : - data -> - (\k v -> List (Tuple2 k v)) - bytestring - ((\k v -> List (Tuple2 k v)) bytestring integer) - = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {bytestring} - {(\k v -> List (Tuple2 k v)) bytestring integer} - unBData - `$fUnsafeFromDataValue` data TxCert | TxCert_match where TxCertAuthHotCommittee : Credential -> Credential -> TxCert TxCertDelegStaking : Credential -> Delegatee -> TxCert @@ -790,41 +1166,6 @@ UpperBound : Extended a -> Bool -> UpperBound a data (Interval :: * -> *) a | Interval_match where Interval : LowerBound a -> UpperBound a -> Interval a - data Rational | Rational_match where - Rational : integer -> integer -> Rational - data Committee | Committee_match where - Committee : - (\k v -> List (Tuple2 k v)) Credential integer -> Rational -> Committee - data ProtocolVersion | ProtocolVersion_match where - ProtocolVersion : integer -> integer -> ProtocolVersion - data GovernanceAction | GovernanceAction_match where - HardForkInitiation : - Maybe GovernanceActionId -> ProtocolVersion -> GovernanceAction - InfoAction : GovernanceAction - NewCommittee : - Maybe GovernanceActionId -> - List Credential -> - Committee -> - GovernanceAction - NewConstitution : - Maybe GovernanceActionId -> Maybe bytestring -> GovernanceAction - NoConfidence : Maybe GovernanceActionId -> GovernanceAction - ParameterChange : Maybe GovernanceActionId -> data -> GovernanceAction - TreasuryWithdrawals : - (\k v -> List (Tuple2 k v)) - Credential - ((\k v -> List (Tuple2 k v)) - bytestring - ((\k v -> List (Tuple2 k v)) bytestring integer)) -> - GovernanceAction - data ProposalProcedure | ProposalProcedure_match where - ProposalProcedure : - (\k v -> List (Tuple2 k v)) - bytestring - ((\k v -> List (Tuple2 k v)) bytestring integer) -> - Credential -> - GovernanceAction -> - ProposalProcedure data Vote | Vote_match where Abstain : Vote VoteNo : Vote @@ -862,40 +1203,6 @@ TxInfo data ScriptContext | ScriptContext_match where ScriptContext : TxInfo -> ScriptPurpose -> ScriptContext - !`$fAdditiveMonoidInteger_$czero` : integer = 0 - in - letrec - !euclid : integer -> integer -> integer - = \(x : integer) (y : integer) -> - ifThenElse - {all dead. integer} - (equalsInteger y `$fAdditiveMonoidInteger_$czero`) - (/\dead -> x) - (/\dead -> euclid y (modInteger x y)) - {all dead. dead} - in - letrec - !unsafeRatio : integer -> integer -> Rational - = \(n : integer) (d : integer) -> - ifThenElse - {all dead. Rational} - (equalsInteger d `$fAdditiveMonoidInteger_$czero`) - (/\dead -> error {Rational}) - (/\dead -> - ifThenElse - {all dead. Rational} - (lessThanInteger d `$fAdditiveMonoidInteger_$czero`) - (/\dead -> - unsafeRatio - (subtractInteger `$fAdditiveMonoidInteger_$czero` n) - (subtractInteger `$fAdditiveMonoidInteger_$czero` d)) - (/\dead -> - let - !gcd' : integer = euclid n d - in - Rational (quotientInteger n gcd') (quotientInteger d gcd')) - {all dead. dead}) - {all dead. dead} in \(d : data) -> let @@ -1099,369 +1406,10 @@ {all dead. dead}) {all dead. dead})) (headList {data} l)) - (`$fUnsafeFromDataList_$cunsafeFromBuiltinData` - {ProposalProcedure} - (\(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer - = fstPair {integer} {list data} tup - !args : list data - = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. ProposalProcedure} - (equalsInteger 0 index) - (/\dead -> - let - !l : list data = tailList {data} args - in - ProposalProcedure - (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {bytestring} - {(\k v -> List (Tuple2 k v)) - bytestring - integer} - unBData - `$fUnsafeFromDataValue` - (headList {data} args)) - (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - (headList {data} l)) - (let - !tup : pair integer (list data) - = unConstrData - (headList {data} (tailList {data} l)) - !index : integer - = fstPair {integer} {list data} tup - !args : list data - = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 0 index) - (/\dead -> - ParameterChange - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList {data} args)) - (headList - {data} - (tailList {data} args))) - (/\dead -> - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 1 index) - (/\dead -> - HardForkInitiation - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList {data} args)) - (let - !tup : pair integer (list data) - = unConstrData - (headList - {data} - (tailList - {data} - args)) - !index : integer - = fstPair - {integer} - {list data} - tup - !args : list data - = sndPair - {integer} - {list data} - tup - in - ifThenElse - {all dead. ProtocolVersion} - (equalsInteger 0 index) - (/\dead -> - ProtocolVersion - (unIData - (headList {data} args)) - (unIData - (headList - {data} - (tailList - {data} - args)))) - (/\dead -> - traceError - {ProtocolVersion} - reconstructCaseError) - {all dead. dead})) - (/\dead -> - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 2 index) - (/\dead -> - TreasuryWithdrawals - (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {Credential} - {(\k v -> - List (Tuple2 k v)) - bytestring - ((\k v -> - List (Tuple2 k v)) - bytestring - integer)} - `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - `$fUnsafeFromDataValue` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. GovernanceAction} - (equalsInteger 3 index) - (/\dead -> - NoConfidence - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList - {data} - args))) - (/\dead -> - ifThenElse - {all dead. - GovernanceAction} - (equalsInteger 4 index) - (/\dead -> - let - !l : list data - = tailList - {data} - args - in - NewCommittee - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList - {data} - args)) - (`$fUnsafeFromDataList_$cunsafeFromBuiltinData` - {Credential} - `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - (headList - {data} - l)) - (let - !tup : - pair - integer - (list data) - = unConstrData - (headList - {data} - (tailList - {data} - l)) - !index : integer - = fstPair - {integer} - {list - data} - tup - !args : - list data - = sndPair - {integer} - {list - data} - tup - in - ifThenElse - {all dead. - Committee} - (equalsInteger - 0 - index) - (/\dead -> - Committee - (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` - {Credential} - {integer} - `$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - unIData - (headList - {data} - args)) - (let - !x : - data - = headList - {data} - (tailList - {data} - args) - in - Tuple2_match - {integer} - {integer} - (let - !tup : - pair - integer - (list - data) - = unConstrData - x - !index : - integer - = fstPair - {integer} - {list - data} - tup - !args : - list - data - = sndPair - {integer} - {list - data} - tup - in - ifThenElse - {all dead. - Tuple2 - integer - integer} - (equalsInteger - 0 - index) - (/\dead -> - Tuple2 - {integer} - {integer} - (unIData - (headList - {data} - args)) - (unIData - (headList - {data} - (tailList - {data} - args)))) - (/\dead -> - traceError - {Tuple2 - integer - integer} - reconstructCaseError) - {all dead. - dead}) - {Rational} - (\(a : - integer) - (b : - integer) -> - unsafeRatio - a - b))) - (/\dead -> - traceError - {Committee} - reconstructCaseError) - {all dead. - dead})) - (/\dead -> - ifThenElse - {all dead. - GovernanceAction} - (equalsInteger - 5 - index) - (/\dead -> - NewConstitution - (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {GovernanceActionId} - `$fUnsafeFromDataGovernanceAction_$cunsafeFromBuiltinData` - (headList - {data} - args)) - (let - !tup : - pair - integer - (list - data) - = unConstrData - (headList - {data} - (tailList - {data} - args)) - !index : - integer - = fstPair - {integer} - {list - data} - tup - !args : - list - data - = sndPair - {integer} - {list - data} - tup - in - ifThenElse - {all dead. - Maybe - bytestring} - (equalsInteger - 0 - index) - (/\dead -> - `$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` - {bytestring} - unBData - (headList - {data} - args)) - (/\dead -> - traceError - {Maybe - bytestring} - reconstructCaseError) - {all dead. - dead})) - (/\dead -> - ifThenElse - {all dead. - GovernanceAction} - (equalsInteger - 6 - index) - (/\dead -> - InfoAction) - (/\dead -> - traceError - {GovernanceAction} - reconstructCaseError) - {all dead. - dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead})) - (/\dead -> - traceError - {ProposalProcedure} - reconstructCaseError) - {all dead. dead}) - (headList {data} l)) + (let + !d : data = headList {data} l + in + go (unListData d)) (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` {(\k v -> List (Tuple2 k v)) bytestring diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden index 48d70c72494..6e5712061b9 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden @@ -1 +1 @@ -2769 \ No newline at end of file +2843 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden index b7a1fb88343..d376986e12f 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.eval.golden @@ -1,2 +1,2 @@ -({cpu: 306888611 -| mem: 1227966}) \ No newline at end of file +({cpu: 298194611 +| mem: 1190166}) \ No newline at end of file diff --git a/plutus-core/changelog.d/20231208_173127_unsafeFixIO_beta.md b/plutus-core/changelog.d/20231208_173127_unsafeFixIO_beta.md new file mode 100644 index 00000000000..31b08c46a54 --- /dev/null +++ b/plutus-core/changelog.d/20231208_173127_unsafeFixIO_beta.md @@ -0,0 +1,3 @@ +### Changed + +- Improved the callsite inliner for PIR, making it discover more inlining opportunities. diff --git a/plutus-core/plutus-core.cabal b/plutus-core/plutus-core.cabal index 02a96a472c7..768907638c5 100644 --- a/plutus-core/plutus-core.cabal +++ b/plutus-core/plutus-core.cabal @@ -508,7 +508,6 @@ library plutus-ir PlutusIR.Transform.CaseReduce PlutusIR.Transform.DeadCode PlutusIR.Transform.EvaluateBuiltins - PlutusIR.Transform.Inline.CallSiteInline PlutusIR.Transform.Inline.Inline PlutusIR.Transform.Inline.Utils PlutusIR.Transform.KnownCon diff --git a/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/CallSiteInline.hs b/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/CallSiteInline.hs deleted file mode 100644 index 33faf200c3c..00000000000 --- a/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/CallSiteInline.hs +++ /dev/null @@ -1,156 +0,0 @@ -{-# LANGUAGE ConstraintKinds #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE TypeFamilies #-} - -{- | -Call site inlining machinery. We inline if the size of the inlined result is not larger. -See note [Inlining of fully applied functions]. --} -module PlutusIR.Transform.Inline.CallSiteInline where - -import PlutusCore qualified as PLC -import PlutusCore.Rename (rename) -import PlutusCore.Rename.Internal (Dupable (Dupable)) -import PlutusIR.Analysis.Size (Size, termSize) -import PlutusIR.Contexts -import PlutusIR.Core -import PlutusIR.Transform.Inline.Utils -import PlutusIR.Transform.Substitute - -{- Note [Inlining and beta reduction of functions] - -We inline if its cost and size are acceptable. - -For size, we compare the sizes (in terms of AST nodes before and after the inlining and beta -reduction), and inline only if it does not increase the size. In the above example, we count -the number of AST nodes in `f a b` and in `a`. The latter is smaller, which means inlining -reduces the size. - -We care about program size increases primarily because it -affects the size of the serialized script, which appears on chain and must be paid for. -This is different to many compilers which care about this also because e.g. larger ASTs -slow down compilation. We care about this too, but the serialized size is the main driver for us. - -The number of AST nodes is an approximate rather than a precise measure. It correlates, -but doesn't directly map to the size of the serialised script. Different kinds of AST nodes -may take different number of bits to encode; in particular, a `Constant` node always -counts as one AST node, but the constant in it can be of arbitrary size. Then, would it be -better to use the size of the serialised term, instead of the number of AST nodes? Not -necessarily, because other transformations, such as CSE, may change the size further; -specifically, if a large constant occurs multiple times in a program, it may get CSE'd. - -In general there's no reliable way to precisely predict the size impact of an inlining -decision, and we believe the number of AST nodes is in fact a good approximation. - -For cost, we check whether the RHS (in this example, `\x. \y -> x`) has a small cost. -If the RHS has a non-zero arity, then the cost is always small (since a lambda or a type -abstraction is already a value). This may not be the case if the arity is zero. - -For effect-safety, we require: (1) the RHS be pure, i.e., evaluating it is guaranteed to -not have side effects; (2) all arguments be pure, since otherwise it is unsafe to -perform beta reduction. - --} - -{- | Apply the RHS of the given variable to the given arguments, and beta-reduce -the application, if possible. --} -applyAndBetaReduce :: - forall tyname name uni fun ann. - (InliningConstraints tyname name uni fun) => - -- | The rhs of the variable, should have been renamed already - Term tyname name uni fun ann -> - -- | The arguments, already processed - AppContext tyname name uni fun ann -> - InlineM tyname name uni fun ann (Maybe (Term tyname name uni fun ann)) -applyAndBetaReduce rhs args0 = do - let go :: - Term tyname name uni fun ann -> - AppContext tyname name uni fun ann -> - InlineM tyname name uni fun ann (Maybe (Term tyname name uni fun ann)) - go acc args = case (acc, args) of - (LamAbs _ann n _ty tm, TermAppContext arg _ args') -> do - safe <- safeToBetaReduce n arg acc - if safe -- we only do substitution if it is safe to beta reduce - then do - acc' <- do - termSubstNamesM -- substitute the term param with the arg in the function body - -- rename before substitution to ensure global uniqueness (may not be needed but - -- no harm in renaming just to be sure) - (\tmName -> if tmName == n then Just <$> PLC.rename arg else pure Nothing) - tm -- drop the beta reduced term lambda - go acc' args' - -- if it is not safe to beta reduce, just return the processed application - else pure . Just $ fillAppContext acc args - (TyAbs _ann n _kd tm, TypeAppContext arg _ args') -> do - acc' <- - termSubstTyNamesM -- substitute the type param with the arg - (\tyName -> if tyName == n then Just <$> PLC.rename arg else pure Nothing) - tm -- drop the beta reduced type lambda - go acc' args' - -- term/type argument mismatch, don't inline - (LamAbs{}, TypeAppContext{}) -> pure Nothing - (TyAbs{}, TermAppContext{}) -> pure Nothing - -- no more lambda abstraction, just return the processed application - (_, _) -> pure . Just $ fillAppContext acc args - - -- Is it safe to turn `(\a -> body) arg` into `body [a := arg]`? - -- The criteria is the same as the criteria for inlining `a` in - -- `let !a = arg in body`. - safeToBetaReduce :: - -- `a` - name -> - -- `arg` - Term tyname name uni fun ann -> - -- the body `a` will be beta reduced in - Term tyname name uni fun ann -> - InlineM tyname name uni fun ann Bool - safeToBetaReduce = shouldUnconditionallyInline Strict - go rhs args0 - --- | Consider inlining a variable. For applications, consider whether to apply and beta reduce. -callSiteInline :: - forall tyname name uni fun ann. - (InliningConstraints tyname name uni fun) => - -- | The term size if it were not inlined. - Size -> - -- | The `Utils.VarInfo` of the variable (the head of the term). - InlineVarInfo tyname name uni fun ann -> - -- | The application context of the term, already processed. - AppContext tyname name uni fun ann -> - InlineM tyname name uni fun ann (Maybe (Term tyname name uni fun ann)) -callSiteInline processedTSize = go - where - go varInfo args = do - let - defAsInlineTerm = varRhs varInfo - inlineTermToTerm :: InlineTerm tyname name uni fun ann - -> Term tyname name uni fun ann - inlineTermToTerm (Done (Dupable var)) = var - -- extract out the rhs without renaming, we only rename - -- when we know there's substitution - headRhs = inlineTermToTerm defAsInlineTerm - -- The definition itself will be inlined, so we need to check that the cost - -- of that is acceptable. Note that we do _not_ check the cost of the _body_. - -- We would have paid that regardless. - -- Consider e.g. `let y = \x. f x`. We pay the cost of the `f x` at - -- every call site regardless. The work that is being duplicated is - -- the work for the lambda. - costIsOk = costIsAcceptable headRhs - -- check if binding is pure to avoid duplicated effects. - -- For strict bindings we can't accidentally make any effects happen less often - -- than it would have before, but we can make it happen more often. - -- We could potentially do this safely in non-conservative mode. - rhsPure <- isTermBindingPure (varStrictness varInfo) headRhs - if costIsOk && rhsPure then do - -- rename the rhs of the variable before any substitution - renamedRhs <- rename headRhs - applyAndBetaReduce renamedRhs args >>= \case - Just inlined -> do - let -- Inline only if the size is no bigger than not inlining. - sizeIsOk = termSize inlined <= processedTSize - pure $ if sizeIsOk then Just inlined else Nothing - Nothing -> pure Nothing - else pure Nothing diff --git a/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs b/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs index ee7a6e33369..9cb003bed16 100644 --- a/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs +++ b/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE BangPatterns #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} @@ -14,25 +15,25 @@ module PlutusIR.Transform.Inline.Inline (inline, InlineHints (..)) where import PlutusCore.Annotation import PlutusCore.Name import PlutusCore.Quote -import PlutusCore.Rename (dupable) +import PlutusCore.Rename (dupable, rename) +import PlutusCore.Rename.Internal (Dupable (Dupable)) import PlutusIR +import PlutusIR.Analysis.Builtins +import PlutusIR.Analysis.Size (Size, termSize) import PlutusIR.Analysis.Usages qualified as Usages +import PlutusIR.Analysis.VarInfo qualified as VarInfo +import PlutusIR.Contexts (AppContext (..), fillAppContext, splitApplication) import PlutusIR.MkPir (mkLet) +import PlutusIR.Transform.Beta qualified as Beta import PlutusIR.Transform.Inline.Utils import PlutusIR.Transform.Rename () import PlutusPrelude import Control.Lens (forMOf, traverseOf) import Control.Monad.Extra -import Control.Monad.Reader (runReaderT) +import Control.Monad.Reader (ask, runReaderT) import Control.Monad.State (evalStateT, modify') - import Control.Monad.State.Class (gets) -import PlutusIR.Analysis.Builtins -import PlutusIR.Analysis.Size (termSize) -import PlutusIR.Analysis.VarInfo qualified as VarInfo -import PlutusIR.Contexts (AppContext (..), fillAppContext, splitApplication) -import PlutusIR.Transform.Inline.CallSiteInline (callSiteInline) import Witherable (Witherable (wither)) {- Note [Inlining approach and 'Secrets of the GHC Inliner'] @@ -154,6 +155,8 @@ But we don't really care about the costs listed there: it's easy for us to get a supply, and the performance cost does not currently seem relevant. So it's fine. -} +data InliningStrategy = UnconditionalOnly | UnconditionalAndCallsite + -- | Inline non-recursive bindings. Relies on global uniqueness, and preserves it. -- See Note [Inlining and global uniqueness] inline @@ -163,13 +166,27 @@ inline -> BuiltinsInfo uni fun -> Term tyname name uni fun ann -> m (Term tyname name uni fun ann) -inline hints binfo t = let +inline hints binfo t = inline' UnconditionalAndCallsite hints binfo (VarInfo.termVarInfo t) t + +inline' + :: forall tyname name uni fun ann m + . ExternalConstraints tyname name uni fun m + => InliningStrategy + -> InlineHints name ann + -> BuiltinsInfo uni fun + -- This function must reuse the `VarsInfo` of the entire original term, because it may be + -- called by the callsite inliner to process a subterm. The subterm may contain free + -- variables, and if we compute `VarsInfo` from scratch, those variables won't have + -- entries in `VarsInfo`. On the other hand, `Usages` should be re-computed. + -> VarInfo.VarsInfo tyname name uni ann + -> Term tyname name uni fun ann + -> m (Term tyname name uni fun ann) +inline' strat hints binfo vinfo t = let inlineInfo :: InlineInfo tyname name uni fun ann inlineInfo = InlineInfo vinfo usgs hints binfo - vinfo = VarInfo.termVarInfo t usgs :: Usages.Usages usgs = Usages.termUsages t - in liftQuote $ flip evalStateT mempty $ flip runReaderT inlineInfo $ processTerm t + in liftQuote $ flip evalStateT mempty $ flip runReaderT inlineInfo $ processTerm strat t {- Note [Removing inlined bindings] We *do* remove bindings that we inline *unconditionally*. We *could* @@ -188,9 +205,12 @@ This might mean reinventing GHC's OccAnal... -- | Run the inliner on a `Core.Type.Term`. processTerm :: forall tyname name uni fun ann. InliningConstraints tyname name uni fun - => Term tyname name uni fun ann -- ^ Term to be processed. + => InliningStrategy + -> Term tyname name uni fun ann -- ^ Term to be processed. -> InlineM tyname name uni fun ann (Term tyname name uni fun ann) -processTerm = handleTerm <=< traverseOf termSubtypes applyTypeSubstitution where +processTerm strat = processTerm' + where + processTerm' = handleTerm <=< traverseOf termSubtypes applyTypeSubstitution handleTerm :: Term tyname name uni fun ann -> InlineM tyname name uni fun ann (Term tyname name uni fun ann) @@ -203,46 +223,49 @@ processTerm = handleTerm <=< traverseOf termSubtypes applyTypeSubstitution where -- Note that we don't *remove* the bindings or scope the state, so the state will carry -- over into "sibling" terms. This is fine because we have global uniqueness -- (see Note [Inlining and global uniqueness]), if somewhat wasteful. - bs' <- wither (processSingleBinding t) (toList bs) - t' <- processTerm t + bs' <- wither (processSingleBinding strat t) (toList bs) + t' <- processTerm' t -- Use 'mkLet': we're using lists of bindings rather than NonEmpty since we might -- actually have got rid of all of them! pure $ mkLet ann NonRec bs' t' -- This includes recursive let terms, we don't even consider inlining them at the moment - t -> do - -- See note [Processing order of call site inlining] - let (hd, args) = splitApplication t - processArgs :: - AppContext tyname name uni fun ann -> - InlineM tyname name uni fun ann (AppContext tyname name uni fun ann) - processArgs (TermAppContext arg ann ctx) = do - processedArg <- processTerm arg - processedArgs <- processArgs ctx - pure $ TermAppContext processedArg ann processedArgs - processArgs (TypeAppContext ty ann ctx) = do - processedArgs <- processArgs ctx - ty' <- applyTypeSubstitution ty - pure $ TypeAppContext ty' ann processedArgs - processArgs AppContextEnd = pure AppContextEnd - case args of - -- not really an application, so hd is the term itself. Processing it will loop. - AppContextEnd -> forMOf termSubterms t processTerm - _ -> do - hd' <- processTerm hd - args' <- processArgs args - let reconstructed = fillAppContext hd' args' - case hd' of - Var _ name -> do - gets (lookupVarInfo name) >>= \case - Just varInfo -> do - maybeInlined <- - callSiteInline - (termSize reconstructed) - varInfo - args' - pure $ fromMaybe reconstructed maybeInlined - Nothing -> pure reconstructed - _ -> pure reconstructed + t -> case strat of + UnconditionalOnly -> forMOf termSubterms t processTerm' + UnconditionalAndCallsite -> do + -- See note [Processing order of call site inlining] + let (hd, args) = splitApplication t + processArgs :: + AppContext tyname name uni fun ann -> + InlineM tyname name uni fun ann (AppContext tyname name uni fun ann) + processArgs (TermAppContext arg ann ctx) = do + processedArg <- processTerm' arg + processedArgs <- processArgs ctx + pure $ TermAppContext processedArg ann processedArgs + processArgs (TypeAppContext ty ann ctx) = do + processedArgs <- processArgs ctx + ty' <- applyTypeSubstitution ty + pure $ TypeAppContext ty' ann processedArgs + processArgs AppContextEnd = pure AppContextEnd + case args of + -- not really an application, so hd is the term itself. + -- Processing it will loop. + AppContextEnd -> forMOf termSubterms t processTerm' + _ -> do + hd' <- processTerm' hd + args' <- processArgs args + let reconstructed = fillAppContext hd' args' + case hd' of + Var _ name -> do + gets (lookupVarInfo name) >>= \case + Just varInfo -> do + maybeInlined <- + callSiteInline + (termSize reconstructed) + varInfo + args' + pure $ fromMaybe reconstructed maybeInlined + Nothing -> pure reconstructed + _ -> pure reconstructed {- Note [Processing order of call site inlining] We have two options on how we process terms for the call site inliner: @@ -326,13 +349,14 @@ term, but with the head (the rhs of the variable) and the arguments already proc -- | Run the inliner on a single non-recursive let binding. processSingleBinding :: forall tyname name uni fun ann. InliningConstraints tyname name uni fun - => Term tyname name uni fun ann -- ^ The body of the let binding. + => InliningStrategy + -> Term tyname name uni fun ann -- ^ The body of the let binding. -> Binding tyname name uni fun ann -- ^ The binding. -> InlineM tyname name uni fun ann (Maybe (Binding tyname name uni fun ann)) -processSingleBinding body = \case +processSingleBinding strat body = \case (TermBind ann s v@(VarDecl _ n _) rhs0) -> do -- we want to do unconditional inline if possible - maybeAddSubst body ann s n rhs0 >>= \case + maybeAddSubst strat body ann s n rhs0 >>= \case -- this binding is going to be unconditionally inlined Nothing -> pure Nothing Just rhs -> do @@ -355,7 +379,7 @@ processSingleBinding body = \case maybeRhs' <- maybeAddTySubst n rhs pure $ TypeBind ann v <$> maybeRhs' b -> -- Just process all the subterms - Just <$> forMOf bindingSubterms b processTerm + Just <$> forMOf bindingSubterms b (processTerm strat) -- | Check against the heuristics we have for inlining and either inline the term binding or not. -- The arguments to this function are the fields of the `TermBinding` being processed. @@ -364,14 +388,15 @@ processSingleBinding body = \case -- * we are removing the binding (hence we return Nothing). maybeAddSubst :: forall tyname name uni fun ann. InliningConstraints tyname name uni fun - => Term tyname name uni fun ann + => InliningStrategy + -> Term tyname name uni fun ann -> ann -> Strictness -> name -> Term tyname name uni fun ann -> InlineM tyname name uni fun ann (Maybe (Term tyname name uni fun ann)) -maybeAddSubst body ann s n rhs0 = do - rhs <- processTerm rhs0 +maybeAddSubst strat body ann s n rhs0 = do + rhs <- processTerm strat rhs0 -- Check whether we've been told specifically to inline this hints <- view iiHints @@ -407,3 +432,124 @@ maybeAddTySubst tn rhs = do modify' (extendType tn rhs) pure Nothing else pure $ Just rhs + +applyAndBetaReduce :: + forall tyname name uni fun ann. + (InliningConstraints tyname name uni fun) => + -- | The rhs of the variable, should have been renamed already + Term tyname name uni fun ann -> + -- | The arguments, already processed + AppContext tyname name uni fun ann -> + InlineM tyname name uni fun ann (Term tyname name uni fun ann) +applyAndBetaReduce rhs args = do + info <- ask + -- We run the beta and inlining passes for `len args` times, since sometimes the args + -- can only be beta-reduced one by one. An example is + -- `(\x y -> f x y) arg_x arg_y`, where `arg_x` and `arg_y` are effectful terms. + -- It needs two beta+inlining passes to reduce to `f arg_x arg_y`: the first pass + -- inlines `y` and the second pass `x`. + -- + -- Note that the inlining passes we run here only run unconditional inlining. + -- Technically it can be helpful to also run callsite inlining, but it rarely + -- makes a difference and leads to exponential worst-case behavior. + foldl' + (>=>) + pure + ( replicate + (len args) + ( pure . Beta.beta + >=> inline' + UnconditionalOnly + (info ^. iiHints) + (info ^. iiBuiltinsInfo) + (info ^. iiVarInfo) + ) + ) + (fillAppContext rhs args) + where + len :: AppContext tyname name uni fun ann -> Int + len = go 0 + where + go !acc = \case + TermAppContext _ _ ctx -> go (acc + 1) ctx + TypeAppContext _ _ ctx -> go (acc + 1) ctx + _ -> acc + +-- | Consider inlining a variable. For applications, consider whether to apply and beta reduce. +callSiteInline :: + forall tyname name uni fun ann. + (InliningConstraints tyname name uni fun) => + -- | The term size if it were not inlined. + Size -> + -- | The `Utils.VarInfo` of the variable (the head of the term). + InlineVarInfo tyname name uni fun ann -> + -- | The application context of the term, already processed. + AppContext tyname name uni fun ann -> + InlineM tyname name uni fun ann (Maybe (Term tyname name uni fun ann)) +callSiteInline processedTSize = go + where + go varInfo args = do + let + defAsInlineTerm = varRhs varInfo + inlineTermToTerm :: + InlineTerm tyname name uni fun ann -> + Term tyname name uni fun ann + inlineTermToTerm (Done (Dupable var)) = var + -- extract out the rhs without renaming, we only rename + -- when we know there's substitution + headRhs = inlineTermToTerm defAsInlineTerm + -- The definition itself will be inlined, so we need to check that the cost + -- of that is acceptable. Note that we do _not_ check the cost of the _body_. + -- We would have paid that regardless. + -- Consider e.g. `let y = \x. f x`. We pay the cost of the `f x` at + -- every call site regardless. The work that is being duplicated is + -- the work for the lambda. + costIsOk = costIsAcceptable headRhs + -- check if binding is pure to avoid duplicated effects. + -- For strict bindings we can't accidentally make any effects happen less often + -- than it would have before, but we can make it happen more often. + -- We could potentially do this safely in non-conservative mode. + rhsPure <- isTermBindingPure (varStrictness varInfo) headRhs + if costIsOk && rhsPure + then do + -- rename the rhs of the variable before any substitution + renamedRhs <- rename headRhs + inlined <- applyAndBetaReduce renamedRhs args + let sizeIsOk = termSize inlined <= processedTSize + pure $ if sizeIsOk then Just inlined else Nothing + else pure Nothing + +{- Note [Inlining and beta reduction of functions] + +We inline if its cost and size are acceptable. + +For size, we compare the sizes (in terms of AST nodes before and after the inlining and beta +reduction), and inline only if it does not increase the size. In the above example, we count +the number of AST nodes in `f a b` and in `a`. The latter is smaller, which means inlining +reduces the size. + +We care about program size increases primarily because it +affects the size of the serialized script, which appears on chain and must be paid for. +This is different to many compilers which care about this also because e.g. larger ASTs +slow down compilation. We care about this too, but the serialized size is the main driver for us. + +The number of AST nodes is an approximate rather than a precise measure. It correlates, +but doesn't directly map to the size of the serialised script. Different kinds of AST nodes +may take different number of bits to encode; in particular, a `Constant` node always +counts as one AST node, but the constant in it can be of arbitrary size. Then, would it be +better to use the size of the serialised term, instead of the number of AST nodes? Not +necessarily, because other transformations, such as CSE, may change the size further; +specifically, if a large constant occurs multiple times in a program, it may get CSE'd. + +In general there's no reliable way to precisely predict the size impact of an inlining +decision, and we believe the number of AST nodes is in fact a good approximation. + +For cost, we check whether the RHS (in this example, `\x. \y -> x`) has a small cost. +If the RHS has a non-zero arity, then the cost is always small (since a lambda or a type +abstraction is already a value). This may not be the case if the arity is zero. + +For effect-safety, we require: (1) the RHS be pure, i.e., evaluating it is guaranteed to +not have side effects; (2) all arguments be pure, since otherwise it is unsafe to +perform beta reduction. + +-} diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/letTypeApp2.golden b/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/letTypeApp2.golden index 9b49cbafca9..2be13821dc3 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/letTypeApp2.golden +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/letTypeApp2.golden @@ -3,8 +3,5 @@ (termbind (strict) (vardecl idFun (all a (type) (fun a a))) (abs a (type) (lam x a x)) ) - [ - (lam x (con integer) x) - [ (lam x (con integer) x) [ (lam x (con integer) x) (con integer 3) ] ] - ] + (con integer 3) ) \ No newline at end of file diff --git a/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching.uplc.golden b/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching.uplc.golden index ff58b4029f7..834141a1f5e 100644 --- a/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching.uplc.golden +++ b/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching.uplc.golden @@ -35,10 +35,10 @@ program (addInteger cse)) (addInteger cse)) (addInteger cse)) - (case cse [(\x y z w -> w)])) - (case cse [(\x y z w -> y)])) - (case cse [(\x y z w -> z)])) - (case cse [(\x y z w -> x)])) + (case cse [(\x y z w -> z)])) + (case cse [(\x y z w -> x)])) + (case cse [(\x y z w -> y)])) + (case cse [(\x y z w -> w)])) (\x y -> addInteger x y)) (\x y -> force ifThenElse diff --git a/plutus-tx-plugin/test/Budget/9.6/monadicDo.eval.golden b/plutus-tx-plugin/test/Budget/9.6/monadicDo.eval.golden index 23ef23ceedf..d0d58f03406 100644 --- a/plutus-tx-plugin/test/Budget/9.6/monadicDo.eval.golden +++ b/plutus-tx-plugin/test/Budget/9.6/monadicDo.eval.golden @@ -1,2 +1,2 @@ -({cpu: 1103577 -| mem: 4002}) \ No newline at end of file +({cpu: 46100 +| mem: 300}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/monadicDo.pir.golden b/plutus-tx-plugin/test/Budget/9.6/monadicDo.pir.golden index db402efe82f..aa1ba37a5d3 100644 --- a/plutus-tx-plugin/test/Budget/9.6/monadicDo.pir.golden +++ b/plutus-tx-plugin/test/Budget/9.6/monadicDo.pir.golden @@ -2,24 +2,5 @@ let data (Maybe :: * -> *) a | Maybe_match where Just : a -> Maybe a Nothing : Maybe a - !`$fMonadMaybe_$c>>=` : all a b. Maybe a -> (a -> Maybe b) -> Maybe b - = /\a b -> - \(ds : Maybe a) (k : a -> Maybe b) -> - Maybe_match - {a} - ds - {all dead. Maybe b} - (\(x : a) -> /\dead -> k x) - (/\dead -> Nothing {b}) - {all dead. dead} in -`$fMonadMaybe_$c>>=` - {integer} - {integer} - (Just {integer} 1) - (\(x' : integer) -> - `$fMonadMaybe_$c>>=` - {integer} - {integer} - (Just {integer} 2) - (\(y' : integer) -> Just {integer} (addInteger x' y'))) \ No newline at end of file +Just {integer} 3 \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/monadicDo.uplc.golden b/plutus-tx-plugin/test/Budget/9.6/monadicDo.uplc.golden index f9c81874ea3..eff0c489f34 100644 --- a/plutus-tx-plugin/test/Budget/9.6/monadicDo.uplc.golden +++ b/plutus-tx-plugin/test/Budget/9.6/monadicDo.uplc.golden @@ -1,10 +1 @@ -program - 1.1.0 - ((\`$fMonadMaybe_$c>>=` -> - `$fMonadMaybe_$c>>=` - (constr 0 [1]) - (\x' -> - `$fMonadMaybe_$c>>=` - (constr 0 [2]) - (\y' -> constr 0 [(addInteger x' y')]))) - (\ds k -> force (case ds [(\x -> delay (k x)), (delay (constr 1 []))]))) \ No newline at end of file +program 1.1.0 (constr 0 [3]) \ No newline at end of file From ffee80ac5020a0408bf39a3a682e085c34c75628 Mon Sep 17 00:00:00 2001 From: Ziyang Liu Date: Fri, 8 Dec 2023 18:09:22 -0800 Subject: [PATCH 2/3] fix tests --- .../Spec/golden/9.6/Long.stat.golden | 30 ++++++------- .../Spec/golden/9.6/Short.stat.golden | 42 +++++++++---------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden index c229f905f04..522b2a98e6b 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 3011945773 | mem: 11175342}) -({cpu: 713057980 | mem: 3097804}) -({cpu: 2103958911 | mem: 7806054}) -({cpu: 587707980 | mem: 2552804}) -({cpu: 2103958911 | mem: 7806054}) -({cpu: 462081980 | mem: 2006604}) -({cpu: 1195972049 | mem: 4436766}) -({cpu: 462219980 | mem: 2007204}) -({cpu: 2103958911 | mem: 7806054}) -({cpu: 462081980 | mem: 2006604}) -({cpu: 1195972049 | mem: 4436766}) -({cpu: 336731980 | mem: 1461604}) -({cpu: 1195972049 | mem: 4436766}) -({cpu: 211105980 | mem: 915404}) -({cpu: 287985187 | mem: 1067478}) \ No newline at end of file +({cpu: 2945981773 | mem: 10888542}) +({cpu: 712781980 | mem: 3096604}) +({cpu: 2057866911 | mem: 7605654}) +({cpu: 587431980 | mem: 2551604}) +({cpu: 2057866911 | mem: 7605654}) +({cpu: 461805980 | mem: 2005404}) +({cpu: 1169752049 | mem: 4322766}) +({cpu: 461943980 | mem: 2006004}) +({cpu: 2057866911 | mem: 7605654}) +({cpu: 461805980 | mem: 2005404}) +({cpu: 1169752049 | mem: 4322766}) +({cpu: 336455980 | mem: 1460404}) +({cpu: 1169752049 | mem: 4322766}) +({cpu: 210829980 | mem: 914204}) +({cpu: 281637187 | mem: 1039878}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden index 7b17b1e412a..5aaf40f9aa0 100644 --- a/plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/golden/9.6/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 4301100 | mem: 18800}) -({cpu: 6026100 | mem: 26300}) -({cpu: 8577491 | mem: 36102}) -({cpu: 10292980 | mem: 42304}) -({cpu: 12223371 | mem: 49406}) -({cpu: 14674860 | mem: 58808}) -({cpu: 19870076 | mem: 78812}) -({cpu: 21265174 | mem: 84912}) -({cpu: 23870467 | mem: 94914}) -({cpu: 19462850 | mem: 78210}) -({cpu: 35163486 | mem: 137624}) -({cpu: 20816294 | mem: 85508}) -({cpu: 50102385 | mem: 193638}) -({cpu: 60612649 | mem: 231550}) -({cpu: 68692806 | mem: 262956}) -({cpu: 79709070 | mem: 303068}) -({cpu: 90929541 | mem: 345578}) -({cpu: 95911030 | mem: 365980}) -({cpu: 116812590 | mem: 441504}) -({cpu: 91759795 | mem: 373240}) -({cpu: 287985187 | mem: 1067478}) \ No newline at end of file +({cpu: 4094100 | mem: 17900}) +({cpu: 5819100 | mem: 25400}) +({cpu: 8232491 | mem: 34602}) +({cpu: 9947980 | mem: 40804}) +({cpu: 11809371 | mem: 47606}) +({cpu: 14260860 | mem: 57008}) +({cpu: 19249076 | mem: 76112}) +({cpu: 20713174 | mem: 82512}) +({cpu: 23111467 | mem: 91614}) +({cpu: 19048850 | mem: 76410}) +({cpu: 34128486 | mem: 133124}) +({cpu: 20471294 | mem: 84008}) +({cpu: 48722385 | mem: 187638}) +({cpu: 59370649 | mem: 226150}) +({cpu: 66898806 | mem: 255156}) +({cpu: 78053070 | mem: 295868}) +({cpu: 88652541 | mem: 335678}) +({cpu: 93634030 | mem: 356080}) +({cpu: 113983590 | mem: 429204}) +({cpu: 91000795 | mem: 369940}) +({cpu: 281637187 | mem: 1039878}) \ No newline at end of file From 26f3c368eb236821d262f664053bf0f93c80464c Mon Sep 17 00:00:00 2001 From: Ziyang Liu Date: Mon, 11 Dec 2023 12:53:07 -0800 Subject: [PATCH 3/3] use lengthContext --- .../src/PlutusIR/Transform/Inline/Inline.hs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs b/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs index 9cb003bed16..bb99dc4edb9 100644 --- a/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs +++ b/plutus-core/plutus-ir/src/PlutusIR/Transform/Inline/Inline.hs @@ -22,7 +22,7 @@ import PlutusIR.Analysis.Builtins import PlutusIR.Analysis.Size (Size, termSize) import PlutusIR.Analysis.Usages qualified as Usages import PlutusIR.Analysis.VarInfo qualified as VarInfo -import PlutusIR.Contexts (AppContext (..), fillAppContext, splitApplication) +import PlutusIR.Contexts (AppContext (..), fillAppContext, lengthContext, splitApplication) import PlutusIR.MkPir (mkLet) import PlutusIR.Transform.Beta qualified as Beta import PlutusIR.Transform.Inline.Utils @@ -443,20 +443,20 @@ applyAndBetaReduce :: InlineM tyname name uni fun ann (Term tyname name uni fun ann) applyAndBetaReduce rhs args = do info <- ask - -- We run the beta and inlining passes for `len args` times, since sometimes the args - -- can only be beta-reduced one by one. An example is + -- We run the beta and inlining passes for `lengthContext args` times, since sometimes + -- the args can only be beta-reduced one by one. An example is -- `(\x y -> f x y) arg_x arg_y`, where `arg_x` and `arg_y` are effectful terms. -- It needs two beta+inlining passes to reduce to `f arg_x arg_y`: the first pass -- inlines `y` and the second pass `x`. -- -- Note that the inlining passes we run here only run unconditional inlining. -- Technically it can be helpful to also run callsite inlining, but it rarely - -- makes a difference and leads to exponential worst-case behavior. + -- makes a difference. foldl' (>=>) pure ( replicate - (len args) + (lengthContext args) ( pure . Beta.beta >=> inline' UnconditionalOnly @@ -466,14 +466,6 @@ applyAndBetaReduce rhs args = do ) ) (fillAppContext rhs args) - where - len :: AppContext tyname name uni fun ann -> Int - len = go 0 - where - go !acc = \case - TermAppContext _ _ ctx -> go (acc + 1) ctx - TypeAppContext _ _ ctx -> go (acc + 1) ctx - _ -> acc -- | Consider inlining a variable. For applications, consider whether to apply and beta reduce. callSiteInline ::