Here is a test case for SBCL and CLISP.  (CLISP part needs my last patch
applied.)  This ASDF system is supposed to compile and load without
warnings or errors.

   That patch makes CLISP behave like this when a charset cannot be found:

     Error while trying to load definition for system external-format-test
     from pathname /tmp/external-format-test/external-format-test.asd:
     INTERN("SHIFT_JIS"): #<PACKAGE CHARSET> is locked

If I replace #'intern with #'find-symbol in it the message is:

     OPEN: Illegal :EXTERNAL-FORMAT argument :SHIFT_JIS

with a useful restart USE-VALUE.  I think the latter is somewhat better,
hence updated patch.

   I'd also like to express concern that this change has to be properly
announced because it will affect those who use ASDF for their local
projects with non UTF-8 compliant encoding and previously assumed that
other ASDF systems fit into ASCII.
>From f167dfda2356bc94461d078f5c24f472e57b457b Mon Sep 17 00:00:00 2001
From: Orivej Desh <[email protected]>
Date: Wed, 21 Mar 2012 14:05:39 +0400
Subject: [PATCH] Intern keyword external format in charset package in CLISP.

---
 asdf.lisp |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/asdf.lisp b/asdf.lisp
index ea78300..5540c4f 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1303,7 +1303,11 @@ (defmethod component-external-format ((c component))
            *utf-8-external-format*)))
 
 (defmethod (setf component-external-format) (new-value (c component))
-  (setf (component-property c :external-format) new-value))
+  (setf (component-property c :external-format)
+        (or
+         #+clisp (and (keywordp new-value)
+                      (intern (symbol-name new-value) :charset))
+         new-value)))
 
 (defclass proto-system () ; slots to keep when resetting a system
   ;; To preserve identity for all objects, we'd need keep the components slots
-- 
1.7.9.1

Attachment: external-format-test.tar.xz
Description: External format testing ASDF system.

_______________________________________________
asdf-devel mailing list
[email protected]
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel

Reply via email to