I'll send cint5.13.96 to CERN with improved STL support in this weekend.
Fons, please expose this version sometime in next week.
Because I've been so busy doing this work, I could not respond to some of
the bug-reports. Please give me time to catch-up.
# Improved STL dummy headers for precompilation
The implementation is still experimental. I appreciate your feedback.
STL dummy header files for precompilation is provided for following platforms
.
Linux2.0 egcs SGI STL implementation
HP-UX10.2 aCC RogueWave STL implementation for HP
WinNT/9x VC++5.0 P.J. Plauger STL implementation
WinNT/9x BC++5.0 RogueWave STL implementation for Borland
Supported containers:
vector<class T,class Allocator=allocator<T> >
list<class T,class Allocator=allocator<T> >
deque<class T,class Allocator=allocator<T> >
map<class Key,class T,class Compare=less<T>,class Allocator=allocator<T> >
string
Can do:
* Precompile source files including above STL containers
* Use above STL containers from the interpreter
* Some simple generic algorithms can be precompiled and/or interpreted
Improvements:
* Default template argument is treated properly.
* iterator_category(iterator) resolution is implemented
* Generic algorithm function without function object can be precompiled wi
th some modification to the dummy headers.
Limitations:
* Many of the generic algorithms does not work still
* Mismatch between interpreted and precompiled STL exists
How to set it up:
* Get cint5.13.96 source package when it is exposed, unpack and install
it as described in README.txt. In the installation process,
lib/dll_stl/setup script will be executed. Important files are
stl/* : STL header files for interpretation
lib/prec_stl/* : STL dummy header files for precompilation
lib/dll_stl/* : Setting up DLLs including some instantiated STL
container classes
demo/makecint/stl/* : Example for precompiling user instantiated STL
containers.
* This is not tested on ROOT yet. In order to do so, you need to
rebuild ROOT with new cint source and copy all files from following
directories.
$CINTSYSDIR/include -> $ROOTSYS/cint/include
$CINTSYSDIR/stl -> $ROOTSYS/cint/stl
$CINTSYSDIR/lib/prec_stl -> $ROOTSYS/cint/lib/prec_stl
# Other improvements
* namespace can be precompiled with bare makecint/cint. Still need some
work for doing so in ROOT. G__ClassInfo::Fullname() added.
* Many bug fixes
# Back-logs
* Several unresolved bug-reports
* Scott Snyder's cint update needs to be merged.
* Dictionary rewinding feature has to be improved for SEGV/BUSERR
* Testing precompiled STL containers on ROOT
* CINT "Can do & Can't do" documentation
Above work will cover most of the issues discussed in the Workshop.
Thank you
Masaharu Goto