Hi everybody,
on my way through the quicklisp systems I encountered a failure in
closure-common, which
is needed by eg. dbus (through cxml).
In cxml/xml/xml-parse.lisp there's a definition
(defstruct (internal-entdef
...
(value (error "missing argument") :type rod)
and closure-common/utf8.lisp has
(deftype rune () 'character)
(deftype rod () '(vector rune))
In ECL the double_quote_reader() in src/c/read.d included a
conversion, so that
(TYPE-OF "Σ") has CHARACTERS, but
(TYPE-OF "a") "only" BASE-CHARs.
But with that conversion the :TYPE ROD in INTERNAL-ENTDEF
isn't satiesfied anymore.
Now, my question - is it okay to remove the type conversion as
in the attached patch? Or should it be kept that way, because
of some CL requirements?
(I checked SBCL, ABCL, and CLISP - all of these return
CHARACTERS for _both_ of the above TYPE-OF forms.)
Any help, ideas, or comments are welcome.
>From d2aa6f957ede1bf3e609f61050de233bb5ba9aa1 Mon Sep 17 00:00:00 2001
From: Philipp Marek <phil...@marek.priv.at>
Date: Sat, 26 Apr 2014 20:01:47 +0200
Subject: [PATCH] Trying to fix closure-common.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RUNEs and RODs are not compatible with the result
of (RUNES:RUNE), because that returns (STRING ...), and
(TYPE-OF "Σ") has CHARACTERS, but
(TYPE-OF "a") "only" BASE-CHARs ...
At least CLISP, ABCL, SBCL return the same value for both
TYPE-OF forms above.
---
src/c/read.d | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/c/read.d b/src/c/read.d
index 75f22ae..b10e20e 100644
--- a/src/c/read.d
+++ b/src/c/read.d
@@ -536,12 +536,8 @@ double_quote_reader(cl_object in, cl_object c)
c = ecl_read_char_noeof(in);
ecl_string_push_extend(token, c);
}
-#ifdef ECL_UNICODE
- if (ecl_fits_in_base_string(token))
- output = si_coerce_to_base_string(token);
- else
-#endif
- output = cl_copy_seq(token);
+
+ output = cl_copy_seq(token);
si_put_buffer_string(token);
@(return output)
}
--
1.9.2
------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list