It's something that builds x.y versions of CPython from 0.9 to 3.13, automatically.
Given that, and optionally some Pypy's or MicroPythons, you can use https://stromberg.dnsalias.org/~strombrg/pythons/ to run a single python command or python script on each of your Python interpreters, and present their output.
It allows one to empirically answer a question like "In what version of Python was 'yield' added?". This is usually pretty useful, but it's worth keeping in mind that sometimes "implementation detail" later turns into "supported feature", like ordered dicts.
It works well for me on Linux. I tried it on MacOS, and found that Apple doesn't support 32 bit binaries anymore. That's not great for this kind of history, because some of the older Python's prefer to be 32 bit. I've never even tried to run it on Windows, though it might work on WSL, Cygwin or Msys.
Thank you for this trip back in time. Also, I'm curious about podman. A former colleague tried to sold it to me a few years ago, but I was like... I already have docker, why should I bother with another one?
I'd be interested to read your presentation of podman and how it compares to docker.
However, in version 0.9.1, it works the opposite way—you must include `()`; otherwise, it won’t work. Additionally, `import os` might not work unless you run `make libinstall`.
I've toyed with this as well: https://stromberg.dnsalias.org/~strombrg/cpythons/
It's something that builds x.y versions of CPython from 0.9 to 3.13, automatically.
Given that, and optionally some Pypy's or MicroPythons, you can use https://stromberg.dnsalias.org/~strombrg/pythons/ to run a single python command or python script on each of your Python interpreters, and present their output.
It allows one to empirically answer a question like "In what version of Python was 'yield' added?". This is usually pretty useful, but it's worth keeping in mind that sometimes "implementation detail" later turns into "supported feature", like ordered dicts.
It works well for me on Linux. I tried it on MacOS, and found that Apple doesn't support 32 bit binaries anymore. That's not great for this kind of history, because some of the older Python's prefer to be 32 bit. I've never even tried to run it on Windows, though it might work on WSL, Cygwin or Msys.
And in SVN, no less. A true blast from the past.
Thank you for this trip back in time. Also, I'm curious about podman. A former colleague tried to sold it to me a few years ago, but I was like... I already have docker, why should I bother with another one?
I'd be interested to read your presentation of podman and how it compares to docker.
I also compiled version 1.0 (as well as 0.9 and other 1.x branches). You can find my results at https://github.com/yakimka/ancient_python
Version 1.0.1, like 0.9.1, supports classes, but you should not include parentheses `()` in the class definition.
```
Python 1.0.1 (Jan 9 2024)
Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
>>> class Foo:
... pass
...
>>> Foo
<class Foo at 650460>
```
However, in version 0.9.1, it works the opposite way—you must include `()`; otherwise, it won’t work. Additionally, `import os` might not work unless you run `make libinstall`.
I even ported some modern code to Python 1.6 and 1.0 just for fun 😊. You can check it out here: https://gist.github.com/yakimka/2b0bb1581553bbf625aeef2fc8c5fa6d
Ohhhh, nice catch. Thanks.
A pyodide version of that would be so fun, so people can visit the museum directly online.
> A pyodide version of that would be so fun
Yeah, I was thinking about it too, but I didn’t have enough time to do it 😀
>>> Segmentation fault (core dumped)
LOL! Boy, does that bring back some memories. I don't think I've ever experienced this problem using (modern) Python.
A very fun read. Thanks for the effort.
Next time people say they miss when python was simple, we should direct them there. Good old days and all that.