~/talk

Value Types in the CLR

Talkat JVM Language Summit 2019 · 2019-07-29..07-31· [dotnet]
slides:none on file

CLR value types are always flattened and can live on stack, heap or as fields with managed pointers that allow ref parameters and interior access; boxing creates heap objects and unboxing adjusts the this pointer. Reified generics produce separate statics and type objects and reified generics specialize on value types so JIT emits specialized code, enabling things like Span<T>, value tuples and a monoid pattern that yields native-strength math. Runtime cost includes ~240 special cases, 20–30 ABI variants and reported 1000× allocation reductions in real scenarios.

AI-written summary · about

  1. 0:00Intro
  2. 0:15Outline
  3. 0:59Terminology
  4. 3:47Design Goals
  5. 7:43Value Types
  6. 8:11What are value types
  7. 9:15Why do we support value types
  8. 10:59Primitive types
  9. 13:11GC heap allocation
  10. 14:01Why use value types
  11. 15:29What is a boxed value type
  12. 17:05What is a managed pointer
  13. 19:10Runtime challenges
  14. 22:59Generics
  15. 24:44Reified Generics
  16. 26:32Type Classes
  17. 33:44Specialization
  18. 39:33Constraint
  19. 42:06Challenges
~/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.