
John Maddock wrote:
David Abrahams wrote:
I have a header that makes use of Boost.Parameter that basically takes forever to compile with the Intel compiler, and therefore presumably all EDG based front ends.
There used to be a problem in EDG frontend with macro expansions taking forever. It was reported years ago by a customer using Boost on Tru64. We've reported it to EDG and it has been fixed. aCC6 on HP-UX compiles testcase in http://svn.boost.org/trac/boost/ticket/1054 in 7 seconds. This compiler is using EDG Version 3.08. cxx on Tru64 compiles it in ~20 sec. This compiler is using EDG Version 3.04. Perhaps, Intel compiler you are using is using some old version of EDG fronend. bash-2.03$ date ; aCC -c -Iboost x.cpp ; date Fri Jun 15 09:48:58 PDT 2007 Fri Jun 15 09:49:02 PDT 2007 bash-2.03$ cxxosf.zko.hp.com> date; cxx -c -Iboost x.cpp ; date Fri Jun 15 12:49:32 EDT 2007 Fri Jun 15 12:50:03 EDT 2007 cxxosf.zko.hp.com> Thanks, Boris ----- Original Message ----- From: "John Maddock" <john@johnmaddock.co.uk> To: "David Abrahams" <dave@boost-consulting.com> Cc: "Boost mailing list" <boost@lists.boost.org>; <daniel@boost-consulting.com> Sent: Friday, June 15, 2007 11:47 AM Subject: Re: [boost] [parameter] "Infinite" compile times with EDG basedcompilers?
David Abrahams wrote:
I have a header that makes use of Boost.Parameter that basically takes forever to compile with the Intel compiler, and therefore presumably all EDG based front ends. MSVC, gcc and even Borland(!) have no such problems BTW. Is this a known problem or anything that can be fixed inside Boost.Parameter? Otherwise I have an alternative fix I can try - basically not using BOOST_PARAMETER_FUNCTION - as this is the cause of the problem.
A. Can you make a ticket for this and assign it to daniel wallin (danielw)?
It's here: http://svn.boost.org/trac/boost/ticket/1054 and also reported to Intel. The ticket is assigned to you 'cos danielw doesn't exist in the tracker at present?
B. Can you determine whether it's a preprocessing problem or something else?
Yep, the problem occurs when:
typedef typename boost::parameter::binding< args, tag::domain_error_name, domain_error<BOOST_MATH_DOMAIN_ERROR_POLICY> >::type domain_error_type;
is instantiated, and there are a large number of deduced parameters.
Thanks for the fast response on this, John.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost