Cling
On the way to ROOT 6
Submitted by axel on Sun, 18/11/2012 - 14:09Hi!
We are running late with ROOT 6, in part because I'm just back at work after being sick for 4 weeks. The other cling team members were hacking away at Fermilab, and I'll demonstrate how major that step to version 6 is for ROOT.
Cling integrated in our CI tool
Submitted by vvassilev on Wed, 18/04/2012 - 13:57It'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.
Google, cling and python
Submitted by axel on Sun, 18/03/2012 - 16:40Hi,
A delegation of the ROOT team (Fons, Vassil and I) have been invited by Google Zurich to give a Tech Talk on cling. We had a great night in Zurich. Great nights always have consequences on the next day - but as "talk quality" and "nightlife fun" are in different dimensions there is no obvious measure for optimizing these two; everyone will have his or her own favorite combination of both. Mine meant Aspirin the next morning.
Do we need yet another custom C++ interpreter?
Submitted by axel on Thu, 22/12/2011 - 22:13Hi,
"A ROOT User" asks "Is it really necessary to replace CINT dictionary with cling?", bringing up very reasonable concerns and arguments against re-implementing CINT. I will try to answer his comments to clarify why we do it, and how it connects with the rest.
Dictionaries in CINT and cling
Submitted by axel on Wed, 07/09/2011 - 11:38Hi,
Marcelo asked about how I see the future of dictionaries with cling, if we manage to replace CINT with cling. Given that many people probably don't know what those "dictionaries" really do, I decided to post it! I'll keep it as simple and short as possible.
Requested cling features
There are several features that we were unable to implement in CINT - both for time and design reasons. This is a list of candidates:
cling goes public!
Submitted by axel on Tue, 30/08/2011 - 21:08Hi,
We, the cling team, have announced cling, our C++ interpreter prototype! (note: its SVN repository has changed compared with the announcement email; see the build instructions)
To a large extend thanks to Vassil's impressive commitment, cling now behaves like a good C++ interpreter: it runs C++ code that's entered, and prints the results.
What is Cling
What is Cling
Cling is an interactive C++ interpreter, built on the top of LLVM and Clang libraries. Its advantages over the standard interpreters are that it has command line prompt and uses just-in-time (JIT) compiler for compilation. Many of the developers (e.g. Mono in their project called CSharpRepl) of such kind of software applications name them interactive compilers.
Cling: Implementing Dynamic Scopes with clang
Current Progress
Step 1:
One of the major concerns was: Is it possible to make LLVM and particularly Sema skip the diagnostic errors and build a pseudo-valid abstract syntax tree (AST). Pseudo-valid AST, in the terms of Cling, means that there is an AST which is build successfully but LLVM cannot generate code from it.
Cling: Dynamic Scopes
The Problem
The objects from the current directory (gDirectory) are injected into a magic scope that is available to CINT:
Important constrain: To not break old code we need to continue to support this. Of course the code is invalid C++ and thus cannot be parsed by clang. Upon clang's Sema complaining about undeclared identifiers we need to convert it into proper C++.