
Edward Diener wrote:
I am not trying to get Boost to not support BCB, since I have used it significantly in the past and am using its prior release, BCB6, currently on a project on which I am working but...
I appreciate that, and your many contributions to the Borland community at the time.
1) I submitted a number of compiler bug reports in Borland's bug tracking system circa late 2002, and one even in 2000, many of which were taken from Boost's reports and verified by myself. I provided test code to show the bugs in the compiler.
2) Very few of these have been fixed in the latest release of their compiler, while a great many still remain, are supposedly still open and being "investigated" still over 3 years later.
The public status of bug reports at Borland is a little strange. There is not a lot between 'bug reported' and 'bug fixed', so it is hard to see when work is happening. Note that quite some time in those 3 years was spent developing another C++ product, C++BuilderX, which would not be back-compatible for existing projects, but would have a new conforming compiler based on an EDG front end. That project seems to be on hold, as customers obviously wanted to take their old code with them! So progress on BCB6 issues will appear slow if you think in terms of 4 years work - unfortunately that has not been the case.
This shows to me, unfortunately, that Borland is still not serious about fixing compiler bugs
I know Borland spent significant time solving bugs with object lifetimes. These are far more significant to 'regular' users and would affect usage of Boost libraries too - simply not in your average regression test case that does not look for how many times destructors were called, or that they are called on valid objects. The fixes for intialization, and aggregate handling that comes with it, at least mean BCB2006 should pass the array tests - although I am not aware of any other new passes yet. I am not sure if the benefit shows up anywhere else in Boost though. Many of the assertions in the compiler now give error messages where they could not be easily fixed - so at least there is a chance of diagnosing the problem and putting in a workaround. It would be better if there was no compiler bug at all, but this is progress. I know there were also fixes in preprocessor, and a little bit on the template handling. There clearly remains quite a bit of work though :?( Now that a lot of re-engineering of the toolchain has been finished, I am optimistic that we will continue to see compiler fixes at a faster rate - although I fear it will be some time before we see a 'fully' conforming compiler. -- AlisdairM