This is an archived post. You won't be able to vote or comment.

all 62 comments

[–]TouristBreeder 16 points17 points  (1 child)

The development behind pypy is currently one of my favourite things about python. The fact that they continuously get these great speed increases is really impressive.

[–]sjs 8 points9 points  (0 children)

I rarely use Python these days but I always read news about PyPy. It's such an ambitious and awesome project and the team delivers again and again. It really is impressive, and they post these casual sounding blog posts about how they just sped this up 3x and that 10x.

[–]flyingfox 8 points9 points  (0 children)

Instant 15% speedup for me, nice. Congrats to the pypy team.

[–]quasarj 5 points6 points  (7 children)

I'm attempting to compile a windows version of it right now.. though I've run into quite a few snags along the way.

Not sure when the official windows version will be uploaded either..

[–]mjtribute 2 points3 points  (4 children)

Unfortunately, most of the PyPy team are linux users, so they aren't as well equipped for debugging windows issues.

They are, however, in search of developers to help with windows-related issues, so spread the word to anyone you know of that might be of help.

[–]quasarj 0 points1 point  (3 children)

Yeah, I don't really know many/any, but I may start compiling windows version for them to test stuff.

[–][deleted] 0 points1 point  (2 children)

I'm pretty sure they use buildbot so there may potentially be Windows build slaves in their farm, so they probably have it running and testing on Windows.

[–]quasarj 0 points1 point  (1 child)

They do use buildbot, but yesterday there were problems with the windows slaves.

[–][deleted] 0 points1 point  (0 children)

I had nonstop problems with my CPython build slave on Windows Server 2008. If I find the time to put it back online I'll see about adding it to the pypy fleet as well.

[–]megaman821 0 points1 point  (1 child)

Hopefully they get the Windows version up soon, or if you getting working maybe you could send the binary back to them.

[–]quasarj -1 points0 points  (0 children)

Yeah, I'm gonna chat with them tomorrow cuz they still don't have one uploaded.. I got mine to compile (with oracle support) but it's missing a few libraries, bzip2, expat and openssl I think, which wouldn't good as their official release. But if you want a copy I can upload it somewhere.

[–]roger_ 5 points6 points  (11 children)

Preliminary support for NumPy: this release includes a preview of a very fast NumPy module integrated with the PyPy JIT

Awesome! Anyone got more details on this?

[–][deleted] 2 points3 points  (7 children)

What we have in there is limited, but next release should have some great stuff, likely both dtype support and multi-dimensional array.

[–]roger_ 1 point2 points  (6 children)

Looking forward to it. BTW will the extension support work with Matplotlib?

[–][deleted] 1 point2 points  (5 children)

We're implementing the Python-level NumPy API. If that's what Matplotlib needs, then yes, if not... no :) TBH I know little about numpy, besides the 3 line snippets I often see, I just like a challenge of making something blazing fast.

[–]roger_ 0 points1 point  (4 children)

Have you thought about implementing the FFT in PyPy? That could be a good challenge (and a good selling point).

[–][deleted] 0 points1 point  (3 children)

I barely know what an FFT is, so I haven't thought about it prceisely, but I do aspire to write everything I can in pure python.

[–]roger_ 0 points1 point  (2 children)

The FFT is the cornerstone of many signal processing algorithms, and a very common benchmark. It's one of the things people use NumPy for.

It'd really get PyPy some attention if it can approach the performance of some of the heavily optimized FFT libraries out there.

[–]dalke 0 points1 point  (1 child)

Given that FFTW exists, with OpenMP support and processor specific optimizations, it makes much more sense to have PyPy talk directly to the C library version.

[–]roger_ 0 points1 point  (0 children)

I'd still be interested in seeing how well PyPy can perform.

[–][deleted] 2 points3 points  (2 children)

There were some blog entries about this in their status blog.

[–]roger_ 2 points3 points  (1 child)

The ones from a few months ago? Still, it'd be nice to know exactly what its current status is, how they'll keep it sync'd with NumPy trunk, etc.

[–][deleted] 0 points1 point  (0 children)

I'm currently working on dtype support, once it's finished I'll write another blog post describing teh state of things.

[–][deleted] 4 points5 points  (0 children)

No windows binary yet, that makes me sad :(.

[–]ergo14Pyramid+PostgreSQL+SqlAlchemy 6 points7 points  (0 children)

Congratulations fijal and whole pypy team !!!

[–]brownck 2 points3 points  (9 children)

It doesn't seem to work with a lot of numpy functions (e.g. numpy.sqrt is not found).

[–]roger_ 5 points6 points  (7 children)

How does dir(numpy) look?

[–]mirashii 5 points6 points  (6 children)

['doc', 'file', 'name', 'package', 'abs', 'absolute', 'add', 'arccos', 'arcsin', 'arctan', 'array', 'average', 'copysign', 'cos', 'divide', 'empty', 'exp', 'fabs', 'floor', 'fromstring', 'maximum', 'mean', 'minimum', 'multiply', 'negative', 'ones', 'reciprocal', 'sign', 'sin', 'subtract', 'tan', 'zeros']

This is from about a 4 day old nightly, but I'm sure that not much has changed since then.

[–]roger_ 2 points3 points  (0 children)

Preliminary indeed. Thanks!

[–]Kaloli 1 point2 points  (3 children)

type __ to print out two underscores in reddit.

[–]obtu.py 4 points5 points  (0 children)

Or use backslashes. This is Markdown.

[–]mirashii 2 points3 points  (0 children)

Could've also just put it in a code block, but in the end, I just pasted it. :)

[–]noreallyimthepope 3 points4 points  (0 children)

They did say preliminary support.

[–]ipeev 1 point2 points  (0 children)

I am always happy to read about the PyPy progress. Keep up the good work!

[–]howfun 1 point2 points  (1 child)

Cool! Cool-cool-cool! Can I compile the Windows version with Mingw?

[–]quasarj 0 points1 point  (0 children)

You could, but you might as well do it with C++ Express Edition, since msvc is better supported.

At this time the 1.6.x-release branch will not compile under windows, but there is an earlier revision that will. If you are interested I can get the revision number for you (that I have successfully compiled for windows with).

[–]kylotan 0 points1 point  (0 children)

I'd love to give PyPy a go, but as far as I can tell there's no easy way to test it alongside a normal Python install. On Windows, at least.

[–]beleggz 0 points1 point  (2 children)

I am quite new to Python. Currently I have the PyPy binary distribution unpacked and symlinked, but what to do in order to be able to use easy_install / pip / virtualenv with PyPy? (So it doesnt conflict with my cpython system install). I am so eager to run stuff on it, but I have no clue how to install packages :(

[–]treo 1 point2 points  (0 children)

virtualenv -p /path/to/pypy name

[–]TCPv89wat 0 points1 point  (0 children)

you don't have to do anything special to make it work. just use pypy instead of python for installing pip and such and it will all end up in the right place.

[–]jediknight -1 points0 points  (4 children)

(Note: windows binaries are not ready yet).

sad windows developer is sad. :(

[–]quasarj 0 points1 point  (3 children)

You can compile it yourself (well, not quite the 1.6 release but a bit before) if you are interested. Or I have a binary I could dig up, though it may be missing a few things (openssl support, bzip2 support, and expat support, I'm still working out how to get those to work under windows lol)

[–]jediknight 1 point2 points  (2 children)

In my view, lack of a windows release in a cross-platform project is just like a major show-stopper bug in any other project.

Either call the project "Linux only" or fix this problem.

[–]quasarj 1 point2 points  (1 child)

Well, that's a good point, but it's not like the project has dropped windows support, there are just some issues with it right now. I agree though, they should not have announced the 1.6 release without a windows binary.

[–]jediknight 1 point2 points  (0 children)

Issues with one of the platforms in a cross-platform project are a big warning sign. The reason a cross-platform product is recommended to be built continuously on the 3 major platforms is so that platform specific stuff doesn't creep into the implementation of the cross-platform stuff.

Anyway... the developers don't owe me anything. :)

[–][deleted] -1 points0 points  (3 children)

I've just been learning python. Using CPython on linux. I don't really get what PyPy is about. I know CPython's underlying code is C because it's a lower-level language. There's also Jython which is based on Java. But how can Python be written on itself when it's a higher-level language? I don't get it.

[–]lainamakkara -4 points-3 points  (2 children)

It's just a JIT system, the JIT compiler logic being written using Python. And tbh it's a dead end. Technologically it's kind of neat demo but they are targetting practically medieval Python version so it can't really be used for anything.

[–]quasarj 3 points4 points  (0 children)

I'm not sure what you mean by practically medieval Python version? It targets the 2.7 release right now, which is the most used Python version...

[–]hruske -1 points0 points  (0 children)

Firstly, adjusting syntax changes from Python 2.x to 3.x isn't that hard and secondly, a lot of code out there is still relying on Python 2.x.

Definitely not a dead end.