~/talk

Pushing C# to new places with NativeAOT

Talkat Dotnetos Conference 2022 · 2022-10-10..10-12· [dotnet]
slides:none on file

Claims that .NET 7 NativeAOT produces standalone native binaries and unlocks new interop are demonstrated with concrete techniques: using Marshal.GetFunctionPointerForDelegate and source generators to fabricate vtables and exports, using nativeLibrary.GetExport / dlopen dlsym (written as nativeLibrary.GetExport) and ELF symbol parsing to bind LLDB symbols, and a C++ loader shim to register a custom GC. Built artifacts: a working native profiler, a fragile but functioning LLDB plugin, and a .NET GC prototype that only runs with the C++ loader workaround.

AI-written summary · about

  1. 0:00NativeAOT introduction
  2. 1:26NativeAOT vs ReadyToRun
  3. 3:13Native interoperability
  4. 3:34Writing a .NET profiler
  5. 9:58Profiler interface in C#
  6. 13:34Source generators for boilerplate
  7. 18:15Testing the profiler
  8. 21:02Writing LLDB debugger extension
  9. 26:24Dynamic function location
  10. 31:23Symbol resolution challenges
  11. 37:09Fixing struct return issues
  12. 39:40Writing a .NET GC
  13. 43:58Overcoming GC conflicts
  14. 46:21NativeAOT interoperability limits
  15. 47:03Q&A on NativeAOT
~/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.