# ROOT Version 2.00 Release Notes

    //________________________________________________________________________
    //
    //::>          VERSION  2.00/09   27/06/98 09.23.55
    //
    //
    // 27/06/1998  01.25.52  by  Fons Rademakers
    //
    - Introduction of Makefiles. The makefile system consists of a main,
      machine independent back-end, Make-macros, and several, machine dependent
      front-ends, Makefile.linux, Makefile.linuxegcs, etc. The individual
      file dependencies are stored in Make-depend. To use the makefiles
      create a link called Makefile to the desired front-end:

          cd $ROOTSYS/src
          ln -s Makefile.linux Makefile

      To build the complete system type:

          make distclean; make

      Make must be GNU make (gmake on some platforms). If you have an SMP
      system you can do:

          make -j <n>

      Where <n> is the number of CPU's you want to use in parallel.

      To be able to regenerate the Make-depend file one needs a special
      fixed "makedepend" program (the original "makedepend" does not work
      do to a bug in the handling of C++ comments, //). Source of this fixed
      "makedepend" program is available from ftp://root.cern.ch/root/mkdep.tar.gz.
      After compilation install it in $ROOTSYS/bin. To use it type:

          make depend

      However, the provided Make-depend file is up to date.

      More makefile front-ends for different platforms will be released
      in the coming weeks via the ROOT web site.

    - Changes in a number of installation KUMACS to prepare for Makefiles.

    - TH1 and TF1: fix bug in which wrong object is set for the DrawPanelHist
      and FitPanel if invoked via contextmenu.

    - TSlider: fix in SetRange(), min and max were not updated.

    - TDrawPanelHist, TFitPanel: change cursor to watch when executing a command.

    //
    // 22/06/1998  08.40.19  by  Valery Fine
    //
    - Implement shapes TSPHE and TELTU.
      This has required changes in include files TTUBE

    - Added examples of TSPHE in tutorial shapes.

    - Changes in WinntSystem::ExpandPathName().  Now it

        1. Replaces all "$(" with "%"
           Replaces all ")"  with "%"

        2. Calls WIN32 API to expand all %name%

      This means it may expand  UNIX-like and Windows like environment
      variables.(for example $(rootsys) and %rootsys% too)//

    - Changed TClass::Draw() to draw an array index (like Html does).

    - Changed THtml class to hyperize pointers to arrays as well.

    //
    // 21/06/1998  23.43.46  by  Rene Brun
    //
    - Mods in TTree::MakeCode. The code generated takes into account
      repetitive executions. The Root file is only connected once.

    - New tutorial zdemo illustrating graphs in log scale and annotations.
      Thanks to Michael Tokarev and Elena Potrebenikova (JINR Dubna)

    - Modify TDialogCanvas::Apply to show the cursor watch

    - Modify TCanvas::Update to reset the current cursor to the cross shape.

    - Modify FitPanelGraph to set the Watch cursor.

    - Implement Getters for all geometry classes.

    - Fix clipping for 3-D primitives. Changes are in:
         TPad::PaintLine3D
         TPolyLine3D::PaintPolyLine
         TPolymarker3D::Paintpolymarker

    - Introduce bit mask operations in TTreeFormula. The logic was already
      available in TFormula.

    - Modify TH1::GetObjectInfo to take into account the axis range when
      computing the integral for the histogram. The info reported by
      this function is reported in the canvas event status. When the histogram
      DrawPanel is active, the slider can be used to set the axis range.
      This feature can be used to interactively evaluate the integral of an
      histogram in the range defined by the slider.

    - Fix a bug in TSliderBox in case of vertical sliders.

    - Fix a problem in TBranchClones::Reset. The number of entries and the baskets
      in the branchcount of a TBranchClones were not reset.

    - Merge with Valery's version. Main changes are in macros.
      class TPythia now OK for NT.

    - Include changes from Kris Hagel and Kaori Wada for the VMS version.
    //
    // 10/06/1998  12.46.57  by  Fons Rademakers
    //
    - TKey: before writing and reading an object (via Streamer) we register
      the object in the TBuffer map keeping track of written and read
      objects. This prevents double writing of objects that contain pointer
      to themselves. This mod is completely backward compatible.
      Same change made in TMapFile.
      HOWEVER: NOTE that files written with this version of Root cannot be read
      by old versions of the system.

    - TObject: simplified Clone() and now also handles case of self reference
      more efficiently.

    - TServerSocket: inherits now from TSocket. The main advantage is that a
      server socket can now be monitored by a TMonitor for a connection. Only
      when the monitor returns the server socket (because a connection is
      attempted) we call Accept() which will not block since the connection
      can be established immediately. Usage is demonstrated in the new tutorial
      hserv2.C.
    //________________________________________________________________________
    //
    //::>          VERSION  2.00/08   05/06/98 14.36.25
    //
    //
    // 04/06/1998  15.38.43  by  Rene Brun
    //
    - Several new functions have been introduced in the TTree class.
      TTree::CopyEvents to copy events from a Tree to this tree.
      TTree::CloneTree. The default value for the number of events to copy
      has been changed. By default the new function copy all events.

    - The TTree::SetBranchStatus information is now persistent. The next session
      will remember the branch status. A new function TTree::UpdateActiveBranches
      is automatically called by TTree::Streamer to rebuild the list of
      active branches.

    - Thanks to the above changes and new functions, one can now copy a subset
      of a Tree to a new Tree. The subset can be a subset of all events and/or
      a subset of the branches. Two example macros (CopyTree and CopyTree2)
      have been added to the list of tutorials to illustrate the two cases.

    - Several changes in the TEventList class. A TEventList object is a list
      of TTree event numbers. A TEventList object can now be automatically
      generated by a TTree::Draw (see below). Note that a TEventList object
      is automatically added to the list of objects in the current directory.
      To get this object from the current directory, use:
        TEventList *elist = (TEventList*)gDirectory->Get(list_name);

    - Several changes in TTree::Draw and TTree::Scan to activate TEventList
         Saving the result of Draw to a TEventList
         =========================================
      TTree::Draw can be used to fill a TEventList object (list of event numbers)
      instead of histogramming one variable (say varexp).
      If varexp has the form >>elist , a TEventList object named "elist"
      is created in the current directory. elist will contain the list
      of event numbers satisfying the current selection.
      Example:
        tree.Draw(">>yplus","y>0")
        will create a TEventList object named "yplus" in the current directory.
        In an interactive session, one can type (after TTree::Draw)
           yplus.Print("all")
        to print the list of event numbers in the list.

      By default, the specified event list is reset.
      To continue to append data to an existing list, use "+" in front
      of the list name;
        tree.Draw(">>+yplus","y>0")
          will not reset yplus, but will enter the selected events at the end
          of the existing list.

          Using a TEventList as Input
          ===========================
      Once a TEventList object has been generated, it can be used as input
      for TTree::Draw. Use TTree::SetEventList to set the current event list
      Example:
         TEventList *elist = (TEventList*)gDirectory->Get("yplus");
         tree->SetEventList(elist);
         tree->Draw("py");

      Note: Use tree->SetEventList(0) if you do not want use the list as input.

      With this new functionality in TTree::Draw, the old (unimplemented)
      function TTree::Select has been deleted.

    - New functions TPad::SetTickx, TPad::SetTicky, TPad::GetTickx, TPad::GetTicky.
      SetTickx, SetTicky force tick marks to be drawn on the horizontal, vertical
      outer axis respectively. The TPad class has two new data members, fTickx, fTicky.

    - Protection in TRootIconBox::AddObjItem in case a directory contains
      a key corresponding to an object with a missing class definition.

    - Mods in TChain constructor. By default add a TChainElement with name="*".
      This is necessary for anticipation of a construct like:
         chain->setBranchStatus("*",0);
         chain->SetBranchStatus("bname",1);

    - Merge with Valery version. A few changes in h2root to take into account
      the DEC Fortran way of passing cahracter arguments (NT only).

    - Change TCutG constructor. last two arguments are now optional.

    - Modify TAttAxis::Streamer to take into account the case of old Root files
      generated in October 1996 with version 08/05.

    - Implement new function TFile::GetVersion. This function returns the Root
      version number with which the file was initially created.

    - Changes in TH1::PaintLego. When drawing the axis, one could not change
      the axis title size in case of lego/surface plots.
      (thanks to Rainer Cee for reporting).

    - Due to several problems reported under WindowsNT (for example
      Postscript output was wrong), we have changed the level of optimization
      for C++ from -O2 to -O.

    //
    // 25/05/1998  20.30.26  by  Fons Rademakers
    //

    - Added new tutorials Dialogs.

    - TRegexp added to dictionary (cint_base2).

    - TClonesArray::Expand. Shrinking now OK.

    - In TMapFile: Correction to acquire/release semaphores.

    - In class THtml, functions THtml::WriteHtmlHeader and THtml::WriteHtmlFooter
      are declared virtual functions. This gives the possibility to customize the
      Root Html output.

    - New function TObject::GetIconName. This function can be used to
      dynamically select the icon type shown in the browser.

    - New function TCollection::SetParent.

    - New constructor in TControlBar to control the position of the menu
      on the display. This has implied changes in classes TControlBar,
      TControlBarImp, TGuiFactory.
    //
    // 22/05/1998  12.36.14  by  Fons Rademakers
    //
    - TGTextEntry: text change events now also trigger the calling of the
      registered command (see TGWidget::SetCommand()).

    - TRint: the name and location of the history file (default $HOME/.rootrc)
      can now be specified in the .rootrc file (resource Rint.History).
    //
    // 22/05/1998  10.47.33  by  Rene Brun
    //
    - Implement TProfile::Add, Divide and Multiply functions.

    - Modify TGraphErrors constructor. All arguments except the first
      are now optional.

    - Modify TH1::Scale. This function scales now both contents and errors (if any).
      The new function uses internally TH1::Add, but keeps the original
      number of entries.

    //________________________________________________________________________
    //
    //::>          VERSION  2.00/07   19/05/98 08.15.23
    //
    //
    // 19/05/1998  08.15.23  by  Rene Brun
    //
    - New function TH1::FillRandom(TH1 *hist, Int_t ntimes).
      This function can be used to fill this histogram randomly following
      the distribution in histogram hist. This new function is valid
      for 1-D, 2-D and 3-D histograms.

    - Additions to TStyle. The function TStyle::SetLineStyleString accepts
      line styles in the range 1->29. Only 4 line styles were supported
      by the previous version. The functions TStyle::GetLineStyleString,
      TAttLine::Modify have been modified accordingly.

    - The corrections introduced in 2.00/06 in TH1 functions to include
      underflows and overflows (Add, Multiply, Divide, Integral, FillRandom)
      have generated some side-effects in case of TH2 and TH3 objects.
      New code should work for all TH1 dimensions. (thanks Goetz Gaycken).

    - One more fix in TPostScript::DrawPS function in case of fill area
      styles in the range (3000->3025). Histograms with only first bin filled
      were not correctly printed with PostScript. (thanks again Peter Wienemann ).

    //
    // 18/05/1998  21.28.30  by  Fons Rademakers
    //
    - TGPicturePool: picture cash was not working properly.

    - TGClient: fRoot is now a TGFrame containing correct size of X11
      root window. This is necessary so dialogs can be centered on
      the root window, like:
      new TGFileDialog(gClient->GetRoot(), gClient->GetRoot(), kFDOpen, &fi);

    - TUnixSystem: ExpandPathName was not working properly on AIX.
    //________________________________________________________________________
    //
    //::>          VERSION  2.00/06   15/05/98 11.58.22
    //
    //
    // 15/05/1998  10.06.42  by  Rene Brun
    //
    - Fix a memory leak in TClass::Draw. The memory leak was really apparent
      when processing a large number of classes with THtml::MakeAll.

    - Fix a problem in TBasket::SetWriteMode. When a Tree was filled
      in two consecutive sessions, branches with only one basket in memory
      had a wrong start offset.

    - New function TBasket::SetReadMode. This new function supports
      alternate read/fill operations in a TTree in the same session.

    - Optimize computation of the default X axis range in TGraph::PaintGraph
      in case of log scale.

    - One more tiny fix in TPostScript::DrawPS in case of fill areas
      with the special fill patterns.

    - Changes in TGraph(Int_t n, Float_t *x=0, Float_t *y=0).
      The two last parameters are not optional.
    //
    // 12/05/1998  16.54.18  by   Kaori Wada and Kris Hagel
    //              Cyclotron Institute, Texas A & M University
    //
    - Kaori has ported ROOT and CINT under VMS including full graphics.
      This version is included in the distribution, but a more intensive test
      is necessary before announcing this release.
      Porting on VMS has required changes in:
        - installation procedures ([.] instead of /) in diretory/file names
        - Implementation of the new class TVmsSystem.
        - mods in functions attach, Getline, keys and mvalloc.
        - mods in Rconfig
        - several changes in CINT
            - $FPROTO and $G__CI
            - functions macro, method and shl
       Many thanks to Kaori for this hard work. Kaori has been able to
       make the relevant changes with a minimum guidance from the Root team.
       Many thanks to Kris for his couragous initiative.
    //
    // 12/05/1998  16.11.53  by  Fons Rademakers
    //
    - TMessage: fix bug in case message contains objects of different classes.
      Example: TObjArray containing histograms (thanks Judith Katzy).

    - The file $ROOTSYS/tutorials/.rootrc now shows all supported ROOT
      environment variables.

    - Global gDebug: now int (was bool). When >4 X11 will be in synchronous mode
      which will allow better X11 debugging. gdebug is settable via .rootrc,
      via interpreter symbol gDebug or via debugger. Setting it via the interpreter
      to >4 will not cause synchronous mode because at that stage X11 is already
      initialized.

    - TCanvas: new environment option Canvas.ShowEventStatus. When true
      every canvas will have by default the event status bar shown.

    - Imported latest CINT 5.13.52:
       5.13.52 5 May 1998
       Otofuji-san's feedback,
       -                      , src/Makefile.base.nec fix
       G__OLDIMPLEMENTATION820, inherited virtual flag
       G__OLDIMPLEMENTATION821, p2f resolution bytecode vs compiled in shl.c
       -                      , G__define_var new_name length, f ( LongListOfArg )
    //
    // 07/05/1998  14.04.36  by  Fons Rademakers
    //
    - TGScrollbar: fix in scrolling up when clicking in scrollbar above slider.

    - TGText: new text handling class in preparation for text editor widget.

    - Import of latest CINT 5.13.51:
       5.13.50 25 Apr 1998
       G__OLDIMPLEMENTATION815, tempate<> class numeric_limits<float> { ... };
       G__OLDIMPLEMENTATION816, sizeof( signed char )
       G__OLDIMPLEMENTATION817, f() throw() ;
       G__OLDIMPLEMENTATION818, template<class T*> A { T a; } A<char*> b;
       G__OLDIMPLEMENTATION819, iostream style header with preprocessor

       5.13.51 1 May 1998
       -                      , Array index check changed for STL end() in pcode.c
    //
    // 06/05/1998  20.48.50  by  Rene Brun
    //
    - Changes in TH1::Integral, TH1::Add, TH1::Divide, TH1::Multiply.
      The Overflow bin was not taken into account.
      (thanks Goetz Gaycken ).

    - In h2root, add option "P" in call HROPEN to preserve case
      of file name.

    - Correct comments in TProfile (thanks Ludger Janauschek).

    - Fix a problem in TTree::MakeCode in case of two dimensionnal array with
      a variable size first dimension. The second dimension was not generated
      in the declaration of the branch/leaf type. (Thanks Pasha Murat)

    - Fix a small typo problem in TH1::PaintStat (thanks Mathieu de Naurois)
      The default width of the stats box could not be modified.
      GetStatH was used instead of GetStatW.

    - Include changes from Thomas Hadig in TMinuit::mnplot.
      Thomas fixed several problems with the mixture of TString and char
      inside this function.

    //
    // 25/04/1998  14.30.12  by  Fons Rademakers
    //
    - Port to KAI KCC compiler (changes in several decks). Works except
      for CINT iostream (expect fix from Masa soon) and no support for
      ROOT's new/delete (reported to KAI). Link without ROOT's libNew.so.

    - TGListBox: added multiselection option + speed inprovements in item
      add and delete. New features can be excercised in $ROOTSYS/test/guitest
      (by Reiner Rohlfs).

    - TMap: important fix in TMap::Remove() (reported by Reid Rivenburgh).

    - Import of latest CINT 5.13.49:
       5.13.47 2 Apr 1998
       G__OLDIMPLEMENTATION800, load XXX.dll with XXX.[DLLPOST] in MAKEINFO
       G__OLDIMPLEMENTATION801, reset G__reftype in G__memvar_setup()
       G__OLDIMPLEMENTATION802, #define A 3.14  , A -> 1.1343e-314 bug fix

       5.13.48 11 Apr 1998
       G__STD_NAMESPACE       , ON780 766 676 667, this does not work yet
       Scott Snyder's bug report
       G__OLDIMPLEMENTATION803, typedef foo<const const int> x;
       G__OLDIMPLEMENTATION804, G__library_func() in bytecode, result->ref=0 fix
       G__OLDIMPLEMENTATION805, Array index check changed for STL end()
       G__OLDIMPLEMENTATION806, throw bytecode turn off, segv
       G__OLDIMPLEMENTATION807, reference type global for dictionary generation
       G__OLDIMPLEMENTATION808, Eliminate gets in g__cfunc.c for ROOT

       5.13.49 18 Apr 1998
       G__OLDIMPLEMENTATION809, G__pointer2func recursive call bug fix
       G__OLDIMPLEMENTATION810, G__getexpr() a<b<c>> -> a<b<c> >
       -                      , G__stepmode(1) from interactive session bug fix
       G__OLDIMPLEMENTATION811,
       G__OLDIMPLEMENTATION812, memberfunc template
       G__OLDIMPLEMENTATION813, if(i) return x;  double x;  buf fix
       G__OLDIMPLEMENTATION814, new A(g->f(),g->f()); bug fix
    //
    // 22/04/1998  20.59.13  by  Rene Brun
    //
    - Fix a problem in h2root in case the Hbook ntuple block name include
      blank characters (eg 'BLOCK  0').

    - Fix a problem in TGraph::PaintGraph. In case of a graph drawn with
      the option "F" (Fill area), the last point of the graph was not included
      in the fill area.
    //________________________________________________________________________
    //
    //::>          VERSION  2.00/05   20/04/98 18.52.58
    //
    // 20/04/1998  18.24.39  by  Fons Rademakers
    //
    - The default canvas creation function TCanvas::MakeDefCanvas is now
      registered as soon as the library containing TCanvas is loaded.
      Before this was done in the InitGui routine, which required the initfunc
      arguments of the TROOT ctor to be set. So now only linking with libGPad
      is enough to get batch mode graphics.

    - Class TDatime: new members functions to Set the time. Before the time
      was always the time of the creation of the TDatime object.

    //
    // 17/04/1998  12.04.26  by  Rene Brun
    //
    - Changes in TObject::Dump and TObject::Inspect to show the date/time
      instead of the compacted value stored in TDatime.
    - A small problem fixed in TPostScript::DrawPS. When an histogram
      with only the first channel non-empty was drawn with fill area
      style = 3010, the Postscript ouput had some garbage. This garbage was not
      visible with Postscript viewers like gs or gv or Ghostview. It was only
      visible on the printer. This is in fact a bug in Postcript printers
      when printing some fill areas with special patterns.
      (thanks to Peter Wienemann for submitting a simple example)

    - Correction in  g2root (thanks Federico Carminati).
      g2root routine toreal had a problem with numbers of the sort 3.33E-8 which
      are generated by the HP. In this case the number is written as .000000 by
      the write(s1,'(f14.7)')r. The scan starts after the point and skips
      backward al the 0's. Result nothing is written in the s string and the
      previous number is loaded. This does not happen on linux because numbers
      are written as 0.000 and so on...

    //________________________________________________________________________
    //
    //::>          VERSION  2.00/04   07/04/98 16.02.38
    //
    //
    // 06/04/1998  13.24.50  by  Rene Brun
    //
     - Corrections from Victor Perevoztchikov <perev@mail.phy.ornl.gov>
       to run under SGI IRIX64.
       The changes are in installation macros: globals, sourcedir, selectsystem
        and install_h2root.
       Victor also fixed a problem in CINT/Error.
       Many thanks to Victor.

     - Bug fixed in TChain::SetBranchAddress
         reported by Laurent Aphecetche <aphecetche@ganil.fr>
       The correction implied changes in TChain.h and TChainElement.h.

     - In TDirectory. Added a protection against directory names including
       a slash.
       The logic with the special options "ROOT", "FILE" and "MAP" has been
       removed. The constructors from TFile, TMapFile and TROOT invokes
       the TDirectory default constructor and include the old special logic
       of TDirectory.

     - in TGraph. Clip correctly the graph when the pad range is smaller
       than the TGraph boundaries.

     - in TPaveLabel and TPaveText, optimize the estimation of the length
       of the strings by taking into account the special Postscript escape
       characters.

     - Additional protection introduced in TF1::EvalPar in case one executes
       a function compiled in a previous session, saved in a file,
       read again without providing the original version of the function.
            (thanks Carlos Lacasta)
       TF1 has two new functions TF1::Save and TF1::GetSave.
       TF1::Save is called by functions like TH1::Fit or TGraph::Fit
       to store the function values in an array in case of interpreted or
       compiled functions. This is necessary to display the shape of the function
       in a new session when the original definition of the user-defined function
       is not available anymore.
       When Painting the function, TF1::EvalPar will automatically call TF1::GetSave
       to return the function value from the values saved in a special array
       member of the TF1 class.

    //
    // 06/04/1998  13.24.50  by  Fons Rademakers
    //

     - Support for Linux RedHat version 5 (glibc).

     - A few changes in TGSlider.

     - New version of CINT introduced (5.13.46 )  from Masa Goto.

      5.13.46 1 Apr 1998
      G__OLDIMPLEMENTATION794, #include ".." first try where source code exists
      G__OLDIMPLEMENTATION795, workaround to ON792  T() -> void*() -> (void*)()
      G__OLDIMPLEMENTATION796, void (*p2f[])() = {a,b,c}; bug fix
      G__OLDIMPLEMENTATION797, for(;;) { CLS x=init; } bug fix
      G__OLDIMPLEMENTATION798, for(;;) { CLS& x=init; } bug fix
      G__OLDIMPLEMENTATION799, for(;;) { CLS& x=init; } bug fix bytecode
      -                      , G__check_nonull() G__int(*para) bug fix for SGI
    //________________________________________________________________________
    //
    //::>          VERSION  2.00/03   27/03/98 19.02.24
    //
    //
    // 27/03/1998  18.45.21  by  Fons Rademakers
    //
    - TGListBox: can scroll specified item to top of listbox (by Reiner Rohlfs).

    - TGToolTip: correctly position tooltip when on edge of screen (by R. Rohlfs).

    - TRootCanvas: Menu item SaveAs... now correctly uses specified name.

    - TGFrame: remove some compiler warnings.

    - Front-end program: Logo stays for at least 4 seconds on screen.

    //
    // 27/03/1998  09.13.56  by  Rene Brun
    //
     - Fix a problem in TH1::FillRandom. random numbers were offset by 1 bin.
       (thanks Andrzej Olszewski).

     - New function TH1::SetNormFactor(Float_t factor) to set the histogram
       normalization factor.
     - TH1::GetIntegral renamed to TH1::Integral to be consistent with TF1::Integral.

     - New function THtml::SetEscape(char escape). This function can be used
       to specify a escape character in front of characters "<", ">" and "&".
       The default escape character is backslash. (thanks Valery)

     - in TStyle, the functions TStyle::SetOptFit and TStyle::SetOptStat
       have been moved from inline functions to the implementation file.
       These functions are commented.

     - Protection introduced in TF1::EvalPar in case one executes a function
       created with the interpreter in a previous session, saved in a file,
       read again without providing the original version of the function.

     - Protection in TPad::SaveAs in case the pathname of the output file
       is of the form "../dir/file.ps".

     - in Tree::Branch (TClonesArray case), do not store the branch in the list
       of branches in case the TClonesArray is not split.
       Note that in the current implementation a TClonesArray branch must be split.

    //________________________________________________________________________
    //
    //::>          VERSION  2.00/02   23/03/98 16.23.28
    //
     - New version of CINT (version 5.13.45) introduced.
       This new version fixes a few problems connected with cout/printf.

     - Added ClassDef and ClassImp macros in TMath.h and TStorage.h.
       The documentation for these two classes is now generated.

     - In TFormula::GetParameter: protection in case of an inconsistent
       value of the argument.

     - In TCanvas::SaveSource. The code generated in case gStyle->SetScreenFactor
       was called was incorrect.

     - Cosmetic changes in print in TFitPanel and TFitPanelGraph.
    //________________________________________________________________________
    //
    //::>          VERSION  2.00/01   15/03/98 16.47.52
    //
    //
    // 09/03/1998  15.53.49  by  Rene Brun & Fons Rademakers
    //
    A few problems reported with the new GUI have been corrected:
      - Protection against fonts non available.
      - Library libXpm not available.
      - The front-end program "root" is now linked statically with libXpm.a.
      - Problem on 64 bit Alpha's has been fixed (segv when using contolbars).

    New version of CINT introduced (5.13.44) (Masa Goto)
    *  5.13.43 4 Feb 1998
    *  Scott Snyder's contribution
    *  G__OLDIMPLEMENTATION766, #define DOOM_STD std::
    *  Ulli Schwanke's bug report
    *  G__OLDIMPLEMENTATION767, if(!i%x) bug fix
    *  Valeri Dorofeev's bug report
    *  G__OLDIMPLEMENTATION768, func proto overriding bug fix
    *  ifstream deletion problem fix,
    *  -                      , libstrm.cxx malloc(size) -> new(size)
    *  G__OLDIMPLEMENTATION769, linking undefined class/struct
    *  Scott Snyder's contribution
    *  G__OLDIMPLEMENTATION770, namespace nam{class S; A<A<S> > f; }
    *  G__OLDIMPLEMENTATION771, const
    *  G__OLDIMPLEMENTATION772,
    *  G__OLDIMPLEMENTATION773,
    *  G__OLDIMPLEMENTATION773,
    *  G__OLDIMPLEMENTATION774,
    *  G__OLDIMPLEMENTATION775,
    *  Tetsu Watanabe's feedback
    *  G__OLDIMPLEMENTATION776, Evaluation of array size decl in bytecode compile
    *                          array size decl as local const still causes problem
    *  Scott Snyder's contribution
    *  G__OLDIMPLEMENTATION777, nested template reading and writing to same file
    *  G__OLDIMPLEMENTATION778, G__instantiate_template() tagnamein -> replacetmpl
    *  -                      , +V problem error->warning
    *  G__OLDIMPLEMENTATION779, decl, reference initialization workaround
    *  G__OLDIMPLEMENTATION780, opr.c std::
    *  G__OLDIMPLEMENTATION781, vec<int>a;
    *
    *  5.13.44 1 Mar 1998
    *  -                      , G__search_typename2 exported. bug fix
    *  G__OLDIMPLEMENTATION782, #pragma include   error -> warning
    *  G__OLDIMPLEMENTATION783, makecint -cc & -cint option added
    *  G__VARIABLEFPOS        , record global variable file position
    //________________________________________________________________________
    //
    //::>          VERSION  2.00/00   08/03/98 16.09.16
    //
    Version 2.00 contains the following important new features:

    A - A completely new set of GUI classes
        (http://root.cern.ch/root/html/GUI_Index.html).

        These new GUI classes provide a full OO GUI framework as opposed to
        a simple wrapper around Motif. All GUI elements do their drawing
        via the TGXW abstract base class. Depending on the platfrom
        where you run ROOT the concrete graphics class (inheriting from TGXW)
        is either TGX11 or TGWin32. All GUI widgets are created from
        "first principles", i.e. they only use routines like DrawLine,
        FillRectangle, CopyPixmap, etc. and therefore the TGX11 implementation
        only requires X11 (no more need for Motif, Xt, Xaw, etc.) and the
        Xpm library (for color icons). [The libXpm.so library is distributed
        with the ROOT libraries in the $ROOTSYS/lib directory.]
        Another advantage of this approach is that porting to a new, non
        X11/Win32, platform requires only the implementation of an appropriate
        version of TGXW (and TSystem for the OS interface).

        All GUI classes are now fully scriptable and accessable via the
        interpreter. This allows for fast prototyping of widget layouts.

        The GUI classes are based on the XClass'95 library written
        by Hector Peraza (ftp://mitac11.uia.ac.be/html-test/xclass.html).
        The widgets have the well known Win95 look and feel.

        All components previously using Motif widgets, like, the Canvas,
        Browser, Controlbar, ContextMenu, Method Argument Dialogs, etc.,
        have been rewritten using the new widgets.

        Except for the automatically generated reference manual, the
        documentation of the new GUI is still very sparse. However, to see
        how to implement fairly complex GUI's have a look directly at the
        source of classes like TRootBrowser, TRootCanvas, TRootDialog, etc.
        Also try the test program $ROOTSYS/test/guitest.cxx (make guitest).
        This program excercises most of the widgets.

        [For the time being, under Windows, the old user interface classes
         are still being used.]

        The DrawPanel and FitPanel widgets are not yet using the new GUI.
        Work is in progress to replace these widgets and to add new ones
        exploiting the power of the new classes.

        More details about the new GUI classes can be found at:
        http://root.cern.ch/root/hepvis98/newgui.html

    B - New front-end program that starts the actual interactive program.

        The actual interactive program, executable "root" in version 1.xx,
        is now called "root.exe". This program is started via a little
        front-end program now called "root". From the user's point of view
        nothing has changed in this respect. You still start ROOT by typing
        "root". The advantage of this little front-end program however is
        that it allows the setting of the appropriate LD_LIBRARY_PATH,
        SHLIB_PATH or LIB_PATH variables (depending on the platform).
        That means that the user only has to define a single shell variable,
        ROOTSYS, before using ROOT. Further, since the front-end is very small
        it will start quickly and, in case of an error (in the command
        line arguments or in opening an X server connection), it will give
        feedback directly, without having to wait for the loading of the ROOT
        shared libraries. Which could take some time depending if they had
        to be read from disk or over the network (AFS/NFS). Finally, it is
        this front-end that displays the "splashscreen" while waiting for
        "root.exe" to start. The source for the front-end can be found in
        ROOTX_rootx.cxx and ROOTX_rootxx.cxx (in the source distribution).
        Change the graphics and the module to be executed when you want to
        use this front-end to start your own ROOT based standalone application.

    C - Enhancement of the TTree/TBranch classes.

        On popular demand (especially by people from FermiLab) branches
        of TTree objects can now be stored in separate files. This powerful
        feature allows for very large TTree's and also for the possibility
        of less used branches to be migrated to mass storage (tape, etc.),
        while at the same time keeping the rest of the TTree on disk.

        Further, multidimensional arrays are now properly supported.

    D - New classes THelix and TMarker3DBox.

        These classes are interesting in the context of event displays.

    E - Support for more style parameters.

        More style options can now be managed via the TStyle class.

    F - New tool GH2ROOT to automatically generate C++ classes to read and
        convert Geant3 hits.

        For more information of this powerful migration tool see:
        http://root.cern.ch/root/gh2root.html

    G - Long list of bug fixes, enhancements and new features:

      - All Motif releated classes have been deleted since they have been
        obsoleted by the new GUI classes.

      - Class TRandom: new algorithm similar to the one in Kernlib implemented.

      - Class TFileType has been deleted. The new Browser uses mime types as
        specified in the file $ROOTSYS/icons/root.mimes.

      - Class TCollection: the garbage collection routine was not reentrant.
        This was giving a problem when closing a file in the destructor of
        another file. This happens in the new Tree/Branch facility when
        branches of a Tree reside on different files.

      - Class TAttAxis: new data member fTitleSize and corresponding getter/setter.
        The axis title size can be modified via the axis context menu.

      - Class TGaxis: implement the new option supporting the title size.

      - Class TAxis: a bug has been fixed in TAxis::Streamer. In case a sub-range
        was set on the axis, the range was not correctly saved.

      - Class TF1: new function TF1::Derivative() to compute the derivative of
        a function at one point.

      - Class TLego: support for log scales on x,y,z axis.

      - Class TMarker: fix a memory leak in function DisplayMarkerTypes().
        The local marker object and text object were not deleted when closing
        the canvas showing the marker types.

      - Class TPaveLabel: support for changing text alignment added.

      - Class TPaveText: support for changing text alignment added.

      - Class TPolyLine: function GetPolyLine() had an incorrect parameter type.

      - Class TPolyMarker: function GetPolyMarker had an incorrect parameter type.

      - Class TStyle: new data members fCanvasDefH and fCanvasDefW + corresponding
        getters/setters. SetCanvasDefH,W can be used to define the default canvas
        size. In addition, several parameters defined in a style are now taken
        into account in several classes, like TH1, TCanvas and TGraph.

      - Class TText: new function SetNDC.
        By default, the text is drawn in the pad coordinates system.
        One can draw in NDC coordinates [0,1] if the function SetNDC()
        is called for a TText object.

      - Class TCanvas: the default canvas constructor uses the size of the canvas
        as defined by the current style (TStyle::SetCanvasDefH()).
        The bottom, top, left and right margin defined in TStyle::SetBottomMargin,
        etc. are active in creating the default pad in a canvas.

      - Class THelix: new class implemented by Ping Yeh from the AMS collaboration.

      - Class TMarker3DBox: new class, a special 3-D marker designed for event
        display. It has the following parameters:
          fX;               X coordinate of the center of the box
          fY;               Y coordinate of the center of the box
          fZ;               Z coordinate of the center of the box
          fDx;              half length in X
          fDy;              half length in Y
          fDz;              half length in Z
          fTheta;           Angle of box z axis with respect to main Z axis
          fPhi;             Angle of box x axis with respect to main Xaxis
          fRefObject;       A reference to an object

      - Class TTube: implement member function SetNumberOfDivisions().

      - Class TH1: in TH1::Fit() and H1FitChisquare(). In case a fit range was
        specified, the function was using the overflow bin. The chisquare value
        was strongly dependent on the content of this bin.
        When drawing the axis titles, the label font and axis title size are used
        in the temporary TGaxis object.
        In TH1::PaintScatterPlot(), a protection has been introduced to avoid
        plotting a too large number of dots in one cell.

      - Classes TH1C, TH1S: implement functions AddBinContent(). This function
        is a redefinition of TH1::AddBinContent(). A bin content is not
        incremented when the new bin value is bigger than the bin capacity (to
        avoid negative bin contents).

      - Class TBasket: in function SetWriteMode(), do not create the array of
        event offsets. Support introduced for branches residing on different files.

      - Class TBranch: new function SetFile(), see below:

         void TBranch::SetFile(const char *fname)

        Set file where this branch writes/reads its buffers.
        By default the branch buffers reside in the file where the Tree was
        created. Branches of the same Tree may be in different files.
        The ROOT file will be connected only when the branch is accessed.
        If called by TBranch::Fill() (via TBasket::WriteFile()), the file
        will be created with the option "recreate".
        If called by TBranch::GetEvent() (via TBranch::GetBasket()), the file
        will be open in read-only mode. To open a file in "update" mode,
        explicitely use TBranch::SetFile(TFile *file).

      - Class TBranchObject: reimplement function SetBasketSize().

      - Class TChain: memory leak problem solved. When deletting a chain, the
        files and Trees referenced by the chain were not deleted.

      - Class TLeaf: modify function GetLeafCounter() to support the case of
        multidimensional arrays. Previous version was limited to 2 dimensions.
        Reimplement function ResetAddress(). In case of a function generated by
        TTree::MakeCode(), the leaf addresses for 2-d arrays were not correctly
        set. Similar changes in subclasses TLeafB, TLeafC, TLeafD, TLeafF,
        TLeafI and TLeafS.

      - Class TTree: support for branches residing in different files introduced.
        By default a branch is stored in the same file as where the Tree has
        been created. One can use TBranch::SetFile() to specify the name of a
        file where a branch should be written.
        Writing a branch to a different file is interesting in case one plans
        to write huge Trees that cannot fit completly on disk. In that case,
        it migth be advantagous to write some branches on separate disk files
        that can then be stored on tape.
        Using a Tree that references branches that are stored on separate
        files, the branch files will be automatically opened only when
        the branch is accessed.

      - The format of TTree::Print() and TBranch::Print() is more economical,
        only 2 lines per branch are printed. Each line is <72 characters.

      - Class TTreeFormula: changes to support multidimensional arrays.

      - Class TPostscript: one can now generate an EPS file from a single pad.
        In previous versions, one could only print a complete canvas.

      - ZIP package: global functions and variables have R__ prepended to avoid
        conflict with other packages (XDR in particular).

      - The source has been cleaned, removing unused variables. Code compiles
        under the KAI compiler.

      - In Tutorials, new tutorials dirs.C and gerrors2.C

      - Conversion program h2root. A few protections added.