|
Boost : |
From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-06-18 21:03:55
I just got this message from Ralf, FYI:
--------
The EDG build times are totally out of control. In an attempt to narrow
down the problem, I modified the bjam -d+2 cxx command for minimal.cpp
to use -E instead of -c. Here is a tiny fragment from the output with
######## comments:
namespace boost {
namespace mpl {
struct null_argument;
typedef mpl::int_t<9223372036854775807> null_t;
}
}
#line 25
"/tmp_mnt/net/boa/home1/rwgk/boost_mpl_ublas/boost/mpl/type_list.hpp"
namespace boost {
namespace mpl {
struct type_list_tag;
template<>
struct list_traits<type_list_tag>
: mpl::basic_list_traits<type_list_tag>
{
typedef mpl::null_argument null_argument;
};
######## Until this point output is fast, with only a few minor delays.
######## Then the output stops completely for 40 seconds, after which
######## the T0, T1, ... are added slowly one by one, then it pauses
######## again for a ~minute at "struct type_list" before printing a
######## considerable amount of more output. This pattern is repeated
######## a few times.
######## Total time to pre-process minimal.cpp: 6 minutes 43 seconds!
template< typename T0 = mpl::null_argument , typename T1 =
mpl::null_argument\
, typename T2 = mpl::null_argument , typename T3 = mpl::null_argument ,
typen\
ame T4 = mpl::null_argument , typename T5 = mpl::null_argument , typename
T6 =\
mpl::null_argument , typename T7 = mpl::null_argument , typename T8 =
mpl::nu\
ll_argument , typename T9 = mpl::null_argument , typename T10 =
mpl::null_argu\
ment , typename T11 = mpl::null_argument , typename T12 =
mpl::null_argument ,\
typename T13 = mpl::null_argument , typename T14 = mpl::null_argument >
struct type_list
: mpl::list_factory< type_list_tag, T0 , T1 , T2 , T3 , T4 , T5 , T6 ,
T7\
, T8 , T9 , T10 , T11 , T12 , T13 , T14 >::type
{
typedef typename mpl::list_factory<
type_list_tag
, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ,
T12 ,\
T13 , T14
>::type type;
};
}
}
The full preprocessor output is here:
http://cci.lbl.gov/~rwgk/tmp/minimal_cpp_cxx_E_output
Is this enough of a clue? Is there hope that pre-preprocessed files
could alleviate the compile-time problems?
+---------------------------------------------------------------+
David Abrahams
C++ Booster (http://www.boost.org) O__ ==
Pythonista (http://www.python.org) c/ /'_ ==
resume: http://users.rcn.com/abrahams/resume.html (*) \(*) ==
email: david.abrahams_at_[hidden]
+---------------------------------------------------------------+
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk