~/talk

Clojure Compilation, Backwards

Talkat Clojure/conj 2017 · 2017-10-12..10-14· [compilers-and-language-design]
slides:none on file

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

  1. 0:00Introduction
  2. 0:27Computation in Clojure
  3. 1:30Class file structure
  4. 2:10Debug information
  5. 3:02Architecture
  6. 4:20bytecode loader
  7. 6:01analyzer
  8. 8:49stack operations
  9. 9:55instructions
  10. 10:39issac
  11. 11:25AST
  12. 11:44Sweetener
  13. 12:20Compiler
  14. 12:47Macro compactor
  15. 13:22Macro compactor first pass
  16. 14:10Macro compactor second pass
  17. 15:49Print
  18. 16:35Compile
  19. 17:46Closure Compiler
  20. 20:38Demo
  21. 24:58Recompile
  22. 25:32Limitations
  23. 27:20Syntax parser
~/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.