[exception][range] boost/range/size_type.hpp + unexpected dependenciies Exeception -> Units -> Algorithms -> Range -> Concepts

Hi, The regression test signal this error Test output: MinGW-w64-4.5 jc-bell.com - thread - async__async_p / gcc-mingw-4.5.4 Rev 85699 / Mon, 16 Sep 2013 13:58:07 +0000 Compile [2013-09-16 17:53:55 UTC]:fail "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -pedantic -g -mthreads -Wextra -Wno-long-long -Wno-variadic-macros -Wunused-function -pedantic -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED -DBOOST_THREAD_USE_DLL=1 -I".." -c -o "F:\boost\GCC\trunk\results\boost\bin.v2\libs\thread\test\async__async_p.test\gcc-mingw-4.5.4\debug\threading-multi\sync\futures\async\async_pass.o" "..\libs\thread\test\sync\futures\async\async_pass.cpp" In file included from ../boost/range/size.hpp:21:0, from ../boost/range/functions.hpp:20, from ../boost/range/iterator_range_core.hpp:28, from ../boost/range/iterator_range.hpp:13, from ../boost/algorithm/string/replace.hpp:16, from ../boost/units/detail/utility.hpp:25, from ../boost/exception/detail/type_info.hpp:19, from ../boost/exception/detail/object_hex_dump.hpp:15, from ../boost/exception/to_string_stub.hpp:16, from ../boost/exception/info.hpp:16, from ../boost/exception/detail/exception_ptr.hpp:20, from ../boost/exception_ptr.hpp:9, from ../boost/thread/future.hpp:28, from ..\libs\thread\test\sync\futures\async\async_pass.cpp:29: ../boost/range/size_type.hpp:80:5: error: expected ';' before '}' token ../boost/range/size_type.hpp:80:5: error: expected ';' before '}' token ../boost/range/size_type.hpp:87:5: error: expected ';' before '}' token ../boost/range/size_type.hpp:87:5: error: expected ';' before '}' token BOOST_RANGE_CONCEPT_ASSERT((boost::SinglePassRangeConcept<T>)) This is surely due to a changeset on Boost.Range (85690?). Maybe an inclusion to Concepts is missing. Could the maintainer take a look? What is more surprising is the chain of dependencies the inclusion of boost/exception_ptr.hpp conveys. Exeception -> Units -> Algorithms -> Range -> Concepts. Is there a way to break these dependencies? Best, Vicente

On Tue, Sep 17, 2013 at 1:08 PM, Vicente J. Botet Escriba
Thanks for pointing this out. This is being included by exception_ptr only for the demangle function. If this doesn't get resolved soon I'll scrap the demangling call and remove the dependency. -- Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode

On Tuesday 17 September 2013 13:51:02 Emil Dotchevski wrote:
I recently proposed to extract my type_info_wrapper [1] to Boost.Utility. It has support for name demangling. Maybe you could switch to it (after the extraction, of course) instead of Boost.Units? [1] https://svn.boost.org/svn/boost/trunk/boost/log/utility/type_info_wrapper.hp...

On Tue, Sep 17, 2013 at 2:06 PM, Andrey Semashev
Oh, wait. I think I confused Units and Utility. :) I'll take a look. -- Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode

On Wed, Sep 18, 2013 at 1:38 AM, Emil Dotchevski
Hi again, I can see you've disabled type demangling in 1.55 release to remove the dependency. I really liked that feature, it made my logs more readable. Would you consider re-enabling it if the demangling function is implemented in a separate header in boost/detail? There would be no dependency on Boost.Units and in fact Boost.Units and my own code in Boost.Log could be ported to it as well. PS: The recently reviewed Boost.TypeIndex library will have similar code as well, and it can be converted to use that code too. I really hope that library gets accepted soon, so my plans of extracting type_info_wrapper to Boost.Utility are currently on hold.

On Wed, Sep 18, 2013 at 10:18 PM, Vicente J. Botet Escriba
Please take care of this issue. It is blocking a lot of testers.
For what it's worth, I removed units from Boost Exception, to break the dependency Exception -> Units -> Algorithms -> Range -> Concepts. Definitely not worth it, IMO, for what is basically a cosmetic nicety. -- Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode

I cannot reproduce this test failure even after locally reverting Emil's commit that broke the dependency. If there is still a problem, and someone can help me reproduce it, I am happy to look into it. Regards, Nate
participants (4)
-
Andrey Semashev
-
Emil Dotchevski
-
Nathan Ridge
-
Vicente J. Botet Escriba