Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-08-14 14:13:48


"Fernando Cacciola" <fernando_cacciola_at_[hidden]> writes:

> David Abrahams <dave_at_[hidden]> wrote in message
> news:u1xvonvob.fsf_at_boost-consulting.com...
>> "Fernando Cacciola" <fernando_cacciola_at_[hidden]> writes:
>>
>> > David Abrahams <dave_at_[hidden]> wrote in message
>> > news:ufzk5uply.fsf_at_boost-consulting.com...
>> >> "Fernando Cacciola" <fernando_cacciola_at_[hidden]> writes:
>> >>
>> >> >
>> >> > There are still problems with Optional, related to some compilers
>> >> > not finding std swap(). I wrote the original code following
>> >> > compressed_pair.hpp, which is via unqualified call (to activate
>> >> > ADL), plus a using declaration at function scope for GCC. Recently,
>> >> > Jens Maurer patched it adding an alternative using declaration at
>> >> > namespace scope (optional_detail) for GCC, but this seems not to
>> >> > work as the regressions show.
>> >> >
>> >> > I don't have access to any of the failing compilers
>> >>
>> >> Which compilers are failing and where are the regression report pages?
>> >>
>> > Sorry for the delay, I was leaving the office when you posted this....
>> >
>> > Most problems related to swap ocurr with GCC>3.3
>>
>> Well, 3.4 isn't even a released compiler so As far as I'm concerned
>> it doesn't count.
> OK.
>
>> 3.3.x is another story.
>>
>> > and VC==6.0
>>
>> Hmm.
>>
>> > It appears that this problem ocurrs both with 1.30.0 and the current rc 1.30.2
>> >
>> > On Linux_1_30_0:
>> > gcc3.3:
> http://boost.sourceforge.net/regression-logs/cs-Linux-1_30_0-links.html#optional_test
>> > gcc-3.3
>> > gcc3.3.1:
> http://boost.sourceforge.net/regression-logs/cs-Linux-1_30_0-links.html#optional_test
>> > gcc-3.3.1
>>
>> <snip>
>>
>> Unfortunately, nearly all of these links point to invalid targets so
>> my browser doesn't find them :(. Could you just post links to the
>> summary page one level up?
>>
> Sure.
>>From the main status page, at: http://boost.sourceforge.net/regression-logs/
> The link that reads "(Linux-1_30_0)", under the title "Linux", goes to:
>
> http://boost.sourceforge.net/regression-logs/cs-Linux-1_30_0.html
>
> There are the failures I've shown for gcc3.3 and gcc3.3.1
>
> This page shows the regression for 1.30.0 right?
> But they show that the newer gcc failed (without Jens patch).
>
>
>> > On Linux: All tests passed. (how come?
>>
>> I'm not sure what you mean. If it doesn't say 1_30_0 in the page
>> it's probably a test of the HEAD revision.
>>
> The page is: http://boost.sourceforge.net/regression-logs/cs-Linux.html
> So it should correspond to the HEAD revision.
> IIUC, the HEAD revision contains Jen's broken patch, so this one should fail.

I am only concerned with RC_1_30_0 here.

> I think that the correct patch is to revert Jens' fix.
> (go back to revision 1.9).
>
> Can you and others run a quick test to see if this fix is correct?

RC_1_30_0 already works with GCC-3.2 work for me. I checked in this
patch to fix vc6/7:

Index: optional_test.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/optional/test/optional_test.cpp,v
retrieving revision 1.7
retrieving revision 1.7.2.1
diff -w -u -w -u -r1.7 -r1.7.2.1
--- optional_test.cpp 30 Jan 2003 22:13:22 -0000 1.7
+++ optional_test.cpp 14 Aug 2003 14:40:41 -0000 1.7.2.1
@@ -16,6 +16,10 @@
 #include<stdexcept>
 #include<string>
 
+#ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+# include <boost/get_pointer.hpp>
+#endif
+
 #define BOOST_ENABLE_ASSERT_HANDLER
 
 #include "boost/optional.hpp"

-- 
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