Boost logo

Boost :

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


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