Reigniting Fuse, an Online Partial Evaluator for Scheme
summary
Reignites Fuse, an online partial evaluator for Scheme that actually terminates by combining a specialization cache (indexing by symbolic value attributes) with an online generalization abstraction over call stacks, letting it specialize exponentiation on one static argument but stop infinite unfolding of recursive loops like a tail-recursive factorial with accumulator. Implements symbolic values as (value, code) pairs, sometimes produces larger residuals but rolls them back to avoid bloat, and is concrete enough to port into a Racket linklet partial evaluator.
AI-written summary · about
chapters (6)
- 0:00Start
- 7:33Fuse for Scheme
- 7:48Fuse's Termination Strategy
- 7:58Symbolic Values
- 9:12Specialization Cache
- 12:11Stacks to the Rescue
related talks
01h 01mA partial history of partial evaluation
09mCompilers for nothing, executables for free!
27mPartial Evaluation of Reversible Flowchart Programs
15mThe Fuzion Intermediate Representation
01h 01mLive Lambda Calculus
29mA Call-by-push-value Scheme
35mPractical Normalization by Evaluation for EDSLs
27mLightweight Semantics Engineering with Redex
