~/talk

Hosted miniKanren: Reconciling Optimizing Compilation and Extensibility

Talkat miniKanren 2024 · on Friday, 2024-09-06
slides:none on file

A hosted miniKanren embeds a macro-spec grammar in Racket using the syntax-spec macro to produce a small core language that an optimizing compiler consumes, while keeping user macros hygienic and statically checked. A persistent symbol table records relation arities for separate compilation and arity errors. The foreign interface enforces an expression→term/goal boundary that wraps logic variables when crossing to Racket, enabling safe database-backed relations. Optimizations include constant propagation and dead-code elimination that undo macro overhead and occurs-check elimination via a simple abstract interpretation.

AI-written summary · about

  1. 0:00Hosted miniKanren intro
  2. 2:33DSL implementation trade-off
  3. 6:48Core miniKanren language
  4. 10:39Grammar and binding errors
  5. 15:57Compiling core language
  6. 18:56Macro extensibility in miniKanren
  7. 22:32Integrating optimizing compiler
  8. 24:41Static semantics with arity checks
  9. 28:35Constant propagation for extensions
  10. 35:50Host language code interaction
  11. 41:53Querying real-world data
  12. 45:02Database-friendly extensions
  13. 46:52Optimizing across boundaries
  14. 52:14Summary and future
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.