~/talk

Evolving Clojure with Virtual Threads

Talkat JVM Language Summit 2025 · 2025-08-04..08-06· [java, concurrency]
slides:none on file

core.async originally compiles go blocks into state machines via the analyzer and go macro; the new implementation swaps that for virtual threads, keeping the same API and semantics while removing the analyzer maintenance burden. It introduces three workload executors (IO, compute, mixed), maps parking ops to blocking on vthreads, and adds core.async.flow to run pure step functions on workload-appropriate executors with built-in topology, lifecycle, and error handling. Initial microbenchmarks show faster coordination but different heap characteristics to investigate.

AI-written summary · about

  1. 0:00Introduction
  2. 4:15Clojure overview
  3. 7:28Clojure on JVM
  4. 10:02Core async basics
  5. 15:41Go blocks execution
  6. 17:53Evolving core async with virtual threads
  7. 21:47Compatibility and testing
  8. 26:46Introducing Flow
  9. 35:59Summary
  10. 36:43Q&A: Multi-arity vs protocols
  11. 38:07Q&A: Virtual threads timing
~/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.