.NET基金会 宣布了 名为 LLILC (发音为“lilac”)的新项目的发布。该项目最初由微软贡献,致力于为.NET核心(Core)提供新的基于LLVM的原生代码编译器,从而使“在任何CoreCLR能够移植的以及LLVM会支持的平台上”运行.NET程序成为可能。
微软开发基于LLVM的代码生成器所采用的 方法 ,是基于现有的CIL阅读器,“与生产环境中的阅读器( RyuJIT )一样直接针对同样的通用JIT接口进行操作”。该方法被认为优于从现有的以LLVM BitCode为目标的开源项目着手,比如 SharpLang 和 LLVMSharp ,从而能够更好地支持新的CoreCLR接口。
当前,LLILC集中精力于提供JIT编译器,不过这还尚未完成。在Windows上,LLILC现在能够编译CoreCLR中一半的 测试 ,“其余仍然要依靠RyuJIT”。随着在Linux和OS X上的.NET核心的成熟度的提高,LLILC团队计划也为这些平台提供与Windows的实现质量相近的LLILC实现。
在LLILC的路线图上的下一个目标是 安装时(install-time)JIT 编译器,这应当“允许生成的代码可以在应用程序的多次调用间共享,或者在共享一组程序集(assembly)的多个进程间共享”。最后,LLILC项目还将考虑提前(ahead-of-time)编译器的实现。
.NET基金会是微软在2014 Build大会上 成立 的,作为“所有微软已经开源的,以及将来会在开源协议(很可能是Apache 2.0)下发布的所有.NET各部分的保护伞”。
查看英文原文: Microsoft Introduces LLILC, LLVM-based .NET/CoreCLR Compiler
感谢邵思华对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 )。