Re: [Numpy-discussion] New bug with setup,py develop

2008-02-13 Thread Charles R Harris
On Feb 11, 2008 9:24 PM, David Cournapeau [EMAIL PROTECTED]
wrote:

 On Mon, 2008-02-11 at 20:42 -0700, Charles R Harris wrote:
 
 
  On Feb 11, 2008 7:10 PM, David Cournapeau [EMAIL PROTECTED] wrote:
 
  On Feb 11, 2008 5:40 PM, Charles R Harris
  [EMAIL PROTECTED] wrote:
  
  
  
   On Feb 11, 2008 1:21 AM, Robert Kern [EMAIL PROTECTED]
  wrote:
  
I've just updated the SVN trunk to get the latest numscons
  merge.
Something broke the support I put in for the setuptools
  develop
command. In order to make sure that setuptools' develop
  works with
numpy.distutils' build_src, we override the develop
  command to
reinitialize the build_src command to add the --inplace
  option. This
used to work as of r4772, but now any Fortran Extensions
  have the
generated sources added twice. This causes links to fail
  since the
same symbol shows up twice.
   
  
   While we're talking build, how do I set the compiler flags?
  Numpy here
   always compiles with -march=i386, which seems a bit
  conservative. My
   environment flags are also ignored, but I assume there is
  someway of getting
   the compile to behave.
 
  Well, you assumed wrong :)
 
  For some reason I was hoping you would pipe up  :0) Yeah, that in
  itself is a good reason for trying something like scons.

 To be more exact: you can simply add flags in distutils. It is just that
 there is not much logic to handle different cases (e.g. having different
 set of warnings for pyrex vs swig vs normal C extensions is difficult).

   I note that with -O2 -finline-functions, or -O3, I can knock almost
  30% off the string sort times. That's a lot better than I can do
  fooling around with the code.

 You should be able to do it just with numpy.distutils:

 CFLAGS=-O2 -finline-functions setup.py build


Curiously,  CFLAGS=-O3 -finline-functions causes the -fno-strict-aliasing
flag to disappear when the random module is compiled, resulting in a lot of
warnings and, in my experience, probably buggy code generation. So a safer
bet is CFLAGS=-O3 -finline-functions -fno-strict-aliasing .
Chuck
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread Robert Kern
On Feb 11, 2008 3:49 AM, David Cournapeau [EMAIL PROTECTED] wrote:
 On Feb 11, 2008 5:38 PM, Robert Kern [EMAIL PROTECTED] wrote:
  On Feb 11, 2008 2:21 AM, Robert Kern [EMAIL PROTECTED] wrote:
   I've just updated the SVN trunk to get the latest numscons merge.
   Something broke the support I put in for the setuptools develop
   command. In order to make sure that setuptools' develop works with
   numpy.distutils' build_src, we override the develop command to
   reinitialize the build_src command to add the --inplace option. This
   used to work as of r4772, but now any Fortran Extensions have the
   generated sources added twice.
 
  Spoke too soon. It fails with r4772, too.

 Does it mean that it was already broken before numscons merge or not ?

Yes. I think I figured out the problem. python setup.py develop
works fine. However, I ran into the problem when I added develop to
the end of a command line that already had build. So essentially,
build_src gets run twice. I'm not sure there is anything that can be
done about that given distutils' handling of options.

-- 
Robert Kern

I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth.
  -- Umberto Eco
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread Charles R Harris
On Feb 11, 2008 7:10 PM, David Cournapeau [EMAIL PROTECTED] wrote:

 On Feb 11, 2008 5:40 PM, Charles R Harris [EMAIL PROTECTED]
 wrote:
 
 
 
  On Feb 11, 2008 1:21 AM, Robert Kern [EMAIL PROTECTED] wrote:
 
   I've just updated the SVN trunk to get the latest numscons merge.
   Something broke the support I put in for the setuptools develop
   command. In order to make sure that setuptools' develop works with
   numpy.distutils' build_src, we override the develop command to
   reinitialize the build_src command to add the --inplace option. This
   used to work as of r4772, but now any Fortran Extensions have the
   generated sources added twice. This causes links to fail since the
   same symbol shows up twice.
  
 
  While we're talking build, how do I set the compiler flags? Numpy here
  always compiles with -march=i386, which seems a bit conservative. My
  environment flags are also ignored, but I assume there is someway of
 getting
  the compile to behave.
 Well, you assumed wrong :)


For some reason I was hoping you would pipe up  :0) Yeah, that in itself is
a good reason for trying something like scons. I note that with -O2
-finline-functions, or -O3, I can knock almost 30% off the string sort
times. That's a lot better than I can do fooling around with the code.

It is one of the reasons why I started
 working on scons support. It is extremely ackward to control
 compilation flags with the python distutils from stdlib, and by design
 (flags are added at several different locations, which depend on the
 platform, and understanding the exact logic is beyond mere mortal
 capability).


Thanks

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


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread David Cournapeau
On Mon, 2008-02-11 at 20:42 -0700, Charles R Harris wrote:
 
 
 On Feb 11, 2008 7:10 PM, David Cournapeau [EMAIL PROTECTED] wrote:
 
 On Feb 11, 2008 5:40 PM, Charles R Harris
 [EMAIL PROTECTED] wrote:
 
 
 
  On Feb 11, 2008 1:21 AM, Robert Kern [EMAIL PROTECTED]
 wrote:
 
   I've just updated the SVN trunk to get the latest numscons
 merge.
   Something broke the support I put in for the setuptools
 develop
   command. In order to make sure that setuptools' develop
 works with
   numpy.distutils' build_src, we override the develop
 command to
   reinitialize the build_src command to add the --inplace
 option. This
   used to work as of r4772, but now any Fortran Extensions
 have the
   generated sources added twice. This causes links to fail
 since the
   same symbol shows up twice.
  
 
  While we're talking build, how do I set the compiler flags?
 Numpy here
  always compiles with -march=i386, which seems a bit
 conservative. My
  environment flags are also ignored, but I assume there is
 someway of getting
  the compile to behave.
 
 Well, you assumed wrong :)
 
 For some reason I was hoping you would pipe up  :0) Yeah, that in
 itself is a good reason for trying something like scons.

To be more exact: you can simply add flags in distutils. It is just that
there is not much logic to handle different cases (e.g. having different
set of warnings for pyrex vs swig vs normal C extensions is difficult).

  I note that with -O2 -finline-functions, or -O3, I can knock almost
 30% off the string sort times. That's a lot better than I can do
 fooling around with the code.

You should be able to do it just with numpy.distutils: 

CFLAGS=-O2 -finline-functions setup.py build

What should be easier with numscons at some point is a fine grained
control. For example, the basic configuration is set in files similar to
site.cfg right now, and I intend to add the possibility to set your own
file in a near future (you can look for the file
numscons/core/compiler.cfg to see how I do things now, in numscons
sources).

If that's the kind of things you are interested in, do not hesitate to
try thing with numscons and tell me what's missing/what could be
improved. I am mostly focused on getting things working by default on
all platforms right now, but I am interested by inputs from other people
with different needs.

cheers,

David


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


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread David Cournapeau
On Feb 11, 2008 5:40 PM, Charles R Harris [EMAIL PROTECTED] wrote:



 On Feb 11, 2008 1:21 AM, Robert Kern [EMAIL PROTECTED] wrote:

  I've just updated the SVN trunk to get the latest numscons merge.
  Something broke the support I put in for the setuptools develop
  command. In order to make sure that setuptools' develop works with
  numpy.distutils' build_src, we override the develop command to
  reinitialize the build_src command to add the --inplace option. This
  used to work as of r4772, but now any Fortran Extensions have the
  generated sources added twice. This causes links to fail since the
  same symbol shows up twice.
 

 While we're talking build, how do I set the compiler flags? Numpy here
 always compiles with -march=i386, which seems a bit conservative. My
 environment flags are also ignored, but I assume there is someway of getting
 the compile to behave.
Well, you assumed wrong :) It is one of the reasons why I started
working on scons support. It is extremely ackward to control
compilation flags with the python distutils from stdlib, and by design
(flags are added at several different locations, which depend on the
platform, and understanding the exact logic is beyond mere mortal
capability).

You can use CFLAGS with distutils, but I don't really understand
what's happening in this case: it seems that they are appended to the
current compilation flags, but the order also seems to depend on the
architecture. Sometimes they are inserted toward the end of
compilation flags.

With numscons, CFLAGS override the optimization/warning flags (but not
-fPIC, etc... which are necessary to build the code; internally,
optimization/debug/warning/necessary flags are separated). One
example: with numpy.distutils, compiling for debug is not trivial:

CFLAGS=-DDEBUG python setup.py build

will still compile with -O2, and with -DNDEBUG. You need to add -O0 to
override the default O2 used by distutils (at least for gcc, when
several options of the same kind are given, the last one wins), and
you have problems for options which cannot be overriden by later
options. With numscons:

CFLAGS=-DDEBUG

will compile with only this option (and -fPIC, etc... on linux). I
intend to add more options on the UI, but anway, they will be all
overridable (for example, only overriding warning flags, etc...).

cheers,

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


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread David Cournapeau
On Feb 11, 2008 5:38 PM, Robert Kern [EMAIL PROTECTED] wrote:
 On Feb 11, 2008 2:21 AM, Robert Kern [EMAIL PROTECTED] wrote:
  I've just updated the SVN trunk to get the latest numscons merge.
  Something broke the support I put in for the setuptools develop
  command. In order to make sure that setuptools' develop works with
  numpy.distutils' build_src, we override the develop command to
  reinitialize the build_src command to add the --inplace option. This
  used to work as of r4772, but now any Fortran Extensions have the
  generated sources added twice.

 Spoke too soon. It fails with r4772, too.

Does it mean that it was already broken before numscons merge or not ?
Nobody should be changed when numpy is built using setup.py, so any
problem here is something I should fix ASAP. Supporting setuptools
with numscons (using setupscons.py) is not a priority for me, though.

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


[Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread Robert Kern
I've just updated the SVN trunk to get the latest numscons merge.
Something broke the support I put in for the setuptools develop
command. In order to make sure that setuptools' develop works with
numpy.distutils' build_src, we override the develop command to
reinitialize the build_src command to add the --inplace option. This
used to work as of r4772, but now any Fortran Extensions have the
generated sources added twice. This causes links to fail since the
same symbol shows up twice.

David, any ideas?

-- 
Robert Kern

I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth.
  -- Umberto Eco
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread Robert Kern
On Feb 11, 2008 2:21 AM, Robert Kern [EMAIL PROTECTED] wrote:
 I've just updated the SVN trunk to get the latest numscons merge.
 Something broke the support I put in for the setuptools develop
 command. In order to make sure that setuptools' develop works with
 numpy.distutils' build_src, we override the develop command to
 reinitialize the build_src command to add the --inplace option. This
 used to work as of r4772, but now any Fortran Extensions have the
 generated sources added twice.

Spoke too soon. It fails with r4772, too.

-- 
Robert Kern

I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth.
  -- Umberto Eco
___
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread Charles R Harris
On Feb 11, 2008 1:21 AM, Robert Kern [EMAIL PROTECTED] wrote:

 I've just updated the SVN trunk to get the latest numscons merge.
 Something broke the support I put in for the setuptools develop
 command. In order to make sure that setuptools' develop works with
 numpy.distutils' build_src, we override the develop command to
 reinitialize the build_src command to add the --inplace option. This
 used to work as of r4772, but now any Fortran Extensions have the
 generated sources added twice. This causes links to fail since the
 same symbol shows up twice.


While we're talking build, how do I set the compiler flags? Numpy here
always compiles with -march=i386, which seems a bit conservative. My
environment flags are also ignored, but I assume there is someway of getting
the compile to behave.

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


Re: [Numpy-discussion] New bug with setup,py develop

2008-02-11 Thread David Cournapeau
On Feb 11, 2008 6:49 PM, David Cournapeau [EMAIL PROTECTED] wrote:
 On Feb 11, 2008 5:38 PM, Robert Kern [EMAIL PROTECTED] wrote:
  On Feb 11, 2008 2:21 AM, Robert Kern [EMAIL PROTECTED] wrote:
   I've just updated the SVN trunk to get the latest numscons merge.
   Something broke the support I put in for the setuptools develop
   command. In order to make sure that setuptools' develop works with
   numpy.distutils' build_src, we override the develop command to
   reinitialize the build_src command to add the --inplace option. This
   used to work as of r4772, but now any Fortran Extensions have the
   generated sources added twice.
 
  Spoke too soon. It fails with r4772, too.

 Does it mean that it was already broken before numscons merge or not ?
 Nobody should be changed when numpy is built using setup.py, so any
  ^^ I meant something, not nobody, here, obviously.

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