Компания Microsoft представила новый компилятор LLILC, основанный на наработках проекта LLVM, работающий в сочетании с .NET Core Runtime (CoreCLR) и предназначенный для сборки .NET-приложений на языке C#. Код компилятора написан на языке С++ и распространяется под лицензией MIT.

Использование LLVM даёт возможность применять компилятор для любой поддерживаемой в LLVM платформы, благодаря трансляции байткода MSIL в платформонезависимый формат LLVM. В настоящее время предоставлена возможность применения LLILC в качестве JIT-компилятора, альтернативного штатному CoreCLR JIT. JIT на базе LLILC позволяет без создания отдельных сборок организовать запуск любых C#-программ, использующих классы .NET Core, на всех платформах, для которых портирован runtime CoreCLR. Полноценная работа пока возможна только в Windows, а поддержка Linux и OS X находится на начальной стадии.

В будущем ожидается появление поддержки классической AOT-компиляции (Ahead-of-time), которая позволит как генерировать обычные исполняемые файлы, так и обеспечивать упреждающую сборку на начальной стадии запуска программы. Кроме того, разработчики LLILC намерены заняться работой по улучшению поддержки языка C# в основной кодовой базе LLVM. В частности, в LLVM планируется заняться реализацией специфичных для C# оптимизаций, модернизировать сборщик мусора и улучшить обработку исключений.



Источник: http://www.opennet.ru/opennews/art.shtml?num=42035