Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plutus-core/cost-model/budgeting-bench/Benchmarks/Nops.hs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ nopCostModel =
(ModelSixArgumentsConstantCost 600)
}

nopCostParameters :: MachineParameters CekMachineCosts NopFun (CekValue DefaultUni NopFun ())
nopCostParameters :: MachineParameters CekMachineCosts NopFun (CekValue DefaultUni NopFun)
nopCostParameters =
MachineParameters def . mkMachineVariantParameters def $
CostModel defaultCekMachineCostsForTesting nopCostModel
Expand Down
3 changes: 1 addition & 2 deletions plutus-core/cost-model/budgeting-bench/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ pairWith f = fmap (\a -> (a, f a))

benchWith
:: (Pretty fun, Typeable fun)
=> MachineParameters CekMachineCosts fun (CekValue DefaultUni fun ())
=> MachineParameters CekMachineCosts fun (CekValue DefaultUni fun)
-> String
-> PlainTerm DefaultUni fun
-> Benchmark
Expand Down Expand Up @@ -430,4 +430,3 @@ createThreeTermBuiltinBenchWithWrappers (wrapX, wrapY, wrapZ) fun tys xs ys zs =
[bgroup (showMemoryUsage (wrapY y))
[mkBM x y z | z <- zs] | y <- ys] | x <- xs]
where mkBM x y z = benchDefault (showMemoryUsage (wrapZ z)) $ mkApp3 fun tys x y z

2 changes: 1 addition & 1 deletion plutus-core/docs/BuiltinsOverview.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ Here's a concrete example of what a `TypeScheme` for `DivideInteger` might look
```haskell
divideIntegerTypeScheme ::
TypeScheme
(CekValue DefaultUni fun ann)
(CekValue DefaultUni fun)
'[Integer, Integer]
(BuiltinResult Integer)
divideIntegerTypeScheme = TypeSchemeArrow $ TypeSchemeArrow TypeSchemeResult
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,19 +147,19 @@ defaultCostModelParamsForVariant = \case
We don't want this to get inlined in order for this definition not to appear
faster than the used in production. Also see Note [noinline for saving on
ticks]. -}
defaultCekParametersA :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann)
defaultCekParametersA :: MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)
defaultCekParametersA =
MachineParameters def $
noinline mkMachineVariantParameters DefaultFunSemanticsVariantA cekCostModelVariantA

-- See Note [No inlining for MachineParameters]
defaultCekParametersB :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann)
defaultCekParametersB :: MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)
defaultCekParametersB =
MachineParameters def $
noinline mkMachineVariantParameters DefaultFunSemanticsVariantB cekCostModelVariantB

-- See Note [No inlining for MachineParameters]
defaultCekParametersC :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann)
defaultCekParametersC :: MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)
defaultCekParametersC =
MachineParameters def $
noinline mkMachineVariantParameters DefaultFunSemanticsVariantC cekCostModelVariantC
Expand All @@ -182,9 +182,8 @@ defaultBuiltinsRuntimeForSemanticsVariant semvar =
DefaultFunSemanticsVariantC -> builtinCostModelVariantC

defaultCekParametersForVariant
:: Typeable ann
=> BuiltinSemanticsVariant DefaultFun
-> MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann)
:: BuiltinSemanticsVariant DefaultFun
-> MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)
defaultCekParametersForVariant = \case
DefaultFunSemanticsVariantA -> defaultCekParametersA
DefaultFunSemanticsVariantB -> defaultCekParametersB
Expand All @@ -208,7 +207,7 @@ defaultBuiltinsRuntimeForTesting
-- See Note [noinline for saving on ticks].
defaultBuiltinsRuntimeForTesting = defaultBuiltinsRuntimeForSemanticsVariant DefaultFunSemanticsVariantC

defaultCekParametersForTesting :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann)
defaultCekParametersForTesting :: MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)
defaultCekParametersForTesting = defaultCekParametersC

defaultCekMachineCostsForTesting :: CekMachineCosts
Expand Down Expand Up @@ -355,7 +354,7 @@ unitCostBuiltinCostModel = BuiltinCostModelBase
, paramIndexArray = unitCostTwoArguments
}

unitCekParameters :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann)
unitCekParameters :: MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)
unitCekParameters =
-- See Note [noinline for saving on ticks].
MachineParameters def $
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ import GHC.Exts (inline)

-- | The semantics-variant-dependent part of 'MachineParameters'.
type DefaultMachineVariantParameters =
MachineVariantParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ())
MachineVariantParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)

-- | 'MachineParameters' instantiated at CEK-machine-specific types and default builtins.
-- Encompasses everything we need for evaluating a UPLC program with default builtins using the CEK
-- machine.
type DefaultMachineParameters =
MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ())
MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun)

{- Note [Inlining meanings of builtins]
It's vitally important to inline the 'toBuiltinMeaning' method of a set of built-in functions as
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ A wrapper around the internal runCek to debruijn input and undebruijn output.
-}
runCek
:: ThrowableBuiltins uni fun
=> MachineParameters CekMachineCosts fun (CekValue uni fun ann)
=> MachineParameters CekMachineCosts fun (CekValue uni fun)
-> ExBudgetMode cost uni fun
-> EmitterMode uni fun
-> Term Name uni fun ann
Expand All @@ -79,7 +79,7 @@ runCek = Common.runCek runCekDeBruijn
-- *THIS FUNCTION IS PARTIAL if the input term contains free variables*
runCekNoEmit
:: ThrowableBuiltins uni fun
=> MachineParameters CekMachineCosts fun (CekValue uni fun ann)
=> MachineParameters CekMachineCosts fun (CekValue uni fun)
-> ExBudgetMode cost uni fun
-> Term Name uni fun ann
-> (Either (CekEvaluationException Name uni fun) (Term Name uni fun ()), cost)
Expand All @@ -90,7 +90,7 @@ runCekNoEmit = Common.runCekNoEmit runCekDeBruijn
evaluateCek
:: ThrowableBuiltins uni fun
=> EmitterMode uni fun
-> MachineParameters CekMachineCosts fun (CekValue uni fun ann)
-> MachineParameters CekMachineCosts fun (CekValue uni fun)
-> Term Name uni fun ann
-> (Either (CekEvaluationException Name uni fun) (Term Name uni fun ()), [Text])
evaluateCek = Common.evaluateCek runCekDeBruijn
Expand All @@ -99,7 +99,7 @@ evaluateCek = Common.evaluateCek runCekDeBruijn
-- *THIS FUNCTION IS PARTIAL if the input term contains free variables*
evaluateCekNoEmit
:: ThrowableBuiltins uni fun
=> MachineParameters CekMachineCosts fun (CekValue uni fun ann)
=> MachineParameters CekMachineCosts fun (CekValue uni fun)
-> Term Name uni fun ann
-> Either (CekEvaluationException Name uni fun) (Term Name uni fun ())
evaluateCekNoEmit = Common.evaluateCekNoEmit runCekDeBruijn
Expand All @@ -108,7 +108,7 @@ evaluateCekNoEmit = Common.evaluateCekNoEmit runCekDeBruijn
-- *THIS FUNCTION IS PARTIAL if the input term contains free variables*
readKnownCek
:: (ThrowableBuiltins uni fun, ReadKnown (Term Name uni fun ()) a)
=> MachineParameters CekMachineCosts fun (CekValue uni fun ann)
=> MachineParameters CekMachineCosts fun (CekValue uni fun)
-> Term Name uni fun ann
-> Either (CekEvaluationException Name uni fun) a
readKnownCek = Common.readKnownCek runCekDeBruijn
Loading
Loading