Thanks for the heads-up! I'll update FSet over the weekend.
-- Scott
On Thu, Nov 10, 2011 at 5:55 AM, Nikodemus Siivola nikodemus@random-state.net wrote:
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