[C++-sig] Python, Boost.Python, and SCons
Ralf W. Grosse-Kunstleve
rwgk at yahoo.com
Sun Jul 4 09:05:14 CEST 2004
--- Jonathan Brandmeyer <jbrandmeyer at earthlink.net> wrote:
> > I've only recently started learning how to use Scons, and not with Boost
> > yet. There is a way to use timestamps rather than md5 hashes to check
> > dependency relationships.
> > SourceSignatures('timestamp')
The last time I tried (about 18 months ago) it didn't help. I believe the
problem is that the scanner still has to traverse the files, looking for the
#include directives. I didn't try combining timestamps and --implicit-cache,
though... but for several reasons I am not keen to switch to time stamps
> > Does that help? This sounds like a major scalability problem to me.
It is a little bit of a problem, but you can work around it to some degree
using the CPPFLAGS trick. The remaining waiting times are probably unavoidable
if you want the high degree of automation that SCons provides. However, I often
use another simple trick: I capture the output from scons for the module that I
am currently working on, put it in a sh script and execute that script to
compile and link just that one module. This reduces the waits to zero. When I
am done debugging I am happy to wait the 15 seconds for SCons to look for all
the side effects and to take over again.
Let me say again the SCons is truly awesome. In the grand scheme of things my
complaints are minor issues. Like any system of non-trivial complexity, SCons
has a few "features" that one has to get used to and learn how to work around.
> Never mind, I see now that you mean the preprocessor's scanning to
> generate the dependency tree. Ungh.
No, the preprocessor is fortunately not involved. SCons is doing all the work
by itself. Under Linux with g++ this doesn't make a big difference time-wise,
but under Tru64 Unix "make depend" (using cxx) takes almost as long as
compiling everything. SCons is *much* faster in this case.
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
More information about the Cplusplus-sig