Clojure Compilation, Backwards
summary
A working decompiler called tools.decompiler converts JVM bytecode back into readable Clojure by loading class files, building symbolic bytecode, analyzing into the same asexp format tools.analyzer uses, then sweetening, compiling to code and running a macro compactor that undoes common macro expansion with pattern matching. A new core.match backend using continuations replaces exception-based backtracking to avoid JVM hotspot stalls; the pipeline successfully reconstructs complex functions and can recompile and inject debug hooks, with some name-collision and macro-edge limitations.
AI-written summary · about
chapters (23)
- 0:00Introduction
- 0:27Computation in Clojure
- 1:30Class file structure
- 2:10Debug information
- 3:02Architecture
- 4:20bytecode loader
- 6:01analyzer
- 8:49stack operations
- 9:55instructions
- 10:39issac
- 11:25AST
- 11:44Sweetener
- 12:20Compiler
- 12:47Macro compactor
- 13:22Macro compactor first pass
- 14:10Macro compactor second pass
- 15:49Print
- 16:35Compile
- 17:46Closure Compiler
- 20:38Demo
- 24:58Recompile
- 25:32Limitations
- 27:20Syntax parser








