Pyston Blog

blog.pyston.org · Company blog · on HN since 2014

The Pyston team posts releases and plans for Pyston, a faster Python implementation that began at Dropbox and later joined Anaconda.

What HN saysHN commenters link it as the Dropbox Python JIT project, with several describing it as stalled or failed, and one citing it on lack of funding.
40HN people shared it
21linked it in comments
31stories submitted
1.1Kstory points
3 years agolast shared
2014people per year2026

Most-shared posts

  1. 1
    Homepage
    7 people · first shared 2016
  2. 2
    Pyston 0.6.1 released, and future plans
    5 people · 53 points · first shared 2017 · 23 comments on HN
  3. 3
    Pyston v2.2: faster and open source
    3 people · 292 points · first shared 2021 · 100 comments on HN
  4. 4
    Pyston 0.5.1 Released (Python JIT-Compiler from Dropbox)
    3 people · 18 points · first shared 2016 · 1 comments on HN
  5. 5
  6. 6
    Pyston 0.5 released
    3 people · 12 points · first shared 2016 · discussion on HN
  7. 7
  8. 8
    Pyston Team Joins Anaconda
    3 people · 11 points · first shared 2021 · discussion on HN
  9. 9
    Pyston v2: Faster Python
    2 people · 262 points · first shared 2020 · 206 comments on HN
  10. 10
    Baseline JIT and inline caches
    2 people · 53 points · first shared 2016 · 12 comments on HN
  11. 11
    Caching object code
    2 people · 33 points · first shared 2015 · 5 comments on HN
  12. 12
    Pyston 0.4 released
    2 people · 27 points · first shared 2015 · discussion on HN
  13. 13
    Pre-compiled packages now available for Pyston
    2 people · 7 points · first shared 2021 · discussion on HN
  14. 14
    Pyston 0.6 released
    2 people · 5 points · first shared 2016 · discussion on HN
  15. 15
    Roadmap for the Pyston Python Implementation
    2 people · 4 points · first shared 2021 · discussion on HN

What HN people wrote when they linked it

deadmutex · 2021-05-04
I wonder if they are in touch with kmod or tried pyston: https://blog.pyston.org/.
zawerf · 2019-09-08
Dropbox's implementation of python was pyston: https://github.com/dropbox/pyston But I think it's dead now: https://blog.pyston.org/
oblio · 2018-04-29
Python also had Dropbox’s Pyston, that mostly failed: https://blog.pyston.org/
ankrgyl · 2016-07-03
This article is a follow up to an earlier post (https://blog.pyston.org/2016/06/30/baseline-jit-and-inline-caches/) which provides additional context. In short, python opcodes are inefficient because they must support a significant amount of dynamicity, even as opposed to some other language peers like JS, PHP, Lua, etc. The original post explains some of the cool stuff they're doing with Pyston (specifically baseline jit and inline caching) to combat it.
staticassertion · 2020-05-19
https://blog.pyston.org/ You can look at the last release of Pyston for why companies are not funding this work. They're just moving to other languages. Consider that Dropbox, Google, and Instragram likely spend much more than 1M on optimizing/ improving Python, just to have it still be a relatively slow language. At some point it becomes way cheaper to just move to other languages that don't require that constant level of effort. Think about how much time and money is spent on things like: * Adding types to Python * Improving performance when you could just move performance critical code to Go/ Rust as Dropbox has done, for a fraction of the cost, with far less maintenance burden. "Make Python faster" is just a losing game imo. It is fundamentally never going to be as fast as other languages, it's far too dynamic (and that's a huge appeal of the language). Just look at the optimizations done here - moving `str` to local scope to avoid a global lookup? And can you even avoid that? Not without changing semantics - what if I want to change `str` globally? Still, I was surprised by some of the sorta nutty wins that were achieved here. There's clearly some perf left on the table, and I'm not an expert on interpreters, it just seems really hard to build a semantically equivalent Python ("I can change global functions from a background thread") that can automatically optimize these things.
bakery2k · 2018-10-10
Python is, despite its simple appearance, a much more complex language than JavaScript. A V8 equivalent for Python is certainly possible, but would require even more work than went into creating V8 itself - who would be motivated to spend that much effort on Python? Dropbox? They seem to be the company driving Python nowadays, but gave up trying to speed up Python in favour of writing "performance-sensitive code in other languages" [1]. PyPy uses a meta-tracing approach in an attempt to reduce the amount of work required. Its speed is impressive, but I'm sure meta-tracing leaves some performance on the table. Another way to reduce the amount of work required would be to support only a subset of the language - for example, a V8 equivalent for MicroPython rather than for full Python. I'm sure this could be made very fast, but it would have very poor compatibility with existing Python code, so what would be the point? [1] https://blog.pyston.org/
Nkdo · 2016-04-21
No matter how hard you're wishing it to be true, does not make it so. PyPy will "have" to catch up? in the name of what? PyPy is but one of the many projects that are still thriving in the 2.x ecosystem, there's even a competitor to PyPy that was launched 2 years ago that is also a 2.x exclusive: Pyston. https://blog.pyston.org Yes, a very new implementation project that happens to focus on 2.7. Python 2 gets all the better runtimes. Long after the end of life of the official CPython 2.7, we will still be running 2.x programs, and doing it on much better runtimes than CPython. We've been hearing the same tirades of Python 3's future over and over again by its partisans ever since its release in 2008. 8 years have passed since then. 8 years will pass and Python 3 will still have nothing but a minority of vocal open source users. Python will be treated as a legacy language the way COBOL and BASIC are treated before py3 starts picking up any steam. That's kinda what some companies are already doing, like Dropbox. Switching to Go here and there, while keeping the maintenance of their very large 2.7 python codebase with absolutely no intention whatsoever of moving that behemoth to 3.x. Why bother? they could write new software features, fix bugs and so on instead of waste time on porting. Why waste so much time on porting when it brings so little benefits? Programming is ultimately about problem solving. Porting to python 3 doesn't make my software better. It's certainly not…
zitterbewegung · 2023-12-11
I don't disagree with you but, now you can retrofit a JIT into python. https://blog.pyston.org/2022/09/29/announcing-3-7-3-10-support-and-a-n…
colatkinson · 2022-06-08
Is it proprietary? According to their blog, Pyston was open sourced with version 2.2 [0], and the LICENSE file in the repo [1] appears to be the same as upstream CPython. Not a rhetorical question BTW. A pluggable JIT for Python could be a boon for some projects at my dayjob, but if it's proprietary that would put a bit of a damper on things. [0]: https://blog.pyston.org/2021/05/05/pyston-v2-2-faster-and-open-source/ [1]: https://github.com/pyston/pyston/blob/pyston_main/LICENSE
pella · 2022-04-29
other alternative : PYSTON "Pyston is a faster and highly-compatible implementation of the Python programming language." "Our speedup on ARM (30% on a Graviton EC2 instance) is comparable to our speedup for x86 (34% on an Intel i7-6700)." https://blog.pyston.org/2022/04/01/pyston-v2-3-3-arm-support/ 2021.aug.30 : "Pyston Team Joins Anaconda to Expand Open-Source Project Development" https://www.anaconda.com/blog/pyston-team-joins-anaconda Roadmap: https://blog.pyston.org/2021/10/26/pyston-roadmap/ Github: https://github.com/pyston/pyston
ForHackernews · 2021-05-13
sizediterable · 2021-05-13
Dropbox hasn't sponsored Pyston development in quite a while https://blog.pyston.org/2017/01/31/pyston-0-6-1-released-and-future-pl…
JonAtkinson · 2021-05-06
I think this is incorrect. There is even an older blog post (2016) where Pyston explicitly benchmarks Numpy: https://blog.pyston.org/2016/11/11/pyston-0-6-released/
jsnell · 2019-09-12
Right, let's ask Dropbox: https://blog.pyston.org/2017/01/31/pyston-0-6-1-released-and-future-pl… (And after that blog post, there are no commits in the github repo you linked to).
muizelaar · 2019-02-11
Google and Dropbox have been migrating from Python to Go to deal with Python's performance problems instead of trying to make Python run faster. https://blog.pyston.org/2017/01/31/pyston-0-6-1-released-and-future-pl… https://opensource.googleblog.com/2017/01/grumpy-go-running-python.htm…
phonon · 2018-09-25
Probably because it was 2.7 only, and only 10% faster on Dropbox's code. https://blog.pyston.org/2017/01/31/pyston-0-6-1-released-and-future-pl…
brettcannon · 2016-03-08
Pyston targets Python 2.7 because that's what they use on their servers. As for why Pyston over PyPy, http://blog.pyston.org/2015/11/24/pyston-talk-recording/ has a nice video that mentions why (among other things).
sanxiyn · 2015-02-10
There are many measures of benchmark sizes. One important measure is size of codes that account for 99% of execution time. If your codebase is a million lines but your hotspot is a thousand lines, benchmark result is sensitive to optimization quirks and in some sense benchmark is small. More on this idea here: http://blog.pyston.org/2014/12/05/python-benchmark-sizes/
rattray · 2014-12-22
Pyston is a very exciting project. The commit velocity on github seems quite high [0]. Here's the latest status update on their blog, for those interested: http://blog.pyston.org/2014/11/21/pyston-status-update/ [0] https://github.com/dropbox/pyston/graphs/commit-activity
dr_zoidberg · 2021-05-06
Pyston originally started as an internal project at Dropbox and they had a couple of super interesting blogposts where they detailed their approach and findings[0]. After a a year or two, the project got axed, but the devs kept working on it and then released it on their own (I don't remember the details, but evidently the chosen license for the project allowed that). Last year (I think it was last year, but can't tell if that was 2020 or 2019) they released it on their own, thinking of a commercial model. Now they have switched to OSS+services, which is interesting because it'llopen up more people using Pyston. I tihnk this is interesting in its own right, but yesterday we got Facebook announcing Cinder[1] -- which is unsupported to outsiders, but significantly faster than Pyston. According to Facebook, they intend for parts of Cinder to be upstreamed (and have already upstreamed a few, apparently) to CPython. So again, and sorry for using such a vague word, it'll be interesting to see how all these things play out in time. [0] https://blog.pyston.org/2014/09/ [1] https://github.com/facebookincubator/cinder
tony · 2020-02-09
I'm not sure if it's an exact fit, but dropbox used to have pyston: https://github.com/dropbox/pyston The blog posts by Kevin Modzelewski went into the internals: https://blog.pyston.org/ Also by the same person, a good article on Python's performance: http://blog.kevmod.com/2016/07/why-is-python-slow/ As a side comment: On the subject of type inference, I really come to like python's type hints. I don't use mypy itself yet, but already had a habit of adding types in docstrings, and like it when I can add a clue that a signature/return is dealing with a something that's not a basic type. There are some nice little things out there for advanced typing, being added now and then: - TypedDict and Literal: https://github.com/python/typing/blob/master/typing_extensions/README.… (TypedDict was accepted in PEP 589[1]) - NamedTuple had variable annotation added in Python 3.6: https://www.python.org/dev/peps/pep-0526/ I wonder if typings are added to a codebase, we could give LLVM one more shot. It'd be pretty crazy to build able to build a large graphql server and build it into a statically linked binary like golang. [1] https://www.python.org/dev/peps/pep-0589/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close