[cxml-devel] Patch: Support for the Scieneer CL.
David Lichteblau
david at lichteblau.com
Sat Jun 16 11:50:05 UTC 2007
Quoting Douglas Crosher (dtc at scieneer.com):
> o Add support for the Scieneer CL.
>
> The Scieneer CL has a very fast stream implementation which is comparable
> in performance to the runes implementation so CXML on the SCL can use CL
> streams
> rather than xstreams and ystreams - enabled via the :x&y-streams-are-stream
> feature. This also enables support for a wider range of encodings.
Hmm. When I came to Closure XML, the package glisp/runes was full of
implementation-specific code, and I am glad that most read-time
conditionals are gone now. So I hesitate to add more hacks for specific
implementations.
On the other hand, use of normal streams is the right direction to take
in the long term.
For now I have committed your patch as-is, although I would prefer to
see other implementations switched to the same strategy if possible. At
least Allegro should be easy to support in this way.
Ideally that should be done in a way that minimizing the amount of
copy&paste. While the subclassing of STREAM is obviously
implementation-dependent (but probably easy to do for most lisps, using
whatever version of DEFCLASS or DEFSTRUCT necessary), the rest of the
code should be shared.
That leaves the patch with one remaining problem, which had stopped me
from pursuing this idea in the past, namely the lack of (SETF
STREAM-EXTERNAL-FORMAT) on most Lisps.
I take it that Scieneer does not have (setf s-e-f) either? How does
ext:make-xml-character-conversion-stream work?
> The Scieneer CL also supports http and https URLs for pathnames so
> can open such external files without the need for an entity resolver.
Nice.
Applied using #+cxml-system::uri-is-namestring instead of #+scl for
clarity. The feature is activated automatically in cxml.asd.
> + #-x&y-streams-are-stream (:file "encodings")
Where do you add :x&y-streams-are-stream to *features*?
More information about the cxml-devel
mailing list