[ Home | Contents | Search | Post | Reply | Next | Previous | Up ]


Fwd: ROOT version 2.23/04 is now available (lhcb-comp)

From: r36@nikhef.nl
Date: 10/18/99
Time: 7:21:29 PM
Remote Name: 137.138.115.156

Comments

Hi,
A new version of ROOT is released. It seems a lot of effort has been put
in making the various parts more modulair, i.e. less dependencies between
libraries etc.. (e.g. not needed to 'load/link' graphics if not needed..)
The none-modularity of ROOT was always an important argument/reason to
avoid incorporating ROOT within the OO developments around the Gaudi
project. As ROOT is claimed to be more modulair I would find it worth
while to discuss and reconsider the use of parts of ROOT.
I included the release announcement for those intrested.
with regards,
Rutger van der Eijk.
> Subject: 
>               ROOT version 2.23/04 is now available
>         Date: 
>               14 Oct 1999 11:12:41 +0200
>         From: 
>               Rene Brun <Rene.Brun@cern.ch>
>  Organization: 
>               CERN
>   Newsgroups: 
>               cern.root
> 
> 
> 
> 
> Dear Rooters,
> 
>   the first stable development version of Root 2.23/04 is now available.
> Please read very carefully the following points. This new version
> has an important internal restructuring of the Root libraries.
> There are also many new features introduced with this version.
> We are asking your contribution to test this new version and give us
> feedback.
> 
> Binaries are available under AFS. New platforms are supported.
> See the list at http://root.cern.ch/root/Availability.html
> 
> 
> Rene & Fons 
> 
> 
> 
>   NEW LIBRARY STRUCTURE
>   =====================
> 
>   We have minimized libraries dependencies by:
>     - moving classes to other categories (i.e. shared libraries)
>     - introducing new abstract interfaces
>     - removing unnecessary includes in the implementation files
>     - calling classes via the interpreter when performance is not an
> issue
>     - some minimal changes in several classes
> 
>   With the new structure, for example:
>     - a program referencing only TObject will need to link the following
>       libraries only (the Root kernel): libCore and libCint.
>       This "kernel" includes the Root I/O. There are no references
>       to graphics, GUI, etc.
>     - a batch program creating/filling/saving histograms and a Tree will
> only 
>       need the kernel above (libCore, libCint) + the libHist and libTree 
>       libraries. 
> 
>   The following picture shows all the Root libraries and their
> dependencies.
>   All non-Core libs reference the Core library.
>   Libs shown in green are dynamically loaded by the system when needed.
> 
>            http://root.cern.ch/root/html/gif/Root_Libs.gif
> 
> 
>   Some new abstract interfaces have been introduced and some changes
> (renaming)
>   have been made in the existing abstract interfaces.
> 
>            http://root.cern.ch/root/html/gif/Root_Virtual.gif
> 
>   -TVirtualPad: abstract interface to graphics in a pad,
>                 real implementation is TPad.
>                 The new TVirtualPad does not derive anymore from TWbox
> but
>                 directly from TObject.
>   -TVirtualX:   abstract interface to the basic windowing system (was
> TGXW)
>                 real implementations are TGX11 (Unix) or TGWin32
> (Windows/NT)
>   -TVirtualPS:  abstract interface to Postscript,
>                 real implementation is TPostScript.
>   -TVirtualGL:  abstract interface to Open GL,
>                 real implementation is TGLKernel.
>   -TVirtualFitter: abstract interface to a minimisation package,
>                 real implementation is TFitter calling TMinuit.
>   -TVirtualHistPainter: abstract interface to histogram graphics,
>                 real implementation is THistPainter.
>   -TVirtualTreePlayer: abstract interface to the TTree analyzer,
>                 real implementation is TTreePlayer.
>   -TInterpreter: abstract interface to a C++ interpreter,
>                 real implementation is TCint.
>   -TSystem:     abstract interface to the operating system,
>                 real implementations are TUnixSystem, TWinNTSystem,
> TVMSSystem.
> 
>   The abstract classes are in the Core library.
> 
>   These new abstract interfaces increase dramatically the overall
> modularity
>   of the Root system. For example:
>    - One can now easily implement an alternative to the standard Root
> classes,
>      by deriving from one of the abstract interfaces.
>    - The linker knows only about the abstract base classes. For example,
>      TObject::Draw references only the TVirtualPad. There is no need 
>      to link with the graphics libraries if graphics is not used.
> 
>   Due to these changes the interactive Root module (root.exe) is now
>   only explicitely linked against a few libraries (to see this do on
>   linux: ldd $ROOTSYS/bin/root.exe). There is even no need anymore to 
>   explicitely link against X11 libraries (even for you own apps).
>   During the execution only the needed libs will be loaded, e.g. if you
>   don't fit during your Root session you will never load the Minuit
>   library or if you run in batch mode (-b option) you will not load any
>   graphics libs.
> 
> 
>   IMPORTANT NEW FEATURES
>   ======================
> 
>   - New version of CINT with new features.
>   - Important changes in class TClassTree.
>     See TClassTree header for a complete documentation.
>     The new version of this class is more poweful and simple to use.
>     All kinds of class dependencies can be drawn.
>   - Integrate changes in the THREAD package by Joern Adamczewski, Hans
> Essel,
>     Marc Hemberger. See their report in the notes.
>   - Important improvements in the TLatex class. 
>   - Classes TPaveLabel and TPaveText use TLatex instead of TText.
>   - The graphics editor option Text uses TLatex instead of TText.
>   - Histogram titles and axis titles accept a TLatex expression.
>   - InitGui() graphics initialization function not needed anymore.
>   - CVS repository created. The latest sources can now be retrieved from
>     our anonymous CVS repository. However, it is still needed that you
>     start with a valid binary distribution, to where $ROOTSYS must point
>     (the binary version only has to be installed once). 
> 
> 
>   BACKWARD INCOMPATIBILITIES
>   ==========================
>  
>   - Users having classes referencing the old TGXW class must replace
> TGXW
>     by TVirtualX and the corresponding global pointer gGXW by gVirtualX.
>   - The global pointer gCurrentPS has been renamed gVirtualPS.
>   - The global pointer gGLKernel has been renamed gVirtualGL.
>   - The methods TObject::Is3D and TObject::Sizeof3D have been removed.
>   - New class TAtt3D: use this class via multiple inheritance
>     to get 3D capability (like the other TAttxxx classes and like
>     Java's interface mechanism). The virtual function, Sizeof3D(),
>     provided by this class should be overridden. See release notes
>     for more info about TAtt3D.
>   - The libraries libBase, libCont, libMeta, libClib, libUnix/libWinNT
>     and libZip are merged into one single library libCore.
>   - To be insulated in the future against any library changes try to use
>     as much as possible the provided script $ROOTSYS/bin/root-config.
> For
>     its use see $ROOTSYS/test/Makefile.
> 
> 
>   LINKING parameters
>   ==================
> 
>   - To be insulated against any library changes and to get the proper
>     list of Root libraries to link with use the provided script
>     $ROOTSYS/bin/root-config. For its use see $ROOTSYS/test/Makefile.
>   - X11 dependence is now completely contained in libGX11. No need to
> link
>     anymore an application explicitely with -lXpm and -lX11. Dynamically
>     loading of libGX11 will also force the loading of libXpm and libX11.
> 
> 
>   IBM AIX
>   =======
> 
>   Thanks to this restructuring, we are now able to provide the same 
>   structure on AIX as on the other Unix platforms.
>   The old and big library libRoot.a has been split into several libs.
>   See above remark about root-config to list the libs under AIX.
> 
>   A complete list of all changes and improvements, bug fixes, etc. can
>   be found in the Release notes for version 2.23/04 at URL:
>          http://root.cern.ch/root/Version223.html