[Numpy-discussion] numpy 2.0, what else to do?

Charles R Harris charlesr.harris at gmail.com
Sat Feb 13 16:15:11 EST 2010


On Sat, Feb 13, 2010 at 2:07 PM, Xavier Gnata <xavier.gnata at gmail.com>wrote:

> On 02/13/2010 09:28 PM, Pauli Virtanen wrote:
> > We will most likely have experimental py3 support in 2.0.
> >
> > If you, or someone else wishes to help bringing 2.0 to fully work with
> Py3, now is a very good time to step up.
> >
> > How to give a hand:
> >
> > 1. Get my latest py3 branch from
> http://github.com/pv/numpy-work/tree/py3k
> >
> > Read doc/py3k.txt
> >
> > 2. Get py3 branch of nose (see doc/py3k.txt in the branch).
> >
> > 3. Build numpy, and run unit tests (build with "NPY_SEPARATE_BUILD=1
> python3 setup.py build", numscons is not supported at the moment).
> >
> > 4. Fix bugs revealed by the unit tests. Currently, C code is mostly
> ported, so you can probably also help only by writing Python. There are
> about 100 test failures (of 2400) left.
> >
> > Many test failures occur also because the tests are wrong. For instance:
> the numpy I/O requires bytes, but some tests supply it unicode strings ->
> need changes in tests.
> >
> > One useful thing to do is to help with the str/bytes transition on the
> python side. Since the same code must work with pythons from 2.4 to 3.0 (for
> 3 it's automatically run through 2to3 on build), there are some helpers in
> numpy.compat.py3k for helping with this. See several previous commits on the
> branch on that.
> >
> > Another useful thing could be to port an existing numpy-using code to py3
> and test if it works with the current py3k branch, what fails, and if the
> failures are already revealed by unit tests. Even if it does not work at the
> moment, having it at hand will help testing the rc when it comes. This,
> because I wouldn't completely rely on our unit test coverage.
> >
> > Finally, try to write some PEP 3118 using code, and check how it works.
> (You can use python >= 2.6 for this if you get numpy from the py3k branch.)
> >
> >
> Well I don't know where I should report that but your branch doesn't
> compile with python3.1:
> numpy/core/blasdot/_dotblas.c: In function
> ‘dotblas_matrixproduct’:
> numpy/core/blasdot/_dotblas.c:404: error: ‘PyArrayObject’ has no member
> named ‘ob_type’
> numpy/core/blasdot/_dotblas.c:404: error: ‘PyArrayObject’ has no member
> named ‘ob_type’
> numpy/core/blasdot/_dotblas.c:407: error: ‘PyArrayObject’ has no member
> named ‘ob_type’
>
> and so on...
>
>
> AFAICS, it is easy to fix using the Py_TYPE macro.
>
> For instance:
> -  if (ap1->ob_type != ap2->ob_type) {
> + if (Py_TYPE(ap1) != Py_TYPE(ap2)) {
>
>
Pauli fixed a lot of those. Did you remove the old build directory and all
that stuff?

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20100213/2df5b2a1/attachment.html>


More information about the NumPy-Discussion mailing list