~/talk

So you want to create your own .NET runtime?

Talkat DotNext 2018 Moscow · 2018-11-22..11-23· [dotnet]
links:none on file
slides:none on file

A tiny C runtime loads a compiled .NET DLL, parses PE headers and the CLI metadata tables, and executes IL by interpreting opcodes. The demo uses the old DotNetAnywhere codebase and about 400 lines of C to implement specific opcodes (ret 0x2A, ldc.i4.s, call, add), support for user strings and tokens, and a C hook for Console.WriteLine. Loading another assembly simply calls the same loader. The runtime works end to end for these cases and shows how little is needed to run simple .NET code.

AI-written summary · about

  1. 0:00Introduction and motivation
  2. 3:00Hello World program setup
  3. 10:13PE headers and metadata navigation
  4. 21:17Entry point and method loading
  5. 25:32Executing IL instructions
  6. 31:16Implementing return and LDC instructions
  7. 36:20Adding method calls and complexity
  8. 47:00Loading strings and external methods
  9. 51:44Handling external libraries
  10. 53:08Q&A and conclusion
~/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.