[asdf-devel] source file encoding

Orivej Desh orivej at gmx.fr
Wed Mar 21 00:04:48 UTC 2012

Now, the topic of supporting specifying source encoding is a year away.
Should I have not replied to it and rather started a new one?

> You need to send me a patch to ASDF that modifies
> (defmethod perform ((operation compile-op) (c cl-source-file))
>    ...)
> and
> (defmethod perform ((operation load-source-op) (c cl-source-file))
>    ...)
> to do something about external-format.

I propose the attached file.

> Also it might or might not be a good idea to store the external-format
> in a slot of cl-source-file, and to have a proper :initform in it with
> a valid default value to be used when upgrading ASDF.

It stores encoding in a property of the component, the component being a
system or a source file.  This allows for both per system and per source
file component encoding, the latter taking precedence, without
additional effort.  In my implementation default :initform would not
have helped because #'component-encoding switches between per component
system encoding and per component encoding based on the former being
specified or not.  Hence the default (:default) is embedded in

> The problem for you will be to reasonably support 11 existing
> implementations or so.

Since making single specification portable requires comparing all
external formats of all supported implementations, I think it is
reasonable to leave it to the author of a system definition to research
by which name his preferred encoding is accessible in different
implementations he wants to support, and to specify appropriate
read-time conditionals.

> Finally, you need to document that feature in the manual and explain
> that it will only be available starting with e.g. ASDF 2.013.

I have not written documentation or tests yet, only tested manually and
ensured that existing tests still pass with SBCL.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: encoding.patch
Type: text/x-patch
Size: 4858 bytes
Desc: encoding.patch
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20120321/8f00f522/attachment.bin>

More information about the asdf-devel mailing list