~/talk

“Datum: A Compact Bitwise Copyable Variant Type”

Talkat CppCon 2018 · 2018-09-23..09-28
links:none on file
slides:none on file

Datum is an eight byte compact variant on 32-bit that uses NaN-boxing of IEEE-754 doubles to represent regular doubles natively and repurpose NaN payload space for 15 discriminated types, remaining bitwise copyable and trivially destructible. Small strings up to six characters live inline with a length byte, larger strings allocate on the heap. Benchmarks compile with gcc 8 -O2, run 10k iterations creating 100k objects, and show substantially lower memory use and generally faster creation/access than std::variant except for some string/view cases.

AI-written summary · about

  1. 0:00Introduction
  2. 0:22Motivation for Datum
  3. 1:08Bloomberg data representation
  4. 4:02What is Datum
  5. 4:44IEEE-754 double precision format
  6. 7:42Datum value representation
  7. 12:44Extended type discrimination
  8. 14:10Heap allocation and destruction
  9. 15:14String views in Datum
  10. 16:1864-bit integer optimizations
  11. 17:04Aggregate and recursive types
  12. 17:2664-bit platform implementation
  13. 18:10Datum vs std::variant comparison
  14. 20:26Benchmark methodology
  15. 21:31Performance results
  16. 23:40Memory and allocation analysis
  17. 24:22Conclusion and use cases
  18. 24:44Datum availability and licensing
  19. 25:30Q&A session
~/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.