Session Types in C++ - A Programmer's Journey
Talkat CppCon 2024 · on Friday, 2024-09-20· at 09:00· Spruce 3/4, 6700 North Gaylord Rockies Boulevard·
summary
Claims a first known implementation of session types in C++ with a concrete library that encodes protocols as types, offers send/receive/offer/choice and loop constructs, enforces linearity via move-enforced linearity, and pairs each endpoint with an actor-style channel over a simple queue. Tooling stays C++-centric (no external codegen), verification can export to Scribble later, and microbenchmarks on clang 19 show about 6% overhead overall (client ~6.8%, server larger).
AI-written summary · about
chapters (10)
- 0:00Introduction and motivation
- 0:25Understanding types in C++
- 6:38Roles and benefits of types
- 15:57Defining session types
- 16:30Protocol and interaction models
- 22:32Approaches to session types
- 26:49C++ implementation strategy
- 29:27Design decisions for channels
- 29:49Implementation details and usage
- 52:41Questions and conclusion
related talks
54mA Tour of C++ Recognised User Type Categories
46mType safe C++? LOL!
49mTypical C++, But Why?
01h 03mTemplate Metaprogramming: Practical Application
01h 01mConcepts vs Typeclasses vs Traits vs Protocols
47mHistory and Philosophy of types
07mLightning Talk: Higher-Order Template Metaprogramming with C++23
39mCommunicating in Types
