[bind10-dev] dependency on boost runtime libraries

Jelte Jansen jelte at isc.org
Wed Mar 24 19:59:48 UTC 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

JINMEI Tatuya / 神明達哉 wrote:
> 
> Hmm, maybe we are talking about slightly different types of ABI.  You
> seem to focus on the interface between BIND10 and external packages
> that BIND10 uses (either binary or headers); I also meant the
> interface between BIND10 and third-party applications *that use
> BIND10*.
> 

actually I was too, but even I didn't realize the full scope of the problem yet,
thanks :)

> Consider the case where a user installs a binary (+ headers) form of
> BIND10 package and tries to develop an application using it.  Since
> "FooPTR" would be a typedef of boost::shared_ptr<Foo>, they'll need to
> include the corresponding boost header files as well as
> "isc/bind10/foo.h".  But the boost versions may be different for the
> BIND10 binary and for the developer's environment (or even if it's the
> same other build environment such as the compiler may be different),
> so the binary representations may also differ in the BIND10 binary and
> the developer-compiled objects.
> 

right, i guess it's even worse (what if both our lib and their app *are*
compiled on the same system, but the included headers have changed?)

> In theory STL and other standard library (non builtin) objects have
> the same problem, although it's probably much more stable than boost
> in practice as you said.
> 

right

> There are several approaches to deal with this case:
> - provide the boost header files we use to build the BIND10 binary
>   as well as the BIND10's own header files

yep, I think i was working to this approach, but I'm not sure whether that's
desirable or even feasible.

> - declare that we don't support (or guarantee) this type of
>   compatibility

Can we? Does boost have any form of stability guarantee?

> - hide any non-builtin types from public interfaces (or provide
>   equivalent interfaces only using builtin types)
> 

IMHO, this is the path we should take (and then we still have to decide on
header-only or not and whether to supply those headers :) )

> Each has its pros and cons.  We'll eventually have to make a decision,
> but it'll probably a bit later phase of the development when we have
> more complete set of features.

Well, I'm afraid that if we don't deal with this sooner rather than later, the
problem creeps into every corner...

Jelte

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkuqbzQACgkQ4nZCKsdOncUXUQCgrbHO9vnJUsnuS95RF6FRfZdN
bJQAn38aCMR1ph79u+bTsmAD6FetmmTJ
=wKSL
-----END PGP SIGNATURE-----



More information about the bind10-dev mailing list