We’re working with ROOT v5.20.00 on Fermi(GLAST). We continue to use rootcint (without the reflex option) to generate our dictionaries. What is the status of Reflex? Is there a target date for fully replacing the current reflection system in CINT? I ask, since while we have been working just fine without reflex so far, it would be best to prepare. Is it the general opinion that we should start using Reflex and Cintex? Do we lose anything by going through the Cintex interface or would it be completely invisible to our users?
rootcint will always be supported by ROOT.
While most LHC experiments use Reflex (GCCXML-based) dictionaries, I would not recommend doing that move without a real need. The advantage of a move to GCCXML/genreflex will be that more C++ code can be parsed; CINT’s parser has many limitations. On the other hand the dictionaries are a lot slower and bigger, I/O is slower, and the build takes a lot more time due to the extra gccxml step with a temporary XML file that is then parsed by a python script. Some people even claim that CINT’s limitations forces them to write more readable code
Because your decision will have large affects on your data I/O I really recommend discussing this in a meeting with Philippe and Rene (and possibly me) - not just on this forum.
[quote] Do we lose anything by going through the Cintex interface or would it be completely invisible to our users? [/quote]It should be invisible to your users except that Cintex is a complex, error prone extra layer which introduce (compare to rootcint) extra inefficiencies (and defects); In particular the memory footprint used by the dictionary is then roughly twice (one for Reflex, once for Cint).
So unless you must use features in your code that CINT can not parse (and can not be made to parse), then you should stick with rootcint.
In addition, once the merge of Cint and Reflex is complete (i.e. Cint7 becomes the default Cint version) you will start using Reflex without having to change anything in your makefiles.
Thank you for the details. We have no need to migrate to Reflex, rootcint has been working just fine.