
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