Great, thanks for the info Peter, much appreciated. 

Ollie 

----- Original Message -----

> From: "Peter Hillman" <pet...@wetafx.co.nz>
> To: openexr-devel@nongnu.org
> Sent: Monday, 14 January, 2013 6:45:06 AM
> Subject: Re: [Openexr-devel] Patch-compatibilty with versioned
> namespaces

> Hi Ollie!

> > Am I right in saying that, without versioned namespaces, patches
> > are always binary compatible and minor versions always
> > incompatible?
> Yes, this should be the case
> > Is there a patch-compatible namespacing method already provided
> > (and if so, what is it)?

> The existing method is patch-compatible: patches will still be
> released
> with the _2_0_0 namespace. We will only move from on from _2_0_0 and
> .so.20 if binary compatibility has to be broken.
> So, v2.0.X releases would all use the _2_0_0 namespace for all
> classes.

> If binary compatibility needs to be broken, we will most likely
> update
> the effected libraries to namespace _2_1_0, at which time the .so
> version number will be bumped up to .so.21. This way, a large
> application can safely load both old and new libraries. Indeed, this
> ability is one of the reasons for switching to this versioned
> namespace
> scheme.

> > What's the soname version number based on?
> The soname version number (probably) tracks the first two digits of
> the
> namespace version number.

> (the last digit in the namespace version is somewhat misleading, as
> it
> doesn't imply patch level: it's there only for an edge case of
> providing
> multiple versions of an object within the same .so but in different
> namespaces, which we're really hoping we don't need to do in official
> releases, but for internal builds might be the easiest way out of a
> hole)

> At least, that's my understanding of the plan!

> Peter

> On 09/01/13 03:10, Ollie Harding wrote:
> > Hi,
> >
> > I wonder if somebody could clarify some versioning info for me, or
> > point me at the bits of the docs which I've skimmed over too
> > quickly?
> >
> > I'm building v2.0.0 using the --enable-namespaceversioning flag for
> > ./configure, which gives me e.g.
> >
> > Imath_2_0_0::SingMatrixExc::~SingMatrixExc()
> >
> > This will of course mean that I cannot drop in a future v2.0.1
> > library since the Imath_2_0_0 symbols will no longer exist,
> > although the library will presumably still share the .so.20
> > soname. I suspect I'm using the wrong method of making a unique
> > namespace, as I in fact want a namespace which retains patch
> > compatibility, e.g. maybe Imath_2_0.
> >
> > So my questions are:
> >
> > * Am I right in saying that, without versioned namespaces, patches
> > are always binary compatible and minor versions always
> > incompatible?
> > * Is there a patch-compatible namespacing method already provided
> > (and if so, what is it)?
> > * What's the soname version number based on?
> >
> > Many thanks,
> >
> > Ollie
> >
> > _______________________________________________
> > Openexr-devel mailing list
> > Openexr-devel@nongnu.org
> > https://lists.nongnu.org/mailman/listinfo/openexr-devel

> _______________________________________________
> Openexr-devel mailing list
> Openexr-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/openexr-devel
_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to