[Numpy-discussion] PSF GSoC 2010 (Py3K focus)

David Cournapeau david at silveregg.co.jp
Tue Mar 9 19:32:13 EST 2010


josef.pktd at gmail.com wrote:
> On Tue, Mar 9, 2010 at 9:02 AM, Pauli Virtanen <pav+sp at iki.fi> wrote:
>> Mon, 08 Mar 2010 22:39:00 -0700, Charles R Harris wrote:
>>> On Mon, Mar 8, 2010 at 10:29 PM, Jarrod Millman
>>> <millman at berkeley.edu>wrote:
>>>> I added Titus' email regarding the PSF's focus on Py3K-related
>>>> projects to our SoC ideas wiki page:
>>>> http://projects.scipy.org/scipy/wiki/SummerofCodeIdeas
>>>>
>>>> Given Titus' email, this is the most likely list of projects we will
>>>> get accepted this year:
>>>>
>>>> - finish porting NumPy to Py3K
>>> I think Numpy is pretty much done. It needs use testing to wring out any
>>> small oddities, but it doesn't look to me like a GSOC project at the
>>> moment. Maybe Pauli can weigh in here.
>> I think it's pretty much done. Even f2py should work. What's left is
>> mostly testing it, and fixing any issues that crop up.
>>
>> Note that the SVN Numpy should preferably still see more testing on
>> Python 2 against real-world packages that use it, before release. There's
>> been a significant amount of code churn.
>>
>>>> - port SciPy to Py3K
>>> This project might be more appropriate, although I'm not clear on what
>>> needs to be done.
>> I think porting Scipy proceeds in these steps:
>>
>> 1. Set up a similar 2to3-using build system for Python 3 as currently in
>>   Numpy.
>>
>> 2. Change the code so that it works both on Python 2 and Python 3.
>>   This can be done one submodule at a time.
>>
>>   For C code, the changes required are mainly PyString usage. Some macros
>>   need to be defined to allow the same code to build on Py2 and Py3.
>>   Scipy is probably easier to port than Numpy here, since IIRC it doesn't
>>   mess much with strings, and its use of the Python C-API is much more
>>   limited. Also, parts written with Cython need essentially no porting.
>>
>>   For Python code, the main issue is again bytes vs. unicode fixes,
>>   mainly inserting numpy.compat.asbytes() at correct locations to make
>>   e.g. bytes literals. All I/O code should be changed to work solely with
>>   Bytes. Since 2to3 takes care of most the other things, the remaining
>>   work is in fixing things it mishandles.
>>
>> I don't have a good estimate for how much work is in making Scipy work.
>> I'd guess the work needed is probably slightly less than for Numpy.
> 
> a few questions:
> 
> Is scipy.special difficult or time consuming to port?

I don't think it would be - most of it is fortran, so assuming f2py 
works correctly for py3k, there should not be big issues.

> In the build system, is it possible not to build some subpackages that
> might be slow in being ported, e.g. ndimage, weave?

The way I used to do when porting to a new compiler/new platform is 
simply to comment everything but one package at a time in 
scipy/setup.py. linalg/lib/clusters are the first ones to port. I don't 
think special depends on much more than linalg/lib, but I could be wrong.

David



More information about the NumPy-Discussion mailing list