ROOT version 4.00 Development Notes
2004-01-05 09:20 brun
* base/src/TFile.cxx:
In TFile::ReadStreamerInfo extend the size of the array fClassIndex
in case the info unique number is greater than the array size.
Set fUnits=8 in case of large files.
2004-01-05 09:18 brun
* base/src/TDirectory.cxx:
In TDirectory::FillBuffer and TDirectory::Streamer always initialize
the 12 extra bytes created in case of large files to avoid warnings
with valgrind
2004-01-03 15:26 brun
* treeplayer/src/TTreeFormula.cxx:
In case of data members with new data types, one must access the array
of newtypes (via the new function TStreamerInfo::GetNewTypes or
TSreamerElement::GetNewType instead of the GetType functions.
2004-01-03 15:24 brun
* meta/src/TStreamerInfo.cxx:
Fix a bug in ReadBufferConv and ReafBufferClonesConv in case of fix size arrays.
Use the new TBuffer functions for Double32_t
2004-01-03 15:22 brun
* meta/inc/TStreamerInfo.h:
Add new member function
Int_t *GetNewTtpes();
This function returns a pointer to teh array of new types
2004-01-03 10:42 brun
* utils/src/rootcint.cxx:
Add support for the new type Double32_t in case of old style Streamers
2004-01-03 10:41 brun
* base/: inc/TBuffer.h, src/TBuffer.cxx:
Add the following new functions:
Int_t ReadArrayDouble32(Double_t *&d);
Int_t ReadStaticArrayDouble32(Double_t *d);
void ReadFastArrayDouble32(Double_t *d, Int_t n);
void WriteArrayDouble32(const Double_t *d, Int_t n);
void WriteFastArrayDouble32(const Double_t *d, Int_t n);
2004-01-03 10:38 brun
* net/src/TWebFile.cxx:
Fix a warning in a printf statement
2004-01-02 10:27 brun
* tree/inc/TEventList.h:
Implement TEventList::Clear. This function calls TEventList::Reset
2004-01-01 19:03 brun
* gpad/src/TPad.cxx:
From Bertrand:
patch solving incorrect behaviour in RequestString calls
2004-01-01 18:57 brun
* win32gdk/gdk/src/gdk/win32/: gdkcursor-win32.c, gdkgc-win32.c,
gdkvisual-win32.c, gdkwindow-win32.c:
From Bertrand Bellenot:
code cleaning and potential memory leaks removal
2003-12-31 17:36 brun
* base/src/TFile.cxx, winnt/src/TWinNTSystem.cxx:
Implement support for large files under windows:
-stats -> changed to _stati64
-lseek -> changed to _lseeki64
2003-12-30 23:10 brun
* tree/src/TBranch.cxx:
Optimize format in TBranch::Print in case of large files.
2003-12-30 22:44 brun
* geom/src/TGeoPgon.cxx:
Remove unused variable Rproj
2003-12-30 22:42 brun
* rpdutils/src/rpdutils.cxx:
Remove some unused variables like kMethods, Nrec
2003-12-30 22:34 brun
* mlp/src/TNeuron.cxx:
Remove an unused return statement
2003-12-30 21:43 brun
* base/inc/RConfig.h, base/src/TFile.cxx, unix/src/TUnixSystem.cxx:
In RConfig.h, define R__SEEK64 for combinations of systems/compilers
supporting open64, lseek64 and stat64.
Use the variable R__SEEK64 in TFile and TUnixSystem.
2003-12-30 19:31 brun
* test/MainEvent.cxx:
Change variable counting the number of bytes processed from Int_t to Long64_t
2003-12-30 19:17 brun
* tree/src/: TBranch.cxx, TTree.cxx:
Fix some consistency problem when encoding the branch fBasketSeek array.
Modify a print format in case of files bigger than 2 Gigabytes.
2003-12-30 19:16 brun
* test/MainEvent.cxx:
Add a call to TTree::SetMaxTreeSize to give the possibility to create
a Tree as big as 2 Terabytes (if the system can do it).
For example try the following:
Event 100000 0 7 1
This should create a Tree of size 7.6 Gigabytes
2003-12-30 17:32 brun
* treeplayer/src/TTreeFormula.cxx:
From Philippe:
Fix a compilation error on alpha/cxx
2003-12-30 15:58 brun
* winnt/inc/TWinNTSystem.h:
Fix for Windows
2003-12-30 15:20 brun
* base/src/TFile.cxx, unix/src/TUnixSystem.cxx:
Lseek64 cannot be used with gcc2.95 or 2.96
2003-12-30 14:39 brun
* base/inc/RVersion.h, base/src/TFile.cxx,
winnt/src/TWinNTSystem.cxx:
Fix some portability problems on Windows
2003-12-30 14:16 brun
* alien/inc/TAlienFile.h, alien/src/TAlienFile.cxx,
base/inc/TDirectory.h, base/inc/TFile.h, base/inc/TFree.h,
base/inc/TKey.h, base/inc/TSystem.h, base/src/TApplication.cxx,
base/src/TDirectory.cxx, base/src/TFile.cxx, base/src/TFree.cxx,
base/src/TKey.cxx, base/src/TMD5.cxx, base/src/TSystem.cxx,
base/src/TSystemDirectory.cxx, base/src/TSystemFile.cxx,
build/version_number, chirp/inc/TChirpFile.h,
chirp/src/TChirpFile.cxx, dcache/inc/TDCacheFile.h,
dcache/src/TDCacheFile.cxx, hbook/inc/THbookFile.h,
html/src/THtml.cxx, net/inc/TCache.h, net/inc/TFTP.h,
net/inc/TNetFile.h, net/inc/TWebFile.h, net/src/TCache.cxx,
net/src/TFTP.cxx, net/src/TNetFile.cxx, net/src/TWebFile.cxx,
proof/src/TProof.cxx, proof/src/TProofServ.cxx,
rfio/inc/TRFIOFile.h, rfio/src/TRFIOFile.cxx,
table/src/TFileSet.cxx, tree/inc/TBasket.h, tree/inc/TBranch.h,
tree/inc/TTree.h, tree/src/TBasket.cxx, tree/src/TBranch.cxx,
tree/src/TBranchElement.cxx, tree/src/TBranchObject.cxx,
tree/src/TTree.cxx, treeplayer/inc/TFileDrawMap.h,
treeplayer/src/TFileDrawMap.cxx, unix/inc/TUnixSystem.h,
unix/src/TUnixSystem.cxx, winnt/inc/TWinNTSystem.h,
winnt/src/TWinNTSystem.cxx:
Mega patch to add support for large files (bigger than 2 GBytes)
----------------------------------------------------------------
==========>NEW VERSION 4.00/00 <===========
Because this new version has a considerable number of changes,
and new important additions by Philippe are scheduled for the coming days
we are starting a new major version 4.
-Support for large files
-Automatic schema evolution for foreign classes
-New data type Double32_t
Large files are currently tested only under Linux with gcc3.2.
Support for other systems will be gradually added in the coming days.
By default under Linux, files are created with the option LARGEFILE.
Note that when creating a Tree, the default maximum size for a Tree
is set to 1.9 GBytes. You can change this default value by calling
TTree::SetMaxTreeSize(Long64_t maxsize)
The implementation of this new feature has required changes in many places.
The files produced by this new version can still be read by old ROOT versions
if their size if smaller than 2 GBytes. And obviously, the new version
can digest old ROOT files.
WARNING: note the following backward incompatibility:
-TSystem::GetPathInfo has a new signature: (also TUnixSystem, TWinNTSystem, etc)
old: GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
new: GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
-TFile::SysSeek and TFile::SysStat have a new signature (also TNetFile, TWebFile, etc)
old: Int_t SysSeek(Int_t fd, Long_t offset, Int_t whence);
Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
new: Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence);
Int_t SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
-TTree::SetMaxTreeSize has a new signature:
old: void TTree::SetMaxTreeSize(Int_t maxsize)
new: void TTree::SetMaxTreeSize(Long64_t maxsize)
All references to Seek_t have been replaced by Long64_t.
2003-12-27 19:49 brun
* hist/src/TFormula.cxx:
Fix a compilation problem on HP-UX/aCC
2003-12-27 17:14 brun
* tree/src/TBranchClones.cxx, tree/src/TTree.cxx,
treeplayer/src/TTreeFormula.cxx:
More changes required by the introduction of the new data type Double32_t
2003-12-27 17:13 brun
* test/: Event.cxx, Event.h:
Modidy the classes Event and Track to make use of the new data type Double32_t
2003-12-27 12:28 brun
* win32gdk/gdk/src/gdk/win32/: gdkdrawable-win32.c,
gdkwindow-win32.c:
Patch from Bertrand fixing brushes related memory leaks
2003-12-26 23:06 brun
* tree/src/TBranchElement.cxx:
Changes to support
-Long64 and ULong64_t
-Double32_t
2003-12-26 19:38 brun
* base/inc/LinkDef1.h, base/inc/Rtypes.h, meta/inc/TDataType.h,
meta/inc/TStreamerInfo.h, meta/src/TDataType.cxx,
meta/src/TStreamerInfo.cxx:
Implement a new data type Double32_t (in Rtypes.h).
In memory a Double32_t is like a Double_t (8 bytes).
When written to a file, the type is converted to a Float 4 bytes.
The newdata type is accepted as a simple variable, as a fixed length array
or a variable length array, like:
Double32_t fPt:
Double32_t fVertex[3];
Int_t fNtracks;
Double32_t *fPx; //[fNtracks]
The new data type is supported in all I/O modes (TKey or TTree)
The automatic schema evolution algorithm accepts this new type.
For example a class in a file containing a Double_t data member
can be read by a new class where the member is now of type Double32_t
and vice-versa.
2003-12-25 19:11 brun
* dcache/src/TDCacheFile.cxx:
Fix warnings with unused parameter
2003-12-25 18:55 brun
* tree/: inc/TBranchElement.h, src/TBranchElement.cxx:
Add a new member fCheckSum and corresponding getter GetCheckSum.
Classversion incremented to version 8.
In TBranchElement::GetInfo, use the fCheckSum member to find the right
TStreamerInfo object in TClass.
With this change and the previous changes in TBuffer, TClass and TStreamerInfo,
automatic schema evolution is supported for foreign classes written in a TTree
or as classes written as a TKey.
2003-12-25 18:51 brun
* meta/src/TStreamerInfo.cxx:
In TStreamerInfo::BuildCheck recompute the fClassVersion and the pointer to the
TStreamerInfo object corresponding to the current class checksum.
In case of a foreign class, do not print the Warning in case the current class
checksum and the checksum in the TStreamerInfo differ. Instead recompute
the correct class version using the checksum parameter.
2003-12-25 18:48 brun
* meta/src/TClass.cxx:
Pass the pointer to the current class as 3rd argument of TBuffer::ReadVersion
2003-12-25 18:47 brun
* base/: inc/TBuffer.h, src/TBuffer.cxx:
Add an optional argument to TBuffer::ReadVersion.
The new argument "TClass* cl) is used to retrieve the version number
corresponding to the class checksum.
This change is required to support automatic schema evolution
for foreign classes.
2003-12-24 18:33 brun
* win32gdk/Module.mk:
Fix a TAB problem (Bertrand)
2003-12-24 18:28 brun
* win32gdk/gdk/src/gdk/win32/gdkdrawable-win32.c:
A pach from Bertrand Bellenot fixing region-related memory leaks.
2003-12-24 14:36 brun
* win32gdk/Module.mk:
Fix to previous fix
2003-12-24 14:30 brun
* win32gdk/Module.mk:
Fix to Makefile by Bertrand Bellenot
2003-12-24 11:58 brun
* win32gdk/gdk/src/gdk/win32/: gdkevents-win32.c,
gdkwindow-win32.c:
Fix memory leaks (Bertrand Bellenot)
2003-12-24 10:45 brun
* treeplayer/src/TSelectorDraw.cxx:
From Philippe:
Because of a misplaced curly bracket, TSelectorDraw::ProcessFillObject was unable to draw a large amount of data (i.e.
up to fTree->GetEstimate()).
2003-12-21 20:07 brun
* base/src/TVirtualX.cxx:
Fix a long list of badly formatted comments (when commenting unused pointers)
2003-12-21 15:49 brun
* fumili/src/TFumili.cxx:
The functions TFumili::GetParameter and TFumili::GetParError had code inverted.
Memory leak fixed in GraphFitChisquareFumili.
Thanks to Fedor Ignatov
2003-12-19 17:36 brun
* gui/src/TGLayout.cxx:
From Valeriy Onuchin:
- small fix in TGVerticalLayout, TGHorizontalLayout
2003-12-19 17:10 brun
* tree/src/TLeafL.cxx:
Fix in casting a return value to satisfy VC++6
2003-12-19 17:04 brun
* test/RootShower/RootShower.cxx:
Fix for Windows by Bertrand
2003-12-19 17:00 brun
* gui/src/TGButton.cxx:
From Valeriy Onuchin:
- TGCheckButton alignment fixed. Label is aligned against button.
2003-12-19 14:40 brun
* tree/: inc/LinkDef.h, inc/TLeafL.h, src/TBranch.cxx,
src/TLeafL.cxx, src/TTree.cxx:
Add new class TLeafL to support Long64_t, ULong64_t data types in a TBranch
2003-12-19 11:26 brun
* win32gdk/src/TGWin32ProxyBase.cxx:
From valeriy Onuchin:
- mods in TGWin32ProxyBase::ForwardCallBack(Bool_t sync)
Do not execute the method which had failed to be executed because of delay
with response from "server thread".
2003-12-19 10:31 brun
* tree/src/TSelector.cxx, treeplayer/src/TTreePlayer.cxx:
Add the following warning in TSelector::GetSelector:
// WARNING when a selector is used with a TChain:
// in the Process, ProcessCut, ProcessFill function, you must use
// the pointer to the current Tree to call GetEntry(entry).
// entry is always the local entry number in the current tree.
// Assuming that fChain is the pointer to the TChain being processed,
// use fChain->GetTree()->GetEntry(entry);
Modify TTreePlayer::MakeSelector to generate the code with this warning
in the selector Process function.
2003-12-19 08:55 brun
* tree/: inc/TLeaf.h, src/TLeaf.cxx:
From Philippe:
Using valgrind on TBench, I found some uninitialized memory in TLeaf
in the case of a TLeafElement belonging to a split TClonesArray.
The uninitialized memory came from the fact that the constructor was
not initializing everything if it could not find the leafcount.
In the case described above, the leafcount is not available until
after the constructor of the leaf (or so it seems) and is explicitly
set later using TLeaf::SetLeafCount.
This patch insures that more data members are initialized even in
case of seemingly incorrect configuration and insures that the Zombie
state is removed if the leafcount becomes available after the end of
the constructor.
2003-12-18 19:31 brun
* krb5auth/src/Krb5Auth.cxx:
From Philippe:
corrects the printing of a couple of debug messages and add one more debug message.
2003-12-18 16:14 brun
* gui/src/TGListBox.cxx:
From Valeriy Onuchin:
- TGListBox. Reset GetSelected when setting OFF the multiple selection.
2003-12-18 14:21 brun
* hist/src/TFormula.cxx, test/dt_DrawTest.C, test/dt_MakeRef.C,
tree/src/TTree.cxx, treeplayer/inc/TTreeFormula.h,
treeplayer/src/TTreeFormula.cxx, treeplayer/src/TTreePlayer.cxx:
From Philippe:
Add support for the boolean optimization in TFormula::GetExpFormula
Prevent TTree::Scan from printing random value for invalid formulas
Add a new TTreeFormula special function:
Alt$(primary,alternate) : return the value of "primary" if it is available
for the current iteration otherwise return the value of "alternate".
For example, with arr1[3] and arr2[2]
tree->Draw("arr1-Alt$(arr2,0)");
will draw arr[0]+arr2[0] ; arr[1]+arr2[1] and arr[1]+0
Or with a variable size array arr3
tree->Draw("Alt$(arr3[0],0)+Alt$(arr3[1],0)+Alt$(arr3[2],0)");
will draw the sum arr3 for the index 0 to min(2,actual_size_of_arr3-1)
As a comparison
tree->Draw("arr3[0]+arr3[1]+arr3[2]");
will draw the sum arr3 for the index 0 to 2 only if the
actual_size_of_arr3 is greater or equal to 3.
Note that the array in 'primary' is flatened/linearilized thus using
Alt$ with multi-dimensional arrays of different dimensions in unlikely
to yield the expected results. To visualize a bit more what elements
would be matched by TTree::Draw, TTree::Scan can be used:
tree->Scan("arr1:Alt$(arr2,0)");
will print on one line the value of arr1 and (arr2,0) that will be
matched by
tree->Draw("arr1-Alt$(arr2,0)");
2003-12-18 14:17 brun
* gui/src/TGListBox.cxx:
From Valeriy Onuchin:
- TGListBox class:
generation Selected signals added when SetMultipleSelections(kTRUE)
2003-12-17 16:20 brun
* treeplayer/src/TTreePlayer.cxx:
Fix a problem in TTreePlayer::UnbinnedFit in case the initial value of a parameter is negative.
In this case, the step size was set negative, forcing Minuit in RESET mode.
2003-12-16 23:42 brun
* treeplayer/src/TTreePlayer.cxx:
From Philippe
This patch makes sure the formula are properly refreshed when using a chain.
It removes the printing of some (spurious) empty lines when using a selection criterion.
I.e. Without a selection criterion, there is always a least one line per entry (if is empty) while with a selection
criterion, an entry is printed if and only if a least one of the sub-element exist and match the criterion.
2003-12-16 23:31 brun
* gui/src/TGMenu.cxx:
Protection added to TGMenu (Thanks Valeri Fine)
2003-12-16 22:58 brun
* treeplayer/src/TTreePlayer.cxx:
From Philippe:
With this improvement, TTree::Scan properly correlate (as needed) the selection criterium and the printed columns.
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.