This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Rhamphoryncus
Recipients Rhamphoryncus, jcea, mark.dickinson, pitrou, rhettinger
Date 2009-02-11.09:02:20
SpamBayes Score 3.8659851e-07
Marked as misclassified No
Message-id <1234342942.4.0.947817885436.issue5186@psf.upfronthosting.co.za>
In-reply-to
Content
The alignment requirements (long double) make it impossible to have
anything in those bits.

Hypothetically, a custom allocator could lower the alignment
requirements to sizeof(void *).  However, rotating to the high bits is
pointless as they're the least likely to be used — impossible in this
case, as only the 2 highest bits would contain anything, and for that
you'd need a dictionary with at least 2 billion entries on 32bit, which
is more than the 32bit address space.  64-bit is similar.

Note that mixing the bits back in, via XOR or similar, is actually more
likely to hurt than help.  It's just like ints and strings, who's hash
values are very sequential, a simple shift tends to get us sequential
hashes.  This gives us a far lower collision rate than a statistically
random hash.
History
Date User Action Args
2009-02-11 09:02:22Rhamphoryncussetrecipients: + Rhamphoryncus, rhettinger, jcea, mark.dickinson, pitrou
2009-02-11 09:02:22Rhamphoryncussetmessageid: <1234342942.4.0.947817885436.issue5186@psf.upfronthosting.co.za>
2009-02-11 09:02:21Rhamphoryncuslinkissue5186 messages
2009-02-11 09:02:20Rhamphoryncuscreate