Paul Dietz <paul.f.dietz@...> writes:
> It's perfectly consistent with the standard to interpret
> (unsigned-byte 0) as (integer 0 0). Standardly, (unsigned-byte 0) is
> undefined, meaning the implementation may do whatever it
True. Here's the rub, though... SBCL is meant to be written in good
old ANSI CL, which means that no code in SBCL that is to be compiled
by a host compiler (as opposed to by itself in its cross-compiler guise)
can assume that (unsigned-byte 0) means (integer 0 0).
Given this, the behaviour of (unsigned-byte 0) signalling an error
when used as a type specifier, rather than the DWtheyM treatment, is
useful by preventing non-conforming code from slipping through, when
SBCL itself is used as the host compiler for the cross-compilation.
http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge)