Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-01-09 10:27:00


"John Maddock" <john_at_[hidden]> writes:

>> I have been playing about briefly attempting to use some of boost-1.30.2
>> with Borlands' new compiler bccx 6.00 (__BORLANDC__ == 0x600). As some
>> may know, this is an EDG based compiler (I think EDG 3.01) using
>> DinkumWare for the STL (and possibly the RTL too).
>>
>> I have attached a new borland.hpp config header. Basically the only
>> workaround I've needed so far has been BOOST_NO_VOID_RETURNS otherwise
>> function fails to work with void. This header would probably be best
>> re-structured by someone as I've basically #def'd out all the current
>> work-arounds and added just the new one at the bottom.
>>
>> The other places I've found work-arounds need is because code only
>> checks against __BORLANDC__ so workarounds are being introduced which
>> aren't necessary for the new compiler. I haven't done this by find and
>> replace, more by when errors have shown. I have changed code such as
>> I'm really wondering who is able to tell whether these changes are good
>> and if anyone is actually trying to get bccx working with boost at the
>> moment (I know it has been mentioned briefly before).
>
> Current cvs should work moderately well with that compiler - all the config
> and type_traits and regex tests are passing for example - however a lot of
> tests fail if you try and build them with debug info (internal compiler
> errors), and there are some strange behaviours when in MSVC compatibility
> mode (ADL doesn't work for example, and as you note the compiler pretends to
> be VC6 which messes up all kinds of things). At some point we will need to
> check all the __BORLANDC__ workarounds : but that's a big job, and at the
> moment the compiler appears too unstable to use it to regularly regression
> test against.

You might also try going into the status directory and running the
tests with:

   bjam -sTOOLS=borland "-sBUILD=<define>BOOST_DETECT_OUTDATED_WORKAROUNDS"

That'll find all places where

   BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(some-earlier-version))

was used.

We really ought to be doing that for each new compiler release, so we
can be sure that we're not using any unneccessary workarounds, but...

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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