2012/2/19 Nathaniel Smith <n...@pobox.com> > On Sun, Feb 19, 2012 at 9:16 AM, David Cournapeau <courn...@gmail.com> > wrote: > > On Sun, Feb 19, 2012 at 8:08 AM, Mark Wiebe <mwwi...@gmail.com> wrote: > >> Is there a specific > >> target platform/compiler combination you're thinking of where we can do > >> tests on this? I don't believe the compile times are as bad as many > people > >> suspect, can you give some simple examples of things we might do in > NumPy > >> you expect to compile slower in C++ vs C? > > > > Switching from gcc to g++ on the same codebase should not change much > > compilation times. We should test, but that's not what worries me. > > What worries me is when we start using C++ specific code, STL and co. > > Today, scipy.sparse.sparsetools takes half of the build time of the > > whole scipy, and it does not even use fancy features. It also takes Gb > > of ram when building in parallel. > > I like C++ but it definitely does have issues with compilation times. > > IIRC the main problem is very simple: STL and friends (e.g. Boost) are > huge libraries, and because they use templates, the entire source code > is in the header files. That means that as soon as you #include a few > standard C++ headers, your innocent little source file has suddenly > become hundreds of thousands of lines long, and it just takes the > compiler a while to churn through megabytes of source code, no matter > what it is. (Effectively you recompile some significant fraction of > STL from scratch on every file, and then throw it away.) >
In fact Boost tries to be clean about this. Up to a few minor releases of GCC, their headers were a mess. When you included something, a lot of additional code was brought, and the compile-time exploded. But this is no longer the case. If we restrict the core to a few includes, even with templates, it should not be long to compile. -- Information System Engineer, Ph.D. Blog: http://matt.eifelle.com LinkedIn: http://www.linkedin.com/in/matthieubrucher
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion