Re: [ROOT] Root Conflicts with Windows

From: Valeri Fine (Faine) (fine@bnl.gov)
Date: Tue Sep 26 2000 - 20:03:12 MEST


Hello RootWorld.

Everything fine except  what you are talking about has nothing to do with the original problem Dr. D. Sideris  complained about.

To provide backward / forward compatibles across  the various Windows flavor(16-bit Windows 3.1, Windows 95, Windows NT, 16-bit
Unicode and 8-bit
ASCII applications) Microsoft has to employ CPP MACROS !!!

No "namespace"  can help here !!!

The current ROOT remedy is  provided via root/base/inc/Windows4Root.h file
One has to include that into his / her source code. or look it up and build his/her
own one.

 Another solution is to don't use the names those  clash with VC++ macro
names within  only TVirtualX / TSystem classes

     Valery


----- Original Message -----
From: Matthew D. Langston <langston@SLAC.stanford.edu>
To: John Zweizig <jzweizig@ligo.caltech.edu>
Cc: Fons Rademakers <Fons.Rademakers@cern.ch>; Dr. D. Sideris <d.sideris@ic.ac.uk>; <roottalk@pcroot.cern.ch>
Sent: 26 сентября 2000 г. 13:35
Subject: Re: [ROOT] Root Conflicts with Windows


> Hi John,
>
> You do recompile your code when you switch to a new version of ROOT, don't
> you?  Since the interfaces to the ROOT shared libraries aren't versioned,
> not recompiling your code exposes your users to an incredible amount of
> risk.  I would hope that the ROOT Team wouldn't even consider that forcing a
> recompile to accommodate a ROOT upgrade is reason enough to not move to
> namespaces.
>
> Putting each release of ROOT into its own namespace provides a tremendous
> benefit.  It would force you to recompile your code when changing to a
> different version of ROOT, which is the only safe way to use the ROOT
> libraries in the absence of versioned interfaces to the libraries.  It also
> documents your code as to which version of ROOT your code depends on.
> Finally, the compiler and linker (as opposed to the documentation) protect
> you from incompatibilities.
>
> Moving ROOT into a unique namespace for each release of ROOT wouldn't
> necessarily change the way that you write your code initially.  For example,
> the following two lines in the configuration file for a project are all that
> would be required to switch to a namespace-enabled version of ROOT:
>
> namespace ROOT = ROOT_2_25_03;
> using namespace ROOT;
>
> Nothing else in the user's source code would have to change.  I think most
> users could handle this.
>
> Regards, Matt
>
> ----- Original Message -----
> From: "John Zweizig" <jzweizig@ligo.caltech.edu>
> To: "Matthew D. Langston" <langston@SLAC.Stanford.EDU>
> Cc: "Fons Rademakers" <Fons.Rademakers@cern.ch>; "Dr. D. Sideris"
> <d.sideris@ic.ac.uk>; <roottalk@pcroot.cern.ch>
> Sent: Tuesday, September 26, 2000 10:05 AM
> Subject: Re: [ROOT] Root Conflicts with Windows
>
>
> >
> >
> > On Tue, 26 Sep 2000, Matthew D. Langston wrote:
> >
> > > Why not put each release of ROOT into a separate namespace, i.e.
> > >
> > > namespace ROOT_2_25_03
> > > {
> > >    ...
> > > }
> >
> > I for one don't want to have to modify and recomile all my code each time
> > the root version changes. namespace Root would be sufficient.
> >
>
>



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:33 MET