~/talk

"How to build a Clojure dialect"

Talkat Clojure/conj 2023 · 2023-04-27..04-28· [compilers-and-language-design]
slides:none on file

A Clojure dialect called Jank on LLVM targets native code with a C++ runtime and C++ interop, developed over seven years and rewritten multiple times. Implementation details: lexer evolved from regex to instaparse to a custom C++ tokenizer; parse tree is actual Clojure data so macros run as functions over that tree; runtime mixes interpretation, JIT and AOT compilation; interop uses native raw inline C++ with interpolation. Expect to reimplement hundreds of clojure.core defs and the Java-like object model as a C++ library.

AI-written summary · about

  1. 0:00Introduction
  2. 1:08Jank
  3. 2:47Why build a closure dialect
  4. 3:56Terms of compilation
  5. 7:13Lexical analysis
  6. 9:00Tradeoffs
  7. 9:30Syntax Analysis
  8. 10:36Source Code
  9. 13:01Compiler
  10. 17:43Macros
  11. 21:31Interop
  12. 24:57Closure Core
  13. 27:35Clojure is a library
~/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.