Cling integrated in our CI tool

It's been a while since the last activity on our blog. However, it doesn't mean that we are not spending every minute to work on improving the ROOT Framework.

We talk a lot about Cling these days not only because it will be important part of ROOT 6, but because we are very excited and proud of what we are doing. To be honest that's my first interpreter I develop. I had worked on simple compilers and currently I am involved (in my free time) in a .NET decompiler tool chain (don't tell Fons!!! :)). I have to admit that nothing is more fun than working on what we classify as interpreter. I call it interactive-compiler interface since Cling is just the handle of a huge iron gate to leading to the core of clang.

Maybe I should dedicate a couple of other posts on what are the exciting parts in making a C++ compiler behave like an interpreter. What I wanted to share was of course different. I always get distracted...

As most of you maybe know Cling has been in ROOT's trunk since a while. However, we still think that Cling should be able to integrate as a tool in LLVM's tool chain. The reason is we want to have Cling standalone for ROOT-independent use. This means we have two build systems and a lot of well-hidden by make details.

There are many user complains about Cling being not in sync with LLVM's and Clang's mainlines. Finally we have had a week to tackle this problem. Thanks to Axel's expertise in Electric Commander (our continuous integration tool) Cling is a part of the continuous integration done here! We even have our source releases built every night here!

We don't announce it too loudly but we have cling as a library (aka libCling). Those of you who use or are going to use libCling: the documentation of that library is regenerated every night as well and could be found here