"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 "&#931;") 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

Reply via email to