Boost logo

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