Error formatting macro: pagetree: java.lang.NullPointerException
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Stable Public API

  • People currently rely on ana/analyze & comp/emit.
    • Analyze's AST isn't yet standardized, but the schema is part of the interface
    • Emit is the code generation pass, but we want to add more passes
  • Need a future-proof "compile" function
    • Accepts an extensible options map
    • Input is source code & configuration, not ASTs

Pluggable Passes

  • Motivations
    • Relying on GClosure is becoming problematic
      • Moving target, different goals
    • Lots of Clojure-specific optimization opportunities
    • Analyzer & Code Generator passes are becoming large
      • Complect many responsibilities
      • Harder to reason about
  • Current passes
    • analyze (in analyzer.clj)
    • emit (in compiler.clj)
  • Immediate future