Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
PlutusCore.Evaluation.Machine.MachineParameters
Synopsis
- data CostModel machinecosts builtincosts = CostModel {
- _machineCostModel ∷ machinecosts
- _builtinCostModel ∷ builtincosts
- machineCostModel ∷ ∀ machinecosts builtincosts machinecosts. Lens (CostModel machinecosts builtincosts) (CostModel machinecosts builtincosts) machinecosts machinecosts
- builtinCostModel ∷ ∀ machinecosts builtincosts builtincosts. Lens (CostModel machinecosts builtincosts) (CostModel machinecosts builtincosts) builtincosts builtincosts
- data MachineParameters machinecosts fun val = MachineParameters {
- machineCosts ∷ machinecosts
- builtinsRuntime ∷ BuiltinsRuntime fun val
- mkMachineParameters ∷ (CostingPart uni fun ~ builtincosts, HasMeaningIn uni val, ToBuiltinMeaning uni fun) ⇒ BuiltinSemanticsVariant fun → CostModel machinecosts builtincosts → MachineParameters machinecosts fun val
Documentation
data CostModel machinecosts builtincosts Source #
We need to account for the costs of evaluator steps and also built-in function evaluation. The models for these have different structures and are used in different parts of the code, so inside the valuator we pass separate objects about most of the time . It's convenient for clients of the evaluator to only have to worry about a single object, so the CostModel type bundles the two together. We could conceivably have different evaluators with different internal costs, so we keep the machine costs abstract. The model for Cek machine steps is in UntypedPlutusCore.Evaluation.Machine.Cek.CekMachineCosts.
Constructors
CostModel | |
Fields
|
machineCostModel ∷ ∀ machinecosts builtincosts machinecosts. Lens (CostModel machinecosts builtincosts) (CostModel machinecosts builtincosts) machinecosts machinecosts Source #
builtinCostModel ∷ ∀ machinecosts builtincosts builtincosts. Lens (CostModel machinecosts builtincosts) (CostModel machinecosts builtincosts) builtincosts builtincosts Source #
data MachineParameters machinecosts fun val Source #
At execution time we need a BuiltinsRuntime
object which includes both the
cost model for builtins and their denotations. This bundles one of those
together with the cost model for evaluator steps. The term
type will be
CekValue when we're using this with the CEK machine.
Constructors
MachineParameters | |
Fields
|
Instances
Generic (MachineParameters machinecosts fun val) Source # | |
Defined in PlutusCore.Evaluation.Machine.MachineParameters Methods from ∷ MachineParameters machinecosts fun val → Rep (MachineParameters machinecosts fun val) x Source # to ∷ Rep (MachineParameters machinecosts fun val) x → MachineParameters machinecosts fun val Source # | |
(NFData machinecosts, Bounded fun, Enum fun) ⇒ NFData (MachineParameters machinecosts fun val) Source # | |
Defined in PlutusCore.Evaluation.Machine.MachineParameters Methods rnf ∷ MachineParameters machinecosts fun val → () Source # | |
(NoThunks machinecosts, Bounded fun, Enum fun) ⇒ NoThunks (MachineParameters machinecosts fun val) Source # | |
type Rep (MachineParameters machinecosts fun val) Source # | |
Defined in PlutusCore.Evaluation.Machine.MachineParameters type Rep (MachineParameters machinecosts fun val) = D1 ('MetaData "MachineParameters" "PlutusCore.Evaluation.Machine.MachineParameters" "plutus-core-1.40.0.0-inplace" 'False) (C1 ('MetaCons "MachineParameters" 'PrefixI 'True) (S1 ('MetaSel ('Just "machineCosts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 machinecosts) :*: S1 ('MetaSel ('Just "builtinsRuntime") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (BuiltinsRuntime fun val)))) |
mkMachineParameters ∷ (CostingPart uni fun ~ builtincosts, HasMeaningIn uni val, ToBuiltinMeaning uni fun) ⇒ BuiltinSemanticsVariant fun → CostModel machinecosts builtincosts → MachineParameters machinecosts fun val Source #
This just uses toBuiltinsRuntime
function to convert a BuiltinCostModel to a BuiltinsRuntime.