Cint7 Status

Dear friends, supporters and early adopters of Cint[7],

First let us thank you for your support, your patience and your help
while we were developing and testing our tentative merge of Cint and
Reflex (code named Cint 7).

After analyzing the results of our integration tests, we came to the
conclusion that Cint 7 would not provide any immediate and visible
gain in performance or memory use while also not helping us achieve any
the benefits we were aiming for to improve Cint for the LHC experiments;
Cint 7 was also not yet to the point of being able to improve on any of
the Cint 5 deficiencies or on the lack of support for the upcoming
C++ standard. Hence we decided to no longer pursue this direction.

As an alternative we started investigating LLVM, a
cutting edge popular open source compiler project that is already used
in commercial environments. Apple is currently supporting the main
developers and relying on LLVM for Mac OS 10.6 and above. Its
strengths include binary platform compatibility, a C++ API, large number
of optimizer, and a just-in-time compiler, amongst others; these
strengths makes it an ideal candidate for building upon to develop a new
interpreter. The LLVM team is currently implementing a promising C/C++
and Objective C/C++ front end (Clang) which can already parse more than
95% of the ROOT header files.

After working with the LLVM and Clang team for a while, we are confident
that they will deliver a very good C++ compiler. We believe that we can
re-use large parts of it to produce a production-grade interpreter with
C++ API, leveraging the large LLVM developer community. Thanks to LLVM,
this future interpreter would offer better and faster parsing and
execution (for both the dictionary generation and the interpretation).
We are currently exploring the implementation of the interpreter and
reflection database based on LLVM with an early prototype, code named
Cling. Amongst other things, it demonstrate the usability of LLVM’s
just-in-time compiler.

You can see more details on the Cint7 conclusion as well as LLVM and Cling in Axel’s presentation.

We hope that you can understand our decision, and that you will continue
to support us, be it with CINT or Cling.

Cheers,
The CINT Team.