Re: [Numpy-discussion] Scons and numpy, second milestone: all numpy built with scons.

2007-10-18 Thread David Cournapeau
Albert Strasheim wrote:
> Hello
>
> Firstly, great work. I always thought SCons was the way to go for
> NumPy and SciPy, and you've pulled it off.
>
>> So basically, I believe most of the things planned in
>> http://projects.scipy.org/scipy/numpy/wiki/DistutilsRevamp are now
>> available because they are available in scons, if numpy developers
>> decide to follow the scons route. Before being usable, I need to finish
>> fortran support and blas/lapack/atlas detection: once this is done,
>> numpy should be able to support some platforms not supported yet (intel
>> compiler on windows, sun compiler with performance libraries, etc...),
>> which was the reason I started this work in the first place.
>
> I don't think you should make the autodetection of BLAS and LAPACK too
> auto. A .cfg file like mpi4py's mpi.cfg (almost like NumPy's site.cfg,
> but simpler) would be great. This way, you can provide a few default
> build configurations for common platforms, but still make it easy for
> people to configure their build exactly the way they want it, if they
> so choose.
>
I agree it should be overridable (I have implemented a NumpyCheckLib, 
which is just a CheckLib overridable with a site.cfg; I still have to 
implement the others checkers). But I think it should work out of the 
box, that is if you have a usable blas and lapack in standard 
directories, then you should not have to do anything; for this, I really 
think setting default configuration is NOT the way to go. The autoconf 
way is much better IMHO, because it would be able to use other compilers 
without trouble. It would also detect configuration problems before 
compilation in most cases,

cheers,

David
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Scons and numpy, second milestone: all numpy built with scons.

2007-10-18 Thread Albert Strasheim
Hello

Firstly, great work. I always thought SCons was the way to go for
NumPy and SciPy, and you've pulled it off.

> So basically, I believe most of the things planned in
> http://projects.scipy.org/scipy/numpy/wiki/DistutilsRevamp are now
> available because they are available in scons, if numpy developers
> decide to follow the scons route. Before being usable, I need to finish
> fortran support and blas/lapack/atlas detection: once this is done,
> numpy should be able to support some platforms not supported yet (intel
> compiler on windows, sun compiler with performance libraries, etc...),
> which was the reason I started this work in the first place.

I don't think you should make the autodetection of BLAS and LAPACK too
auto. A .cfg file like mpi4py's mpi.cfg (almost like NumPy's site.cfg,
but simpler) would be great. This way, you can provide a few default
build configurations for common platforms, but still make it easy for
people to configure their build exactly the way they want it, if they
so choose.

Cheers,

Albert
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


[Numpy-discussion] Scons and numpy, second milestone: all numpy built with scons.

2007-10-18 Thread David Cournapeau
Hi,

   I am happy to announce a second milestone in scons support in numpy. 
This one is much bigger than the first one, since now I can build the 
whole numpy using scons (e.g. distutils is not used at all to build non 
python code).

How to use it:
==

just do as before for installing numpy: python setup.py build

To use parrallel builds: python setup scons --jobs=4 build

Windows build does not work yet, but this should be easy to fix. Do not 
use it for practical purpose, though: I have not yet tackled the problem 
of optimization flags, nor the detection of blas/lapack.

What has been done:
===

Some of the things which are now possible:
   - any module can be customized wrt build options (warning flags, 
etc...). This can be done per object file, also, with a bit some work.
   - for numpy.core (which took 95 % of my time for this milestone), all 
the generated code is integrated in the scons dependency graph. I don't 
know how distutils handled this, but if you change a txt file, or a 
header, scons will rebuilt the necessary things (the dependencies are 
found automatically). I also cleanup up some things (done in a separate 
svn branch).
   - Numpy configuration is also totally integrated into scons config 
framework, which makes the thing more understandable, I hope.

and of course, everything possible with scons is now available. Some 
other nice advantages which I did not think about at first:

   - parallel builds: since scons supports parrallel builds, I thought 
it would be interesting to support it in distutils. This was trivial to 
add, and this largely alleviates the cost added by using scons in the 
first place. For scipy, my guess would be that it could significantly 
reduce the build time (whereas numpy build time is mostly spent 
compiling one or two big files).

So basically, I believe most of the things planned in 
http://projects.scipy.org/scipy/numpy/wiki/DistutilsRevamp are now 
available because they are available in scons, if numpy developers 
decide to follow the scons route. Before being usable, I need to finish 
fortran support and blas/lapack/atlas detection: once this is done, 
numpy should be able to support some platforms not supported yet (intel 
compiler on windows, sun compiler with performance libraries, etc...), 
which was the reason I started this work in the first place.

cheers,

David
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion