"Philipp Marek" <phil...@marek.priv.at> writes: > 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.)
CLHS is clear about it, the standard reader macro #\" must read a SIMPLE-STRING, which is a (simple-array character (*)). 2.4.5 Double-Quote Syntax: "<<text>>" The double-quote is used to begin and end a _string_. … The accumulated characters up to but not including the matching double-quote are made into a _simple_string_ and returned. It is implementation-dependent which attributes of the accumulated _characters_ are removed in this process. string n. a specialized vector that is of type string, and whose elements are of type character or a subtype of type character. Type SIMPLE-STRING … When used as a type specifier for object creation, simple-string means (simple-array character (size)). So (simple-array character (size)) should be the type of the returned object. Therefore this is a conformity error, and your patch should be applied. -- __Pascal Bourguignon__ http://www.informatimago.com/ "Le mercure monte ? C'est le moment d'acheter !" ------------------------------------------------------------------------------ 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