<story><title>CoreRT – A .NET Runtime for AOT</title><url>http://www.mattwarren.org/2018/06/07/CoreRT-.NET-Runtime-for-AOT/</url></story><parent_chain></parent_chain><comment><author>MarkSweep</author><text>I think it is really cool how much of the CoreRT is written in C#. Garbage collection and stack frame walking are implemented, but most everything else is C#, including exception dispatch:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dotnet&amp;#x2F;corert&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;src&amp;#x2F;Runtime.Base&amp;#x2F;src&amp;#x2F;System&amp;#x2F;Runtime&amp;#x2F;ExceptionHandling.cs&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dotnet&amp;#x2F;corert&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;src&amp;#x2F;Runtime.Bas...&lt;/a&gt;&lt;p&gt;and type-casting:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dotnet&amp;#x2F;corert&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;src&amp;#x2F;Runtime.Base&amp;#x2F;src&amp;#x2F;System&amp;#x2F;Runtime&amp;#x2F;TypeCast.cs&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dotnet&amp;#x2F;corert&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;src&amp;#x2F;Runtime.Bas...&lt;/a&gt;</text></comment>
<story><title>CoreRT – A .NET Runtime for AOT</title><url>http://www.mattwarren.org/2018/06/07/CoreRT-.NET-Runtime-for-AOT/</url></story><parent_chain></parent_chain><comment><author>mwcampbell</author><text>If the compiler does tree-shaking, I wonder why it takes ~4 MB just to print a message on the console using the standard library. Is there any way to do a more fine-grained breakdown of where all that code is coming from?</text></comment>