Cling C++ Interpreter Looking To Upstream More Code Into LLVM
Not to be confused with Clang as the well known C/C++ compiler front-end for the LLVM compiler, Cling is a separate project as an interactive, JIT-based C++ interpreter. Cling has been in development for years and at least partially is looking to upstream where possible back into LLVM.
Cling has been years in the making as a C++ interpreter and serving other interesting LLVM-based use-cases like JIT'ing NVIDIA CUDA code. Now though to help foster its development and making use of a recent grant, the developers behind Cling are looking to upstream the code where possible.
Vassil Vassilev commented of Cling's already existing successes and future plans, "Cling is also a standalone tool, which has a growing community outside of our field. Cling’s user community includes users in finance, biology and in a few companies with proprietary software...Last year we were awarded an NSF grant to improve cling's sustainability and make it a standalone tool...The project foresees three main directions -- move parts of cling upstream along with the clang and llvm features that enable them; extend and generalize the language interoperability layer around cling; and extend and generalize the OpenCL/CUDA support in cling. We are at the early stages of the project and this email intends to be an RFC for the first part -- upstreaming parts of cling."
Cling has worked towards upstreaming patches where possible in the past but there are still around 100 patches in their Clang fork. Cling developers are hoping to get more of that code into better shape for upstreaming, extending/generalizing the language interoperability layer around Cling, and extending/generalizing the OpenCL/CUDA support in Cling.
More details on Cling's upstream hopes and ensuing discussion around this effort can be found on the LLVM mailing list.