Re: [ROOT] Root Conflicts with Windows

From: Matthew D. Langston (langston@SLAC.stanford.edu)
Date: Tue Sep 26 2000 - 19:35:08 MEST


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