~/talk

More Powerful Multimethods

Talkat Clojure/north 2020 · 2020-06-25..06-26· [functional-programming]
name:Cam Saul
links:none on file
slides:none on file

Methodical provides CLOS-style multimethods with auxiliary before/after/around hooks, a next-method style flow and utilities to inspect the dispatch hierarchy; benchmarks show performance about the same as Clojure multimethods but not as fast as protocols. It ships in Metabase and is adopted slowly across a ~100,000-line codebase to handle cases like dispatching on both database type and column type; caching and protocol-style caches for class dispatch are planned and a more performant Faster-Multimethods-inspired cache is under consideration.

AI-written summary · about

  1. 0:00Introduction
  2. 1:49Performance comparison
  3. 3:36Debugging complex hierarchies
  4. 6:03CLOS inspiration time
  5. 8:12Common Lisp Object System
  6. 11:00Adoption at Metabase
  7. 14:32Stealing from Common Lisp
  8. 19:08Faster multimethods library
  9. 21:16Optimizing dispatch caching
  10. 24:06Better stack traces
  11. 25:55Nested dispatch values
  12. 27:59Extending Methodical
  13. 28:26Closing remarks
~/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.