<story><title>Introducing .NET IL Linker</title><url>https://github.com/dotnet/announcements/issues/30</url></story><parent_chain></parent_chain><comment><author>jbevain</author><text>Fun fact, the Mono Linker project started 10 years ago during the second edition of the Google Summer of Code!&lt;p&gt;It was originally used to reshape the entire Mono class library into a subset to expose the Silverlight class library API surface for Moonlight.&lt;p&gt;It was then used to link iOS and Android applications in MonoTouch and Mono for Android, and Xamarin continued to use and improve it.&lt;p&gt;The Mono Linker has an open architecture making it reasonably easy to customize how it processes code , and detect patterns specific to each platform to link them away. Xamarin added linker steps to do more than tree-shaking, and remove dead code inside methods. For instance:&lt;p&gt;&lt;pre&gt;&lt;code&gt;  if (TargetPlatform.Architecture == Architecture.X64) {
    &amp;#x2F;&amp;#x2F; ..
  }
&lt;/code&gt;&lt;/pre&gt;
The entire if body can be removed if the linker knows that TargetPlatform.Architecture will not be X64.&lt;p&gt;And now, it&amp;#x27;s the base for the .NET Core linker. Quite a journey!</text></comment>
<story><title>Introducing .NET IL Linker</title><url>https://github.com/dotnet/announcements/issues/30</url></story><parent_chain></parent_chain><comment><author>blinkingled</author><text>&amp;gt; And, it wouldn&amp;#x27;t be right to announce this linker without a hat tip to Joel Spolsky who we can give the honorary and historical distinction of feature requestor.&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.joelonsoftware.com&amp;#x2F;2004&amp;#x2F;01&amp;#x2F;28&amp;#x2F;please-sir-may-i-have-a-linker&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.joelonsoftware.com&amp;#x2F;2004&amp;#x2F;01&amp;#x2F;28&amp;#x2F;please-sir-may-i-h...&lt;/a&gt; - Joel asked for this in 2004 - Better 13 years late than never!</text></comment>