[Numpy-discussion] [ANN] numscons 0.3.0 release

David Cournapeau david@ar.media.kyoto-u.ac...
Fri Jan 25 02:20:50 CST 2008

dmitrey wrote:
> Hi all,
> I don't know much about what are these scons are, if it's something 
> essential (as it seems to be from amount of mailing list traffic) why 
> can't it be just merged to numpy, w/o making any additional branches?
scons is a build system, like make. The difference being that 
sconscripts (makefiles for scons) are written in python, and well 
supported on windows.

The standard way to build python extension is to use distutils, but 
distutils itself is difficult to extend (the code is basically 
spaghetti, not maintained and not documented), and to be fair, numpy's 
needs go way beyond the usual python extension: we want to control 
optimization flags, we need fortran, we depend on a lot of external 
libraries we need to check, etc... numpy uses distutils extension 
(numpy.distutils), to support fortran and other goodies. But because it 
is based on distutils, it has inherited some of the distutils' problems; 
in particular, it is not possible to build dynamically loaded libraries 
(necessary for ctypes-based extensions), it is difficult to check for 
additional libraries, etc...

So instead, I plug scons in distutils, so that all C code in numpy is 
built through sconscripts. But the build system arguably being one of 
the most crucial part of numpy, it is necessary to do changes 
incrementally in branches (the code changes are big: several thousand of 
python code, which is difficult to test by nature).



More information about the Numpy-discussion mailing list