Wednesday, November 18, 2009

NumPy 1.4 coming soon!

Nearly eight months after NumPy 1.3, NumPy 1.4 will be released well before the holidays.  This release comes with the usual raft of bug fixes, performance improvements, new features, and improved documentation.

Our web-based documentation editing system continues to be a great asset.  In just over a year, this system has helped us to vastly expand and improve our documentation.  For instance, our reference guide has gone from under 10,000 words to over 110,000.  When Guido came to visit Berkeley a few weeks ago, Fernando Pérez showed him the web-based documentation editor and he was very impressed and even commented that it would be nice for the standard library to use a system like this.

David Cournapeau is again serving as release manager and he is also responsible for much of the code improvements for this release.  I just noticed the other day, that according to ohloh, David is quickly approaching Travis Oliphant's number of commits.  While it is hard to attach any specific meaning to this statistic, it is clear that at this point David is one the most significant contributors to NumPy.  Among his many contributions to this release, he reduced numpy's import time by 20%-30% by adding a small numpy.lib.inspect module and using it instead of the upstream inspect module.  Another very useful improvement by David is that you can now link against the core math library in an extension.

In addition to all the work David's done for the 1.4 release, some of his recent work won't be included until the 1.5 release.  Once David branches for 1.4, he has all ready promised to merge his Python 3 support for numpy.distutils into the trunk.  While we are just beginning to plan migrating to Python 3, this is an important early step.

Unfortunately I am not sure the new datetime dtype support for dealing with dates in arrays will be included in the 1.4 release.  This useful functionality was developed over the summer by Travis Oliphant and Marty Fuhry.  Marty was my Google Summer of Code student; although, I was pretty busy so Pierre Gerard-Marchant did most of the day-to-day mentoring.  Despite the fact that this code was merged with the trunk at the end of the summer, there is a reasonable chance that it will be pulled before the 1.4 release due to the lack of documentation for the public C API.

I've only touched on a few of the many improvements you can expect to see with NumPy 1.4.  For more details about the upcoming release, please see the release notes.  Thanks to everyone who worked on this release and to David in particular.

No comments: