~/talk

Postmodern immutable data structures

Talkat CppCon 2017 · 2017-09-24..09-29· [functional-programming, concurrency]
links:none on file
slides:none on file

Library Immer implements persistent vectors using Relaxed Radix Balanced Trees with a 32-way branching factor (≈7 levels for 32-bit indexes) and an embedding variant for large or tiny Ts, offering logarithmic concatenation/insertion and effectively constant random access. Transient and rvalue-aware updates avoid many copies; default policy uses atomic reference counting but supports alternate GC/allocators. Iteration via buffer-aware callbacks is about 1.5× slower than std::vector, and the demo editor Ewig opens the ~1 GB Esperanto Wikipedia file instantly and saves asynchronously while editing.

AI-written summary · about

  1. 0:00Introduction
  2. 0:59The problem with mutability
  3. 4:07Immutable data structures
  4. 6:38The immu library
  5. 7:40Radix balanced trees
  6. 13:34Concatenation and optimization
  7. 17:01Transient data structures
  8. 21:11Composing transients
  9. 23:56Benchmarking performance
  10. 25:58Text editor application
  11. 32:12MVC vs. unidirectional flow
  12. 36:47Implementing the text editor
  13. 45:47Implementing undo/redo
  14. 50:53Q&A and future work
~/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.