I would love it if we could somehow help the boost project fix this problem, which does seem fixable, rather than abandon boost - I do think it's a great project, if it could just be more robust in this way.
On Tue, Aug 21, 2012 at 9:29 AM, Piotr Stanczyk <pstanc...@ilm.com> wrote: > Interesting ... what's the bug you mention? > > I suspect that boost python is the rationale for many a projects > dependency on it. > > Piotr > > ------------------------------ > *From:* > openexr-devel-bounces+pstanczyk=ilm....@nongnu.org[openexr-devel-bounces+pstanczyk= > ilm....@nongnu.org] on behalf of Richard Addison-Wood [ > rich...@wetafx.co.nz] > *Sent:* 20 August 2012 19:06 > *To:* Christopher Horvath > *Cc:* openexr-devel@nongnu.org > > *Subject:* Re: [Openexr-devel] boost versions > > I'll chime in here and say that Christopher has done a good job of > describing the fundamental problems with boost. > > For something that is supposed to be the an example of best practices for > C++, boost sure gets in wrong with regards to maintaining backwards > compatibility. > > Even if you are only using boost headers, you can introduce boost version > dependencies referencing the types in your interface. > > When an application uses a version of boost in its SDK, it becomes very > annoying. > > The boost website itself recommends choosing one version of boost and > using it across your whole project. It is like they've never come across > the concept of dynamically linked plugins that are developed independently. > > For what it is worth, the boost implementation of shared_ptr<T> up > through boost 1.47 has a bug with respect to C++ 11. I suspect this bug > could be in some other boost types as well. > > On 08/21/12 04:14, Christopher Horvath wrote: > > The problem has to do with versioning and namespacing. Because there's no > hard & concrete rule for how boost is compiled, linked, versioned, and > installed - it becomes extremely difficult to prevent a compilation that > depends on boost from finding one version of the headers in one location, > but linking against libraries in another location, or something similar. > > This problem keeps rearing its head, and I keep thinking we must have > some sort of consensus solution to it, since it's seemingly solvable. Yet, > here at work, our default distribution of linux puts an unversioned boost > directory in /usr/include and /lib - so I have to carefully check all of my > makefiles to make sure they're looking in my versioned boost installation, > say, "-I/depot/bundles/july2012/boost/boost-1.49.0/include" or > "-L/depot/bundles/july2012/boost/boost-1.49.0/lib", and try to prevent them > from looking in /usr/include or /lib first. > > Furthermore, boost doesn't put versioned namespaces in its own code, and > due to its popularity, this is a very big concern - if two software > components are trying to interact, one of which was built with boost 1.39 > and one which was built with boost 1.49, all sorts of problems will ensue. > I can get around most of this by only using statically linked libraries, > and avoiding making boost objects (other than smart_ptrs) publicly visible > outside the libraries, but still, it's a huge pain. > > I've been in multiple discussions where people have entirely dismissed > using Alembic to solve a problem that it would be perfect for, just because > of the boost dependency. > > > > > On Mon, Aug 20, 2012 at 9:03 AM, Larry Gritz <l...@larrygritz.com> wrote: > >> I'm not sure I understand people's objection to Boost, especially for the >> portions that are header-only. It's solid, very well-vetted, nicely >> cross-platform (HW, OS, compiler), and you can be confident that it will >> continue being maintained for a long long time. With high frequency, its >> solutions to problems are sufficiently best-of-class that they become part >> of the C++ standard itself, with few changes. >> >> Now then, when I write software, I am careful to only use Boost >> *internally*, I never ever allow one of their types to become part of my >> public APIs. The design of its packages do vary in their elegance, and I >> only use a subset. I second the notion that there isn't an especially good >> substitute for boost::python (though I would be happier if it had been part >> of the Python distro itself). >> >> >> On Aug 20, 2012, at 8:38 AM, Christopher Horvath wrote: >> >> Assuming C++11 is being used for the "tr1" stuff that boost provides, >> the big dependency that's difficult to shake is boost::python. It's >> absolutely wonderful for what it does, elegant and lightweight. I've tried >> swig as an alternative, and it's okay, but boost::python is definitely >> nicer. >> >> >> >> On Fri, Aug 17, 2012 at 9:32 PM, Richard Addison-Wood < >> rich...@wetafx.co.nz> wrote: >> >>> Personally, I would recommend avoiding any dependencies on boost. >>> >>> >>> >> -- >> Larry Gritz >> l...@larrygritz.com >> >> >> > > > -- > I think this situation absolutely requires that a really futile and stupid > gesture be done on somebody's part. And we're just the guys to do it. > > > -- I think this situation absolutely requires that a really futile and stupid gesture be done on somebody's part. And we're just the guys to do it.
_______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/openexr-devel