
A note to webmaster@python.org from an astute user named Hiromi in Japan* referred us to Guido's shell archives for the 0.9.1 release from 1991. As that wasn't listed in the historical releases README file: https://legacy.python.org/download/releases/src/README I pulled the shar files (and a patch), then made a few tweaks to get it to build: % ./python
print 'hello world!' hello world! import sys dir(sys) ['argv', 'exit', 'modules', 'path', 'ps1', 'ps2', 'stderr', 'stdin', 'stdout'] sys.modules {'builtin': <module 'builtin'>; 'sys': <module 'sys'>; '__main__': <module '__main__'>} sys.exit(0)
I then pushed the result to a Github repo: https://github.com/smontanaro/python-0.9.1 There is a new directory named "shar" with the original files, a small README file and a compile.patch file between the original code and the runnable code. It was a pleasant diversion for a couple hours. I was tired of shovelling snow anyway... Thank you, Hiromi. Skip * Hiromi is bcc'd on this note in case he cares to comment. I didn't want to publish his email beyond the bounds of the webmaster alias without his permission.

Awesome, Skip! Was there a date somewhere? I can't recall if this would have been the first open source release (from just about 30 years ago, sometime in February 1991) or some time later in the same year? On Tue, Feb 16, 2021 at 1:57 PM Skip Montanaro <skip.montanaro@gmail.com> wrote:
A note to webmaster@python.org from an astute user named Hiromi in Japan* referred us to Guido's shell archives for the 0.9.1 release from 1991. As that wasn't listed in the historical releases README file:
https://legacy.python.org/download/releases/src/README
I pulled the shar files (and a patch), then made a few tweaks to get it to build:
% ./python
print 'hello world!' hello world! import sys dir(sys) ['argv', 'exit', 'modules', 'path', 'ps1', 'ps2', 'stderr', 'stdin', 'stdout'] sys.modules {'builtin': <module 'builtin'>; 'sys': <module 'sys'>; '__main__': <module '__main__'>} sys.exit(0)
I then pushed the result to a Github repo:
https://github.com/smontanaro/python-0.9.1
There is a new directory named "shar" with the original files, a small README file and a compile.patch file between the original code and the runnable code.
It was a pleasant diversion for a couple hours. I was tired of shovelling snow anyway... Thank you, Hiromi.
Skip
* Hiromi is bcc'd on this note in case he cares to comment. I didn't want to publish his email beyond the bounds of the webmaster alias without his permission.
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/VZYELIYA... Code of Conduct: http://python.org/psf/codeofconduct/
-- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-c...>

On 2/16/21 3:44 PM, Guido van Rossum wrote:
Awesome, Skip!
Was there a date somewhere? I can't recall if this would have been the first open source release (from just about 30 years ago, sometime in February 1991) or some time later in the same year?
Guido van Rossum unread, Python 0.9.1 part 01/21 XThis is Python, an extensible interpreted programming language that Xcombines remarkable power with very clear syntax. X XThis is version 0.9 (the first beta release), patchlevel 2/19/91

On Tue, Feb 16, 2021 at 1:58 PM Skip Montanaro <skip.montanaro@gmail.com> wrote:
I then pushed the result to a Github repo:
Wow. Was white-space not significant in this release of Python? I see the lack of indentation in the first Python programs.

On Tue, Feb 16, 2021 at 2:59 PM Senthil Kumaran <senthil@uthcode.com> wrote:
On Tue, Feb 16, 2021 at 1:58 PM Skip Montanaro <skip.montanaro@gmail.com> wrote:
I then pushed the result to a Github repo:
Wow. Was white-space not significant in this release of Python? I see the lack of indentation in the first Python programs.
Indentation most certainly was significant from day 0. I suspect what happened is that these files got busted somehow by the extraction process used by Skip or Hiromi. -- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-c...>

Wow. Was white-space not significant in this release of Python? I see the
lack of indentation in the first Python programs.
Indentation most certainly was significant from day 0. I suspect what happened is that these files got busted somehow by the extraction process used by Skip or Hiromi.
Yes, that's certainly possible. While it's nice that Google has archived this stuff, their faithfulness to the original formats leaves a bit to be desired (and gmane still doesn't work for me, eliminating that option). Guido's messages are displayed as HTML, and I saw no way to get at the raw Usenet messages. I just copied the shar data and saved the result. It seems clear that tabs copied as spaces. The Makefile indentation was hosed up. It should have dawned on me that the .py, .c and .h files would be messed up as well. I was only concerned with building the interpreter. If someone knows how to get the original Usenet messages from what Google published, let me know. Skip

If someone knows how to get the original Usenet messages from what Google published, let me know.
Seems the original shar is there buried in a Javascript string toward the end of the file. I think I've got a handle on it, though it will take a Python script to massage back into correct format. Skip

Hello, On Tue, 16 Feb 2021 18:22:00 -0600 Skip Montanaro <skip.montanaro@gmail.com> wrote:
If someone knows how to get the original Usenet messages from what Google published, let me know.
Seems the original shar is there buried in a Javascript string toward the end of the file. I think I've got a handle on it, though it will take a Python script to massage back into correct format.
Also mind http://www.dalkescientific.com/writings/diary/archive/2009/03/27/python_0_9_... for result comparison.
Skip
[] -- Best regards, Paul mailto:pmiscml@gmail.com

Also mind http://www.dalkescientific.com/writings/diary/archive/2009/03/27/python_0_9_... for result comparison.
Thanks, Paul. I had lost track of Andrew. Good to know he's still out there. I wonder why his tar file was never sucked up into the historical releases page. Whew! My stupid little extraction script did a reasonable job. I see plenty of differences, but a cursory examination shows they are only in leading whitespace. Where I translated "\t" to TAB, it seems Andrew used a suitable number of spaces. Python modules/scripts seem more plausibly indented, and the couple I tried worked, so I'm a bit more confident I have things right: % PYTHONPATH=lib ./src/python
import string print string.upper('hello world!') HELLO WORLD!
% ./src/python lib/fact.py 99999 [3, 3, 41, 271] 4096 [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
The tests don't pass though. 1 * 1 raises an integer overflow exception:
1 * 1 Unhandled exception: run-time error: integer overflow Stack backtrace (innermost last): File "<stdin>", line 1
I'll let someone figure that out. :-) At any rate, the git repo has been updated. Skip

On Tue, Feb 16, 2021 at 05:49:49PM -0600, Skip Montanaro wrote:
If someone knows how to get the original Usenet messages from what Google published, let me know.
I don't have those, but I do have a copy of Python 0.9.1 with unmangled scripts. $ ls -lh Python-0.9.1.tar.gz -rwxr-xr-x 1 steve steve 379K Nov 5 2009 Python-0.9.1.tar.gz I don't remember where I got it from, but it compiled on CentOS release 5.11, I'm not sure if it will compile on anything newer. Skip, if you would like me to email it to you privately, let me know. (Likewise for anyone else.) -- Steve

On Wed, Feb 17, 2021 at 7:33 AM Steven D'Aprano <steve@pearwood.info> wrote:
On Tue, Feb 16, 2021 at 05:49:49PM -0600, Skip Montanaro wrote:
If someone knows how to get the original Usenet messages from what Google published, let me know.
I don't have those, but I do have a copy of Python 0.9.1 with unmangled scripts.
$ ls -lh Python-0.9.1.tar.gz -rwxr-xr-x 1 steve steve 379K Nov 5 2009 Python-0.9.1.tar.gz
I don't remember where I got it from, but it compiled on CentOS release 5.11, I'm not sure if it will compile on anything newer.
Skip, if you would like me to email it to you privately, let me know. (Likewise for anyone else.)
The original ones are here: http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/ Look at http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/index.gz for the associating subjects with file names. As far as I can tell, they extract flawlessly using unshar. When I see diffs like this (your git vs. the unshar result) I tend to trust unshar more: --- a/README +++ b/README @@ -41,7 +41,7 @@ I am the author of Python: 1098 SJ Amsterdam The Netherlands - E-mail: gu...@cwi.nl + E-mail: guido@cwi.nl --- a/doc/mod.tex +++ b/doc/mod.tex @@ -17,7 +17,7 @@ \itembreak } - itle{\bf +\title{\bf Python Library Reference \\ (DRAFT) }

It was not that bad, though: https://github.com/smontanaro/python-0.9.1/compare/main...Ringdingcoder:orig...

On 17.02.2021 08:00, Stefan Ring wrote:
On Wed, Feb 17, 2021 at 7:33 AM Steven D'Aprano <steve@pearwood.info> wrote:
On Tue, Feb 16, 2021 at 05:49:49PM -0600, Skip Montanaro wrote:
If someone knows how to get the original Usenet messages from what Google published, let me know.
I don't have those, but I do have a copy of Python 0.9.1 with unmangled scripts.
$ ls -lh Python-0.9.1.tar.gz -rwxr-xr-x 1 steve steve 379K Nov 5 2009 Python-0.9.1.tar.gz
I don't remember where I got it from, but it compiled on CentOS release 5.11, I'm not sure if it will compile on anything newer.
You are probably looking at Andrew Dalke's experiment from 2009: http://www.dalkescientific.com/writings/diary/archive/2009/03/27/python_0_9_... -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Experts (#1, Feb 17 2021)
Python Projects, Coaching and Support ... https://www.egenix.com/ Python Product Development ... https://consulting.egenix.com/
::: We implement business ideas - efficiently in both time and costs ::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 https://www.egenix.com/company/contact/ https://www.malemburg.com/

This is getting a bit more off-topic for python-dev than I'd like. I will make a couple comments though, then hopefully be done with this thread.
The original ones are here: http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/ Look at http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/index.gz for the associating subjects with file names. As far as I can tell, they extract flawlessly using unshar.
Thanks. Will check them out.
When I see diffs like this (your git vs. the unshar result) I tend to trust unshar more:
... Well, sure. I was trying to reverse engineer the original shar files from Google's HTML. I was frankly fairly surprised that I got as close to perfection as I did. I realized that Google had mangled Guido's old CWI email, but didn't worry about it. I also saw the TeX macro mangling, but as I wasn't planning to rebuild the documentation, I didn't worry too much about that. I expected to need a bunch of manual patchwork to get back to something that would even compile. It's nice to know that in this case, "the Internet never forgets." Skip

If we can get a clean copy of the original sources I think we should put them up under the Python org on GitHub for posterity. On Wed, Feb 17, 2021 at 6:10 AM Skip Montanaro <skip.montanaro@gmail.com> wrote:
This is getting a bit more off-topic for python-dev than I'd like. I will make a couple comments though, then hopefully be done with this thread.
The original ones are here: http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/ Look at http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/index.gz for the associating subjects with file names. As far as I can tell, they extract flawlessly using unshar.
Thanks. Will check them out.
When I see diffs like this (your git vs. the unshar result) I tend to trust unshar more:
...
Well, sure. I was trying to reverse engineer the original shar files from Google's HTML. I was frankly fairly surprised that I got as close to perfection as I did. I realized that Google had mangled Guido's old CWI email, but didn't worry about it. I also saw the TeX macro mangling, but as I wasn't planning to rebuild the documentation, I didn't worry too much about that. I expected to need a bunch of manual patchwork to get back to something that would even compile.
It's nice to know that in this case, "the Internet never forgets."
Skip _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/J6IOWRUU... Code of Conduct: http://python.org/psf/codeofconduct/

If we can get a clean copy of the original sources I think we should put them up under the Python org on GitHub for posterity.
Did that earlier today: https://github.com/python/pythondotorg/issues/1734 Skip

Hello, On Wed, 17 Feb 2021 18:53:46 -0600 Skip Montanaro <skip.montanaro@gmail.com> wrote:
If we can get a clean copy of the original sources I think we should put them up under the Python org on GitHub for posterity.
Did that earlier today:
I think to resolve this issue to the completion, and avoid possibility of an intermediary to add any unexpected changes/mistakes to the original sources, instead of "someone making a tarball", someone should make a script, which reproduces making a tarball. Then such a script can be reviewed and tarball reproduced independently (e.g., by the admins of python.org). That's exactly what I did, and attached it to the ticket above: https://github.com/python/pythondotorg/issues/1734#issuecomment-781129337 For extra details, copying my comment there: --- I attach my version of such a script (and also paste it below for reference, but if you use it, please use the attached version to avoid any discrepancies due to copy-paste). The script takes care to preserve not just data, but the metadata of the release, by setting file timestamps to the date/time of the message which contained the 1st chunk of the shar archive. It also takes care to create reproducible tarball, i.e. tarball archives created by different runs of the script should byte-to-byte match each other (cf. https://en.wikipedia.org/wiki/Reproducible_builds). Of course, that depends on .tar and .gz formats themselves being stable (which should be de-facto the case, and I hope their maintainers treat them as such). As an extra measure, MD5SUMS of the individual files is also computed and included in the tarball. Finally, the script itself is also included, as a kind of executable documentation. That's why it's important the script itself to be byte-perfect when recreating the tarball. I also didn't make it executable, it should be run as sh python-0.9.1-create-tarball.sh. Under conditions described above, the tarball produced should have following md5sum: 65e0c4140583c7032f35036939cf1bdd python-0.9.1.tar.gz https://github.com/python/pythondotorg/files/6001019/python-0.9.1-create-tar... The script contents for reference (do not copy-paste, use attached version above): #!/bin/sh # # This script creates fully reproducible, bytes-perfect tarball of the # CPython 0.9.1 release (initial public release) as posted by Guido # van Rossum to the Usenet "alt.sources" newsgroup # (https://en.wikipedia.org/wiki/Usenet_newsgroup). This is not first # attempt to recover the original 0.9.1 sources, but many previous # attempts started from the Dejanews Usenet archives, later acquired # by Google, which have whitespace issues (tabs converted to spaces). # This script uses alternative archive source at ftp.fi.netbsd.org, # which doesn't have whitespace issues. # # This script strives to produce fully reproducible archive, and for # this explicitly sets GMT date of all files included in the archive. # So, for as long as TAR and GZIP formats are themselves stable across # systems, this script should produce bytes-exact archive files on any # system. # set -e # Index: http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/index.gz cat >urls <<EOF http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910220.10... 0.9.1 part 01/21 <2963@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910220.11... 0.9.1 part 03/21 <2965@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.31... 0.9.1 part 04/21 <2966@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.32... 0.9.1 part 05/21 <2967@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.33... 0.9.1 part 06/21 <2968@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.34... 0.9.1 part 07/21 <2969@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.35... 0.9.1 part 08/21 <2970@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.36... 0.9.1 part 09/21 <2971@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.37... 0.9.1 part 10/21 <2972@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.38... 0.9.1 part 11/21 <2973@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.39... 0.9.1 part 12/21 <2974@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.40... 0.9.1 part 13/21 <2975@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.41... 0.9.1 part 14/21 <2976@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.42... 0.9.1 part 15/21 <2977@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.43... 0.9.1 part 16/21 <2978@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.44... 0.9.1 part 17/21 <2979@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.45... 0.9.1 part 19/21 <2981@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.46... 0.9.1 part 21/21 <2983@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.47... 0.9.1 part 02/21 <2985@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.48... 0.9.1 part 18/21 <2980@charon.cwi.nl> http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.49... 0.9.1 part 20/21 <2982@charon.cwi.nl> EOF wget -i urls gzip -d -f *.gz rm -rf python-0.9.1 mkdir -p python-0.9.1 unshar -d python-0.9.1 [0-9]*.[0-9][0-9] find python-0.9.1 -type f | xargs md5sum >MD5SUMS # Set the modtime based on the date of the "part 01/21" message. find python-0.9.1/ | xargs touch -d "19 Feb 1991 17:35:26 GMT" # Set the date of the script itself (and MD5SUMS), to make 100% reproducible # tarball. Use +30 years date. In reality, script was written a couple of days # earlier. touch -d "19 Feb 2021 17:35:26 GMT" python-0.9.1-create-tarball.sh MD5SUMS # Create tarball, include this script itself as a documentation/reference. tar cfz python-0.9.1.tar.gz python-0.9.1-create-tarball.sh MD5SUMS python-0.9.1/ touch -d "19 Feb 1991 17:35:26 GMT" python-0.9.1.tar.gz md5sum python-0.9.1.tar.gz --- -- Best regards, Paul mailto:pmiscml@gmail.com

On Thu, Feb 18, 2021 at 12:02 AM Paul Sokolovsky <pmiscml@gmail.com> wrote:
I think to resolve this issue to the completion, and avoid possibility of an intermediary to add any unexpected changes/mistakes to the original sources, instead of "someone making a tarball", someone should make a script, which reproduces making a tarball. Then such a script can be reviewed and tarball reproduced independently (e.g., by the admins of python.org).
That's exactly what I did, and attached it to the ticket above: https://github.com/python/pythondotorg/issues/1734#issuecomment-781129337
For extra details, copying my comment there:
--- I attach my version of such a script (and also paste it below for reference, but if you use it, please use the attached version to avoid any discrepancies due to copy-paste).
I got a version to build, but what's supposed to be in patchlevel.h? It was just an int, but that was confusing gcc. I commented out its #include, and things seemed to work without it. The patches I used are at https://stromberg.dnsalias.org/svn/cpythons/trunk/python0.9/exportable-patch... Sadly, it doesn't work that well with my "pythons" script ( https://stromberg.dnsalias.org/~strombrg/pythons/), because 0.9.1's interpreter doesn't have a -c option.

Will someone publish an manylinux build to conda-forge (or their own channel)? On Thu, Feb 18, 2021 at 9:15 PM Dan Stromberg <drsalists@gmail.com> wrote:
On Thu, Feb 18, 2021 at 12:02 AM Paul Sokolovsky <pmiscml@gmail.com> wrote:
I think to resolve this issue to the completion, and avoid possibility of an intermediary to add any unexpected changes/mistakes to the original sources, instead of "someone making a tarball", someone should make a script, which reproduces making a tarball. Then such a script can be reviewed and tarball reproduced independently (e.g., by the admins of python.org).
That's exactly what I did, and attached it to the ticket above: https://github.com/python/pythondotorg/issues/1734#issuecomment-781129337
For extra details, copying my comment there:
--- I attach my version of such a script (and also paste it below for reference, but if you use it, please use the attached version to avoid any discrepancies due to copy-paste).
I got a version to build, but what's supposed to be in patchlevel.h? It was just an int, but that was confusing gcc. I commented out its #include, and things seemed to work without it. The patches I used are at https://stromberg.dnsalias.org/svn/cpythons/trunk/python0.9/exportable-patch...
Sadly, it doesn't work that well with my "pythons" script ( https://stromberg.dnsalias.org/~strombrg/pythons/), because 0.9.1's interpreter doesn't have a -c option.
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/XAKEELGL... Code of Conduct: http://python.org/psf/codeofconduct/
-- The dead increasingly dominate and strangle both the living and the not-yet born. Vampiric capital and undead corporate persons abuse the lives and control the thoughts of homo faber. Ideas, once born, become abortifacients against new conceptions.

On 18.02.2021 01:45, Brett Cannon wrote:
If we can get a clean copy of the original sources I think we should put them up under the Python org on GitHub for posterity.
There is already a page with Andrew's build on python.org: https://www.python.org/download/releases/early/ but it's not linked from e.g. https://www.python.org/download/releases/ His page lists the details around making it work again: http://www.dalkescientific.com/writings/diary/archive/2009/03/27/python_0_9_...
On Wed, Feb 17, 2021 at 6:10 AM Skip Montanaro <skip.montanaro@gmail.com <mailto:skip.montanaro@gmail.com>> wrote:
This is getting a bit more off-topic for python-dev than I'd like. I will make a couple comments though, then hopefully be done with this thread.
> The original ones are here: > http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/ > Look at http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/index.gz > for the associating subjects with file names. As far as I can tell, > they extract flawlessly using unshar.
Thanks. Will check them out.
> When I see diffs like this (your git vs. the unshar result) I tend to > trust unshar more:
...
Well, sure. I was trying to reverse engineer the original shar files from Google's HTML. I was frankly fairly surprised that I got as close to perfection as I did. I realized that Google had mangled Guido's old CWI email, but didn't worry about it. I also saw the TeX macro mangling, but as I wasn't planning to rebuild the documentation, I didn't worry too much about that. I expected to need a bunch of manual patchwork to get back to something that would even compile.
It's nice to know that in this case, "the Internet never forgets."
Skip _______________________________________________ Python-Dev mailing list -- python-dev@python.org <mailto:python-dev@python.org> To unsubscribe send an email to python-dev-leave@python.org <mailto:python-dev-leave@python.org> https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/J6IOWRUU... Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/GHZYRQJO... Code of Conduct: http://python.org/psf/codeofconduct/
-- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Experts (#1, Feb 18 2021)
Python Projects, Coaching and Support ... https://www.egenix.com/ Python Product Development ... https://consulting.egenix.com/
::: We implement business ideas - efficiently in both time and costs ::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 https://www.egenix.com/company/contact/ https://www.malemburg.com/

On 18.02.2021 09:16, M.-A. Lemburg wrote:
On 18.02.2021 01:45, Brett Cannon wrote:
If we can get a clean copy of the original sources I think we should put them up under the Python org on GitHub for posterity.
There is already a page with Andrew's build on python.org:
https://www.python.org/download/releases/early/
but it's not linked from e.g. https://www.python.org/download/releases/
His page lists the details around making it work again:
http://www.dalkescientific.com/writings/diary/archive/2009/03/27/python_0_9_...
I added the missing links.
On Wed, Feb 17, 2021 at 6:10 AM Skip Montanaro <skip.montanaro@gmail.com <mailto:skip.montanaro@gmail.com>> wrote:
This is getting a bit more off-topic for python-dev than I'd like. I will make a couple comments though, then hopefully be done with this thread.
> The original ones are here: > http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/ > Look at http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/index.gz > for the associating subjects with file names. As far as I can tell, > they extract flawlessly using unshar.
Thanks. Will check them out.
> When I see diffs like this (your git vs. the unshar result) I tend to > trust unshar more:
...
Well, sure. I was trying to reverse engineer the original shar files from Google's HTML. I was frankly fairly surprised that I got as close to perfection as I did. I realized that Google had mangled Guido's old CWI email, but didn't worry about it. I also saw the TeX macro mangling, but as I wasn't planning to rebuild the documentation, I didn't worry too much about that. I expected to need a bunch of manual patchwork to get back to something that would even compile.
It's nice to know that in this case, "the Internet never forgets."
Skip _______________________________________________ Python-Dev mailing list -- python-dev@python.org <mailto:python-dev@python.org> To unsubscribe send an email to python-dev-leave@python.org <mailto:python-dev-leave@python.org> https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/J6IOWRUU... Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/GHZYRQJO... Code of Conduct: http://python.org/psf/codeofconduct/
-- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Experts (#1, Feb 18 2021)
Python Projects, Coaching and Support ... https://www.egenix.com/ Python Product Development ... https://consulting.egenix.com/
::: We implement business ideas - efficiently in both time and costs ::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 https://www.egenix.com/company/contact/ https://www.malemburg.com/

On 2/17/21 4:45 PM, Brett Cannon wrote:
If we can get a clean copy of the original sources I think we should put them up under the Python org on GitHub for posterity.
Call me crazy, but... shouldn't they be checked in? I thought we literally had every revision going back to day zero. It /should/ be duck soup to recreate the original sources--all you need is the correct revision number. CVS to SVN to HG to GIT, oh my, //arry/

On Thu, Feb 18, 2021 at 10:10 AM Larry Hastings <larry@hastings.org> wrote:
Call me crazy, but... shouldn't they be checked in? I thought we literally had every revision going back to day zero. It should be duck soup to recreate the original sources--all you need is the correct revision number.
It seems to be mostly there, but the directory structure is completely different. And the demo directory, which constitutes a significant part of the original "distribution", is absent.
CVS to SVN to HG to GIT, oh my,
Yeah, back in CVS times it was customary to move files around in the repository. I’m guilty of this myself. ;)

On Wed, Feb 17, 2021 at 7:33 AM Steven D'Aprano <steve@pearwood.info> wrote:
On Tue, Feb 16, 2021 at 05:49:49PM -0600, Skip Montanaro wrote:
If someone knows how to get the original Usenet messages from what Google published, let me know.
I don't have those, but I do have a copy of Python 0.9.1 with unmangled scripts.
$ ls -lh Python-0.9.1.tar.gz -rwxr-xr-x 1 steve steve 379K Nov 5 2009 Python-0.9.1.tar.gz
I don't remember where I got it from, but it compiled on CentOS release 5.11, I'm not sure if it will compile on anything newer.
I guess you got it from here: https://www.python.org/download/releases/early/ Compared to the original, this one has a lot of whitespace changes. Mostly tabs -> spaces.

On Tue, Feb 16, 2021 at 5:02 PM Skip Montanaro <skip.montanaro@gmail.com> wrot
A note to webmaster@python.org from an astute user named Hiromi in Japan* referred us to Guido's shell archives for the 0.9.1 release from 1991.
Very interesting discovery! In my efforts to uncover the original plaintext usenet post, I stumbled across this 12-year-old diary/blog post: http://www.dalkescientific.com/writings/diary/archive/2009/03/27/python_0_9_... A little further digging led to https://www.python.org/download/releases/early/ which references the above post and is the first hit on Google for the search query "alt.sources python 0.9.1" (without the quotes).
As that wasn't listed in the historical releases README file
It would be good to add it to that.

I've provided this excellent language interpreter as a conda package. For users of conda, you can install it (on Linux) with: conda install -c davidmertz python=0.9 (perhaps put it in a different environment than base). I'm embarrassed by how much effort that took me. I used to teach conda-build at Anaconda, but I've forgotten everything about how it works. There may have been another way to do it, but what this installs uses a hack. There might have been some other way to do this, but: % cat `which python` #!/bin/bash PYTHONPATH=$CONDA_PREFIX/lib/ python-0.9.1 The manpage works though. As Skip pointed out to me privately, there are some minor limitations with this version. E.g.: % python
import glob import sys print 'hello' hello print 2+2 4 print 2*2 Unhandled exception: run-time error: integer overflow Stack backtrace (innermost last): File "<stdin>", line 1
It's easy enough to work around that though:
def mult(a, b): ... total = 0 ... for _ in range(a): ... total = total + b ... return total ... mult(2, 2) 4
On Tue, Feb 16, 2021 at 10:01 PM Skip Montanaro <skip.montanaro@gmail.com> wrote:
A note to webmaster@python.org from an astute user named Hiromi in Japan* referred us to Guido's shell archives for the 0.9.1 release from 1991. As that wasn't listed in the historical releases README file:
https://legacy.python.org/download/releases/src/README
I pulled the shar files (and a patch), then made a few tweaks to get it to build:
% ./python
print 'hello world!' hello world! import sys dir(sys) ['argv', 'exit', 'modules', 'path', 'ps1', 'ps2', 'stderr', 'stdin', 'stdout'] sys.modules {'builtin': <module 'builtin'>; 'sys': <module 'sys'>; '__main__': <module '__main__'>} sys.exit(0)
I then pushed the result to a Github repo:
https://github.com/smontanaro/python-0.9.1
There is a new directory named "shar" with the original files, a small README file and a compile.patch file between the original code and the runnable code.
It was a pleasant diversion for a couple hours. I was tired of shovelling snow anyway... Thank you, Hiromi.
Skip
* Hiromi is bcc'd on this note in case he cares to comment. I didn't want to publish his email beyond the bounds of the webmaster alias without his permission.
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/VZYELIYA... Code of Conduct: http://python.org/psf/codeofconduct/
-- The dead increasingly dominate and strangle both the living and the not-yet born. Vampiric capital and undead corporate persons abuse the lives and control the thoughts of homo faber. Ideas, once born, become abortifacients against new conceptions.

On Thu, Feb 18, 2021 at 9:39 PM David Mertz <mertz@gnosis.cx> wrote:
As Skip pointed out to me privately, there are some minor limitations with this version. E.g.:
% python
import glob import sys print 'hello' hello print 2+2 4 print 2*2 Unhandled exception: run-time error: integer overflow Stack backtrace (innermost last): File "<stdin>", line 1
Huh. I wonder what's different about my build: $ /usr/local/cpython-0.9/bin/python below cmd output started 2021 Thu Feb 18 10:24:00 PM PST
2*2 4 print 2*2 4
You can download a script to build it and a bunch of other python versions at https://stromberg.dnsalias.org/~strombrg/cpythons/ It includes all the tarballs you should need, at least for Debian. I believe I used it on CentOS recently as well. I haven't tried it on Ubuntu in a while. It depends on https://stromberg.dnsalias.org/~strombrg/cobble.html - and I'd like to think that's its only external dependency. HTH

In conversation with Dan, I have fixed my conda package (but overwritten the same version). I needed to add this to the build: # sudo apt-get install gcc-multilib CC='gcc -m32' make python I don't have 32-bit headers by default anymore on my distro. With that change, I can run: % conda install -c davidmertz python=0.9 % python
2*2 4
Dan sent me links to some patches he developed himself, but I have not applied them. I'm not doubting that they are good and useful, but I'm trying to make something as close as possible to what was actually first released. -- The dead increasingly dominate and strangle both the living and the not-yet born. Vampiric capital and undead corporate persons abuse the lives and control the thoughts of homo faber. Ideas, once born, become abortifacients against new conceptions.

In conversation with Dan, I have fixed my conda package (but overwritten the same version). I needed to add this to the build:
# sudo apt-get install gcc-multilib CC='gcc -m32' make python
Thanks. That fixes it for me as well. I never even looked at intobject.c, since it compiled out of the box, and didn't dig into it when I saw the error. Looking now, I see a 32-bit assumption: if (x > 0x7fffffff || x < (double) (long) 0x80000000) return err_ovf(); With the -m32 flag, running lib/testall.py runs to completion. Skip
participants (13)
-
Brett Cannon
-
Dan Stromberg
-
David Mertz
-
Guido van Rossum
-
Jonathan Goble
-
Larry Hastings
-
M.-A. Lemburg
-
Mats Wichmann
-
Paul Sokolovsky
-
Senthil Kumaran
-
Skip Montanaro
-
Stefan Ring
-
Steven D'Aprano