Skip to content

Commit

Permalink
Partially typecheck large function
Browse files Browse the repository at this point in the history
  • Loading branch information
Vanessa McHale committed May 25, 2019
1 parent 7d72a69 commit ef4f6bd
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions language-plutus-core/bench/Bench.hs
Expand Up @@ -6,6 +6,16 @@ import Criterion.Main
import qualified Data.ByteString.Lazy as BSL
import Language.PlutusCore
import Language.PlutusCore.Pretty
import qualified Data.Map as M
import Language.PlutusCore.Constant.Dynamic
import Language.PlutusCore.Constant

traceBuiltins :: QuoteT (Either (Error ())) DynamicBuiltinNameTypes
traceBuiltins = dynamicBuiltinNameMeaningsToTypes () $ DynamicBuiltinNameMeanings $ M.fromList
[ (dynamicCharToStringName, dynamicCharToStringMeaning)
, (dynamicTraceName, dynamicTraceMeaning)
, (dynamicAppendName, dynamicAppendMeaning)
]

main :: IO ()
main =
Expand All @@ -29,6 +39,16 @@ main =
, bench "stringLiteral" $ nf parse g
]

, env sampleScript $ \ f ->
let typeCheckConcrete :: Program TyName Name () -> Either (Error ()) (Normalized (Type TyName ()))
typeCheckConcrete p = runQuoteT $ do
bis <- traceBuiltins
inferTypeOfProgram (defOffChainConfig { _tccDynamicBuiltinNameTypes = bis }) p
mkBench = bench "typeCheck (Plutus Tx)" . nf typeCheckConcrete . deserialise
in

bgroup "renamer" $ mkBench <$> [f]

, env largeTypeFiles $ \ ~(f, g, h) ->
let typeCheckConcrete :: Program TyName Name AlexPosn -> Either (Error AlexPosn) (Normalized (Type TyName ()))
typeCheckConcrete = runQuoteT . inferTypeOfProgram defOffChainConfig
Expand Down

0 comments on commit ef4f6bd

Please sign in to comment.