Compiling BOM-VECTOR emits a "type assertion to complex to check note." The reason is that (THE FOO (QUUX)) is actually of type (VALUES FOO &REST T) which SBCL, at least for the moment, cannot cope well with. The below patch changes it to (THE FOO (VALUES (QUUX))).
-T.
diff -rN -u old-babel/src/strings.lisp new-babel/src/strings.lisp --- old-babel/src/strings.lisp 2009-06-01 14:58:56.000000000 +0200 +++ new-babel/src/strings.lisp 2009-06-01 14:58:56.000000000 +0200 @@ -237,15 +237,16 @@ (defun bom-vector (encoding use-bom) (check-type use-bom (member :default t nil)) (the simple-vector - (if (null use-bom) - #() - (let ((enc (typecase encoding - (external-format (external-format-encoding encoding)) - (t (get-character-encoding encoding))))) - (if (or (eq use-bom t) - (and (eq use-bom :default) (enc-use-bom enc))) - (enc-bom-encoding enc) - #()))))) + (values + (if (null use-bom) + #() + (let ((enc (typecase encoding + (external-format (external-format-encoding encoding)) + (t (get-character-encoding encoding))))) + (if (or (eq use-bom t) + (and (eq use-bom :default) (enc-use-bom enc))) + (enc-bom-encoding enc) + #()))))))
(defun string-to-octets (string &key (encoding *default-character-encoding*) (start 0) end (use-bom :default)
On Mon, Jun 1, 2009 at 1:59 PM, Tobias C. Rittweiler tcr@freebits.de wrote:
Compiling BOM-VECTOR emits a "type assertion to complex to check note." The reason is that (THE FOO (QUUX)) is actually of type (VALUES FOO &REST T) which SBCL, at least for the moment, cannot cope well with. The below patch changes it to (THE FOO (VALUES (QUUX))).
Thanks for the patch, I've just pushed it.