| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusCore.Evaluation.Machine.ExBudget
Synopsis
- data ExBudget = ExBudget {}
- minusExBudget :: ExBudget -> ExBudget -> ExBudget
- class ExBudgetBuiltin fun exBudgetCat where
- exBudgetBuiltin :: fun -> exBudgetCat
- newtype ExRestrictingBudget = ExRestrictingBudget {}
- data LowerInitialCharacter
- largeBudget :: ExRestrictingBudget
- enormousBudget :: ExRestrictingBudget
Documentation
Constructors
| ExBudget | |
Fields | |
Instances
minusExBudget :: ExBudget -> ExBudget -> ExBudget Source #
Subract one ExBudget from another. Does not guarantee that the result is positive.
class ExBudgetBuiltin fun exBudgetCat where Source #
A class for injecting a Builtin into an exBudgetCat.
We need it, because the constant application machinery calls spendBudget before reducing a
constant application and we want to be general over exBudgetCat there, but still track the
built-in functions category, hence the ad hoc polymorphism.
Methods
exBudgetBuiltin :: fun -> exBudgetCat Source #
Instances
| ExBudgetBuiltin fun () Source # | A dummy |
Defined in PlutusCore.Evaluation.Machine.ExBudget Methods exBudgetBuiltin :: fun -> () Source # | |
| ExBudgetBuiltin fun (ExBudgetCategory fun) Source # | |
Defined in UntypedPlutusCore.Evaluation.Machine.Cek.Internal Methods exBudgetBuiltin :: fun -> ExBudgetCategory fun Source # | |
newtype ExRestrictingBudget Source #
Constructors
| ExRestrictingBudget | |
Fields | |
Instances
data LowerInitialCharacter Source #
This is used elsewhere to convert cost models into JSON objects where the names of the fields are exactly the same as the names of the builtins.
Instances
| StringModifier LowerInitialCharacter Source # | |
Defined in PlutusCore.Evaluation.Machine.ExBudget Methods getStringModifier :: String -> String | |
largeBudget :: ExRestrictingBudget Source #
When we want to just evaluate the program that is intended to run out of budget we use the
Restricting mode with this big budget designed to make the CEK machine terminate in a
fraction of a second on the reference machine.
enormousBudget :: ExRestrictingBudget Source #
When we want to just evaluate the program we use the Restricting mode with an enormous
budget, so that evaluation costs of on-chain budgeting are reflected accurately in benchmarks.