"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "root/README/ChangeLog-2-24" of archive root_v5.20.00.win32gcc.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 //________________________________________________________________________
    2 //
    3 //::>          VERSION  2.24/05   16/05/2000 16.07.27
    4 //
    5 //
    6 // 16/05/2000  16.03.14  by  Rene Brun
    7 //
    8 - This version should be the last version maintained with CMZ.
    9   Next version will be maintained by CVS.
   10 
   11 - Modify TF1::IntegralMultiple. The maximum number of points maxpts
   12   has been increased to improve the result. Thanks Regis Terrier.
   13 //
   14 // 16/05/2000  12.04.12  by  Fons Rademakers
   15 //
   16 - THtml: fix in way pathnames of source files are found. If pathname
   17   contains a path (i.e. / (or \ on win32)) then after prepending a
   18   source dir prefix this file is looked for. If not found the path
   19   is stripped off and the source search path is used (old behaviour).
   20 //
   21 // 16/05/2000  11.58.00  by  Masaharu Goto
   22 //
   23 * 5.14.38 5 May 2000
   24 *-1306, ctor call for class object as static data member, t377.cxx, t380.cxx
   25 * 1307, global namespace, using directive and function call, t382.h/cxx
   26 * 1308, pointer to reference conversion bug fix, t383.cxx
   27 * 1309, #pragma link C++ function A::B(); t384.h
   28 * 1310, f(int (**)()); t385.h
   29 * 1311, namespace{class{enum{}}} bug fix, t386.h
   30 * 1312, N::A a; N::f(a); f(a); 3.4.2, t387.cxx, review needed
   31 * 1313, #pragma link C++ function A::B(); with function template, t384.h
   32 * 1314, Assume CINTSYSDIR from GetModuleFileName(),Win32
   33 //
   34 // 15/05/2000  23.20.31  by  Rene Brun
   35 //
   36 - Add a new parameter nentries to TChain::Add
   37       void TChain::Add(const char *name, Int_t nentries=-1)
   38   if nentries < 0, the file is connected and the tree header read in memory
   39   to get the number of entries.
   40   if (nentries >= 0, the file is not connected, nentries is assumed to be
   41   the number of entries in the file. In this case, no check is made that
   42   the file exists and the Tree existing in the file. This second mode
   43   is interesting in case the number of entries in the file is already stored
   44   in a run data base for example.
   45 
   46 - Add a new branch constructor to TTree:
   47      Int_t Branch(TList *list, Int_t bufsize=32000);
   48    This new function creates one branch for each element in the list.
   49    Two cases are supported:
   50       list[i] is a TObject*: a TBranchObject is created with a branch name
   51                              being the name of the object.
   52       list[i] is a TClonesArray*: A TBranchClones is created.
   53       if list[i]->TestBit(TClonesArray::kNoSplit) is 1, the TClonesArray
   54       is not split.
   55       if list[i]->TestBit(TClonesArray::kForgetBits) is 1 and the TClonesArray
   56       is split, then no branches are created for the fBits and fUniqueID
   57       of the TObject part of the class referenced by the TClonesArray.
   58    The function returns the total number of branches created.
   59 
   60 - Add a new member function in class TObjLink.
   61    TObject **GetObjectRef()
   62    The function returns the address of the object referenced by TObjLink.
   63    This new function was necessary for the implementation of the new TTree::Branch
   64    constructor described above.
   65 
   66 - Modify TBranchClones constructor to add a new parameter splitlevel.
   67   Modify TTree::Branch for TClonesArray to not create branches for the TObject
   68   part (fBits and fUniqueID) if the splitlevel is > 1.
   69 
   70 - Add new enum list in TClonesArray.h. The following options are defined:
   71    enum {
   72       kForgetBits    = BIT(0),    // Do not create branches for fBits, fUniqueID
   73       kNoSplit       = BIT(1)     // array not split by TTree::Branch
   74    };
   75 
   76 - A few changes from Damir Buskulic and Jiri Masik for Linuxppc in
   77   rootd, root daemon, proofd and Makefile.linuxdeb2.
   78 
   79 - Extend kMAXFOUND from 50 to 200 in TFormula.
   80   The previous value of 50 was a bit short when TFormula is used by TTreeFormula
   81   and many cuts are defined.
   82 
   83 - Modify TTreePlayer::MakeClass to change the name of the variable for the loop
   84   index from j to jentry.
   85 
   86 - Merge with Fons and Valery's versions
   87 //
   88 // 13/05/2000  18.56.36  by  Rene Brun
   89 //
   90 - Mods in TTreePlayer::MakeCode when generating the pointer name in case
   91   of a TBranchObject.
   92 //
   93 // 11/05/2000  16.11.27  by  Fons Rademakers
   94 //
   95 - TBranch: fEntryBuffer was not initialized.
   96 
   97 - vvector: corrected a test case.
   98 //
   99 // 11/05/2000  07.20.41  by  Rene Brun
  100 //
  101 - protection added in TBranchClones constructor in case the Tree is created
  102   in memory (no file open) (thanks Gene Van Buren).
  103 
  104 - Merge with Valery's version of May10.
  105 
  106 - Add two fixes reported by Masa in CINT_Infunc.
  107 
  108 - Add minor changes reported by Damir Buskiluc when compiling with gcc 2.05
  109   under ppcLinux.
  110 
  111 - fix some problems with strings (backslask escaping ") in some strings
  112   in tutorials Ifit and Shared.
  113 //
  114 // 09/05/2000  19.40.35  by  Fons Rademakers
  115 //
  116 - tutorials/rootalias.C: use gSystem->GetName() to distinguish
  117   between unix and win32 (instead of cmz +IF conditionals).
  118 //
  119 // 08/05/2000  19.40.35  by  Fons Rademakers
  120 //
  121 - TGMimeTypes: fixed win32 case.
  122 
  123 - TFormula: introduced #pragma for win32 case.
  124 
  125 - TTUBE, TTUBS: #ifdef's cleaned up.
  126 //
  127 // 07/05/2000  17.11.56  by  Fons Rademakers
  128 //
  129 - New abstract class TInspectorImp. This interface class is used
  130   via the TGuiFactories to create and object inspector window. Currently
  131   this is only used for the Win32 implementation (the X11 version uses
  132   a normal TCanvas). The introduction was needed to remove the last
  133   Win32 graphics dependency from TWinNTSystem (to be able to build
  134   libCore.dll seperately from libWin32.dll). For the introduction of this
  135   class changes were made in: TObject, TSystem, TWinNTSystem, TGuiFactory,
  136   and TWin32GuiFactory.
  137 
  138 - rootcint: fix for Win32.
  139 
  140 - TGToolTip: corrected comments.
  141 
  142 //________________________________________________________________________
  143 //
  144 //::>          VERSION  2.24/04   05/05/2000 14.08.29
  145 //
  146 //
  147 // 05/05/2000  12.58.00  by  Masaharu Goto
  148 //
  149 * 5.14.36 9 Apr 2000
  150 * -   , minor fix in VC++ and BC++ setup
  151 * -   , turned on G__CONSTNESSFLAG
  152 * 1293, bug fix to 1290, risk3, t364.cxx
  153 * 1294, SetGlobalcomp() changed by Philippe Canal
  154 * -   , G__STRUCTPVAR -> divided as 1.2 due to size reason
  155 * -   , ifunc.c C++ comment error
  156 * 1295, G__free_friendtag() problem only with rootcint,,
  157 * 1296, static member in nested class, t370.cxx, risk3
  158 * 1297, nested ClassDef,
  159 * 1298, ImplFileLine support
  160 *
  161 * 5.14.37 29 Apr 2000
  162 * 1299, overload matching for pointer to function, t373.cxx
  163 * 1300, Check $LINES, $COLUMNS for G__more_pause(), risk1
  164 * 1301, Bug fix for PHIL0, null fp, t372.h, risk3
  165 * -   , DataMbr.h/cxx, errno -> errnum fix
  166 * 1302, 1290 bug fix, infinit loop, t376.cxx
  167 * 1303, bug fix from Philippe Canal,
  168 * 1304, workaround for Philippe's problem, bad3.cxx, t377.cxx
  169 * 1305, Win32, ifstream::open(), t375.cxx, bug fix
  170 //
  171 // 05/05/2000  09.42.44  by  Rene Brun
  172 //
  173 - Implement support for operator "*" in TCut. File Tree_LinkDef modified.
  174   Examples of use:
  175      Root > TCut c1 = "x<1"
  176      Root > TCut c2 = "y<0"
  177      Root > TCut c3 = c1&&c2
  178      Root > ntuple.Draw("x", c1)
  179      Root > ntuple.Draw("x", c1||"x>0")
  180      Root > ntuple.Draw("x", c1&&c2)
  181      Root > ntuple.Draw("x", "(x+y)"*(c1&&c2))
  182 
  183 //________________________________________________________________________
  184 //
  185 //::>          VERSION  2.24/03   04/05/2000 08.40.02
  186 //
  187 //
  188 // 04/05/2000  8.48.59  by  Rene Brun
  189 //
  190 - minor typos fixed.
  191 
  192 - Rename global functions H() to R__H().
  193 //
  194 // 03/05/2000  08.13.47  by  Rene Brun
  195 //
  196 - Import latest version from Fons and implement a few changes from Philippe
  197 in BASE_System and CINT_loadfile.
  198 
  199 //
  200 // 03/05/2000  01.35.47  by  Philippe Canal
  201 //
  202 
  203 - Addition of a new option for TSystem::CompileMacro and Change in
  204   Semantic of the '+' and '++' options for .L, .x and .X.
  205 
  206   Both .L MyFunc.C++ and .L MyFunc.C+ now keep the shared library at the
  207   end of the ROOT session.
  208   If the shared library already exist, .L MyFunc.C+ will only recompile it
  209   if the macro file is newer than the shared library.  However it does not
  210   detect whether any of the files included by the macro has been changed
  211   more recently than the shared library.
  212 
  213   .L MyFunc.C++ always recompiles the shared library.
  214 
  215   TSystem::CompileMacro(const char *filename, Option_t * opt)
  216   The second argument can now be any combination of the letter 'k' and 'f'
  217   with the following meaning:
  218 
  219      k : keep the shared library after the session end.
  220      f : force recompilation.
  221 //
  222 // 02/05/2000  19.15.59  by  Rene Brun
  223 //
  224 - Merge with latest versions from Philippe and valery.
  225 //
  226 // 02/05/2000  19.01.23  by  Philippe Canal
  227 //
  228 - The macro ClassDef and ClassImp have been upgraded to be able to handle
  229   classes inside namespaces and to handle nested classes (classes defined
  230   inside other classes).
  231 
  232   In order to use this upgrade, you just have to enclose your class inside
  233   a namespace and to make sure that the ClassImp macro is also used inside
  234   the same namespace:
  235 
  236   #include "TObject.h"
  237   namespace MyProject {
  238      class MyClass : public TObject {
  239      public:
  240         MyClass();
  241         int Loop();
  242         ClassDef( MyClass, 1 ) // This is a class inside a namespace
  243      };
  244   };
  245 
  246   And in the implementation file
  247 
  248   #include "MyClass.h"
  249 
  250   namespace MyProject {
  251     ClassImp( MyClass )
  252 
  253     MyClass::MyClass() {
  254       // Body of the constructor
  255     }
  256 
  257     int MyClass::Loop() {
  258       // Body of the Loop
  259     }
  260   };
  261 
  262   Once this is done, when refering in root to this class using a string
  263   (for example to define a TClonesArrays, a Branch in a Tree, or on the
  264   root prompt), you have to always use the fully qualified name.  There
  265   isn't yet an equivalent to 'using namespace MyProject;' for ROOT.
  266   For example to define a TClonesArray of MyClass objects:
  267 
  268         TClonesArray * o = new TClonesArray("MyProject::MyClass");
  269 
  270   IMPORTANT WARNING:
  271 
  272   This change is only transparent for classes for which a dictionary is
  273   produced!  If you need to use a class with ClassDef and ClassImp but do
  274   NOT want to generate a dictionary file for it, you HAVE TO use the macro
  275   ClassImp2 instead of ClassImp! In our example above you would write in
  276   the implementation file:
  277 
  278   #include "MyClass.h"
  279   namespace MyProject {
  280     ClassImp2(MyProject, MyClass )
  281 
  282     MyClass::MyClass() {
  283       // Body of the constructor
  284     }
  285 
  286     int MyClass::Loop() {
  287       // Body of the Loop
  288     }
  289   };
  290 
  291   If your classes do not belong to a namespace just omit the first
  292   argument:
  293 
  294   #include "MyClass_not_in_namespace.h"
  295   ClassImp2(,MyClass_not_in_namespace)
  296   MyClass_not_in_namespace::MyClass_not_in_namespace() {
  297     // Body of the constructor
  298   }
  299 
  300   int MyClass_not_in_namespace::Loop() {
  301     // Body of the Loop
  302   }
  303   IMPORTANT WARNING 2:
  304 
  305   ClassDef and ClassImp for namespaces and nested classes is
  306   NOT yet fully implemented for templated classes.
  307 //
  308 // 02/05/2000  08.40.13  by  Rene Brun
  309 //
  310 - Add a new static function to class TH1.
  311       static void AddDirectory(Bool_t add=kTRUE)
  312   By default (fAddDirectory = kTRUE), histograms are automatically added
  313   to the list of objects in memory.
  314   Note that an histogram can be removed from its support directory
  315   by calling h->SetDirectory(0) or h->SetDirectory(dir) to add it
  316   to the list of objects in the directory dir.
  317 
  318 //
  319 // 01/05/2000  22.08.01  by  Rene Brun
  320 //
  321 - Activate option DATE in TStyle:
  322   New data members, fDateX, fDateY and fAttDate.
  323   New member functions SetDateX, SetDateY, GetAttDate.
  324     void TStyle::SetOptDate(Int_t mode)
  325      if mode is non null, the current date/time will be printed in the canvas.
  326      The position of the date string can be controlled by:
  327         mode = 1 (default) date is printed in the bottom/left corner.
  328         mode = 2 date is printed in the bottom/right corner.
  329         mode = 3 date is printed in the top/right corner.
  330       The date position can also be controlled by:
  331         gStyle->SetDateX(x);  x in NDC
  332         gStyle->SetDateY(y);  y in NDC
  333 
  334       The date text attributes can be changed with:
  335         gStyle->GetAttDate()->SetTextFont(font=62);
  336         gStyle->GetAttDate()->SetTextSize(size=0.025);
  337         gStyle->GetAttDate()->SetTextAngle(angle=0);
  338         gStyle->GetAttDate()->SetTextAlign(align=11);
  339         gStyle->GetAttDate()->SetTextColor(color=1);
  340 
  341       The current date attributes can be obtained via:
  342         gStyle->GetAttDate()->GetTextxxxx();
  343       When the date option is active, a text object is created when the pad
  344       paint its list of primitives. The text object is named "DATE".
  345       The DATE attributes can also be edited interactively (position
  346        and attributes) via the normal context menu.
  347 
  348 //
  349 // 30/04/2000  10.16.21  by  Rene Brun
  350 //
  351 - Change name of variable errno to errn in DataMbr.h and in
  352   G__DataMemberInfo::ValidArrayIndex. errno is a reserved keyword.
  353   Problem was apparent with VC++ and AIX/xlC.
  354 
  355 - Comment most ClassDef & ClassImp in WIN32 directory. A side-effect
  356   of the changes in the ClassDef/ClassImp macros forces the dictionary
  357   for all classes including these macros.
  358 //
  359 // 29/04/2000  12.37.58  by  Rene Brun
  360 //
  361 - Add new member functions in TGeometry and TNode to transform master
  362   to local coordinate system(thanks to Robert Hatcher).
  363   TGeometry/TNode provided Local2Master coordinate transformations, but not
  364   the reverse.  In case of some data of object positions in global coordinates
  365   but trying to build a truly hierarchical structure (thus the need for
  366   "placement" relative to local coordinates) this was an impediment.
  367      void TGeometry::Master2Local(Double_t *master, Double_t *local);
  368      void TGeometry::Master2Local(Float_t *master, Float_t *local);
  369      void TNode::Master2Local(Double_t *master, Double_t *local);
  370      void TNode::Master2Local(Float_t *master, Float_t *local);
  371 
  372 - Add fix from Masa in CINT_ifunc.c to appear in CINT 5.14.37.
  373   This fix a problem with function overloading. the same code can now
  374   be used with the compiler or the interpreter when calling TF1 functions.
  375 
  376 - Modify test program stress to take advantage of the changes in CINT_ifunc.
  377 
  378 - Modify h2root to support boolean data types from Hbook. Instead of using
  379   unsigned integers, the new code uses unsigned chars.
  380 
  381 - Modify print format in TTree::Show in case of a TLeafB. print up
  382   to 10 variables on the same line.
  383 
  384 //
  385 // 28/04/2000  18.17.48  by  Rene Brun
  386 //
  387 - Remove a limitation in THistPainter::PaintAxis preventing to set
  388   a negative number of divisions on the Y axis. A negative number of divisions
  389   may be specified to force a precise number of primary divisions on an axis.
  390 
  391 - Implement support for regular expressions in TDirectory::Delete.
  392   One can now do gDirectory->Delete("foo*")
  393 
  394 - Modify TROOT::ls to call TDirectory::ls
  395 
  396 - in TCutG constructor, remove a possible TCutG with the same name
  397   in the list of special objects. stress7 can now be executed more than once.
  398 
  399 - Add compiler option -Wp,-H10000 to the list of CINT compiler options
  400   for HP-UC CC compiler to prevent a limitation of CC when compiling CINT_var.
  401 
  402 - Change tolerance in stress/stress16 from 10 bytes to 20 bytes.
  403 //
  404 // 28/04/2000  16.58.41  by  Fons Rademakers
  405 //
  406 - TGTextEntry: fix in SetFont() to correctly modify the graphics
  407   contexts. Before SetFont() changed the default GC used by many
  408   widgets.
  409 
  410 - guitest.cxx: show example for TGTextEntry::SetFont.
  411 
  412 - TROOT: use preprocessor symbols __DATE__ and __TIME__ to get
  413   the date/time of compilation instead of CMZ symbols in preparation
  414   of move to CVS.
  415 //
  416 // 27/04/2000  15.54.53  by  Rene Brun
  417 //
  418 - Modify test program stress/stress1 to be able to run it with CINT.
  419 
  420 - Modify code generated by TTreePlayer::MakeClass to generate special code
  421   for TChains. Also generate new member function Cut.
  422 
  423 - Changes in TH2, TH3, TProfile2D include files to avoid warning messages
  424   under AIX and HP-UX.
  425 
  426 - Modify CINT function IFUNC to avoid a compiler problkem under AIX.
  427   the C function IFUNC contained a C++ style comment.
  428 
  429 - Merge with Fons and Philippe's versions.
  430 //
  431 // 26/04/2000  12.15.54  by  Fons Rademakers
  432 //
  433 - TObjArray: IsEmpty() correctly returns kTRUE in case TObjArray
  434   is empty (idem for TClonesArray).
  435 
  436 - rootcint: mods by Philippe for support of namespaces.
  437 
  438 - Rtypes.h: mods in the ClassDef and ClassImp macros for namespace
  439   support.
  440 //
  441 // 25/04/2000  17.56.34  by  Rene Brun
  442 //
  443 - Merge with Philippe Canal's version.
  444 
  445 - Implement support for branches with names ending with "."
  446   in TTree::MakeClass.
  447 //
  448 // 25/04/2000  15.13.17  by  Philippe Canal
  449 //
  450 
  451   Phillippe implemented a way for the user to fill a tree directly from a
  452   TBuffer or TMessage;
  453   This only work for branches that contain a non-split object.
  454   Using this features makes the files non-readable by previous version of
  455   root (2.24/02 and below).
  456 
  457   To use this features, you need to have something like:
  458 
  459         TBuffer * pointerToMyBuffer;
  460         .....
  461         myBranch->SetBufferAddress( pointerToMyBuffer );
  462 
  463   And when myTree->Fill() is called, the data is copied from MyBuffer.
  464   The amount of data copied is determined either by the current offset of
  465   the buffer if it is not null or by the maximum size of the buffer.
  466 
  467   Here are three valid usages examples
  468 
  469   1.      TBuffer * buf = new TBuffer(TBuffer::kWrite, bufsize);
  470           branch->SetBufferAddress(buf);
  471 
  472         buf->Reset();
  473         buf->SetWriteMode();
  474         event->Streamer(*buf);
  475         buf->SetReadMode();
  476 
  477         tree->Fill();
  478 
  479   2.      TBuffer * buf = new TBuffer(TBuffer::kWrite, bufsize);
  480           branch->SetBufferAddress(buf);
  481 
  482         char * data;
  483         int nbyte = Copy_Data_From_Somewhere(data);
  484         buf->SetBuffer(data,nbytes);
  485 
  486         tree->Fill();
  487 
  488   3.    TMessage *mess;
  489         Int_t messlen;
  490 
  491         do {
  492            messlen = s->Recv(mess);
  493         } while ( messlen == 0 );
  494 
  495         branch->SetBufferAddress(mess);
  496 
  497         tree->Fill()
  498 
  499   The extra information needed to correctly read the file created using this
  500   features is stored at the end of each basket (using this features) just
  501   after the array containing the entries offset within the basket.
  502 
  503 //
  504 // 23/04/2000  22.30.47  by  Rene Brun
  505 //
  506 - Fix a problem in TBranchObject::SetAddress in case of a branchobject
  507   in split mode and the branch name is of the forme "name." and one of
  508   the sub branches members is a TClonesArray. The TClonesArray branch name
  509   was not correctly encoded. Solution was to use the same logic already
  510   used for other data member types.
  511   (thanks Christian Holm Christensen for reporting this problem)
  512 
  513 - Sasha Vanyashin has reduced further the byte swapping overhead on linux
  514   by introducing asm routines bswapcpy32 and bswapcpy16 (similar to memcpy)
  515   in TBuffer.
  516 //
  517 // 21/04/2000  21.54.54  by  Rene Brun
  518 //
  519 - Fix a bug in TH2::FillRandom and TH3FillRandom. These functions were
  520   correct only in the case where the x range and the y range were identical.
  521   (thanks Laurent APHECETCHE).
  522 
  523 - Implement support for histogram min/max in TLego::SurfaceFunction.
  524   With this change, one can now do TH1::Draw("surf") on a histogram
  525   where a min/max have been specified.
  526 
  527 //
  528 // 19/04/2000  18.32.19  by  Fons Rademakers
  529 //
  530 - TPad: fix in Print() so a pad can be saved to gif, before
  531   the complete canvas was always saved.
  532 
  533 //
  534 // 19/04/2000  11.24.25  by  Rene Brun
  535 //
  536 - In TBranchClones::GetEntry, add a statement to clear the TClonesArray
  537   before reading a new event. In case of split mode, the number of entries
  538   in the array was not updated (thanks Thorsten Glebe for reporting).
  539 
  540 - Merge with Valery's version.
  541    This includes a protection in the THtml class and a new version
  542    of the STAR classes.
  543 //
  544 // 18/04/2000  17.45.49  by  Fons Rademakers
  545 //
  546 - Changes in several files related to the imminent move to CVS.
  547 //
  548 // 18/04/2000  10.36.20  by  Rene Brun
  549 //
  550 - Activate option to write a TClonesArray in non-split mode
  551   in TTree::Branch (TClonesArray flavour).
  552 
  553 - Add a new tutorials tcl.C. This tutorial illustrate how to use a
  554   TClonesArray in various mode: split, no-split.
  555   The tutorials also shows how to run with the interpreter or
  556   the script compiler.
  557 //
  558 // 16/04/2000  23.08.00  by  Rene Brun
  559 //
  560 - Optimize code in TBasket, TBranch and TBuffer. Several functions declared
  561   non virtual.
  562 
  563 - In  TRootBrowser::IconBoxAction Chdir has to been called after
  564   obj->Browse because Browse assume that the current directory is the
  565   one where to find the object while Chdir actually change the directory.
  566   (from Philippe Canal).
  567 
  568 - New class TProfile2D (2-dim profile histograms).
  569   Same functionality as class TProfile for 1-dim histograms.
  570 
  571 - Optimize TArrayC,S,I,F,L,D replacing implicit loop to set array
  572   elements to 0 by a call to memset.
  573 //
  574 // 15/04/2000  19.07.24  by  Rene Brun
  575 //
  576 - IMPORTANT ADDITION TO THE HISTOGRAMING PACKAGE
  577   ==============================================
  578   Two new global functions have been added to TH1.h
  579       TH1 *R__H(Int_t hid);
  580       TH1 *R__H(const char *hname);
  581    The first function R__H returns a pointer to a histogram with a name
  582    corresponding to the encoding of "h" and the integer hid.
  583    For example, if the histogram with name "h23" exists in the current
  584    directory (either memory or disk), R__H(23) returns a pointer to
  585    this histogram. if hid is a negative integer (eg -23), R__H(-23) returns
  586    a pointer to the histogram with name "h_23".
  587    The second function H returns a pointer to the histogram with name hname.
  588    eg: R__H("h23").
  589    The main advantage of these two functions is that they can be called
  590    anywhere in the user's code without using global pointers for each
  591    histogram.
  592    These two functions provide also an easier access to histograms converted
  593    from Hbook files.
  594    These functions have however a severe performance penalty.
  595    Using R__H(10)->Fill(x) is on average 6 times slower than h->Fill(x) !
  596    R__H(const char *hname) finds the address of the histogram hname in
  597    the hashlist of objects in memory corresponding to the current file.
  598    If no object is found in memory, hname is searched in the list of objects
  599    in the current directory on disk.
  600    R__H(Int_t hid) converts hid into hname and then proceeds like R__H(const char *hname).
  601 
  602 //
  603 // 15/04/2000  11.58.37  by  Philippe Canal
  604 //
  605 - Some files similar to those produced by h2root, can have simple
  606   type AND branches that contain more than one leaf and have no reason to
  607   contain a leaf with the same name.   Those files currently core dumps the
  608   TChain::Merge mechanism because the fill address of the new tree is not reset
  609   properly after a change of file.
  610 //
  611 // 14/04/2000  12.24.20  by  Rene Brun
  612 //
  613 - Rename functions in TPaveStats;
  614     GetFormatFit  -----> GetFitFormat
  615     GetFormatStat -----> GetStatFormat
  616     SetFormatFit  -----> SetFitFormat
  617     SetFormatStat -----> SetStatFormat
  618     The TPaveStats fFitFormat and fStatFormat are now initialized
  619     from the TStyle permanent parameters.
  620 
  621 - New functions in TStyle:
  622        GetFitFormat, GetStatFormat, SetFitFormat, SetStatFormat
  623 
  624 - Introduce a new function in TProfile:
  625     TH1D *TProfile::ProjectionX(const char* name="_px", const char *option="e")
  626 
  627     Similarly to TH2::ProjectionX, this new function fills the profile projection
  628     along X. It creates a TH1D histogram. if the option "e" is specified
  629     the histogram has the profile error bars.
  630 
  631 - Add new static functions in TVirtualFitter:
  632     TVirtualFitter::SetMaxIterations(Int_t maxiter=5000);
  633     TVirtualFitter::SetPrecision(Double_t prec=1e-6);
  634     TVirtualFitter::GetMaxIterations();
  635     TVirtualFitter::GetPrecision();
  636     The SetPrecision function can be used to set a fit relative_precision.
  637     The default value for relative_precision is 1e-6.
  638 
  639 - TH1::Fit and TGraph::Fit have been modified to take advantage of
  640   the new TVirtualFitter functions. Because TMinuit precision is an absolute
  641   precision, an estimation of the final sum of squares of residuals (sumw2)
  642   is computed in these two functions. The precision requested from TMinuit
  643   is sumw2*relative_precision. The new algorithm should give in general
  644   a better fit precision.
  645 
  646 - Minor change in TBtInnerNode constructor to bypass a compiler bug
  647   with gcc2.95 (thanks Matthew D. Langston).
  648 //
  649 // 14/04/2000  11.48.54  by  Fons Rademakers
  650 //
  651 TExMap: implemented Streamer().
  652 //
  653 // 13/04/2000  19.19.49  by  Rene Brun
  654 //
  655 - Modify AA_ARCHS to add one line for solarisgcc.
  656 
  657 - Modify TH1::Copy to set the TAxis parents.
  658 
  659 - Add missing file basic.dat in $ROOTSYS/tutorials.
  660 
  661 - Modify tutorial exec1.C. logic was broken since the changes in gPad.
  662 
  663 - In RConfig.h, define __i486__ only if not already defined. This is to avoid
  664   a long list of warnings on Debian systems.
  665 
  666 - Modify the comments in class TButton example. add missing backslash
  667   in front of ".
  668 
  669 - Improvement in TTreePlayer::Scan (thanks Jiri Masik).
  670   When one scans a tree and interrupts it via q key and <CR>,
  671   the q is read by getchar but the <CR> remains unread in the stream.
  672   Any subsequent Scan scrolls two screens without prompting as the new
  673   getchar is reading the last <CR>.
  674 
  675 //________________________________________________________________________
  676 //
  677 //::>          VERSION  2.24/02   07/04/2000 08.52.32
  678 //
  679 //
  680 // 07/04/2000  08.45.56  by  Rene Brun
  681 //
  682 - Merge with Fons and Valery's latest versions.
  683 //
  684 // 06/04/2000  16.06.22  by  Fons Rademakers
  685 //
  686 - TDatime: new ctor taking a SQL compatible time string.
  687 
  688 - TEnv: made most member functions virtual to allow overriding.
  689   Also a fix in GetValue() to correctly return negative integers.
  690 
  691 - TStopWatch: made the new Counter() an const inline function.
  692 
  693 - TRootEmbeddedCanvas: extension to allow the embedding of a custom,
  694   TCanvas derived, canvas. See ctor for extensive example.
  695 
  696 - rootcint: small cleanup of Philippe's code.
  697 
  698 - TRint: added a noLogo arg to ctor. Setting it to kTRUE will not
  699   print the standard logo. This allows for custom a logo in a TRint
  700   derived class.
  701 
  702 - TGLBContainer: InsertEntry() now correctly inserts a new entry at the
  703   head of the list if the parameter afterID is set to -1. Fix by
  704   Reiner Rohlfs.
  705 
  706 - TUnixSystem: in dtor reset signals to handlers that were active
  707   before the TUnixSystem object was created. This was needed in an
  708   app that also uses Oracle OCI. Fix provided by Fedor Ratnikov.
  709 
  710 - TClonesArray: made several method virtual and made the data members
  711   protected. Denis Bertini (Hades/GSI).
  712 
  713 - TObjArray: made the datamembers protected. Denis Bertini (Hades/GSI).
  714 
  715 - importcint: updated CINT import macro for new STL includes.
  716 //
  717 // 06/04/2000  13.23.49  by  Valery Fine(fine@bnl.gov)
  718 //
  719  - WinNTSystem::DirName - bug fixed (Thanks V.Onuchin)
  720 
  721  - ZIP inflate function Writedata: logic has been modified
  722 //
  723 // 05/04/2000  08.36.47  by  Rene Brun
  724 //
  725 - Fix a problem in TH2::ProfileY (thanks Gerco Onderwater).
  726   When creating a profile along the y-axis from a 2D histo, the number of bins
  727   in the profile are incorrect (as a matter of fact, the number of bins on the
  728   x-axis of the original 2d histo is used).
  729 
  730 - Remove a memory leak in TCint::UpdateListOfTypes.
  731   The leak was apparent when running the THtml class.
  732 
  733 - Implement new function "fmod" in TFormula and TTreeFormula.
  734   one can do: t.Draw("x","fmod(y,0.5)>0.2")
  735 
  736 - Protection added in TLeafObject::GetMethodCall (thanks Philippe Canal).
  737   a TMethodCall was created by passing a null pointer as argument.  However
  738   the code from this constructor (and/or functions called from within) assumes
  739   an argument list.
  740 
  741 //
  742 // 04/04/2000  15.07.50  by  Rene Brun
  743 //
  744 - A small change in TPostScript::Initialize (Thanks Olivier Couet).
  745   When including ps or eps files in PowerPoint, some horizonthal lines
  746   were appearing in the picture. This problem is due to a bug in PowerPoint
  747   that does always closes all the open paths. To circumvent this problem,
  748   an additional "newpath" statement is now generated when opening
  749   a new picture.
  750 //
  751 // 03/04/2000  12.44.10  by  Rene Brun
  752 //
  753 - Add new tutorial gaxis.C
  754 
  755 - Fix a problem in THistPainter::PaintInit in case of log scale along X.
  756   Must check that the selected last bin is not greater than the number of bins.
  757   Problem was apparent in case of variable bin size histograms.
  758 
  759 - Merge with Valery's version. This version fixes a problem in TPGON::FillTableOfCoSin
  760   Protections in TWinNtSystem and TTabCom.
  761 
  762 //________________________________________________________________________
  763 //
  764 //::>          VERSION  2.24/01   31/03/2000 12.19.07
  765 //
  766 //
  767 // 31/03/2000  12.11.55  by  Rene Brun
  768 //
  769 - The following functions from the ZIP package have been renamed to avoid
  770   clashes between ROOT and external packages using modified versions of
  771   the original ZIP package. The old names are now prefixed with R__.
  772   (thanks to Ursula Berthon to help understanding the problem).
  773   This is the new list of the ZIP functions:
  774      R__ReadByte
  775      R__WriteData
  776      R__build_bl_tree
  777      R__build_tree
  778      R__compress_block
  779      R__fill_window
  780      R__flush_outbuf
  781      R__gen_bitlen
  782      R__gen_codes
  783      R__init_block
  784      R__longest_match
  785      R__pqdownheap
  786      R__scan_tree
  787      R__send_all_trees
  788      R__send_tree
  789      R__set_file_type
  790 
  791 - Implement TEventList::SetName. TEventList is a TNamed.
  792   TNamed::SetName must be overloaded in TEventList because TEventList objects
  793   like TH1s and TTrees are inserted into a THashList. Changing the name
  794   of one of these objects implies recomputing the hashlist.
  795 
  796 - Merge with Valery's version.
  797   Valery has introduced a new function TStopwatch::Counter counting
  798   the number of start/stops.
  799   Cleanup of STAR code to follow the ROOT coding style.
  800 //
  801 // 28/03/2000  12.39.19  by  Rene Brun
  802 //
  803 - Improve functions TPolyMarker3D::PaintH3 and TMarker3DBox::PaintH3
  804    to take into account the current axis ranges (set via TAxis::SetRange).
  805 
  806 - minor change in tutorial graph.C. Add the statement c1->Modified() at
  807    the end of the macro.
  808 
  809 - Slight modification (Philippe Canal) in the destructor for TClass to avoid
  810   accessing deleted memory.
  811   Sometime ago the TList destructor was changed from strictly not deleting
  812   the object it is holding to checking via GetObject()->TestBit(kCanDelete)
  813   if it should delete the object or not.  The consequence is that while
  814   deleting fAllPubMethod and fAllPubData, eventhough it was not deleting the
  815   object a second time, it was still accessing them.  Thus the deletion of
  816   these two list have to be done before the deletion of the objects in it.
  817 
  818 - Modify TGraph::GetXaxis and GetYaxis to use TGraph::GetHistogram
  819   rather than fHistogram.
  820 
  821 - Modify the globals kumac for KCC on SGI, removing --no-exceptions.
  822   same change in the makefile and root-config.
  823 
  824 - Add new macro hadd.C in the list of tutorials. This macro can be used
  825   to merge histogram files.
  826 //
  827 // 23/03/2000  09.59.30  by  Rene Brun
  828 //
  829 - Minor change in root-config for HP-UX CC compiler. +Z option added
  830   in the list of compiler options.
  831 
  832 - The following set of Bessel functions has been added in class TMath.
  833    origin from Nick van Eijndhoven and based on Numerical Recipes.
  834 
  835    Double_t BesselI(Int_t n,Double_t x);   // Compute integer order modified Bessel function I_n(x)
  836    Double_t BesselK(Int_t n,Double_t x);   // Compute integer order modified Bessel function K_n(x)
  837    Double_t BesselI0(Double_t x);          // Compute modified Bessel function I_0(x)
  838    Double_t BesselK0(Double_t x);          // Compute modified Bessel function K_0(x)
  839    Double_t BesselI1(Double_t x);          // Compute modified Bessel function I_1(x)
  840    Double_t BesselK1(Double_t x);          // Compute modified Bessel function K_1(x)
  841 
  842 - Bug corrected in TH3::Project3D. When looping on the bins, the current
  843   value for the bin error was obtained after filling the bin. It should be
  844   obtained before filling the bin. (Thanks Angela Biselli for reporting).
  845 
  846 //
  847 // 21/03/2000  11.07.07  by  Rene Brun
  848 //
  849 - Modify TFile::Init to read the file title. The file title was written
  850   to the file but never read in when the file was reconnected.
  851 //
  852 // 20/03/2000  10.26.46  by  Rene Brun
  853 //
  854 - Fix code generation in TTreePlayer::MakeClass and MakeCode in case
  855    of variable length two dim arrays (Thanks Philippe Canal).
  856 
  857 - Protection in TF1::GetRandom (when the parabola becomes flat).
  858   Thanks Federico Carminati.
  859 
  860 - Add library -lnsl in installation of h2root, g2root for Linux.
  861   This is required on RH6.1 with the new version of CERNLIB.
  862 
  863 - Add possibility to close a TCutG with a double click in TPad::createNewPolyLine
  864 
  865 - Merge with valery's version including changes for TPadView3D (moved to BASE)
  866 
  867 //
  868 // 16/03/2000  08.11.07  by  Rene Brun
  869 //
  870 - In TMinuit destructor remove the TMinuit object from gROOT->GetListofSpecials().
  871    Also reset gMinuit=0 if gMinuit=this.
  872 
  873 //
  874 // 15/03/2000  16.55.10  by  Fons Rademakers
  875 //
  876 - TString: can now specify which character to strip in Strip().
  877 
  878 - mmalloc, mfree, mmprivate: changed "struct list" to "struct mmlist"
  879   to avoid possible clash with STl list class (fix by pcanal).
  880 //
  881 // 11/03/2000  16.04.06  by  Rene Brun
  882 //
  883 - Changes in include Bytes.h to support an optimized byte swapping code
  884   on Linux machines (thanks to Sasha Vanyashin ).
  885   The Bytes.h uses asm macros from the #include <byteswap.h>
  886   This is a part of the GNU C library: /usr/include/byteswap.h and
  887   /usr/include/bits/byteswap.h. To get the most of the macros one has to use
  888   the compiler switches higher then i386 (e.g., -march=pentiumpro -mpentiumpro),
  889   since the default gcc copmpiler settings are just the i386.
  890   Because the byteswap.h is missing on many Linux systems, a copy of
  891   this include is provided in Byteswap.h
  892 
  893 - Fix a problem in TMethodCall::ReturnType to take into account
  894   the Root data types Float_t, Int_t, etc in addition to the basic types.
  895    (thanks Gene Van Buren)
  896 
  897 - New functionality added to class TLatex (Marthe Brun)
  898   #left(,  #right) to draw parenthesis with a size corresponding
  899   to the block between parenthesis.
  900   Support for Upper and Lower indices in front of a letter (useful for
  901   chemical elements). try for example {}_{3}^{7}Li.
  902   Use this new functions in tutorial latex.C.
  903   Better vertical aligment of Greek characters
  904 //
  905 // 10/03/2000  10.47.26  by  Philippe canal
  906 //
  907 - New version of rootcint. This new version is now able to automatically
  908   generate the Streamer functions for classes containing pointers to basic types
  909   in the following case.
  910   Int_t   fN;         //Number of array elements
  911   Int_t   *fType;     //[fN] array of fN integers
  912   Float_t *fX;        //[3*fN] array of 3*fN floats
  913 
  914 - Extensions to TSystem such that the following will nicely work:
  915   root> .L stress.cxx
  916   root> stress(); // will interpret
  917   root> .L stress.cxx
  918   root> stress(); // will interpret a new version
  919   root> .L stress.cxx++
  920   root> stress(); // will execute compiled code
  921   root> .L stress.cxx++  // does not re-compiled if stress.cxx is NOT newer.
  922   root> stress(); // will execute new compiled code
  923 
  924 //
  925 // 08/03/2000  14.57.15  by  Rene Brun
  926 //
  927 - In TVirtualFitter destructor, reset fgFitter and fgMaxpar to 0.
  928   This is necessary in case a previous fitter was created with a number
  929   of parameters maxpar, then deleted and a new fitter created with
  930   less parameters. (case shown by Nicolas Produit)
  931 //
  932 // 07/03/2000  16.50.31  by  Rene Brun
  933 //
  934 - Modify CINT/libstrm deck header to add -KCC.
  935   Modify importcint to add -kCC when importing libstrm.
  936 
  937 - Add comments in TNamed::SetName, TNamed::SetObject to mention that
  938    if an object is a member of a THashList, the THashList must be
  939    rehashed after the SetName.
  940    Comment also added to the THashList constructors.
  941 //
  942 // 06/03/2000  08.43.09  by  Rene Brun
  943 //
  944 - Update a wrong comment in tutorial Ifit (mnhelp("*") instead of mnhelp("*",0).
  945  (thanks Ben Kilminster).
  946 
  947 - Modify test programs Tetris and hworld to replace references to gPad
  948   by TVirtualPad::Pad().
  949 
  950 - Merge with Valery's new version. This new version includes several changes
  951    in the STAR classes + support for double-click on WindowsNT.
  952 //
  953 // 05/03/2000  16.11.09  by  Rene Brun
  954 - Declare the TTree::Branch functions to be virtual (Fred Gray request).
  955 //
  956 //
  957 // 04/03/2000  16.34.54  by  Rene Brun
  958 //
  959 - Fix a clipping problem in TGraph::PaintGraph in case of option Bar.
  960   Add SetBit(kClipFrame) in default TGraph constructor.
  961  (thanks Anton Fokin).
  962 //
  963 // 03/03/2000  19.02.17  by  Fons Rademakers
  964 //
  965 - TDatime: allow 100 - 199 as years (100 is returned by Linux's gmtime
  966   for the year 2000).
  967 
  968 - TMatrix, TVector: print errors when two matrices or vectors are not
  969   compatible instead of silently doing nothing.
  970 
  971 - TGSlider: fixed two case of && which should be & in DoDraw() for TGVSlider
  972   and TGHSlider. Found by Yun-Ha Shin.
  973 //
  974 // 02/03/2000  10.10.41  by  Rene Brun
  975 //
  976 - In TChain::SetBranchAddress and TChain::SetBranchStatus,
  977    set fTreeNumber = -1 to force TChain::LoadEntry to be executed
  978    at the next call to TChain::GetEntry. This statement is necessary
  979    in case a user calls one of these two functions after a first pass
  980    to the files in the chain. (thanks Goetz Gaycken)
  981 
  982 - Add new function int() to TFormula::Analyze, TFormula::Eval
  983   and to TTreeFormula::Eval
  984 //
  985 // 01/03/2000  17.27.39  by  Rene Brun
  986 //
  987 - Important change in histogram classes
  988   =====================================
  989    - All histogram classes are derived from the base class TH1
  990 
  991                              TH1
  992                               ^
  993                               |
  994                               |
  995                               |
  996       -----------------------------------------------------
  997              |                |       |      |      |     |
  998              |                |      TH1C   TH1S   TH1F  TH1D
  999              |                |                           |
 1000              |                |                           |
 1001              |               TH2                        TProfile
 1002              |                |
 1003              |                |
 1004              |                ------------------------------
 1005              |                        |      |      |      |
 1006              |                       TH2C   TH2S   TH2F   TH2D
 1007              |
 1008             TH3
 1009              |
 1010              |
 1011              ------------------------------
 1012                      |      |      |      |
 1013                     TH3C   TH3S   TH3F   TH3D
 1014 
 1015    The TH*C classes also inherit from the array class TArrayC.
 1016    The TH*S classes also inherit from the array class TArrayS.
 1017    The TH*F classes also inherit from the array class TArrayF.
 1018    The TH*D classes also inherit from the array class TArrayD.
 1019 
 1020    This change is backward compatible. Previous style histograms
 1021    can be read by the new version.
 1022 //
 1023 // 29/02/2000  20.23.34  by  Fons Rademakers
 1024 //
 1025 - TVirtualPad: R__Pad() now static member TVirtualPad::Pad().
 1026 //
 1027 // 29/02/2000  08.35.28  by  Rene Brun
 1028 //
 1029 - Implement copy constructor of TParticle
 1030 //
 1031 // 28/02/2000  09.39.18  by  Rene Brun
 1032 //
 1033 - Add new classes TSpline, TSpline3 and TSpline5 (from Federico Carminati)
 1034   Add new tutorial spline.C
 1035 
 1036 - Implement a new TF1 constructor
 1037    TF1::TF1(const char *name, Float_t xmin, Float_t xmax, Int_t npar)
 1038    where name is the name of a preloaded CINT function
 1039 
 1040 - New code in TBranchClones::Streamer to automatically create
 1041   the TClonesArray if the support pointer contains a null address
 1042    (thanks to Marian Ivanov).
 1043 
 1044 - Merge with Valery's version:
 1045      additions in TROOT::GetClass to take into account typedefed classes.
 1046      new versions of STAR classes
 1047 //
 1048 // 23/02/2000  19.09.59  by  Rene Brun
 1049 //
 1050 - Rename C function mem_read to R__mem_read in the ZIP Bits.c file.
 1051   This name clashes with a similar name in one library used by ISDC.
 1052   Thanks Nicolas Produit for investigating.
 1053 
 1054 - Many thanks to Marco van Leeuwen for reporting a problem with TGraph::Fit
 1055   when fitting with a polynomial. The problem has been fixed in TGraph::LeastSquareFit.
 1056   The last data point was ignored by this function computing the initial
 1057   value of parameters.
 1058 //
 1059 //
 1060 // 22/02/2000  08.22.57  by  Rene Brun
 1061 //
 1062 - Protection added in TCanvas::RunAutoExec. The global gPad may be null
 1063    in some cases (eg, when a TDialogCanvas object is deleted by a button
 1064    inside the canvas itself).
 1065 
 1066 -In TTreePlayer::DrawSelect, disable the bit kCanRebin for histograms
 1067  (1-d, 2-d and 3-d) when the option "same" is specified.
 1068 
 1069 - In TH1::GetStats, forgot to preset to 0 the last element of the array stats.
 1070   This was given a problem on Alpha/Unix machines.
 1071 
 1072 - Regenerate the G__Meta dictionary to remove new code generated by the
 1073   new version of CINT. Correction reported to Masa.
 1074 
 1075 - Several changes received from Valery Fine in the new STAR package and also in
 1076   the Win32 GUI.
 1077 
 1078 //
 1079 // 18/02/2000  17.47.15  by  Rene Brun
 1080 //
 1081 - A change in the functions TF1::Integral, also, TF2 and TF3.
 1082   All parameters promoted from Float_t to Double_t.
 1083    (thanks Rutger van der Eijk  )
 1084 
 1085 - Thanks to Romain.Holzmann@gsi.de for fixing a problem in TTreeFormula.
 1086   "I have noticed a problem when using a graphical cut TCutG in a TTree::Draw()
 1087    selection in case the selection applies to a pair of variables (x:y) of which
 1088    one at least is stored in a TClonesArray:
 1089    Indeed, in the TTreePlayer::EntryLoop(...) method the flag SelectMultiple is
 1090    not set properly in this case, so that only the first entry of the TClonesArray
 1091    is tested and the result of fSelect->EvalInstance(0) is used for ALL entries
 1092    of the array, i.e. either all x:y pairs are accepted or all are rejected!
 1093    The problem seems to come from the TTreeFormula constructor which does not
 1094    set TTreeFormula::fMultiplicity (?) for the case of a graphical cut."
 1095 //
 1096 // 17/02/2000  19.28.15  by  Masaharu Goto
 1097 //
 1098 - New CINT 5.14.31 7 Feb 2000 (previous version in ROOT was 5.14.25)
 1099   5.14.26 8 Dec 1999
 1100   1242, #pragma link C++ namespace, risk1, t298.h
 1101 
 1102   5.14.27 19 Dec 1999
 1103   1243, #pragma link C++ defined_in tagname; risk1, t299.h
 1104   1244, default template arg, get typenum at the first instantiation, risk2
 1105   1245, prompt \ newline escape, risk2, t301.cxx
 1106   1246, p = new scope::ctor(); bug fix, risk2
 1107   1247, gROOT->Macro("f.c") in loop, 1168 side effect, risk3
 1108   1248, fix to 1219, 1225, pointer to function argument, risk2
 1109   1249, f(void (*p)()=0); bug fix, risk 2, t307.h
 1110   1250, 'explicit' support, risk4, t308.cxx,
 1111   1251, compiled default ctor in bytecode loop, bug fix. risk2, t310.h/cxx
 1112   -   , G__NOMATHLIB switch, risk1
 1113   1252, 1.0 + obj; buf fix, risk1, t309.cxx
 1114   1253, tempbuf display,
 1115   1254, A& a=A(x); temp object lifetime bug fix, risk4, t312.cxx
 1116   1255, UInt_t -1 display bug fix, risk2
 1117  -1256, n=0;for(i=0;i<n;i++); bytecode, risk5, t313.cxx
 1118     BUG FOUND, intprt_cint infinit loop, CINT simple.cxx
 1119   1257, pragma link C++ class A*-; supported risk3, t315.h
 1120 
 1121   5.14.28 5 Jan 2000
 1122  /1258, const and non-const member function override, risk3, t316.h
 1123  /1259, constness flag for G__value
 1124  /1260, func overload matching with object constness
 1125    Note: constness checking is implemented by 1258-1260. There are several
 1126         problems and this feature is not activated unless G__CONSTNESSFLAG
 1127         is explicitly defined in platform/dependency file.
 1128           - DLL/sharedlib binary incompatibility
 1129           - STL container's const_iterator begin/end can not be compiled
 1130   1261, #pragma include_noerr "f1" #on_error "f2"
 1131   1262, A*** x; bug fix, risk3, t317.h
 1132 
 1133   5.14.29 17 Jan 2000
 1134  -1263, 1240 fix, implicit conv + derived to base conv, t321.cxx, not done
 1135   1264, more than 10 class object member , risk2, c:/src/err/MyDlg.cpp
 1136   1265, operator-> support t323.cxx
 1137   1266, void (*p2f)(int&); bug fix t326.cxx, t325.cxx
 1138   1267, G__ClassInfo::New(int n); added, risk2
 1139   1268, compiled exception catching, t332.h/.cxx, risk4
 1140 
 1141   5.14.30 30 Jan 2000
 1142   1269, static member function flag missing, t333.h , risk2
 1143   1270, exception in bytecode, t332.h/.cxx, risk5
 1144   1271, auto loading of std header in DLL, t332.h/.cxx, risk4
 1145   1272, #pragma link postprocess file action; t335.h/.cxx t335post.cxx, risk3
 1146 
 1147   5.14.31 7 Feb 2000
 1148   1273, function only macro smart unloading, risk4, t336.cxx
 1149            G__set_smartload() added
 1150   1274, A f() { return B(); }, risi3, t338.cxx
 1151   -   , auto_ptr added in stl/_memory, t340.cxx
 1152   1275, template<class T> class A{template<class Y> A(Y& x){}};, risk2,t340.h
 1153   -   , auto_ptr support, t343.cxx t342.cxx, t345.cxx
 1154     1240 -> G__WORKAROUND000209_1
 1155 //
 1156 // 17/02/2000  18.40.43  by  Fons Rademakers
 1157 //
 1158 - Secure rootd deamon
 1159   ===================
 1160   Rootd now supports secure authentication by using the SRP package
 1161   from Stanford (http://srp.stanford.edu/srp/). SRP, Secure Remote
 1162   Passwords, uses a so called "asymmetric key exchange protocol"
 1163   in which no passwords are ever send over the wire. To quickly
 1164   read about the main features of SRP look at:
 1165   http://jafar.stanford.edu/srp/advantages.html
 1166   To build rootd with libsrp.a you've to do the following:
 1167     - get the SRP source (ftp://srp.stanford.edu/pub/srp/srp-1.5.0.tar.gz)
 1168     - get the gmp source (ftp://srp.stanford.edu/pub/srp/gmp-2.0.2.tar.gz)
 1169       This is not needed when you are on a recent Linux machine where
 1170       libgmp.so exists in /usr/lib.
 1171     - Build the gmp and SRP libs (./configure;make;[make install])
 1172     - Check the rootd Makefile and set the SRP variable to where you
 1173       installed the SRP source.
 1174     - Build rootd
 1175     - Get the package ftp://root.cern.ch/root/srputils.tar.gz
 1176     - Untar, check that the variable SRP is set correctly in the Makefile
 1177       and make and make install. This produces the utilities rtconf,
 1178       rpasswd and the library libSRPAuth.so.
 1179     - To setup the SRP passwd file on the remote node do:
 1180         - rtconf
 1181           A key of 512 bit is good enough (creates the file
 1182           $HOME/.srootdpass.conf)
 1183         - rpasswd
 1184           Give a passwd for rootd (creates the file $HOME/.srootdpass)
 1185     - On the local site you need to get only libSRPAuth.so and put it
 1186       in $ROOTSYS/lib.
 1187     - Now when creating a TNetFile object via TFile::Open("root://....")
 1188       libSRPAuth.so will be loaded if it exits and the secure login
 1189       protocol will be used. Note that other rootd trafic is not encrypted.
 1190 
 1191 - TRint, rootx: changed option -p (to popdown the slpash screen) to -splash
 1192   to prevent any accidental usage.
 1193 
 1194 - TCut: fixed behaviour of operator!().
 1195 
 1196 - TROOT: added check in GetClass() for fClasses==0.
 1197 
 1198 - Threads: updates in the thread package, but this is still work in progres.
 1199 //
 1200 // 17/02/2000  15.35.35  by  Rene Brun
 1201 //
 1202 - Add new install Makesolarisgcc (thanks Michal Lijowski).
 1203 
 1204 - Minor changes in TGX11 (change Text_t to char) to make new Sun CC5 happy.
 1205   Similar minor change in TView : Replace TMath::Atan(1) by its value.
 1206 
 1207 - Modify TAttext to show function SetTextAngle in the context menu.
 1208 
 1209 - Add new function TEventList::SetDelta.
 1210 
 1211 - Change comment in TF1::Derivative.
 1212 
 1213 - Minor change in TH1::GetBarOffset and GetBarWidth. Cast result to Float_t
 1214   to avoid a warning with one compiler.
 1215 
 1216 - In TTreePlayer::MakeClass, generate the code for the class destructor.
 1217   Delete the current file in the destructor.
 1218 
 1219 - One change in TCint (Win32 only).
 1220 //
 1221 // 14/02/2000  12.24.01  by  Rene Brun
 1222 //
 1223 - Add the following functions overridden TNamed::SetObject
 1224    TH1::SetObject(const char *name, const char *title)
 1225    TNode::SetObject(const char *name, const char *title)
 1226    TTree::SetObject(const char *name, const char *title)
 1227   Because instances of these 3 classes are automatically added to the current
 1228   directory (a THashList), it is necessary to recompute the hashtable.
 1229   This was already done by the SetName functions of these classes.
 1230 //________________________________________________________________________
 1231 //
 1232 //::>          VERSION  2.24/00   14/02/2000 10.13.26
 1233 //
 1234 //
 1235 // 01/02/2000  16.35.57  by  Rene Brun
 1236 //
 1237 - Add new attributes fTitleColor and fTitleFont in TAttAxis.
 1238   Same in helper class TGaxis.
 1239   The necessary changes to introduce the new attributes have been made in
 1240   THistPainter::PaintAxis and in class TAxis3D.
 1241 
 1242 - Protection added to TRotmatrix in case a TGeometry object dose not exist.
 1243   When this is the case, a default TGeometry object is created.
 1244 
 1245 - Changes in TTreePlayer::TakeEstimate to support option "goff" when
 1246   generating 3-d histograms.
 1247