With git head I get an error with the following:
(with-output-to-string (stream) (let ((doc (dom:create-document 'rune-dom:implementation nil nil (dom:create-document-type 'rune-dom:implementation "html" "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd")))) (dom:map-document (chtml:make-character-stream-sink stream) doc :include-xmlns-attributes nil :include-doctype :full-internal-subset )))
The error as far as I've been able to track it down, is that the ystream created has a encoding slot, that is never filled. Then #'runes::ystream-unicode-p chokes when trying to inspect the encoding. We solved the error by testing the target stream when the encoding slot is null:
(defun ystream-unicode-p (ystream) (let ((enc (ystream-encoding ystream))) (if enc (or (eq enc :utf-8) (eq (babel-encodings:enc-name enc) :utf-16)) #+rune-is-character (eq 'character (stream-element-type (ystream-target-stream ystream))))))
But I'm not sure that it is sound, and that function looks kind of strange anyways: what if encoding was the symbol :utf-16 or a babel-encoding object with the name :utf-8? It looks like the shift to babel-encodings is still somewhat a work-in-progress, does this help?
We found this today when we switched from asdf-installed version to git HEAD because there was a problem with & getting escaped that looks like it is already fixed in git.
Quoting Nathan Bird (nathan@acceleration.net):
With git head I get an error with the following:
[...]
The error as far as I've been able to track it down, is that the ystream created has a encoding slot, that is never filled. Then #'runes::ystream-unicode-p chokes when trying to inspect the encoding.
Thanks for the report. When adding output encoding support to cxml, I apparently forgot similar changes in chtml.
I've pushed a fix to closure-html.git.
d.