30 ms·
PyPy performance is good, but the project is still not very mature. It's not quite yet ready as a drop-in replacement. In particular, the build process is rea
by binarycrusader 15y ago
PyPy performance is good, but the project is still not very mature. It's not quite yet ready as a drop-in replacement.
In particular, the build process is really painful (3+ hours on a high-end Xeon workstation) and quite immature.
I was particularly annoyed to discover that the build process isn't incremental -- if it fails for any reason, you get to start all over again.
The CPython extension support is also still very experimental (that is, if you have any Python extension modules written in C, be prepared for a lot of fun getting them to work).
PyPy also doesn't support anywhere near the number of OS platforms that Python does natively. It's very much a Linux, Mac, or Windows thing only. And it's heavily focused on x86 if you want to use the JIT version.
- _mrc 15y agoWhy the downvotes? I find this analysis useful. Is it incorrect?
- fijal 15y agoYes, 3+ hours sounds incorrect. Also, it's not like KDE builds in 15 minutes either. I don't see how a long build time makes the project immature, feel free to suggest the connection.
- dripton 15y ago3 hours? You're doing something wrong. I just built PyPy in 49 minutes on a $99 3 GHz Phenom II.
- obtu 15y agoYou probably have more RAM?
- MostAwesomeDude 15y agoThe build is very all-or-nothing in its code analysis. Feel free to suggest ways to make this incremental -- the code isn't compiled per-module like C-style languages. The C API is not something you should target. Write pure Python instead of C extensions. If you're wrapping a C API, use Cython, which mostly stays within the boundaries of sanity (and might someday grow a ctypes target). Most of the C API (for certain values of "most") is only a recompile away. Which obscure UNIX flavor did you need supported? The biggest obstacle to supporting other platforms is a lack of buildslaves and people well-versed in those platforms.