...... LispWorks ...... CL-USER 2 > (let ((x (* most-positive-double-float most-positive-double-float))) (- x x)) 1D+-0 #| 1D+-0 is double-float not-a-number |# CL-USER 3 > 1D+-0 1D+-0 #| 1D+-0 is double-float not-a-number |# CL-USER 4 > ...... Allegro CL ...... CL-USER(1): (let ((x (* most-positive-double-float most-positive-double-float))) (- x x)) #.*NAN-DOUBLE* CL-USER(2): *NAN-DOUBLE* #.*NAN-DOUBLE* CL-USER(3): ...... CCL ...... ? (set-fpu-mode :overflow nil :division-by-zero nil :invalid nil) 8064 ? (let ((x (* most-positive-double-float most-positive-double-float))) (- x x)) 1D+-0 #| not-a-number |# ? 1D+-0 1D+-0 #| not-a-number |# ? ...... SBCL ...... * (sb-int:set-floating-point-modes :traps nil) * (let ((x (* most-positive-double-float most-positive-double-float))) (- x x)) # * ...... CMUCL ...... * (set-floating-point-modes :traps nil) * (let ((x (* most-positive-double-float most-positive-double-float))) (- x x)) # *