As of recently SBCL's fixnums are 63 bits long on 64-bit platforms --
which breaks FSET. Sticking the following definitions into port.lisp
in place of the current ones should make things better.
...but I didn't actually verify that the rest of FSET works sanely
with these values. (I'm not on fset-devel, so CCing Scott directly and
Xach for Quicklisp's convenience.)
(defconstant Tuple-Key-Number-Size
(ecase (integer-length most-positive-fixnum)
(62 41) ; SBCL, 64-bit
(61 40) ; ECL, 64-bit
(60 40) ; SBCL, OpenMCL, Scieneer CL, 64-bit
(48 32) ; CLISP, 64-bit
(31 18) ; Symbolics L-machine, I-machine
(29 17) ; Allegro, CMUCL, SBCL, LispWorks (most), ECL, 32-bit
(24 15) ; CLISP, 32-bit
(23 14)) ; LispWorks 4 on Linux
"This limits the number of tuple-keys that can exist in a session.")
(defconstant Tuple-Value-Index-Size
(ecase (integer-length most-positive-fixnum)
(62 21)
(61 21)
(60 20)
(48 16)
(31 13)
(29 12)
(24 9)
(23 9))
"This limits the number of key/value pairs in any tuple.")
Cheers,
-- Nikodemus