The Racket repository
Go to file
Matthew Flatt 8b7b96215b equal hash code: avoid dropping useful bits
Closes PR 14059

Symbols in the PR were mapped to coliding hashes in
groups of 4 because the low 2 bits of the `eq?` hash
code were begin dropped to generate an `equal?` hash
code. Those two bits got lost due to a refectoring
a while back that moved the dropping of two useless
bits to a more centralized place, but the 2-bit shift
did not get removed from the `equal` hash code comparision.

The PR's example program will still generate groups of 2
when hashing around 10k symbols (which used to be groups of 8).
That's because there's a bit in the hash-code counter that
turns out to be forced to 1.
2013-10-12 08:37:15 -06:00
native-pkgs@5f391155f2 restore "native-pkgs" commit 2013-09-08 06:53:13 -06:00
pkgs Final S3 changes 2013-10-11 16:37:25 -06:00
racket equal hash code: avoid dropping useful bits 2013-10-12 08:37:15 -06:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Add add-on to .gitignore. 2013-07-04 11:51:53 -04:00
.gitmodules access "native-pkgs" as a git submodule 2013-07-26 22:36:20 -06:00
.mailmap mailmap updates & fixes. 2013-04-03 18:10:22 -04:00
.travis.yml Re-enable reasonable Travis setup. 2013-07-23 00:27:50 -04:00
INSTALL.txt typo 2013-09-06 20:02:04 -06:00
Makefile make catalog-based installer build work 2013-09-04 08:44:49 -06:00
README.txt include license with each package 2013-08-31 06:25:31 -06:00

This is the source code for the main Racket distribution.  See
"INSTALL.txt" for information on building Racket.

License
-------

Racket
Copyright (c) 2010-2013 PLT Design Inc.

Racket is distributed under the GNU Lesser General Public License
(LGPL).  This means that you can link Racket into proprietary
applications, provided you follow the rules stated in the LGPL.  You can
also modify Racket; if you distribute a modified version, you must
distribute it under the terms of the LGPL, which in particular means
that you must release the source code for the modified software.  See
racket/src/COPYING_LESSER.txt for more information.