Skip to content

Commit c708287

Browse files
authored
perf(cek): direct DeBruijn force (builtin ...) path (#283)
Signed-off-by: Chris Gianelloni <wolf31o2@blinklabs.io>
1 parent 278b700 commit c708287

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

cek/stack_machine_debruijn.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,20 @@ func runStackNoSlippageDeBruijn(
315315
return nil, m.budgetErrorForStep(ExForce)
316316
}
317317

318+
if builtinTerm, ok := t.Term.(*syn.Builtin); ok {
319+
if !m.spendStepNoSlippage(ExBuiltin) {
320+
return nil, m.budgetErrorForStep(ExBuiltin)
321+
}
322+
var err error
323+
currentTerm, currentEnv, currentValue, returning, err = m.forceEvaluateStack(
324+
m.builtinValues[builtinTerm.DefaultFunction],
325+
)
326+
if err != nil {
327+
return nil, err
328+
}
329+
continue
330+
}
331+
318332
if isImmediateTermDeBruijn(t.Term) {
319333
forcedValue, err := computeKnownImmediateValueNoSlippageDeBruijn(
320334
m,

0 commit comments

Comments
 (0)