~/talk

C# Language Internals

Talkat NDC Sydney 2017 · 2017-08-14..08-18· [dotnet, compilers-and-language-design]
links:none on file
slides:none on file

Live demo of compiler internals showing the actual code paths: inspects Roslyn source and generated IL, attaches the compiler in the debugger, and opens WinDbg/SOS to run dumpheap and dumpil. Shows events implemented with a generated add/remove loop using interlocked compare-exchange, explains synthetic synchronous entrypoints for async main, and walks the async lowering that builds a struct state machine which does state machine boxing when an await yields, hoists evaluation-stack temporaries to fields, and uses ExceptionDispatchInfo for await-in-finally.

AI-written summary · about

  1. 0:00Start
  2. 2:20Initializers
  3. 2:35Interpolated Strings
  4. 2:59Events
  5. 5:58Multicast Delegate
  6. 8:04Interlock Compare Exchange
  7. 8:58Source Code
  8. 9:08Roslin Source Code
  9. 11:28Async Tasks
  10. 12:10Async Main
  11. 21:39Get Well-Known Member
  12. 22:56Display Classes
  13. 23:53Async Method
  14. 26:54Async State Machine
  15. 41:30Stacks Building
  16. 45:16Hidden Hot Potato
  17. 46:25Exception Dispatch Infer
  18. 46:45Runtime Exception Services
  19. 48:50Transparent Identifier
  20. 50:42Polymorphic Inline Cache
~/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.