It is pretty impressive that even without third-party tools, the binary went from 64 MB to ~1 MB. IMO future versions of .NET should add more of such optimisation flags as default in a Release build.
In a similar vein, there's Can you fit a whole game into a QR code? by MattKC, which is limited to about 3 kilobytes (2,953 bytes)
This is really cool, but it's funny to use C# primarily as an awkward substitute for C as you call Win32.
For most practical purposes, the default .NET 8 AOT is great if you really need native code.
Someone with an iPhone told me the webm video embedded in the article still doesn't work on iPhones in 2024 so here's another link to the video: https://twitter.com/MStrehovsky/status/1742101904250060842
"Win32 is the only stable ABI on Linux" ;)
He makes this look easy! Surprising how far you can take things with OOTB .NET.
Very cool. What are the practical implications for this? Would it ever be wise to deploy these techniques for a commercial program? Is the end result more memory efficient during execution?
Michal and the whole CoreRT team saved C# for me, one of the very few people i respect from Microsoft
Sadly the video won’t play on my iPhone
Pretty sure you just joined the demo scene.
I love the low level .NET stuff Michael Strehovsky makes. Microsoft has built a feature-rich and easy-to-use environment, but it makes .NET developers think there is only one way to use it: create csproj and call dotnet build.
But underneath the covers, there is an extremely powerful compiler (Roslyn) and build-system (msbuild). Combine that with the flexibility of C# and you can develop pretty much anything.