CINT
This version contains no major new features.
CINT7 has seen considerable speed improvements; only bug fixes were incorporated in the other packages.
CINT5 or 7 can now be configured independently; --enable-cint5 --disable-cint7 is the default.
New web site for ROOT's interpreters and dictionaries and stand-alone CINT as well as Reflex.
- CINT5 and CINT7
- Improve the platform independence of paths.
- Fix the lookup of types nested in classes with default template parameters.
- .Lk macro.C will load the file macro.C only if it is not currently loaded. .L macro.C would unload it and all files that have been loaded later, and then reload it. Also implemented .xk macro.C.
- Fix for recursive loading (e.g. autoloading) of libraries during dictionary initialization.
- Fix parsing of negative values that are larger than int.
- Create the proper short name for templates with templated default arguments: a<b<c>,d=e> was shortened to a<b<c>> instead of a<b<c> >.
- Add missing complex<T> functions (thanks, Daniel Barna!).
- Improve the casting from (free) function pointer to void* in dictionaries using a union.
- Support _attribute_ in the parser (by ignoring it).
- Do not convert path names to lower case anymore.
- Support const static data members with inline initialization: class A{static const int i=42;};
- CINT5
- The include files are moved back from include/cint/ to include/ for backward compatibility reasons. CINT7's headers remain in include/cint7.
- CINT7
- Major improvements in the CPU performance of CINT7; it is now much faster (> factor 5 for interpreting stress.cxx)
- Fixes for const correctness of CINT's code, especially for const char*.
- Added support for autoloading typedefs.
- Fix issue with G__struct being initialized too late.
- Properly identify the library that a dictionary belongs to.
- Fix compiler warnings.
- Fix dictionary for abs().
- Reduce memory usage by reimplementing some internal data structures.
- Reflex
- Full support for ClassDef() macros with the full benefits of faster I/O due to a direct access instead of a search in a map for writing out objects.
- Reimplement UpdateMembers() and PathToBase() in a backward compatible way.
The Member getters now support an enum argument (Reflex::INHERITEDMEMBERS_NO or Reflex::INHERITEDMEMBERS_ALSO) to request only the class's member or also inherited members.
This allows to ignore possible calls to UpdateMembers().
The default value for this argument to the member getters is Reflex::INHERITEDMEMBERS_DEFAULT which will behave like Reflex::INHERITEDMEMBERS_NO until the first call to UpdateMembers().
- Fix visibility of UnionBuilder's symbols (GCC, MSVC)
- Fix for unnamed types in genreflex.
- genreflex got fixed for functions taking arrays or pointers thereof.
- Many and improvements to the test suite, many new tests.
- Further improvements to genreflex support of TObject derived classes / classes implementing the ClassDef macro.
- Complain if a class derives from TObject but does not use ClassDef
- Fix constness and scope of the return type of shadows' final overrider
- FunctionTypeBuilder does not delete existing types anymore.
- For derived types (array, typedef), delay the calculation of SizeOf() until the underlying type is know.
- Added a CMake macro REFLEX_ADD_DICTIONARY for the dictionary creation, to be used by external packages.
- Fix for unsigned long template parameters (A<unsigned long> which GCCXML instantiates as e.g. A<12ul>); fixes an issue with boost::array.
- Added MSVC8 to genreflex's list of supported compilers, fix build for MSVC7.1.
- Remove stray spaces after string in rootmap files.
- Use qualified types for Reflex types instead of using namespace Reflex.
- Allow selection of genreflex classes and their members via a typedef-to-class.
- Implement new genreflex option --gccxmlpost to postprocess a GCC_XML output file with genreflex, useful for debugging.
- Remove dictionaries for PropertyList methods that had been deprecated for years.
- Suppress dictionaries for unnamed enums.
- Satisfy python 2.6.2 and silence its warnings.
- Rename GCC_XML output file to *_gccxmlout.xml, so it is easier to distinguish it from selection.xml file.
- Improve the initialization and shutdown of Reflex; remove the memory leaks due to the reflection containers not beeing cleared at the end of the process.
- Modified the behavior of Reflex dictionary (namely ClassBuilder). Rather than unconditionally erasing existing information, a 2nd ClassBuilder will either add new information or check that it is compatible with the existing information (and throwing an exception in case of problems). To be able to over-ride an existing definition, unload the class before calling ClassBuilder.
- Also create dictionaries for const static data members.
- Cintex
- Follow changes in ROOT's CollectionProxy interface.
- Don't cache Reflex::Member for functions' return types in the stubs; fixes an issue caused by duplicated dictionaries.
- Add dictionary for basic_string<char> for backward compatibility.