Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-05-03 Thread Ralf Gommers
On Mon, May 2, 2011 at 10:55 PM, Mark Wiebe mwwi...@gmail.com wrote:
 I applied everything, since they're all obviously bugs and the fixes look
 straightforward.

I tested those commits on a few python/OS combinations, all looks
good. So I'll try to tag an RC2 tonight.

Ralf
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-05-02 Thread Michael Droettboom
I've found a few reference counting bugs running the regression tests 
under Valgrind.  Pull request here:

https://github.com/numpy/numpy/pull/79

Mike

On 04/30/2011 04:19 PM, Ralf Gommers wrote:
 Hi,

 I am pleased to announce the availability of the first release
 candidate of NumPy 1.6.0. If no new problems are reported, the final
 release will be in one week.

 Sources and binaries can be found at
 http://sourceforge.net/projects/numpy/files/NumPy/1.6.0rc1/
 For (preliminary) release notes see below.

 Enjoy,
 Ralf


 =
 NumPy 1.6.0 Release Notes
 =

 This release includes several new features as well as numerous bug fixes and
 improved documentation.  It is backward compatible with the 1.5.0 release, and
 supports Python 2.4 - 2.7 and 3.1 - 3.2.


 Highlights
 ==

 * Re-introduction of datetime dtype support to deal with dates in arrays.

 * A new 16-bit floating point type.

 * A new iterator, which improves performance of many functions.


 New features
 

 New 16-bit floating point type
 --

 This release adds support for the IEEE 754-2008 binary16 format, available as
 the data type ``numpy.half``.  Within Python, the type behaves similarly to
 `float` or `double`, and C extensions can add support for it with the exposed
 half-float API.


 New iterator
 

 A new iterator has been added, replacing the functionality of the
 existing iterator and multi-iterator with a single object and API.
 This iterator works well with general memory layouts different from
 C or Fortran contiguous, and handles both standard NumPy and
 customized broadcasting. The buffering, automatic data type
 conversion, and optional output parameters, offered by
 ufuncs but difficult to replicate elsewhere, are now exposed by this
 iterator.


 Legendre, Laguerre, Hermite, HermiteE polynomials in ``numpy.polynomial``
 -

 Extend the number of polynomials available in the polynomial package. In
 addition, a new ``window`` attribute has been added to the classes in
 order to specify the range the ``domain`` maps to. This is mostly useful
 for the Laguerre, Hermite, and HermiteE polynomials whose natural domains
 are infinite and provides a more intuitive way to get the correct mapping
 of values without playing unnatural tricks with the domain.


 Fortran assumed shape array and size function support in ``numpy.f2py``
 ---

 F2py now supports wrapping Fortran 90 routines that use assumed shape
 arrays.  Before such routines could be called from Python but the
 corresponding Fortran routines received assumed shape arrays as zero
 length arrays which caused unpredicted results. Thanks to Lorenz
 Hüdepohl for pointing out the correct way to interface routines with
 assumed shape arrays.

 In addition, f2py interprets Fortran expression ``size(array, dim)``
 as ``shape(array, dim-1)`` which makes it possible to automatically
 wrap Fortran routines that use two argument ``size`` function in
 dimension specifications. Before users were forced to apply this
 mapping manually.


 Other new functions
 ---

 ``numpy.ravel_multi_index`` : Converts a multi-index tuple into
 an array of flat indices, applying boundary modes to the indices.

 ``numpy.einsum`` : Evaluate the Einstein summation convention.  Using the
 Einstein summation convention, many common multi-dimensional array operations
 can be represented in a simple fashion.  This function provides a way compute
 such summations.

 ``numpy.count_nonzero`` : Counts the number of non-zero elements in an array.

 ``numpy.result_type`` and ``numpy.min_scalar_type`` : These functions expose
 the underlying type promotion used by the ufuncs and other operations to
 determine the types of outputs. These improve upon the ``numpy.common_type``
 and ``numpy.mintypecode`` which provide similar functionality but do
 not match the ufunc implementation.


 Changes
 ===

 Changes and improvements in the numpy core
 --

 ``default error handling``
 --

 The default error handling has been change from ``print`` to ``warn`` for
 all except for ``underflow``, which remains as ``ignore``.


 ``numpy.distutils``
 ---

 Several new compilers are supported for building Numpy: the Portland Group
 Fortran compiler on OS X, the PathScale compiler suite and the 64-bit Intel C
 compiler on Linux.


 ``numpy.testing``
 -

 The testing framework gained ``numpy.testing.assert_allclose``, which provides
 a more convenient way to compare floating point arrays than
 `assert_almost_equal`, `assert_approx_equal` and `assert_array_almost_equal`.


 ``C API``
 -

 In addition to the APIs for the new iterator and half data type, a number
 of other 

Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-05-02 Thread Mark Wiebe
I applied everything, since they're all obviously bugs and the fixes look
straightforward.

-Mark

On Mon, May 2, 2011 at 8:18 AM, Michael Droettboom md...@stsci.edu wrote:

 I've found a few reference counting bugs running the regression tests
 under Valgrind.  Pull request here:

 https://github.com/numpy/numpy/pull/79

 Mike

 On 04/30/2011 04:19 PM, Ralf Gommers wrote:
  Hi,
 
  I am pleased to announce the availability of the first release
  candidate of NumPy 1.6.0. If no new problems are reported, the final
  release will be in one week.
 
  Sources and binaries can be found at
  http://sourceforge.net/projects/numpy/files/NumPy/1.6.0rc1/
  For (preliminary) release notes see below.
 
  Enjoy,
  Ralf
 
 
  =
  NumPy 1.6.0 Release Notes
  =
 
  This release includes several new features as well as numerous bug fixes
 and
  improved documentation.  It is backward compatible with the 1.5.0
 release, and
  supports Python 2.4 - 2.7 and 3.1 - 3.2.
 
 
  Highlights
  ==
 
  * Re-introduction of datetime dtype support to deal with dates in arrays.
 
  * A new 16-bit floating point type.
 
  * A new iterator, which improves performance of many functions.
 
 
  New features
  
 
  New 16-bit floating point type
  --
 
  This release adds support for the IEEE 754-2008 binary16 format,
 available as
  the data type ``numpy.half``.  Within Python, the type behaves similarly
 to
  `float` or `double`, and C extensions can add support for it with the
 exposed
  half-float API.
 
 
  New iterator
  
 
  A new iterator has been added, replacing the functionality of the
  existing iterator and multi-iterator with a single object and API.
  This iterator works well with general memory layouts different from
  C or Fortran contiguous, and handles both standard NumPy and
  customized broadcasting. The buffering, automatic data type
  conversion, and optional output parameters, offered by
  ufuncs but difficult to replicate elsewhere, are now exposed by this
  iterator.
 
 
  Legendre, Laguerre, Hermite, HermiteE polynomials in ``numpy.polynomial``
  -
 
  Extend the number of polynomials available in the polynomial package. In
  addition, a new ``window`` attribute has been added to the classes in
  order to specify the range the ``domain`` maps to. This is mostly useful
  for the Laguerre, Hermite, and HermiteE polynomials whose natural domains
  are infinite and provides a more intuitive way to get the correct mapping
  of values without playing unnatural tricks with the domain.
 
 
  Fortran assumed shape array and size function support in ``numpy.f2py``
  ---
 
  F2py now supports wrapping Fortran 90 routines that use assumed shape
  arrays.  Before such routines could be called from Python but the
  corresponding Fortran routines received assumed shape arrays as zero
  length arrays which caused unpredicted results. Thanks to Lorenz
  Hüdepohl for pointing out the correct way to interface routines with
  assumed shape arrays.
 
  In addition, f2py interprets Fortran expression ``size(array, dim)``
  as ``shape(array, dim-1)`` which makes it possible to automatically
  wrap Fortran routines that use two argument ``size`` function in
  dimension specifications. Before users were forced to apply this
  mapping manually.
 
 
  Other new functions
  ---
 
  ``numpy.ravel_multi_index`` : Converts a multi-index tuple into
  an array of flat indices, applying boundary modes to the indices.
 
  ``numpy.einsum`` : Evaluate the Einstein summation convention.  Using the
  Einstein summation convention, many common multi-dimensional array
 operations
  can be represented in a simple fashion.  This function provides a way
 compute
  such summations.
 
  ``numpy.count_nonzero`` : Counts the number of non-zero elements in an
 array.
 
  ``numpy.result_type`` and ``numpy.min_scalar_type`` : These functions
 expose
  the underlying type promotion used by the ufuncs and other operations to
  determine the types of outputs. These improve upon the
 ``numpy.common_type``
  and ``numpy.mintypecode`` which provide similar functionality but do
  not match the ufunc implementation.
 
 
  Changes
  ===
 
  Changes and improvements in the numpy core
  --
 
  ``default error handling``
  --
 
  The default error handling has been change from ``print`` to ``warn`` for
  all except for ``underflow``, which remains as ``ignore``.
 
 
  ``numpy.distutils``
  ---
 
  Several new compilers are supported for building Numpy: the Portland
 Group
  Fortran compiler on OS X, the PathScale compiler suite and the 64-bit
 Intel C
  compiler on Linux.
 
 
  ``numpy.testing``
  -
 
  The testing 

Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-05-01 Thread Christoph Gohlke



On 4/30/2011 9:27 PM, Mark Wiebe wrote:

On Sat, Apr 30, 2011 at 9:11 PM, Christoph Gohlke cgoh...@uci.edu
mailto:cgoh...@uci.edu wrote:



On 4/30/2011 6:37 PM, Charles R Harris wrote:


  On Sat, Apr 30, 2011 at 6:50 PM, Christoph Gohlke cgoh...@uci.edu
mailto:cgoh...@uci.edu
  mailto:cgoh...@uci.edu mailto:cgoh...@uci.edu wrote:



  On 4/30/2011 4:58 PM, Charles R Harris wrote:
  
  
On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris
   charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
mailto:charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
  mailto:charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
  mailto:charlesr.har...@gmail.com
mailto:charlesr.har...@gmail.com wrote:
  
   snip
  
  
I get a null pointer access violation during numpy.test()
  with all
msvc9/MKL builds for win32 (not win-amd64). The crash
  occurs during
test_result_type() in test_numeric.py and can be reduced
  to the
following code:
  
 import numpy as np
 np.result_type(np.array([np.float32(0)]), np.complex128(0))
  
np.float64(0) and np.float16(0) also crash. Unfortunately
  the debug
builds do not crash.
  
This is new, right?
  
  
Does it depend on the optimization level?
  
Chuck
  

  Yes it's new. The pure msvc9 builds without MKL also crash.
The crash
  disapperars When compiling with /Od (disable optimization)
instead of
  /Ox (maximum optimization; the default for distutils).


  So all of np.float16(0), np.float32(0), np.float64(0), etc crash? Does
  it depend at all on 0 as the argument, or is it the same for 1, 0.0,
  etc. What about string arguments like np.float64(0). I want to
pin the
  location down a bit more. Too bad it doesn't crash in the debugger.

  Chuck


Sorry, I should have been more precise. The crash occurs in
`numpy.result_type(a, b)` with the following inputs:

b = numpy.complex128(0)
a = numpy.array([numpy.float16(0)])
a = numpy.array([numpy.float32(0)])
a = numpy.array([numpy.float64(0)])

Christoph
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org mailto:NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Can you try it with this commit backed out?

https://github.com/numpy/numpy/commit/fc0148bef18b8fd34d124d5edd90887f63e3bfce#L0R1147

What does the stack trace of the crash look like? Compiling with debug
information still works with optimizations, just the line numbers and
stack traces don't match the source as well.

https://github.com/numpy/numpy/commit/fc0148bef18b8fd34d124d5edd90887f63e3bfce#L0R1147-Mark




Sorry, I get no stack trace; apparently the stack is corrupted. I 
printf-debugged it down to the following preprocessor directive, which 
already caused trouble in gcc before 
http://projects.scipy.org/numpy/ticket/1737:


#if NPY_SIZEOF_LONGLONG = NPY_SIZEOF_CLONGDOUBLE
npy_longlong value;
#else
npy_clongdouble value;
#endif

Replacing the two occasions of this code in 
multiarray/convert_datatype.c with `npy_longlong value[4];` solved the 
crash and all tests pass.


Btw, where is NPY_SIZEOF_CLONGDOUBLE defined? I searched the source code 
and the build directory but could not find it.


Christoph
diff --git a/numpy/core/src/multiarray/convert_datatype.c 
b/numpy/core/src/multiarray/convert_datatype.c
index 3359a55..4d76f97 100644
--- a/numpy/core/src/multiarray/convert_datatype.c
+++ b/numpy/core/src/multiarray/convert_datatype.c
@@ -1059,11 +1059,7 @@ PyArray_MinScalarType(PyArrayObject *arr)
 int swap = !PyArray_ISNBO(dtype-byteorder);
 int is_small_unsigned = 0;
 /* An aligned memory buffer large enough to hold any type */
-#if NPY_SIZEOF_LONGLONG = NPY_SIZEOF_CLONGDOUBLE
-npy_longlong value;
-#else
-npy_clongdouble value;
-#endif
+npy_longlong value[4];
 dtype-f-copyswap(value, data, swap, NULL);
 
 return PyArray_DescrFromType(
@@ -1153,11 +1149,7 @@ PyArray_ResultType(npy_intp narrs, PyArrayObject **arr,
 int swap = !PyArray_ISNBO(tmp-byteorder);
 int type_num;
 /* An aligned memory buffer large enough to hold any type */
-#if NPY_SIZEOF_LONGLONG = NPY_SIZEOF_CLONGDOUBLE
-npy_longlong value;
-#else
-npy_clongdouble value;
-#endif
+npy_longlong value[4];
 tmp-f-copyswap(value, data, swap, NULL);
 type_num = min_scalar_type_num((char *)value,
 tmp-type_num, tmp_is_small_unsigned);

Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-05-01 Thread Mark Wiebe
On Sun, May 1, 2011 at 12:19 AM, Christoph Gohlke cgoh...@uci.edu wrote:



 On 4/30/2011 9:27 PM, Mark Wiebe wrote:

 On Sat, Apr 30, 2011 at 9:11 PM, Christoph Gohlke cgoh...@uci.edu
 mailto:cgoh...@uci.edu wrote:



On 4/30/2011 6:37 PM, Charles R Harris wrote:


  On Sat, Apr 30, 2011 at 6:50 PM, Christoph Gohlke cgoh...@uci.edu
mailto:cgoh...@uci.edu
  mailto:cgoh...@uci.edu mailto:cgoh...@uci.edu wrote:



  On 4/30/2011 4:58 PM, Charles R Harris wrote:
  
  
On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris
   charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
mailto:charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
  mailto:charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
 
  mailto:charlesr.har...@gmail.com
mailto:charlesr.har...@gmail.com wrote:
  
   snip
  
  
I get a null pointer access violation during numpy.test()
  with all
msvc9/MKL builds for win32 (not win-amd64). The crash
  occurs during
test_result_type() in test_numeric.py and can be reduced
  to the
following code:
  
 import numpy as np
 np.result_type(np.array([np.float32(0)]), np.complex128(0))
  
np.float64(0) and np.float16(0) also crash. Unfortunately
  the debug
builds do not crash.
  
This is new, right?
  
  
Does it depend on the optimization level?
  
Chuck
  

  Yes it's new. The pure msvc9 builds without MKL also crash.
The crash
  disapperars When compiling with /Od (disable optimization)
instead of
  /Ox (maximum optimization; the default for distutils).


  So all of np.float16(0), np.float32(0), np.float64(0), etc crash?
 Does
  it depend at all on 0 as the argument, or is it the same for 1, 0.0,
  etc. What about string arguments like np.float64(0). I want to
pin the
  location down a bit more. Too bad it doesn't crash in the debugger.

  Chuck


Sorry, I should have been more precise. The crash occurs in
`numpy.result_type(a, b)` with the following inputs:

b = numpy.complex128(0)
a = numpy.array([numpy.float16(0)])
a = numpy.array([numpy.float32(0)])
a = numpy.array([numpy.float64(0)])

Christoph
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org mailto:NumPy-Discussion@scipy.org

http://mail.scipy.org/mailman/listinfo/numpy-discussion


 Can you try it with this commit backed out?


 https://github.com/numpy/numpy/commit/fc0148bef18b8fd34d124d5edd90887f63e3bfce#L0R1147

 What does the stack trace of the crash look like? Compiling with debug
 information still works with optimizations, just the line numbers and
 stack traces don't match the source as well.

 
 https://github.com/numpy/numpy/commit/fc0148bef18b8fd34d124d5edd90887f63e3bfce#L0R1147
 -Mark



 Sorry, I get no stack trace; apparently the stack is corrupted. I
 printf-debugged it down to the following preprocessor directive, which
 already caused trouble in gcc before 
 http://projects.scipy.org/numpy/ticket/1737:

 #if NPY_SIZEOF_LONGLONG = NPY_SIZEOF_CLONGDOUBLE
npy_longlong value;
 #else
npy_clongdouble value;
 #endif

 Replacing the two occasions of this code in multiarray/convert_datatype.c
 with `npy_longlong value[4];` solved the crash and all tests pass.

 Btw, where is NPY_SIZEOF_CLONGDOUBLE defined? I searched the source code
 and the build directory but could not find it.

 Christoph


I committed that fix. I think NPY_SIZEOF_CLONGDOUBLE isn't actually defined,
but it appears the C preprocessor doesn't consider that an error or even a
warning, rather an opportunity to provide a surprise for the user of the
code.

-Mark
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Christoph Gohlke


On 4/30/2011 1:19 PM, Ralf Gommers wrote:
 Hi,

 I am pleased to announce the availability of the first release
 candidate of NumPy 1.6.0. If no new problems are reported, the final
 release will be in one week.

 Sources and binaries can be found at
 http://sourceforge.net/projects/numpy/files/NumPy/1.6.0rc1/
 For (preliminary) release notes see below.

 Enjoy,
 Ralf


 =
 NumPy 1.6.0 Release Notes
 =

 This release includes several new features as well as numerous bug fixes and
 improved documentation.  It is backward compatible with the 1.5.0 release, and
 supports Python 2.4 - 2.7 and 3.1 - 3.2.


 Highlights
 ==

 * Re-introduction of datetime dtype support to deal with dates in arrays.

 * A new 16-bit floating point type.

 * A new iterator, which improves performance of many functions.


 New features
 

 New 16-bit floating point type
 --

 This release adds support for the IEEE 754-2008 binary16 format, available as
 the data type ``numpy.half``.  Within Python, the type behaves similarly to
 `float` or `double`, and C extensions can add support for it with the exposed
 half-float API.


 New iterator
 

 A new iterator has been added, replacing the functionality of the
 existing iterator and multi-iterator with a single object and API.
 This iterator works well with general memory layouts different from
 C or Fortran contiguous, and handles both standard NumPy and
 customized broadcasting. The buffering, automatic data type
 conversion, and optional output parameters, offered by
 ufuncs but difficult to replicate elsewhere, are now exposed by this
 iterator.


 Legendre, Laguerre, Hermite, HermiteE polynomials in ``numpy.polynomial``
 -

 Extend the number of polynomials available in the polynomial package. In
 addition, a new ``window`` attribute has been added to the classes in
 order to specify the range the ``domain`` maps to. This is mostly useful
 for the Laguerre, Hermite, and HermiteE polynomials whose natural domains
 are infinite and provides a more intuitive way to get the correct mapping
 of values without playing unnatural tricks with the domain.


 Fortran assumed shape array and size function support in ``numpy.f2py``
 ---

 F2py now supports wrapping Fortran 90 routines that use assumed shape
 arrays.  Before such routines could be called from Python but the
 corresponding Fortran routines received assumed shape arrays as zero
 length arrays which caused unpredicted results. Thanks to Lorenz
 Hüdepohl for pointing out the correct way to interface routines with
 assumed shape arrays.

 In addition, f2py interprets Fortran expression ``size(array, dim)``
 as ``shape(array, dim-1)`` which makes it possible to automatically
 wrap Fortran routines that use two argument ``size`` function in
 dimension specifications. Before users were forced to apply this
 mapping manually.


 Other new functions
 ---

 ``numpy.ravel_multi_index`` : Converts a multi-index tuple into
 an array of flat indices, applying boundary modes to the indices.

 ``numpy.einsum`` : Evaluate the Einstein summation convention.  Using the
 Einstein summation convention, many common multi-dimensional array operations
 can be represented in a simple fashion.  This function provides a way compute
 such summations.

 ``numpy.count_nonzero`` : Counts the number of non-zero elements in an array.

 ``numpy.result_type`` and ``numpy.min_scalar_type`` : These functions expose
 the underlying type promotion used by the ufuncs and other operations to
 determine the types of outputs. These improve upon the ``numpy.common_type``
 and ``numpy.mintypecode`` which provide similar functionality but do
 not match the ufunc implementation.


 Changes
 ===

 Changes and improvements in the numpy core
 --

 ``default error handling``
 --

 The default error handling has been change from ``print`` to ``warn`` for
 all except for ``underflow``, which remains as ``ignore``.


 ``numpy.distutils``
 ---

 Several new compilers are supported for building Numpy: the Portland Group
 Fortran compiler on OS X, the PathScale compiler suite and the 64-bit Intel C
 compiler on Linux.


 ``numpy.testing``
 -

 The testing framework gained ``numpy.testing.assert_allclose``, which provides
 a more convenient way to compare floating point arrays than
 `assert_almost_equal`, `assert_approx_equal` and `assert_array_almost_equal`.


 ``C API``
 -

 In addition to the APIs for the new iterator and half data type, a number
 of other additions have been made to the C API. The type promotion
 mechanism used by ufuncs is exposed via ``PyArray_PromoteTypes``,
 ``PyArray_ResultType``, and 

Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Charles R Harris
snip


 I get a null pointer access violation during numpy.test() with all
 msvc9/MKL builds for win32 (not win-amd64). The crash occurs during
 test_result_type() in test_numeric.py and can be reduced to the
 following code:

  import numpy as np
  np.result_type(np.array([np.float32(0)]), np.complex128(0))

 np.float64(0) and np.float16(0) also crash. Unfortunately the debug
 builds do not crash.


This is new, right?

Chuck
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Charles R Harris
On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris charlesr.har...@gmail.com
 wrote:

 snip


 I get a null pointer access violation during numpy.test() with all
 msvc9/MKL builds for win32 (not win-amd64). The crash occurs during
 test_result_type() in test_numeric.py and can be reduced to the
 following code:

  import numpy as np
  np.result_type(np.array([np.float32(0)]), np.complex128(0))

 np.float64(0) and np.float16(0) also crash. Unfortunately the debug
 builds do not crash.


 This is new, right?


Does it depend on the optimization level?

Chuck
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Christoph Gohlke


On 4/30/2011 4:58 PM, Charles R Harris wrote:


 On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris
 charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com wrote:

 snip


 I get a null pointer access violation during numpy.test() with all
 msvc9/MKL builds for win32 (not win-amd64). The crash occurs during
 test_result_type() in test_numeric.py and can be reduced to the
 following code:

   import numpy as np
   np.result_type(np.array([np.float32(0)]), np.complex128(0))

 np.float64(0) and np.float16(0) also crash. Unfortunately the debug
 builds do not crash.

 This is new, right?


 Does it depend on the optimization level?

 Chuck


Yes it's new. The pure msvc9 builds without MKL also crash. The crash 
disapperars When compiling with /Od (disable optimization) instead of 
/Ox (maximum optimization; the default for distutils).

Christoph
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Charles R Harris
On Sat, Apr 30, 2011 at 6:50 PM, Christoph Gohlke cgoh...@uci.edu wrote:



 On 4/30/2011 4:58 PM, Charles R Harris wrote:
 
 
  On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris
  charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com wrote:
 
  snip
 
 
  I get a null pointer access violation during numpy.test() with
 all
  msvc9/MKL builds for win32 (not win-amd64). The crash occurs
 during
  test_result_type() in test_numeric.py and can be reduced to the
  following code:
 
import numpy as np
np.result_type(np.array([np.float32(0)]), np.complex128(0))
 
  np.float64(0) and np.float16(0) also crash. Unfortunately the
 debug
  builds do not crash.
 
  This is new, right?
 
 
  Does it depend on the optimization level?
 
  Chuck
 

 Yes it's new. The pure msvc9 builds without MKL also crash. The crash
 disapperars When compiling with /Od (disable optimization) instead of
 /Ox (maximum optimization; the default for distutils).


So all of np.float16(0), np.float32(0), np.float64(0), etc crash? Does it
depend at all on 0 as the argument, or is it the same for 1, 0.0, etc. What
about string arguments like np.float64(0). I want to pin the location down
a bit more. Too bad it doesn't crash in the debugger.

Chuck
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Charles R Harris
On Sat, Apr 30, 2011 at 7:37 PM, Charles R Harris charlesr.har...@gmail.com
 wrote:



 On Sat, Apr 30, 2011 at 6:50 PM, Christoph Gohlke cgoh...@uci.edu wrote:



 On 4/30/2011 4:58 PM, Charles R Harris wrote:
 
 
  On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris
  charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com wrote:
 
  snip
 
 
  I get a null pointer access violation during numpy.test() with
 all
  msvc9/MKL builds for win32 (not win-amd64). The crash occurs
 during
  test_result_type() in test_numeric.py and can be reduced to the
  following code:
 
import numpy as np
np.result_type(np.array([np.float32(0)]), np.complex128(0))
 
  np.float64(0) and np.float16(0) also crash. Unfortunately the
 debug
  builds do not crash.
 
  This is new, right?
 
 
  Does it depend on the optimization level?
 
  Chuck
 

 Yes it's new. The pure msvc9 builds without MKL also crash. The crash
 disapperars When compiling with /Od (disable optimization) instead of
 /Ox (maximum optimization; the default for distutils).


 So all of np.float16(0), np.float32(0), np.float64(0), etc crash? Does it
 depend at all on 0 as the argument, or is it the same for 1, 0.0, etc. What
 about string arguments like np.float64(0). I want to pin the location down
 a bit more. Too bad it doesn't crash in the debugger.


I'm suspecting 566ace25f63985e0739bcc600c35336d3c66508c in master, just
because it looks like the last commit to touch the right files.

Chuck
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Christoph Gohlke


On 4/30/2011 6:37 PM, Charles R Harris wrote:


 On Sat, Apr 30, 2011 at 6:50 PM, Christoph Gohlke cgoh...@uci.edu
 mailto:cgoh...@uci.edu wrote:



 On 4/30/2011 4:58 PM, Charles R Harris wrote:
 
 
   On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris
   charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
 mailto:charlesr.har...@gmail.com
 mailto:charlesr.har...@gmail.com wrote:
 
   snip
 
 
   I get a null pointer access violation during numpy.test()
 with all
   msvc9/MKL builds for win32 (not win-amd64). The crash
 occurs during
   test_result_type() in test_numeric.py and can be reduced
 to the
   following code:
 
 import numpy as np
 np.result_type(np.array([np.float32(0)]), np.complex128(0))
 
   np.float64(0) and np.float16(0) also crash. Unfortunately
 the debug
   builds do not crash.
 
   This is new, right?
 
 
   Does it depend on the optimization level?
 
   Chuck
 

 Yes it's new. The pure msvc9 builds without MKL also crash. The crash
 disapperars When compiling with /Od (disable optimization) instead of
 /Ox (maximum optimization; the default for distutils).


 So all of np.float16(0), np.float32(0), np.float64(0), etc crash? Does
 it depend at all on 0 as the argument, or is it the same for 1, 0.0,
 etc. What about string arguments like np.float64(0). I want to pin the
 location down a bit more. Too bad it doesn't crash in the debugger.

 Chuck


Sorry, I should have been more precise. The crash occurs in 
`numpy.result_type(a, b)` with the following inputs:

b = numpy.complex128(0)
a = numpy.array([numpy.float16(0)])
a = numpy.array([numpy.float32(0)])
a = numpy.array([numpy.float64(0)])

Christoph
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] ANN: Numpy 1.6.0 release candidate 1

2011-04-30 Thread Mark Wiebe
On Sat, Apr 30, 2011 at 9:11 PM, Christoph Gohlke cgoh...@uci.edu wrote:



 On 4/30/2011 6:37 PM, Charles R Harris wrote:
 
 
  On Sat, Apr 30, 2011 at 6:50 PM, Christoph Gohlke cgoh...@uci.edu
  mailto:cgoh...@uci.edu wrote:
 
 
 
  On 4/30/2011 4:58 PM, Charles R Harris wrote:
  
  
On Sat, Apr 30, 2011 at 5:53 PM, Charles R Harris
charlesr.har...@gmail.com mailto:charlesr.har...@gmail.com
  mailto:charlesr.har...@gmail.com
  mailto:charlesr.har...@gmail.com wrote:
  
snip
  
  
I get a null pointer access violation during numpy.test()
  with all
msvc9/MKL builds for win32 (not win-amd64). The crash
  occurs during
test_result_type() in test_numeric.py and can be reduced
  to the
following code:
  
  import numpy as np
  np.result_type(np.array([np.float32(0)]), np.complex128(0))
  
np.float64(0) and np.float16(0) also crash. Unfortunately
  the debug
builds do not crash.
  
This is new, right?
  
  
Does it depend on the optimization level?
  
Chuck
  
 
  Yes it's new. The pure msvc9 builds without MKL also crash. The crash
  disapperars When compiling with /Od (disable optimization) instead of
  /Ox (maximum optimization; the default for distutils).
 
 
  So all of np.float16(0), np.float32(0), np.float64(0), etc crash? Does
  it depend at all on 0 as the argument, or is it the same for 1, 0.0,
  etc. What about string arguments like np.float64(0). I want to pin the
  location down a bit more. Too bad it doesn't crash in the debugger.
 
  Chuck
 

 Sorry, I should have been more precise. The crash occurs in
 `numpy.result_type(a, b)` with the following inputs:

 b = numpy.complex128(0)
 a = numpy.array([numpy.float16(0)])
 a = numpy.array([numpy.float32(0)])
 a = numpy.array([numpy.float64(0)])

 Christoph
 ___
 NumPy-Discussion mailing list
 NumPy-Discussion@scipy.org
 http://mail.scipy.org/mailman/listinfo/numpy-discussion


Can you try it with this commit backed out?

https://github.com/numpy/numpy/commit/fc0148bef18b8fd34d124d5edd90887f63e3bfce#L0R1147

What does the stack trace of the crash look like? Compiling with debug
information still works with optimizations, just the line numbers and stack
traces don't match the source as well.

https://github.com/numpy/numpy/commit/fc0148bef18b8fd34d124d5edd90887f63e3bfce#L0R1147
-Mark
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion