Boost logo

Boost :

Subject: [boost] [chrono] Compatibility issues with 1.44
From: Roland Bock (rbock_at_[hidden])
Date: 2010-08-03 07:17:46


Hi Vicente,

do you have an estimate for an update of Boost.Chrono which is
compatible with the upcoming 1.44 version of boost?

I just tried the daily snapshot provided by Beman with the current
Chrono zip:

* Compilation of Boost.Chrono fails
* Boost.Chrono zip contains changes for parts of Boost.Thread
  Are these still needed/compatible?

Also (not related to 1.44, but also 1.41, at least), there are many
warnings issued by the compiler. It seems to me that they are somehow
related to the constructors of duration, but I haven't been able to
figure them out. These also occur when compiling client code.

A log file is attached. Generated on Ubuntu-10.4, 64bit, gcc-4.4.3

Regards,

Roland

PS:
Snapshot:
http://boost.cowic.de/rc/ (boost-posix-2010-08-02.tar.bz2)

Boost.Chrono:
http://www.boostpro.com/vault/index.php?&direction=0&order=&directory=System

http://svn.boost.org/svn/boost/sandbox/chrono/libs/chrono/doc/html/index.html.


[...]
common.mkdir build/boost/bin.v2/libs/chrono
common.mkdir build/boost/bin.v2/libs/chrono/build
common.mkdir build/boost/bin.v2/libs/chrono/build/gcc-4.4.3
common.mkdir build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release
common.mkdir build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi
gcc.compile.c++ build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi/chrono.o
In file included from libs/chrono/src/chrono.cpp:40:
libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::now()’:
libs/chrono/src/posix/chrono.cpp:27: error: no matching function for call to ‘boost::system::system_error::system_error(int&, const boost::system::error_category& (&)(), const char [21])’
./boost/system/system_error.hpp:43: note: candidates are: boost::system::system_error::system_error(int, const boost::system::error_category&, const char*)
./boost/system/system_error.hpp:39: note: boost::system::system_error::system_error(int, const boost::system::error_category&, const std::string&)
./boost/system/system_error.hpp:36: note: boost::system::system_error::system_error(int, const boost::system::error_category&)
./boost/system/system_error.hpp:33: note: boost::system::system_error::system_error(boost::system::error_code, const char*)
./boost/system/system_error.hpp:30: note: boost::system::system_error::system_error(boost::system::error_code, const std::string&)
./boost/system/system_error.hpp:27: note: boost::system::system_error::system_error(boost::system::error_code)
./boost/system/system_error.hpp:25: note: boost::system::system_error::system_error(const boost::system::system_error&)
libs/chrono/src/posix/chrono.cpp:31: warning: suggest parentheses around ‘&&’ within ‘||’
In file included from ./boost/type_traits.hpp:42,
                 from ./boost/ratio.hpp:38,
                 from ./boost/chrono/chrono.hpp:73,
                 from libs/chrono/src/chrono.cpp:14:
./boost/type_traits/is_convertible.hpp: At global scope:
./boost/type_traits/is_convertible.hpp: In instantiation of ‘const bool boost::detail::is_convertible_basic_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >&, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’:
./boost/type_traits/is_convertible.hpp:295: instantiated from ‘const bool boost::detail::is_convertible_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’
./boost/type_traits/is_convertible.hpp:418: instantiated from ‘boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >’
./boost/utility/enable_if.hpp:36: instantiated from ‘boost::enable_if<boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >, void>’
libs/chrono/src/posix/chrono.cpp:31: instantiated from here
./boost/type_traits/is_convertible.hpp:136: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/type_traits/is_convertible.hpp: In instantiation of ‘const bool boost::detail::is_convertible_basic_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >&, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’:
./boost/type_traits/is_convertible.hpp:295: instantiated from ‘const bool boost::detail::is_convertible_impl<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::value’
./boost/type_traits/is_convertible.hpp:418: instantiated from ‘boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >’
./boost/utility/enable_if.hpp:36: instantiated from ‘boost::enable_if<boost::is_convertible<boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >, void>’
libs/chrono/src/posix/chrono.cpp:31: instantiated from here
./boost/type_traits/is_convertible.hpp:136: warning: initializing argument 1 of ‘static boost::type_traits::yes_type boost::detail::checker<T>::_m_check(T, int) [with T = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’
In file included from libs/chrono/src/chrono.cpp:14:
./boost/chrono/chrono.hpp: In copy constructor ‘boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’:
./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’
In file included from libs/chrono/src/chrono.cpp:40:
libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::now()’:
libs/chrono/src/posix/chrono.cpp:31: note: synthesized method ‘boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’ first required here
libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::now(boost::system::error_code&)’:
libs/chrono/src/posix/chrono.cpp:39: error: no matching function for call to ‘boost::system::error_code::assign(int&, const boost::system::error_category& (&)())’
./boost/system/error_code.hpp:326: note: candidates are: void boost::system::error_code::assign(int, const boost::system::error_category&)
libs/chrono/src/posix/chrono.cpp:45: warning: suggest parentheses around ‘&&’ within ‘||’
libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::system_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::system_clock::from_time_t(time_t)’:
libs/chrono/src/posix/chrono.cpp:55: warning: suggest parentheses around ‘&&’ within ‘||’
libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::monotonic_clock::now()’:
libs/chrono/src/posix/chrono.cpp:66: error: no matching function for call to ‘boost::system::system_error::system_error(int&, const boost::system::error_category& (&)(), const char [24])’
./boost/system/system_error.hpp:43: note: candidates are: boost::system::system_error::system_error(int, const boost::system::error_category&, const char*)
./boost/system/system_error.hpp:39: note: boost::system::system_error::system_error(int, const boost::system::error_category&, const std::string&)
./boost/system/system_error.hpp:36: note: boost::system::system_error::system_error(int, const boost::system::error_category&)
./boost/system/system_error.hpp:33: note: boost::system::system_error::system_error(boost::system::error_code, const char*)
./boost/system/system_error.hpp:30: note: boost::system::system_error::system_error(boost::system::error_code, const std::string&)
./boost/system/system_error.hpp:27: note: boost::system::system_error::system_error(boost::system::error_code)
./boost/system/system_error.hpp:25: note: boost::system::system_error::system_error(const boost::system::system_error&)
libs/chrono/src/posix/chrono.cpp:70: warning: suggest parentheses around ‘&&’ within ‘||’
In file included from libs/chrono/src/chrono.cpp:14:
./boost/chrono/chrono.hpp: In copy constructor ‘boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’:
./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp:838: warning: suggest parentheses around ‘&&’ within ‘||’
In file included from libs/chrono/src/chrono.cpp:40:
libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::monotonic_clock::now()’:
libs/chrono/src/posix/chrono.cpp:70: note: synthesized method ‘boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >::time_point(const boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > >&)’ first required here
libs/chrono/src/posix/chrono.cpp: In static member function ‘static boost::chrono::time_point<boost::chrono::monotonic_clock, boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> > > boost::chrono::monotonic_clock::now(boost::system::error_code&)’:
libs/chrono/src/posix/chrono.cpp:78: error: no matching function for call to ‘boost::system::error_code::assign(int&, const boost::system::error_category& (&)())’
./boost/system/error_code.hpp:326: note: candidates are: void boost::system::error_code::assign(int, const boost::system::error_category&)
libs/chrono/src/posix/chrono.cpp:84: warning: suggest parentheses around ‘&&’ within ‘||’
In file included from libs/chrono/src/chrono.cpp:14:
./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point(const Duration&) [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’:
libs/chrono/src/posix/chrono.cpp:31: instantiated from here
./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’
libs/chrono/src/posix/chrono.cpp:31: instantiated from here
./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’:
libs/chrono/src/posix/chrono.cpp:40: instantiated from here
./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’
libs/chrono/src/posix/chrono.cpp:40: instantiated from here
./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp: In member function ‘Duration boost::chrono::time_point<Clock, Duration>::time_since_epoch() const [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’:
libs/chrono/src/posix/chrono.cpp:50: instantiated from here
./boost/chrono/chrono.hpp:864: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point(const Duration&) [with Clock = boost::chrono::monotonic_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’:
libs/chrono/src/posix/chrono.cpp:70: instantiated from here
./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’
libs/chrono/src/posix/chrono.cpp:70: instantiated from here
./boost/chrono/chrono.hpp:851: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp: In constructor ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::monotonic_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’:
libs/chrono/src/posix/chrono.cpp:79: instantiated from here
./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’
libs/chrono/src/posix/chrono.cpp:79: instantiated from here
./boost/chrono/chrono.hpp:850: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp: In static member function ‘static boost::chrono::duration<Rep, Period> boost::chrono::duration<Rep, Period>::zero() [with Rep = long int, Period = boost::ratio<1l, 1000000000l>]’:
./boost/chrono/chrono.hpp:850: instantiated from ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’
libs/chrono/src/posix/chrono.cpp:40: instantiated from here
./boost/chrono/chrono.hpp:585: warning: suggest parentheses around ‘&&’ within ‘||’
./boost/chrono/chrono.hpp:850: instantiated from ‘boost::chrono::time_point<Clock, Duration>::time_point() [with Clock = boost::chrono::system_clock, Duration = boost::chrono::duration<long int, boost::ratio<1l, 1000000000l> >]’
libs/chrono/src/posix/chrono.cpp:40: instantiated from here
./boost/chrono/chrono.hpp:585: warning: suggest parentheses around ‘&&’ within ‘||’
In file included from libs/chrono/src/chrono.cpp:40:
./boost/system/error_code.hpp: At global scope:
./boost/system/error_code.hpp:214: warning: ‘boost::system::posix_category’ defined but not used
./boost/system/error_code.hpp:215: warning: ‘boost::system::errno_ecat’ defined but not used
./boost/system/error_code.hpp:216: warning: ‘boost::system::native_ecat’ defined but not used

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_USES_STATIC_ASSERT -DBOOST_RATIO_USES_STATIC_ASSERT -DBOOST_SYSTEM_DYN_LINK=1 -DNDEBUG -I"." -c -o "build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi/chrono.o" "libs/chrono/src/chrono.cpp"

...failed gcc.compile.c++ build/boost/bin.v2/libs/chrono/build/gcc-4.4.3/release/threading-multi/chrono.o...
...failed updating 1 target...
...updated 328 targets...


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