As Ben just had to patch something to handle a very old version of boost, I think it might be worth thinking a bit about how our requirements for versions of third party libraries change over time. When IMP started, we decided we needed to support versions of dependencies (boost, swig, scons, python, gcc etc) that are part of the mainstream platforms, eg things like
- latest RHEL/CentOS
- latest ubuntu
- latest XCode/macports
- the version of visual studio on Ben's test machine :-)
(also homebrew and fedora, but they are, in general, strictly newer than things on the list)
So far we have more or less stuck with the versions of the dependencies, rather than the policy (eg, I don't think any of those use boost 1.33 but we still require that we support it). It seems to me it might make sense to keep these as the live requirements, that is, drop old versions as they become older than the versions in the list above.
I think the main immediate effect would be to update to boost 1.40, and gcc 4.4, which would remove a bunch of work around and open things up for a number of boost libraries (foreach for example) and CXX11 features (perhaps even auto and range based for loops :-) although we would have to check with visual studio and the apple compilers).