LILAC is a Language to language Interoperability LAyer Compiler - with a goal that producing bindings across languages.
Interoperability across languages always sucks developers... (Especially, For managed languages such as Java, C#, Python)
For example, between C++ and C#:
- C++/CLI couldn't support modern C++ well
- In addition, C++/CLI doesn't support GNU/Linux
- P/Invoke couldn't support C++ well because of name mangling etc.
But, with power of LLVM, we hope that LILAC will generate bindings between C++ and C# ...or what else! (Actually, For the languages not supporting LLVM, We need to implement frontend for each languages)
Let's break down language barrier!
Language | Backend | Frontend |
---|---|---|
C++ | ! | O |
C# | O | ! |
- O : Implemented.
- ? : Not implemented, but planned.
- ! : Work in Progress
Component | Tested on | Misc. |
---|---|---|
LLVM/Clang | LLVM 20 |
Component | Tested on | Misc. |
---|---|---|
LLVM/Clang | LLVM 20 | |
.NET | .NET 8 | Only C# frontend |