|
Boost : |
From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-02-23 23:13:33
Attached patches for 3 regex library headers for the issues with regex
library test concept_check on Tru64/cxx and HP-UX/aCC6 described in:
<http://thread.gmane.org/gmane.comp.lib.boost.devel/154587>
. concepts.hpp_patch (necessary for Tru64 and VMS)
. concept_archetype.hpp_patch (necessary for HP-UX)
. regex_traits.hpp_patch (necessary for HP-UX)
. The patch for concepts.hpp adds char_type to the explicit specialization
of template std::char_traits on type boost::char_architype. char_type is
necessary for the platforms using Rogue Wave V2.0 (Tru64 and AlphaVMS)
and RW V3.0 (iVMS).
While it is not necessary for HP-UX/aCC6 using RW V2.2, it does not
break it. Adding char_type also does not break compilation on HP-UX
with Gnu libstdc++ and STLport.
In the patch, char_type is conditionalized as the following:
template<> struct char_traits<boost::char_architype>{
#if defined(__DECCXX) && BOOST_WORKAROUND(_RWSTD_VER, >= 0x0203)
typedef boost::char_architype char_type;
#endif
};
so it affects only Tru64, AlphaVMS and iVMS. Actually, I don't think
that any conditionalization is necessary because adding this typedef
does not seem to do any harm.
If this patch is applied, regex library test concept_check can be removed
from explicit-failures-markup.xml for toolset "hp_cxx-71_006_tru64" (this
is release platform).
. The patch for concept_archetype.hpp adds overload for
std::__iterator_category returning __unknown_iterator_tag.
This overload allows std::basic_string to be constructed, as John Maddock
put it in:
<http://archives.free.net.ph/message/20060824.111121.1b255f03.en.html>
from "iterator types it doesn't know about".
This patch is necessary for RW V2.2. I've conditionalized it with:
#if defined(__HP_aCC) && BOOST_WORKAROUND(_RWSTD_VER, == 0x02020100)
but I think, that 'defined(__HP_aCC)' can be omitted because this is a
pure Rogue Wave library issue. I conditionalized it the way I did out
of fear of breaking other platforms using the RW library that I cannot
test the patch on.
. The patch for regex_traits.hpp changes aCC - specific conditionalization
which is wrong for aCC6. I have no idea why this conditionalization was
necessary in the first place, but I did not remove it: I just restricted
it to pre-aCC6 compilers.
With patches for concept_archetype.hpp and regex_traits.hpp, regex
library test concept_check passes on HP-UX. Also, tr1 library tests
std_test_regex and test_regex that were previously failing, now pass.
If the patches for concept_archetype.hpp and regex_traits.hpp are
acceptable, please, apply them. If they are applied to HEAD only,
please, mark regex library test concept_check and tr1 library tests
std_test_regex and test_regex expected failures in 1.34 on HP-UX/aCC6
(toolset "acc").
Thanks,
Boris
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk