Boost logo

Boost :

From: Jeff Garland (jeff_at_[hidden])
Date: 2006-05-07 17:36:46


Nicola Musatti wrote:

> I don't agree. Why remove a support that is there and has been through
> several Boost releases? I understand that library authors wishing to
> evolve their libraries are entitled to choose which compilers they plan
> t osupport and the amount of effort they wish to devote to supporting
> obsolete compilers, but if it works, why break it?

Because, I have to maintain several versions of code that have the
potential for different bugs. In date_time the from_string/to_string
methods were written early on and were carefully crafted to work with
VC6, Borland, etc. Even now, like yesterday actually, a new failure
mode will show up in these functions. In the meantime, I've completely
rewritten the i/o subsystem -- it's much more flexible and robust. It
supports wide chars, is heavy on templates, and breaks on a bunch of old
compilers -- basically it's disabled on all the legacy compilers.

Now I could trivially rewrite the from_string/to_string using the new
i/o code and fix any issues in one place, but I can't do it without
breaking old compiler support. In addition, I have a second variant of
i/o code on the old compilers to maintain and fix bugs for. And last,
but not least, the only reason date_time isn't header-only at this point
is the legacy i/o code.

So all of this is a big pain for me and that's why I'm so vocal about
this release being the end of the line for date_time support of old
compilers and standard libraries. When I look at the global boost
situation it pains me to see library authors dedicated to defining and
evolving the future of C++ spending their time trying to make these
non-compliant tools work. Every minute they spend adjusting for the old
compilers is a minute taken away from something better for the future of
C++ programmers overall. It's my judgment overall that we've crossed
over the line where it's far better for us to focus on the future rather
than the past. A Boost-wide deprecation of the old compilers/standard
libs takes the brakes off the forward progress.

BTW, as a little note of history, when I first used Boost 5 or 6 years
ago now, many of the libraries were only 'marginally portable' -- mostly
because typical compilers of the day were VC6 and g++ 2.93. All sorts
of libraries broke different compilers in different ways. The standard
libraries of the day were mostly just bad. Now we have a whole breed of
excellent compilers/standard libs that will compile and run a much
larger collection of Boost libraries. This is a huge leap forward from
where we were. I believe part of that progress was brought about by
Boost "pushing things" forward. The way I see it, without Boost
continuing to push, much of the life would come out of the C++
evolution. I want to maximize the push now because we still have much
work to do.

Jeff


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk