Hi Travis, Could you look at bug [ 635104 ] segfault unpickling Numeric 'O' array [ 567796 ] unpickling of 'O' arrays causes segfault (duplicate of previous one) I proposed a (rather simple) solution that I put in the comment of bug [ 635104 ]. But apparently, nobody is looking at those bugs...
I'd like to release a Numeric 24.0 to get the array interface out there. There are also some other bug fixes in Numeric 24.0
Here is the list so far from Numeric 23.7
[Greenfield] Changed so a[0,0] and a[0][0] returns same type when a is 2-d of Int16
This is quite disturbing. In fact for all types that are not exactly equivalent to python type, indexing a multidimensional array (rank > 1) return arrays even if the final shape is (). So type(zeros((5,2,4), Int8 )[0,0,0]) => <type 'array'> type(zeros((5,2,4), Int32 )[0,0,0]) => <type 'array'> type(zeros((5,2), Float32 )[0,0]) => <type 'array'> But type(zeros((5,2,4), Int )[0,0,0]) => <type 'int'> type(zeros((5,2,4), Float64)[0,0,0]) => <type 'float'> type(zeros((5,2,4), Float)[0,0,0]) => <type 'float'> type(zeros((5,2,4), PyObject)[0,0,0]) => <type 'int'> Notice too the weird difference betweeb Int <> Int32 and Float == Float64. However, when indexing a onedimensional array (rank == 1), then we get back scalar for indexing operations on all types. So, when you say "return the same type", do you think scalar or array (it smells like a recent discussion on Numeric3 ...) ?
[unreported] Added array interface [unreported] Allow Long Integers to be used in slices [1123145] Handle mu==0.0 appropiately in ranlib/ignpoi. [unreported] Return error info in ranlib instead of printing it to stderr [1151892] dot() would quit python with zero-sized arrays when using dotblas. The BLAS routines *gemv and *gemm need LDA >= 1. [unreported] Fixed empty for Object arrays
Version 23.8 March 2005 [Cooke] Fixed more 64-bit issues (patch 117603) [unreported] Changed arrayfnsmodule back to PyArray_INT where the code typecasts to (int *). Changed CanCastSafely to check if sizeof(long) == sizeof(int)
I'll wait a little bit to allow last minute bug fixes to go in, but I'd realy like to see this release get out there. For users of Numeric >23.7 try Numeric.empty((10,20),'O') if you want to see an *interesting* bug that is fixed in CVS.
-Travis