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)