[Numpy-discussion] How many build systems do we need?

Nathaniel Smith njs@pobox....
Sun Jan 13 08:30:24 CST 2013


On Sun, Jan 13, 2013 at 5:34 AM, Charles R Harris
<charlesr.harris@gmail.com> wrote:
> Hi All,
>
> In the continuing proposal for cleanups, note that we currently support
> three (3!) build systems, distutils, scons, and bento. That's a bit much to
> maintain when contemplating changes, and scons and bento both have external
> dependencies. Can we dispense with any of these? Thoughts?

I think it's actually 6 build systems, because each build system
supports two modes: compiling each source file separately before
linking, and concatenating everything into one big file and compiling
that.

It's been proposed that we phase out the one-file build (which is
currently the default):
  http://mail.scipy.org/pipermail/numpy-discussion/2012-June/063015.html
  https://github.com/numpy/numpy/issues/315
The separate compilation approach is superior in every way, so long as
it works. There is a theory that on some system somewhere there might
be a broken compiler/linker which make it not work[1], but we don't
actually know of any such system.

Shall we switch the default to separate compilation for 1.8 and see if
anyone notices?

-n

[1] The problem is that we need to make sure that symbols defined in
numpy .c files are visible to other numpy .c files, but not to
non-numpy code linked into the same process; this is a problem that
the C standard didn't consider, so it requires system-specific
fiddling. However that fiddling is pretty standard these days.


More information about the NumPy-Discussion mailing list