Skip to content

Commit

Permalink
bench: workaround plutus-tx-plugin expecting GHC9
Browse files Browse the repository at this point in the history
  • Loading branch information
mgmeier authored and Jared Corduan committed May 25, 2023
1 parent 186b530 commit a8a2233
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 6 deletions.
4 changes: 4 additions & 0 deletions bench/plutus-scripts-bench/plutus-scripts-bench.cabal
Expand Up @@ -27,6 +27,10 @@ common project-config
if os(windows)
buildable: False

if impl(ghc < 9)
buildable: False


common common-definitions
build-depends: base >= 4.14 && < 4.17
default-language: Haskell2010
Expand Down
5 changes: 5 additions & 0 deletions bench/tx-generator/scripts-fallback/CustomCall.plutus
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV2",
"description": "",
"cborHex": "5904485904450100003233223232323232323232323232323232323232323222323225335533353550032200213301333355300e1200132335012223335003220020020013500122001123300101401b253333350012101c2213335017501a002332335530101200135014001350130013350147149101000012101c101b2213335017501900233233553012120013350152233350032200200200135001220012001123300122337000040029000000a801199a80a1a980a89000a80928011aa8059a8030028999a80a280b19aa806980709000a80119aa8069807090009aa8059a8030028999a80a1a980a89000a80928011aa8059a80300288050b09aa8009100089a80180089911919191999ab9a3370e0029000119191991091980080180119191999ab9a3370e00290021091100191999ab9a3370e00490011091100091999ab9a3370e00690001091100111931900799ab9c00f01100d00c00b35573a0026ea8008c020004d5d09aba2500435742a006464c6401066ae70020028018d55ce80109aab9e00137540026a0064646464646666ae68cdc3800a40104646466442444446600800e00c6eb8008cd402dd70009aba135744a0086ae85400c8cccd5cd19b87002480188c8c8cc88488888cc00401c018dd680119a8063ad001357426ae894018d5d0a80291999ab9a3370e00690021191909111118028031bae001357426aae7801c8cccd5cd19b87004480088c8c8488888c00c018dd68009aba135573c01046666ae68cdc3802a40004244444004464c6401866ae7003003802802402001c018d55ce80189aab9e002135573c0026ea800526491035054310012322300237580026aa026446666aae7c00484880088cc88488cc00401000cc010d5d080118019aba200200412001112350012200135500f22112225335001100222133005002333553007120010050040011122333355002323350072233350080030010023500500133500622230033002001200122337000029001000a40006aa01a4422444a66a00226a00c006442666a01200a6008004666aa600e2400200a008002246a00244002246a002440042442466002006004244a66666a00442a66666a00442666a00ca01200400244260169310980524c26012931109805a4c442a66666a0064260169311099803999a8042805802001199a8041a980489000a805801800909805a4c2601493110980624c42a66666a004426014931109805a4c42666a00ca01000400226012931109805a4c2a66666a00242601293110980524c426012930805110980524c442a66666a00642601693110980624c426016930980524c4426600e666a010a014008004666a0106a601224002a01400600244a66a00420022010240026aa00c442444a66a0042a66a0022014442016442a66a0062016442a66a6600e0080042666a60122400200e006002201a244666ae68cdc3801000803002891199ab9a3371e00400200a0084004244004244002224646002002446600660040040021"
}
5 changes: 5 additions & 0 deletions bench/tx-generator/scripts-fallback/EcdsaSecp256k1Loop.plutus
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV2",
"description": "",
"cborHex": "5901ea5901e7010000323232332232332232223232323232253353232323333333574801446666ae68cdc39aab9d500a480008cccd55cfa8051280811999aab9f500a25011233335573ea0144a02446666aae7d40289404c8cccd55cf9aba2500b2533532333333357480024a02c4a02c4a02c46a02e6eb400894058070d5d0a80790a99a98059aba1500f215335300b35742a01e42a66a60166ae85403c84d406448cccc00401401000c0085405c5405854054540509405006806406005c0589403c05094038940389403894038051402d4029402484d400488894cd4ccd5cd19b880044820225e804c0484d40512411572656465656d6572206973203c2031303030303030001333301100400300200113500f49011d5472616365206572726f723a20496e76616c69642072656465656d657200135744a00226ae8940044d5d1280089aab9e500113754002246666666ae900049400c9400c9400c9400c8d4010dd700100489091180100188910009918008009119111299a999ab9a3370e00a904044bd00400388058a99a999ab9a33376800600400201000e2666600866e040152002003002001135009491245472616365206572726f723a2045434453412076616c69646174696f6e206661696c65640030020021220021220011232632003335738002006930900081"
}
5 changes: 5 additions & 0 deletions bench/tx-generator/scripts-fallback/Loop.plutus
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV1",
"description": "",
"cborHex": "587a58780100003322323222322533532333573466e200052080897a0090085002132632498cd5ce24811572656465656d6572206973203c2031303030303030000061300550021375a0026460020024464a66a666ae68cdc38012410112f400c00a2008264600400266e04009200230020021200112200212200101"
}
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV2",
"description": "",
"cborHex": "5901ec5901e9010000323232332232332232223232323232253353232323333333574801446666ae68cdc39aab9d500a480008cccd55cfa8051280811999aab9f500a25011233335573ea0144a02446666aae7d40289404c8cccd55cf9aba2500b2533532333333357480024a02c4a02c4a02c46a02e6eb400894058070d5d0a80790a99a98059aba1500f215335300b35742a01e42a66a60166ae85403c84d406448cccc00401401000c0085405c5405854054540509405006806406005c0589403c05094038940389403894038051402d4029402484d400488894cd4ccd5cd19b880044820225e804c0484d40512411572656465656d6572206973203c2031303030303030001333301100400300200113500f49011d5472616365206572726f723a20496e76616c69642072656465656d657200135744a00226ae8940044d5d1280089aab9e500113754002246666666ae900049400c9400c9400c9400c8d4010dd700100489091180100188910009918008009119111299a999ab9a3370e00a904044bd00400388058a99a999ab9a33376a00600400201000e2666600866e040152002003002001135009491265472616365206572726f723a205363686e6f72722076616c69646174696f6e206661696c65640030020021220021220011232632003335738002006930900081"
}
17 changes: 15 additions & 2 deletions bench/tx-generator/src/Cardano/TxGenerator/Setup/Plutus.hs
@@ -1,3 +1,4 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE RankNTypes #-}
Expand All @@ -10,7 +11,7 @@ module Cardano.TxGenerator.Setup.Plutus
)
where

import Data.Bifunctor (bimap)
import Data.Bifunctor
import Data.Map.Strict as Map (lookup)

import Control.Monad.Trans.Except
Expand All @@ -27,19 +28,31 @@ import Cardano.Ledger.Alonzo.TxInfo (exBudgetToExUnits)
import qualified PlutusLedgerApi.V1 as PlutusV1
import qualified PlutusLedgerApi.V2 as PlutusV2

import Cardano.Benchmarking.PlutusScripts(findPlutusScript)
import Cardano.TxGenerator.Types

#ifdef WITH_LIBRARY
import Cardano.Benchmarking.PlutusScripts (findPlutusScript)
#else
import Control.Exception (SomeException(..), try)
import Paths_tx_generator
#endif

type ProtocolVersion = (Int, Int)


readPlutusScript :: Either String FilePath -> IO (Either TxGenError ScriptInAnyLang)
readPlutusScript (Left s)
#ifdef WITH_LIBRARY
= pure
$ maybe (Left . TxGenError $ "readPlutusScript: " ++ s ++ " not found.")
Right
(findPlutusScript s)
#else
= try (getDataFileName $ "scripts-fallback/" ++ s ++ ".plutus") >>= either
(\(SomeException e) -> pure $ Left $ TxGenError $ show e)
(readPlutusScript . Right)
#endif

readPlutusScript (Right fp)
= runExceptT $ do
script <- firstExceptT ApiError $
Expand Down
8 changes: 8 additions & 0 deletions bench/tx-generator/test/ApiTest.hs
@@ -1,3 +1,4 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NumericUnderscores #-}
{-# LANGUAGE OverloadedStrings #-}
Expand Down Expand Up @@ -44,8 +45,10 @@ import Cardano.Benchmarking.Script.Aeson (prettyPrint, prettyPrintOrde
import Cardano.Benchmarking.Script.Selftest (testScript)
import Cardano.Benchmarking.Script.Types (SubmitMode (..))

#ifdef WITH_LIBRARY
import Cardano.Benchmarking.PlutusScripts
import Cardano.Benchmarking.PlutusScripts.CustomCallTypes
#endif

import Cardano.Node.Protocol.Types

Expand Down Expand Up @@ -121,6 +124,10 @@ checkFund = genesisInitialFundForKey Mainnet

checkPlutusBuiltin ::
IO ()
#ifndef WITH_LIBRARY
checkPlutusBuiltin
= putStrLn "* checkPlutusBuiltin: skipped - no library available"
#else
checkPlutusBuiltin
= do
let script = case findPlutusScript "CustomCall.hs" of
Expand Down Expand Up @@ -149,6 +156,7 @@ checkPlutusBuiltin

toApiData :: CustomCallArg -> ScriptData
toApiData = fromPlutusData . PlutusTx.toData
#endif

checkPlutusLoop ::
Maybe TxGenPlutusParams
Expand Down
15 changes: 11 additions & 4 deletions bench/tx-generator/tx-generator.cabal
Expand Up @@ -19,13 +19,21 @@ data-files: data/protocol-parameters.json
data/loop.redeemer.json
data/ecdsa-secp256k1-loop.redeemer.json
data/schnorr-secp256k1-loop.redeemer.json
scripts-fallback/*.plutus

common project-config
if os(windows)
buildable: False

common with-library
if impl(ghc >= 9)
build-depends: plutus-scripts-bench
cpp-options: -DWITH_LIBRARY


library
import: project-config
import: project-config, with-library

hs-source-dirs: src
ghc-options: -Wall
-Wcompat
Expand Down Expand Up @@ -123,7 +131,6 @@ library
, ouroboros-network-framework
, ouroboros-network-protocols
, plutus-ledger-api
, plutus-scripts-bench
, plutus-tx
, random
, serialise
Expand Down Expand Up @@ -170,7 +177,8 @@ executable tx-generator
, tx-generator

test-suite tx-generator-apitest
import: project-config
import: project-config, with-library

hs-source-dirs: test
main-is: ApiTest.hs
type: exitcode-stdio-1.0
Expand All @@ -188,7 +196,6 @@ test-suite tx-generator-apitest
, cardano-api ^>= 8.1.0.1
, cardano-cli
, cardano-node
, plutus-scripts-bench
, plutus-tx
, transformers
, transformers-except
Expand Down

0 comments on commit a8a2233

Please sign in to comment.