----- Unsent message follows -----
Received: from sun4nl.nluug.nl by eros.uknet.ac.uk via EUnet with SMTP (PP)
id <firstname.lastname@example.org>; Mon, 30 Dec 1991 10:28:10 +0000
Received: from charon.cwi.nl by sun4nl.nluug.nl with SMTP;
id AA23632 (5.65a/CWI-3.1); Mon, 30 Dec 1991 11:27:12 +0100
Received: by charon.cwi.nl with SMTP; Mon, 30 Dec 1991 11:25:05 +0100
Received: by voorn.cwi.nl with SMTP; Mon, 30 Dec 1991 10:25:04 GMT
To: Tim Peters <email@example.com>
Subject: Re: Python 0.9.4alpha; Re: Class initialization
In-Reply-To: Your message of "Mon, 30 Dec 91 00:13:20 MET." <9112300513.AA25152@kaos.ksr.com>
From: Guido van Rossum <Guido.van.Rossum@cwi.nl>
X-Organization: CWI, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands
X-Phone: +31 20 5924127 (work), +31 20 6225521 (home), +31 20 5924199 (fax)
Date: Mon, 30 Dec 91 11:25:03 +0100
Sorry, I don't have the time to respond to all that (will do later),
but here are a few quick remarks about shifting and masking on long ints.
First, long ints have changes to a *one's complement* representation.
This was the only way that I could give ~0L the meaning of "all 1 bits".
Of course, as soon as you use any arithmetic on it, it changes to 0L,
and arithmetic operations (including unary "-") will never produce it.
Second, there's a bug in the implementation of long &, | and ^ when
one operand is negative and larger than the other; e.g., the outcome
for "1L & ~1000000L" is wrong. Fixed in 0.9.5.
I hope this explains most of what you've discovered.
"I told you the documentation was out of date :-)"
--Guido van Rossum, CWI, Amsterdam <firstname.lastname@example.org>
"What a senseless waste of human life"