Subject: Re: [boost] [thread] Boost.Thread defines boost::move which conflicts with Boost.Move
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-01-17 19:14:35


Le 17/01/12 19:42, Vicente J. Botet Escriba a écrit :
> Le 17/01/12 16:19, Jürgen Hunold a écrit :
>> Hi Vicente,
>>
>> On Monday, 16. January 2012 19:51:21 Vicente J. Botet Escriba wrote:
>>> I have adapted your patch and many other tickets and committed the
>>> whole
>>> on trunk at revision 76543.
>>>
>>>
>>> * [@http://svn.boost.org/trac/boost/ticket/2741 #2741] Proposal to
>>> manage portable and non portable thread attributes.
>>> * [@http://svn.boost.org/trac/boost/ticket/6195 #6195] c++11
>>> compliance:
>>> Provide the standard time related interface using Boost.Chrono.
>>> * [@http://svn.boost.org/trac/boost/ticket/6224 #6224] c++11
>>> compliance:
>>> Add the use of standard noexcept on compilers supporting them.
>>> * [@http://svn.boost.org/trac/boost/ticket/6226 #6226] c++11
>>> compliance:
>>> Add explicit bool conversion from locks.
>>> * [@http://svn.boost.org/trac/boost/ticket/6230 #6230] c++11
>>> compliance:
>>> Follows the exception reporting mechanism as defined in the c++11.
>>> * [@http://svn.boost.org/trac/boost/ticket/6272 #6272] c++11
>>> compliance:
>>> Add thread::id hash specialization.
>>> * [@http://svn.boost.org/trac/boost/ticket/6273 #6273] c++11
>>> compliance:
>>> Add cv_status enum class and use it on the conditions wait functions.
>>> * [@http://svn.boost.org/trac/boost/ticket/6194 #6194] Adapt to
>>> Boost.Move.
>>>
>>> Fixed Bugs:
>>>
>>> * [@http://svn.boost.org/trac/boost/ticket/2575 #2575] Bug- Boost
>>> 1.36.0
>>> on Itanium platform.
>>> * [@http://svn.boost.org/trac/boost/ticket/4921 #4921]
>>> BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB are crucial and need
>>> to be
>>> documented.
>>> * [@http://svn.boost.org/trac/boost/ticket/5013 #5013] documentation:
>>> boost::thread: pthreas_exit causes terminate().
>>>
>>> * [@http://svn.boost.org/trac/boost/ticket/5351 #5351] interrupt a
>>> future get boost::unknown_exception.
>>> * [@http://svn.boost.org/trac/boost/ticket/5516 #5516] Upgrade lock is
>>> not acquired when previous upgrade lock releases if another read
>>> lock is
>>> present.
>>> * [@http://svn.boost.org/trac/boost/ticket/5990 #5990]
>>> shared_future<T>::get() has wrong return type.
>>> * [@http://svn.boost.org/trac/boost/ticket/6174 #6174] packaged_task
>>> doesn't correctly handle moving results.
>> I would have liked separate smaller commits for those. One big one is
>> harder
>> to debug.
> Hi,
>
> sorry for the disturbance. Yes, I know that this was a too big commit,
> but as I was cummulated a lot of dev, it was quite complicated to
> commit them separately.
>>> I have tested it on Mac gcc and clang, Windows MSVC-10, MinGw
>>> gcc-4.6.0 0x.
>>>
>>> I have some trouble yet on thread constructors.
>>> Hopping I have not introduced other regressions on other platforms.
>> Well, it seems my code is now broken with suspicious errors from
>> Boost.TypeTraits:
>>
>> In file included from BOOST_ROOT/boost/chrono/duration.hpp:42:0,
>> from BOOST_ROOT/boost/chrono/time_point.hpp:33,
>> from BOOST_ROOT/boost/thread/locks.hpp:15,
>> from BOOST_ROOT/boost/thread/pthread/mutex.hpp:12,
>> from BOOST_ROOT/boost/thread/mutex.hpp:16,
>> from BOOST_ROOT/boost/pool/detail/mutex.hpp:14,
>> from BOOST_ROOT/boost/pool/poolfwd.hpp:24,
>> from BOOST_ROOT/boost/pool/pool.hpp:27,
>> from myfile.h:18,
>> from myfile.cpp:10:
>> BOOST_ROOT/boost/type_traits/common_type.hpp:121:34: error:
>> ‘declval_b’ is not
>> a type
>> BOOST_ROOT/boost/type_traits/common_type.hpp:121:46: error: expected
>> ‘,’ or
>> ‘...’ before ‘?’ token
>> BOOST_ROOT/boost/type_traits/common_type.hpp:121:73: error: ISO C++
>> forbids
>> declaration of ‘BOOST_TYPEOF_TPL’ with no type [-fpermissive]
>> BOOST_ROOT/boost/type_traits/common_type.hpp:121:73: error: expected
>> ‘;’ at
>> end of member declaration
>> BOOST_ROOT/boost/type_traits/common_type.hpp:121:75: error: invalid
>> use of
>> template-name ‘boost::type’ without an argument list
>>
>> "myfile.cpp" compiles cleanly with 1.48.0 and trunk before 76543.
>>
>> Any ideas or do I have to build a testcase for this?
>>
>>
>
> Do you know if the test pass for type_traits/common_type on your
> configuration? or Boost.Chrono?
>
> I suspect that there are some configurations that doesn't support it
> and I should have to use Boost.Chrono conditionally. BTW, which
> platform/compiler are you using? Please, could you make a ticket, I
> will try to introduce the conditional use of Boost.Chrono today.
>
Hi,

I have updated Boost.Thread (Committed revision 76570) so that the user
can stay that Boost.Thread must not use Boost.Chrono. You need to define
BOOST_THREAD_DONT_USE_CHRONO to this effect. Please could you update the
trunk, try it and tell me if this is satisfactory for you?

Best,
Vicente