There is an Apache incubator project to develop an implementation of the
standard C++ library (their web site is here
http://incubator.apache.org/stdcxx<http://incubator.apache.org/stdcxx/#platforms>).
Currently, in SDO for C++, we use the library provided by whichever platform
we happen to run on. Using the Apache stdcxx library instead would provide
us with a number of benefits

- It is available on a wide range of platforms
- It is the same implementation on all of them (so avoids obscure bugs from
slight differences in C++ libraries)
- It is open source so we can contribute fixes rather than writing around
problems.
- We become better citizens of the Apache community

The one difficulty is that once SDO links against the stdcxx library then
all users of SDO must also do so. I think this gives us two options

1. Just do it, and live with the consequences. In this case we will (one way
or another) pre-req stdcxx on all platforms, and all users of SDO for C++
will be required to use stdcxx as their C++ standard library.

2. Create a build time switch that chooses between whatever the platform
offers (ie the current arrangement) and stdcxx. Presumably defaulting to the
current arrangement.

I prefer option 2 but obviously it somewhat complicates our build process
and perhaps more seriously adds another complication to our test cases.

What does the team think?

Geoff.

Reply via email to