~/talk

An Exceptionally Janky Tale

slides:none on file

Jank is a Clojure dialect compiled to LLVM with C++ interop that implements throw/try/catch/finally by adding new AST expression types, doing semantic analysis into expression structs, and generating C++ as strings for JIT or file compilation. Eval uses an interpreted path; codegen emits C++ try/catch and uses a scope-exit destructor pattern to emulate finally. Exception throwing is on the cold path with near-zero overhead when not thrown. Current status: 90–95% syntax parity with Clojure JVM, runs about 40% of clojure.core but lacks packaging and polish.

AI-written summary · about

  1. 0:00Introduction to Jank
  2. 2:10Metaphorical story about exceptions
  3. 3:17Compilation phases overview
  4. 5:04Implementing throw in semantic analysis
  5. 7:57Evaluating and code generating throw
  6. 10:47Demo of throw in generated code
  7. 11:11Introducing try with metaphor
  8. 12:15Implementing try expression
  9. 15:43Code generation for try
  10. 17:29Demo of try in generated code
  11. 18:13Introducing catch with metaphor
  12. 19:16Exception handling insights
  13. 22:03Performance of exceptions in C++
  14. 26:59Exception-based vs error-based code
  15. 27:41Metaphorical resolution
  16. 28:01Jank status and future plans
  17. 30:31Announcement of full-time work on Jank
~/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.