### CINT

CINT's directory structure has been re-arranged; the top-most `cint` directory now contains CINT, Reflex, and Cintex. CINT's headers can now alternatively be included as `#include "cint/header.h"`, i.e. from the `cint/` subdirectory. This will become the default location in a coming release.

In view of future changes and because we want to further decouple ROOT from CINT we strongly recommend to not include any CINT headers directly. Instead please use TInterpreter as a virtual interface; it has been updated to satisfy most of ROOT's use cases of CINT. If you still need to include CINT headers directly because functionality is missing from TInterpreter then please let us know!

CINT, Reflex, and Cintex have been ported to GCC 4.3.

- Core.

  Several small fixes, e.g. for the loading of CINT vs. Cintex base dictionaries, and auto-loading of templated classes, CINT's representation of size_t, char* vs. const char* in CINT's C API, function overload resolution involving enums, increase the supported number of loaded shared libraries, remove unused long.dll, don't automatically use `/tmp` directory for temporary files but rely on CINTTMPDIR, TMP, or TEMP environment variables, fix the FreeBSD port, fix treatment of `break` in loops.

  A change in CINT does not trigger a rebuild all of ROOT's dictionaries anymore; they now depend on cintdictversion.h.

  An area of major new development, newly introduced in this version, concerns reduced dictionary sizes. When calling compiled functions, CINT can use the functions' symbols instead of generating function wrappers. The symbol-based call significantly reduces the dictionary sizes; up to 50% are possible. It is implemented in a way that does not affect performance nor memory usage; it even fixes a few long standing issues with CINT's function overload resolution and default parameter resolution. This is an optional feature disabled by default; see the CINT web pages for how to enable it.

  As part of the directory restructuring, CINT's files have been renamed (the "v6_" prefix is removed), its dictionary files are now moved to a new subdirectory of src called "dict", and both CINT5 ( the current default) and CINT7 are available in the main cint/ subdirectory. The previous CINT stand-alone CVS / SVN repositories are now abandoned; CINT stand-alone can be checked out as `svn co http://root.cern.ch/svn/root/trunk/cint`. CINT's stand-alone build system is thus now included in ROOT's cint module.

- Reflex.

  Several fundamental enhancements are available for Reflex. This is a precursor to the API changes already announced for the near future.

  - Allow selection.xml to select or exclude functions and exclude methods based on their prototype using the attributes `proto` and `proto_pattern`. Example: <function proto_pattern="(float*"> will select all functions taking a float as first argument.
  - Reflex types are now residing in the namespace `Reflex`; a `using namespace ROOT::Reflex;` has been added to the namespace Reflex to make the transition more transparent.
  - The class `Reflex::Reflex` has been renamed to `Reflex::Instance`. Its member `Shutdown()` is now protected; simply remove all calls: they are not needed anymore.
  - Several functions now take modifier masks for certain operations, e.g. `Type::IsEquivalentTo()`
  - From Giovanni Petrucciani: speed up gendict considerably (he reports a factor 60) by implementing a cache for e.g. the normalize functions in the python scripts.
  - Fix determination of FinalType()
  - PluginService does not catch exceptions thrown by the plugin's function anymore.
  - Add missing dll exports / visibility declarations.
  - Outline all new / delete operations, so user code does not pick up an incompatible one.
  - `long long` is now supported (and required) as a fundamental type; MSVC <= 7.0 is thus not supported anymore.
- Cintex.
  - Classes declared to CINT via Cintex now have an artificial source file set; fixes problem with CINT expecting a valid source file and Cintex not providing any.
  - Fix auto-loading of Cintex itself.
  - Increase the size of a local table, fixing a problem with long type names.