PyPy v8.0.0 Release
Posted by lumpa 1 day ago
Comments
Comment by gomoboo 1 day ago
Comment by famouswaffles 1 day ago
Comment by pjmlp 1 day ago
Comment by theandrewbailey 23 hours ago
Comment by bastawhiz 23 hours ago
Comment by zbentley 37 minutes ago
If you removed JNA/JNI/CGo, plenty of people would complain…but the vast majority of uses of those languages would still work, unaltered, because most common tasks on the JVM and Go runtime don’t require external native deps.
Comment by pjmlp 22 hours ago
Comment by bastawhiz 16 hours ago
Comment by pjmlp 9 hours ago
Comment by bastawhiz 2 hours ago
Comment by pjmlp 2 hours ago
CGO only exists as a matter of convenience.
Comment by bastawhiz 23 hours ago
The list of differences is quite long, and even though most of them are edge cases, it's not hard to get bitten by one on a project of any substantial size:
https://doc.pypy.org/cpython_differences.html
It's not that people are writing weird code, it's that you have a package that does something clever but safe, and then another package using it that calls it in a way that's unexpected but not documented as unsafe, and layers and layers of that compound until you have things like exceptions raised because non-string keys are getting set on type objects.
At the end of the day, Python isn't a terribly well-specified language. CPython behavior is functionally the specification. "Make it match CPython but faster" isn't really an option because it kills your ability to do a lot of the things that make PyPy fast. And if that was all it took, we wouldn't still be arguing over a JIT inside CPython. Pyston was an honest attempt at doing that, but it has been dead for years partially because it hit many of these walls.
Comment by vova_hn2 20 hours ago
I'm still kinda sad that Pyston didn't happen
> but it has been dead for years partially because it hit many of these walls
Maybe this is one of the reasons. But I've also heard that Dropbox (which was making Pyston [0]), that used to heavily rely on Python, just decided that gradual migration to Go [1] is a more feasible approach than creating a faster Python implementation.
[0] https://dropbox.tech/infrastructure/introducing-pyston-an-up...
[1] "About a year ago, we decided to migrate our performance-critical backends from Python to Go to leverage better concurrency support and faster execution speed." - https://dropbox.tech/infrastructure/open-sourcing-our-go-lib...
Comment by vova_hn2 20 hours ago
An ML pipeline will probably rely on numpy to do all the heavy lifting.
A web backend will probably use something like psycopg, which is a wrapper around libpq (official postgres client lib, written in C).
etc
Comment by duttonw 1 day ago