• Paul Eggert's avatar
    Avoid overexposing fixnums for hash codes · f378ed1a
    Paul Eggert authored
    Following a suggestion by Stefan Monnier in:
    https://lists.gnu.org/r/emacs-devel/2019-07/msg00530.html
    * doc/lispref/hash.texi (Creating Hash, Defining Hash):
    * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal, Fmake_hash_table):
    Don’t insist that hash codes be fixnums, reverting
    the recent doc changes to the contrary.
    * src/bytecode.c (exec_byte_code): Special-case only the eq case,
    as the others aren’t worth tuning now that we treat bignum hashes
    like fixnums.
    * src/fns.c (hashfn_user_defined): If the hash code is a bignum,
    reduce its hash down to a fixnum.
    f378ed1a
bytecode.c 33.6 KB