~/talk

Rappel: Compose Algorithms, Not Iterators - Google's Alternative to Ranges

Talkat C++Now 2024 · 2024-04-29..05-03· [compilers-and-language-design]
links:none on file
slides:none on file

Rappel (RPL) is a Google library that composes algorithms instead of iterators, implementing an eager continuation passing style pipeline that passes values through stages rather than returning temporaries. It eliminates dangling-reference and repeated-transform bugs common with std::ranges, cuts stack growth from cubic to near-linear, and gives monadic error handling (optional / status_or unwraps) built-in. compose vs apply separates pipeline construction from execution; benchmarks show performance close to handwritten loops and it’s been in internal use since July.

AI-written summary · about

  1. 0:00Introduction to Repel
  2. 0:32Historical context
  3. 2:04Defining the pipeline style
  4. 3:25Stages of a pipeline
  5. 4:11C++20 ranges overview
  6. 5:10Identifying ranges pitfalls
  7. 7:06Dangling reference analysis
  8. 8:34The TPOISA problem
  9. 10:17Stack overflow and growth
  10. 12:06Comparing iterators and algorithms
  11. 13:53Continuation passing style
  12. 15:47Safety and efficiency trade-offs
  13. 17:43Introduction to Repel library
  14. 20:13Benchmarking and performance
  15. 24:31Implementing complex examples
  16. 31:28Refining the pipeline design
  17. 33:20Incremental vs complete processing
  18. 35:43Pipeline rules and safety
  19. 39:20Enforcing safety in apply
  20. 43:06Standardizing stages and safety
  21. 46:10Library internals
  22. 50:59Error handling and monads
  23. 56:30Convenience features
  24. 1:02:11Final case study: word count
  25. 1:06:56Q&A and future outlook
~/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.