Hacker News new | ask | show | jobs
by taspeotis 4086 days ago
I'm surprised it's hosted by the .NET Foundation. I feel the .NET Foundation operates somewhat independently from Microsoft, but there is a large alignment with what Microsoft wants. Using LLVM feels like a departure from some of the things they're working on now.

Some blog posts I have read on the MSDN Developer Tools Blogs suggested Microsoft was already working on their own AOT compiler, this statement seems to suggest LLILC has not been developed for this purpose yet. So it's an independent project?

> Today LLILC is being developed against dotnet/CoreCLR for use as a JIT, but an ahead of time (AOT) compiler is planned for the future

Which doesn't make much sense to me, unless Microsoft is planning on ditching their existing AOT work for LLVM. (Fine by me, LLVM is quite nice.)

3 comments

Having multiple code generators is not mutually exclusive, and this effort does not mean MSFT is ditching any existing AOT (or for that matter JIT) compiler projects.

One of LLILC's major objective is give the community an MSIL frontend for LLVM.

This allows a JIT or an AOT compiler to take any C# program written for the .NET Core class libraries to run on any platform that CoreCLR can be ported to and that LLVM will target.

This seems like it would be an interesting alternative to il2cpp from the Unity folks as a path towards compiling C# code to run on asm.js in the browser.
very interesting :)
> Having multiple code generators is not mutually exclusive, and this effort does not mean MSFT is ditching any existing AOT (or for that matter JIT) compiler projects.

Of course not. But why spread your effort across two projects that duplicate functionality when you could focus on one?

Have a look at the FAQ: https://github.com/dotnet/llilc/wiki/LLILC-FAQ

Q: How does LLILC relate to the .NET Native work? A: .NET Native provides a broad tool-chain, targeting Windows. The LLILC AOT could be used as the compiler component of .NET Native to target other platforms.

Since LLVM can run on Windows, you could also use it as your AOT compiler for multiple platforms (including Windows) once LLILC gets there.

I'm surprised it's hosted by the .NET Foundation. I feel the .NET Foundation operates somewhat independently from Microsoft, but there is a large alignment with what Microsoft wants. Using LLVM feels like a departure from some of the things they're working on now.

Anything regarding coreclr seems to be handled with a goal of being through and through cross-platform.

Because of this tools like cmake, LLVM etc are used instead of Microsoft in-house tools. Because of this, formerly closed-source tools like MSBuild are now being made open-source.

It's a departure from how Microsoft traditionally have done things in the past, but it's perfectly aligned with where the .NET Foundation is currently going.

I've never been surprised at Microsoft attempting to solve the same or similar problem through different channels. They like to have competing projects and see which one evolves and wins... Perhaps that explains it.. Rather than say "No" to something might be the winner.