[Python-Dev] Python 0.9.1

103 views
Skip to first unread message

Skip Montanaro

unread,
Feb 16, 2021, 4:58:13 PM2/16/21
to Python, python-dev Dev
A note to webm...@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.

Guido van Rossum

unread,
Feb 16, 2021, 5:45:43 PM2/16/21
to Skip Montanaro, Python, python-dev Dev
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 (python.org/~guido)

Senthil Kumaran

unread,
Feb 16, 2021, 6:00:39 PM2/16/21
to Skip Montanaro, Python, python-dev Dev
On Tue, Feb 16, 2021 at 1:58 PM Skip Montanaro <skip.mo...@gmail.com> wrote:

I then pushed the result to a Github repo:

https://github.com/smontanaro/python-0.9.1

Wow. Was white-space not significant in this release of Python? I see the lack of indentation in the first Python programs.
 

Mats Wichmann

unread,
Feb 16, 2021, 6:15:34 PM2/16/21
to gu...@python.org, Skip Montanaro, Python, python-dev Dev
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
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/EM6XSLVPQWO6W2DB73TX6JLAWEPKGH4Q/

Guido van Rossum

unread,
Feb 16, 2021, 6:19:05 PM2/16/21
to Senthil Kumaran, Skip Montanaro, Python, python-dev Dev
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.

Skip Montanaro

unread,
Feb 16, 2021, 6:50:14 PM2/16/21
to Guido van Rossum, Senthil Kumaran, Python, python-dev Dev
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

Skip Montanaro

unread,
Feb 16, 2021, 7:22:21 PM2/16/21
to Guido van Rossum, Senthil Kumaran, Python, python-dev Dev
> 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
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/GIHYWK64MY4TBQA357HOK2K7MG3HZBFN/

Paul Sokolovsky

unread,
Feb 16, 2021, 8:12:09 PM2/16/21
to Skip Montanaro, Python, python-dev Dev
Hello,

On Tue, 16 Feb 2021 18:22:00 -0600
Skip Montanaro <skip.mo...@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_1p1.html
for result comparison.

>
> Skip

[]

--
Best regards,
Paul mailto:pmi...@gmail.com
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/OG3EYQ4S6BA5WUWZUM26XFX2ED6F3LPZ/

Jonathan Goble

unread,
Feb 16, 2021, 9:08:47 PM2/16/21
to Skip Montanaro, Python, python-dev Dev
On Tue, Feb 16, 2021 at 5:02 PM Skip Montanaro <skip.mo...@gmail.com> wrot
> A note to webm...@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_1p1.html

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.
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/Z22BR75Z4XZEWWM4V4DCO3Q6R6OMJDX5/

Skip Montanaro

unread,
Feb 16, 2021, 10:03:40 PM2/16/21
to Paul Sokolovsky, Python, python-dev Dev
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
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/RPNQWLFJ54QENZZEKTRLSYZXVPDOGWFS/

Steven D'Aprano

unread,
Feb 17, 2021, 1:37:16 AM2/17/21
to pytho...@python.org
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
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/AG5PBM32M36HYEDTWANZ34XDR2LQQBNE/

Stefan Ring

unread,
Feb 17, 2021, 2:04:14 AM2/17/21
to Steven D'Aprano, Python Dev
On Wed, Feb 17, 2021 at 7:33 AM Steven D'Aprano <st...@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: gu...@cwi.nl

--- a/doc/mod.tex
+++ b/doc/mod.tex
@@ -17,7 +17,7 @@
\itembreak
}

- itle{\bf
+\title{\bf
Python Library Reference \\
(DRAFT)
}
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/M22TFWZRACVXGLNHDHLWJ5FHUZBAYDEL/

Stefan Ring

unread,
Feb 17, 2021, 2:06:33 AM2/17/21
to Steven D'Aprano, Python Dev
> When I see diffs like this (your git vs. the unshar result) I tend to
> trust unshar more:

Sorry, it was not you. I meant the github repo from this e-mail thread.
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/CZFFUBW52HBIGMNLJZME46EQLMKZVUZA/

Stefan Ring

unread,
Feb 17, 2021, 2:45:30 AM2/17/21
to Python Dev

Stefan Ring

unread,
Feb 17, 2021, 3:52:04 AM2/17/21
to Steven D'Aprano, Python Dev
On Wed, Feb 17, 2021 at 7:33 AM Steven D'Aprano <st...@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.
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/WOGPEM2JABEG6ZSCD63YGCMTRBVR4BWZ/

M.-A. Lemburg

unread,
Feb 17, 2021, 4:10:47 AM2/17/21
to Stefan Ring, Steven D'Aprano, Python Dev


On 17.02.2021 08:00, Stefan Ring wrote:
> On Wed, Feb 17, 2021 at 7:33 AM Steven D'Aprano <st...@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_1p1.html

--
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/
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/SPWO2NLM2JUTDUMT4KHCN6LV5QFTPSNO/

Skip Montanaro

unread,
Feb 17, 2021, 9:10:11 AM2/17/21
to Stefan Ring, Python Dev
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 -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/J6IOWRUUZ64EHFLGSNBMSNO6RIJEZO22/

Brett Cannon

unread,
Feb 17, 2021, 7:50:05 PM2/17/21
to Skip Montanaro, Python Dev
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.

Skip Montanaro

unread,
Feb 17, 2021, 7:56:55 PM2/17/21
to Brett Cannon, Python Dev
> 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
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/D22Q4RLF5MIGOQG744NVZ5J5D7DBZ4TN/

Paul Sokolovsky

unread,
Feb 18, 2021, 3:04:22 AM2/18/21
to Skip Montanaro, Python Dev
Hello,

On Wed, 17 Feb 2021 18:53:46 -0600
Skip Montanaro <skip.mo...@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:
>
> https://github.com/python/pythondotorg/issues/1734

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-tarball.sh.gz

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.gz#Python 0.9.1 part 01/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910220.11.gz#Python 0.9.1 part 03/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.31.gz#Python 0.9.1 part 04/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.32.gz#Python 0.9.1 part 05/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.33.gz#Python 0.9.1 part 06/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.34.gz#Python 0.9.1 part 07/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.35.gz#Python 0.9.1 part 08/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.36.gz#Python 0.9.1 part 09/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.37.gz#Python 0.9.1 part 10/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.38.gz#Python 0.9.1 part 11/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.39.gz#Python 0.9.1 part 12/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.40.gz#Python 0.9.1 part 13/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.41.gz#Python 0.9.1 part 14/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.42.gz#Python 0.9.1 part 15/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.43.gz#Python 0.9.1 part 16/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.44.gz#Python 0.9.1 part 17/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.45.gz#Python 0.9.1 part 19/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.46.gz#Python 0.9.1 part 21/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.47.gz#Python 0.9.1 part 02/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.48.gz#Python 0.9.1 part 18/21 <29...@charon.cwi.nl>
http://ftp.fi.netbsd.org/pub/misc/archive/alt.sources/volume91/Feb/910224.49.gz#Python 0.9.1 part 20/21 <29...@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:pmi...@gmail.com
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/YPDZE4GX5C3BDKS3EUBJZ3Y35TGYY7NF/

M.-A. Lemburg

unread,
Feb 18, 2021, 3:20:10 AM2/18/21
to Brett Cannon, Skip Montanaro, Python Dev
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_1p1.html

> On Wed, Feb 17, 2021 at 6:10 AM Skip Montanaro <skip.mo...@gmail.com
> <mailto:skip.mo...@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 -- pytho...@python.org <mailto:pytho...@python.org>
> To unsubscribe send an email to python-d...@python.org
> <mailto:python-d...@python.org>
> Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/GHZYRQJOMG63MPZ6XJOBQXPCMV46GXOO/
--
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/
_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/CSX6WQFKLZGDQD6E5U7XKYE5KTAGVJKG/

M.-A. Lemburg

unread,
Feb 18, 2021, 3:50:55 AM2/18/21
to Brett Cannon, Skip Montanaro, Python Dev
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_1p1.html

I added the missing links.
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/XWLRQILHYX6HWXWJL6K4DAAQ5DVRPXXM/

Larry Hastings

unread,
Feb 18, 2021, 4:07:45 AM2/18/21
to pytho...@python.org


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

Stefan Ring

unread,
Feb 18, 2021, 5:06:06 AM2/18/21
to Python Dev
On Thu, Feb 18, 2021 at 10:10 AM Larry Hastings <la...@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. ;)

_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at https://mail.python.org/archives/list/pytho...@python.org/message/WT6VDEQANVFLDNXHGJVFJ232MQS6EJQ2/

Dan Stromberg

unread,
Feb 18, 2021, 4:13:06 PM2/18/21
to Paul Sokolovsky, Skip Montanaro, Python Dev
On Thu, Feb 18, 2021 at 12:02 AM Paul Sokolovsky <pmi...@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-patches

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.

David Mertz

unread,
Feb 18, 2021, 4:30:35 PM2/18/21
to Dan Stromberg, Skip Montanaro, Python Dev
Will someone publish an manylinux build to conda-forge (or their own channel)?

_______________________________________________
Python-Dev mailing list -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/


--
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.

David Mertz

unread,
Feb 19, 2021, 12:42:23 AM2/19/21
to Skip Montanaro, Python, python-dev Dev
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.mo...@gmail.com> wrote:
A note to webm...@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 -- pytho...@python.org
To unsubscribe send an email to python-d...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/

Dan Stromberg

unread,
Feb 19, 2021, 1:36:37 AM2/19/21
to David Mertz, Skip Montanaro, Python, python-dev Dev
On Thu, Feb 18, 2021 at 9:39 PM David Mertz <me...@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

David Mertz

unread,
Feb 19, 2021, 12:57:47 PM2/19/21
to Dan Stromberg, Skip Montanaro, python-dev Dev
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.

Skip Montanaro

unread,
Feb 19, 2021, 1:20:22 PM2/19/21
to David Mertz, python-dev Dev
> 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

Reply all
Reply to author
Forward
0 new messages