- Feb 09, 2004
-
-
Fons Rademakers authored
cannot be changed. git-svn-id: http://root.cern.ch/svn/root/trunk@8162 27541ba8-7e3a-0410-8455-c3a389f83636
-
Fons Rademakers authored
git-svn-id: http://root.cern.ch/svn/root/trunk@8161 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Feb 08, 2004
-
-
Rene Brun authored
TDatime& GetDatime() returning the fDatime object. git-svn-id: http://root.cern.ch/svn/root/trunk@8156 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Feb 06, 2004
-
-
Rene Brun authored
git-svn-id: http://root.cern.ch/svn/root/trunk@8139 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Feb 05, 2004
-
-
Rene Brun authored
Was only active for gcc3xx git-svn-id: http://root.cern.ch/svn/root/trunk@8133 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
there was request (and few related requests in the past) for console keys polling http://root.cern.ch/phpBB2/viewtopic.php?t=393 To make it possible I added signals to TApplication class: virtual void Terminate(int status = 0); //*SIGNAL* virtual void KeyPressed(int key); //*SIGNAL* virtual void ReturnPressed(char *text ); //*SIGNAL* git-svn-id: http://root.cern.ch/svn/root/trunk@8131 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 31, 2004
-
-
Rene Brun authored
In NewDelete, special case for HP-UX/ACC, using bad_alloc instead of std::bad_alloc git-svn-id: http://root.cern.ch/svn/root/trunk@8099 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
stress, bench and DrawTest.sh runs correctly. Still problem in running DrawTest.sh on SGI (cc,gcc,kcc). Likely due to an alignement problem with the handling of the new type Double32_t git-svn-id: http://root.cern.ch/svn/root/trunk@8098 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 30, 2004
-
-
Rene Brun authored
git-svn-id: http://root.cern.ch/svn/root/trunk@8093 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
The changes were unfortunately introduced withouth enough testing. git-svn-id: http://root.cern.ch/svn/root/trunk@8091 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
There are a few more index to be replaced and R__PLACEMENTINLINE is also needed on windows (however I only tried vc 6.0). git-svn-id: http://root.cern.ch/svn/root/trunk@8090 27541ba8-7e3a-0410-8455-c3a389f83636
-
Fons Rademakers authored
string is in global namespace. Also since <string> pulls in <new> we have to define R__PLACEMENTINLINE for icc otherwise NewDelete.cxx does not compile. Replace index() by strchr() in TClassEdit.cxx. git-svn-id: http://root.cern.ch/svn/root/trunk@8089 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 29, 2004
-
-
Rene Brun authored
This patch should resolve completely the issue discovered by Minos (related to typename being typedefs). It also repairs the I/O for fixed size array of TObject. TString: add constructor and operator= taking a std::string argument TROOT: GetClass now properly resolve templateClass<typedef>. Previously the typedef resolution was restricted to the full name. TClassTable: Look for an existing TClass directly in TROOT::fListOfClasses to avoid the potential loading behavior of TROOT::GetClass TCint::UpdateClassInfo Also look for possible alias name in the list of TClass objects. In particular, depending on the load order of libraries and file, the Emulated class for container<int> might be container<Int_t> or vce et versa. TClass::Init When we have a templated class, also look for existing Emulated class which may have a different name. TStreamerElement/TStreamerInfo Use the name with resolved typedef in the TStreamerElement. Also repair the I/O for fixed size array of TObjects. TClassEdit: Add a utility to resolve the typedefs inside a typename. This resolution has 2 modes. One where it resolved all typedefs which should be used to compare 2 typename and establish equality. A second where it resolved all typedefs __except__ for the ROOT integral type typedefs, this version is used to create the typename that will be save on file. This is necessary to avoid the replacement of (for example) Long64_t by its platform dependent version. git-svn-id: http://root.cern.ch/svn/root/trunk@8087 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
This patch prevent the pattern matching function to read passed the end of the input string. git-svn-id: http://root.cern.ch/svn/root/trunk@8085 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
or inspecting objects with very long names or titles git-svn-id: http://root.cern.ch/svn/root/trunk@8076 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 28, 2004
-
-
Fons Rademakers authored
will print an Error in case the file is larger than 2 GB and the machine has a long of 4 bytes. git-svn-id: http://root.cern.ch/svn/root/trunk@8061 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 27, 2004
-
-
Rene Brun authored
git-svn-id: http://root.cern.ch/svn/root/trunk@8058 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
This patches improves the consistency of the naming convention for the TClass of STL containers. Previous, std::vector<float>, vector<float>, etc. could be considered as 2 different entities by part of the ROOT code. This rationalizes these cases. It should fix all reported related bugs. git-svn-id: http://root.cern.ch/svn/root/trunk@8056 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
- I introduced debugPrint function which prints debugging message to stderr and to the system debugger under Windows. Printing to the system debugger is usfull for debugging pure GUI (without console) appications under MS Windows. git-svn-id: http://root.cern.ch/svn/root/trunk@8053 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
static Long64_t Abs(Long64_t d); static Long64_t Sign(Long64_t a, Long64_t b); static Long64_t Min(Long64_t a, Long64_t b); static ULong64_t Min(ULong64_t a, ULong64_t b); static Long64_t Max(Long64_t a, Long64_t b); static ULong64_t Max(ULong64_t a, ULong64_t b); static Int_t LocMin(Int_t n, const Long64_t *a); static Int_t LocMax(Int_t n, const Long64_t *a); static Int_t BinarySearch(Int_t n, const Long64_t *array, Long64_t value); static Int_t BinarySearch(Int_t n, const Long64_t **array, Long64_t value); static void Sort(Int_t n, const Long64_t *a, Int_t *index, Bool_t down=kTRUE); git-svn-id: http://root.cern.ch/svn/root/trunk@8050 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 25, 2004
-
-
Rene Brun authored
This new package reimplements the previous classes TMatrix and TMatrixD. The new classes should be back compatible with the previous version except the function GetElements. New classes have been introduced for symmetric matrices, lazy matrices. New algorithms (LU, SVD) have been introduced. A new test suite test/stressLinear.cxx is introduced. A complete description of this package will be posted in the coming days. The classes are well documented in the implementation headers. git-svn-id: http://root.cern.ch/svn/root/trunk@8013 27541ba8-7e3a-0410-8455-c3a389f83636
-
Fons Rademakers authored
now their own TFdSet and don't derive anymore from an abstract TFdset base. This is needed since the orguments to the WinNT TFdSet methods are a Long_t (for Win32 SOCKET type which is 64 bits on WIN64) and not simple Int_t. git-svn-id: http://root.cern.ch/svn/root/trunk@8012 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 24, 2004
-
-
Rene Brun authored
TSocket and TMonitor (ak select) now work both under linux and under windows. The main reason was that in windows file descriptors has different format than in unix. - I declared TFdSet class from TSystem.h as abstract one and wrote its implementations: TUnixFdSet (in TUnixSystem) and TWinFdSet (in TWinNTSystem). - I also changed fReadready, fReadmask, fWriteready, fWritemask, fSignals from TSystem to pointers which initiated either as TUnixFdSet or TWinFdSet. - I added select(multiplexing file descriptors) to TWinNTSystem::DispatchOneEvent. Now TMonitor class works correctly. - TWinNTSystem code has been "tidely" cleaned. As a result hserv.C hserv2.C hclient.C macros are now full functional under win32gdk and linux. git-svn-id: http://root.cern.ch/svn/root/trunk@8006 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 23, 2004
-
-
Rene Brun authored
With this patch, rootcint is now aware that it is in a windows environment when parsing the header files. In particular, this repairs the behavior of std::cout. git-svn-id: http://root.cern.ch/svn/root/trunk@7994 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 22, 2004
-
-
Fons Rademakers authored
become 8 bytes long in case of >2GB files). Also an Error() message was still using a wrong format for an offset. git-svn-id: http://root.cern.ch/svn/root/trunk@7971 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 21, 2004
-
-
Rene Brun authored
This patch implements having -q terminating the processs using the return value of the command. git-svn-id: http://root.cern.ch/svn/root/trunk@7964 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
This patch adds the ability to use a global IsA function to handle the execution of TClass::GetActualClass. // This function installs a global IsA function for this class. // The global IsA function will be used if there is no local IsA function (fIsA) // // A global IsA function has the signature: // // TClass *func( TClass *cl, const void *obj); // // 'cl' is a pointer to the TClass object that corresponds to the // 'pointer type' used to retrieve the value 'obj' // // For example with: // TNamed * m = new TNamed("example","test"); // TObject* o = m // and // the global IsA function would be called with TObject::Class() as // the first parameter and the exact numerical value in the pointer // 'o'. // // In other word, inside the global IsA function. it is safe to C-style // cast the value of 'obj' into a pointer to the class described by 'cl'. git-svn-id: http://root.cern.ch/svn/root/trunk@7956 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 20, 2004
-
-
Fons Rademakers authored
and not checked). git-svn-id: http://root.cern.ch/svn/root/trunk@7954 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 19, 2004
-
-
Fons Rademakers authored
git-svn-id: http://root.cern.ch/svn/root/trunk@7949 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
git-svn-id: http://root.cern.ch/svn/root/trunk@7948 27541ba8-7e3a-0410-8455-c3a389f83636
-
Fons Rademakers authored
git-svn-id: http://root.cern.ch/svn/root/trunk@7947 27541ba8-7e3a-0410-8455-c3a389f83636
-
Fons Rademakers authored
to start with "file:" like in TFile::Open() (will just be stripped off). This makes name handling for a plugin for TFile itself symmetric to other TFile plugins. git-svn-id: http://root.cern.ch/svn/root/trunk@7943 27541ba8-7e3a-0410-8455-c3a389f83636
-
Fons Rademakers authored
on glibc >= 2.1. This solves also special case for WINGCC which has no glibc and therefore also does now not have R__SEEK64 set. git-svn-id: http://root.cern.ch/svn/root/trunk@7942 27541ba8-7e3a-0410-8455-c3a389f83636
-
Rene Brun authored
files written by versions 3 or older in update mode git-svn-id: http://root.cern.ch/svn/root/trunk@7933 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 16, 2004
-
-
Rene Brun authored
TBuffer.cxx : use checksum only if the class version is set to the default (1) and the class does not have a Streamer method (IsForeign()==true) TFormula.cxx: fix a typo TClass.cxx: add comment to explicitly the mean of the bits use by TClass::Property TStreamerInfo.cxx: fix problem in the conversion from Double32_t, use newType in GetValue. Fix a recursion problem in TStreamerInfo::Build. git-svn-id: http://root.cern.ch/svn/root/trunk@7921 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 14, 2004
-
-
Fons Rademakers authored
git-svn-id: http://root.cern.ch/svn/root/trunk@7907 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 12, 2004
-
-
Fons Rademakers authored
generating dependencies. git-svn-id: http://root.cern.ch/svn/root/trunk@7896 27541ba8-7e3a-0410-8455-c3a389f83636
-
Fons Rademakers authored
git-svn-id: http://root.cern.ch/svn/root/trunk@7895 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 10, 2004
-
-
Rene Brun authored
This mega patch introduces a new implementation of the STL I/O which is backward and forward compatible. In addition this is more exactly a new implementation or an extension of the container I/O. We are introducing a new abstract interface: "TVirtualContainerProxy", which can be implemented to present a proxy to any collection which the I/O (and TTreeFormula) can use then transparently. The TVirtualContainerProxy interface allows to the I/O system to request some information and to execute some essential function of the container: what kind of object/data does it contain does it contain pointers how to insert data into the container how to retrieve an array of pointer to the elements inside how to create a collection object how to clear the collection how to resize the collection how to streamer the collection (if needed) how to calculate the sizeof the collection how to calculate the number of elements of the collection. Using those primitives, the I/O and TTreeFormula should be able to access any collection. The I/O should also be able to handle the splitting of collections that can be split (i.e. contains a single type of object/data). The current compromise selected between code duplication, performance of the I/O of TClonesArray and vector of pointers and the performance of the I/O of other containers, was to have on function handle all collection as if they were a C-style array of pointers to data. This implies for example that the I/O of vector of object current passes via the construction of temporary array of pointer. The cost of this construction is usually ~Qjust~R the cost of calculating the addresses of the elements and assigning it to an array element. Registering a collection proxy will be similar to static int dummy = GenerateInitInstance((CollectType*)0x0)- >AdoptCollectionProxy(new CollectTypeProxy)); Follows a few details on the modifications made to some of the files and classes. Bytes.h: Work around a problem in the MSVC++ 6.0 optimizer. This should not affect other compilers. String: Included the std::string dictionary into G__Base2.cxx, this insures its presence at all time. Added a new file string.cxx holding the streamer for std::string. RConfig.h Added proper ansi stream configuration for AIX, KCC Added template specialization defect for MSVC TBrowser Start adding the ability to browser non TObject classes TBuffer To handle the reading and writing array of objects, added: Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss, const char* classname); Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const char *classname); void ReadFastArray(void *start , TClass *cl, Int_t n=1, TMemberStreamer *s=0); void ReadFastArray(void **startp, TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0); void WriteFastArray(void *start, TClass *cl, Int_t n=1, TMemberStreamer *s=0); Int_t WriteFastArray(void **startp, TClass *cl, Int_t n=1, Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0); TROOT Enhancement to make the access to gROOT not dependent for the library loading order. In particular we added: ROOT::GetROOT() which should be used instead of gROOT. Improve support for STL. In particular, now STL containers do have a corresponding TClass object TRealData Replace SetStreamer by AdoptStreamer that allow to use not only a streamer function but also streamer object (allowing streamer with a state for Foreign classes) TString: Improve streamer performance TSystem: More consistency of the return value of TSystem::CompileMacro build/unix/makecintdlls.sh Stop making the string.dll config: enhance sgicc makefiles cont: fix TBits::operator= TClassTable now warns for duplicate only for non stl classes TClonesArray fix a typo gpad: Add a new class TInspectObject to enable inspect non TObject classes TRootBrowser : enable inspect non TObject classes TFormula/TTreeFormula To enhance performance switch from using one array fOper which contained the operation code and its arguments to using 2 arrays fActions and fActionParams to store respectively the operation and its parameters. A new function Convert is used to convert old version from the fOper to fActions. This allows cleaner coding and offer optimization opportunities. TTreePlayer Start adding support in MakeClass for STL containers. TRint/TProofServ Insure the loading of the string support Event.cxx make sure to avoid memory over-write stress.cxx Add new parameters stress <nevent> <style> <subbench> <portion> if <subbench> is 1 or higher, print the benchmark results after each test. This allows understand which test is affect by a performance change. portion is a binary field to indicate which test to run. This allows to focus on a particular test. TVirtualCollectionProxy Abstract interface used to access any type of containers from the I/O system and TTreeFormula. See TVectorProxy and TEmulatedVectorProxy for examples. TEmulatedVectorProxy Implementation of a std::vector proxy to be able to read a std::vector without any libraries. TVectorProxy Implementation of TVirtualCollectionProxy for a std::vector for which we have the library. TStreamerInfo.cxx Split in 3 files: TStreamerInfo.cxx TStreamerInfoReadBuffer.cxx TStreamerInfoWriteBuffer.cxx All the ReadBuffer, ReadBufferClones and the new ReadBufferSTL (similarly for WriteBuffer) have been factorized into one function and 2 short wrappers. The new main function expect an array of pointer to the objects (this array is most often of size one). TClonesArray objects pass GetObjectRef(0) to the common ReadBuffer vector<bla*> v pass &(v[0]) vector<bla> needs to create an intermediary array to hold the address This mechanism is sometimes not optimal (vector<blah>) but allows extremely flexibly and extension. Basically, to add support for a new container type using the StreamerInfo mechanism (in particular allows splitting), one 'just' need to implement a TVirtualCollectionProxy, which, in particular, will return an array of address to the object it contains. Even std::map can be handled with this mechanism, since, for I/O purposes, it can be consider as a container of pairs. Add a few optimization, including more caching via a new array of a new struct (fComp). Fixed a problem (re)introduced while implementing the Foreign class CheckSum. Doing: class Event; f = new TFile("Event.root"); resulted in errors. TCint Add proper support for TClass of STL containers. Fix a memory leak. Add support for load TClass via a typedef. Fix a problem with multiple inheritance TClass Fixed a problem (re)introduced while implementing the Foreign class CheckSum. Doing: class Event; f = new TFile("Event.root"); resulted in errors. Add a TClass/TGenericClassInfo/TDataMember Add support for a new interface (TVirtualCollectionProxy) useable for STL containers or any user defined containers. Add support for streamer with are objects (as opposed to free standing function or methods). This allows the user a greater flexibility in writing a streamer. Add a few optimizations Add CanSplit to answer the question for a whole Class (for example some collection can not be splitted). TClassStreamer New class to wrap a class wide streamer ClassStreamerFunc_t typedef for a class wide streamer function TMemberStreamer New class to wrap a specific class member streamer MemberStreamerFunc_t typedef for a specific class member streamer function RootStreamer Macro to specify a free standing streamer object or function for a class For example: RootStreamer(string,std_string_streamer); TStreamerElement: A couple of optimization/simplification. Add support for the new STL I/O Extend the useful TBranchElement: add a connection to the proper TVirtualCollectionProxy add support for STL containers (non-split and split mode) TTree Make the function TTree::GetMakeClass NON-virtual for better efficiency Add support for STL containers TBasket Left (in comment) a yet unproved improvement proposed by Victor. The preliminary tests were inconclusive performance wise and it had (seemingly) problem with backward and forward compatibility. TBranch Performance improvements metautils This is a new package for C++ files shared between rootcint and meta. It contains TClassEdit a class to help determine some property of a class given its class name (stl, template, etc). utils Introduced a new file RStl.cxx to start separating rootcint in modules. Modified rootcint to support the new STL I/O methods. In particular a new class RStl is in charge of doing the generating of code for STL containers. git-svn-id: http://root.cern.ch/svn/root/trunk@7880 27541ba8-7e3a-0410-8455-c3a389f83636
-
- Jan 05, 2004
-
-
Rene Brun authored
git-svn-id: http://root.cern.ch/svn/root/trunk@7843 27541ba8-7e3a-0410-8455-c3a389f83636
-