Boost logo

Boost :

From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-02-28 12:09:14


John Maddock wrote:
>
> Can you test the attached patch then?

I've started full tests with *modified* patch: see below.

> If you can assure me that the RW
> version check is correct (presumably you will up the version number if the
> issue gets fixed?),

No, we won't. We don't change RW version number, on any platform, and
if we start doing it now, it can break customer code expecting exact
comparison to work.

All we know about this RW bug is that:

 . it is not present in 0x0203 (RW library on Tru64 and AlphaVMS)
 . it is present in 0x02020100 (RW library on HP-UX)
 . it is not present in 0x03000000 (RW library on iVMS)

Tracking the range of RW libraries having this bug would be difficult
and we cannot do it without the help from Rogue Wave Software, Inc.
Also, the RW version numbering is not always consistent: for example,
the library with _RWSTD_VER == 0x0203 is rw libstd v2.0 while the
library with _RWSTD_VER == 0x02020100 is rw libstd v2.2.

For these reasons, I propose to restrict RW version check to a single
library we know for sure has this bug:

#if (BOOST_RWSTD_VER == 0x02020100) && defined(__EDG_VERSION__)

This is the condition I'm running the tests with now.

You've applied the patch for regex_traits.hpp (thank you!), but,
unfortunately, you modified the __HP_aCC version check (in two
places) so it is still broken:

. the original code: !BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(55500))
. in my patch: !BOOST_WORKAROUND(__HP_aCC, < 60000)
. in your patch: !BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(60000))

The condition should be either: "!BOOST_WORKAROUND(__HP_aCC, < 60000)" or
"BOOST_WORKAROUND(__HP_aCC, >= 60000)".

Thanks,
  Boris

----- Original Message -----
From: "John Maddock" <john_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Wednesday, February 28, 2007 5:12 AM
Subject: Re: [boost] [regex] patches for Tru64 and HP-UX

> Boris Gubenko wrote:
>> John,
>>
>> thanks for the reply and for the willingness to apply the patches.
>>
>>> I'm a bit dubious about applying this for a few reasons:
>>> [...]
>>
>> I understand. Let me try to address your concerns. First, since this
>> is a Rogue Library issue, perhaps, boost/concept_archetype.hpp is not
>> the right header for the workaround. I think thatthe proper header
>> would be: boost/config/stdlib/roguewave.hpp . Sorry about that.
>
> Can you test the attached patch then? If you can assure me that the RW
> version check is correct (presumably you will up the version number if the
> issue gets fixed?), and that it has no unfortunate effects on the other
> Boost regression tests (I've checked it fixes the regex issue, but I don't
> want to run the full tests on a Testdrive machine), then I'll commit.
>
> John.
>
> Index: boost/config/stdlib/roguewave.hpp
> ===================================================================
> RCS file: /cvsroot/boost/boost/boost/config/stdlib/roguewave.hpp,v
> retrieving revision 1.15
> diff -u -r1.15 roguewave.hpp
> --- boost/config/stdlib/roguewave.hpp 19 Oct 2005 16:38:40 -0000 1.15
> +++ boost/config/stdlib/roguewave.hpp 28 Feb 2007 10:09:12 -0000
> @@ -125,3 +125,20 @@
> #if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
> # undef BOOST_HAS_LONG_LONG
> #endif
> +
> +#if (BOOST_RWSTD_VER <= 0x02020100) && (BOOST_RWSTD_VER >= 0x02000000) &&
> defined(__EDG_VERSION__)
> +//
> +// Work around a bug in RW 2.0 lib:
> +//
> +#include <iterator>
> +namespace std{
> + template <class _Iterator>
> + inline typename iterator_traits<_Iterator>::iterator_category
> + __iterator_category (const _Iterator&)
> + {
> + typedef typename iterator_traits<_Iterator>::iterator_category
> _IterCategory;
> + return _IterCategory ();
> + }
> +}
> +#endif
> +
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
>
>


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