Re: cl-http on clozure
Rainer Joswig <[email protected]> Mon, 20 Dec 2010 22:31:10 +0100
| Newsgroups | gmane.lisp.cl-http |
|---|---|
| Message-ID | <[email protected]> |
I'll have to check that sometime during the next days. The length of the type is a problem. Maybe my patch was for an esoteric case where the data-type-string could contain Unicode characters and the Lisp implementation has more than one string type. So concatenate to the type STRING may not work then. What would work is to use a string type which could represent Unicode characters - but one would only use such a string type when the data-type-string would make it necessary. Maybe it is not likely that the data-type-string will contain unicode characters? It should work to generate the type and remove the length from it - if there is one. I'll have to look at it later this week when I'm back home. Regards, Rainer Am 20.12.2010 um 21:46 schrieb Karsten Poeck: > On 12/13/10 1:46 AM, Mark Klein wrote: >> >> Karsten, >> >> Thanks for the reply. When I tried (compile-all) the process aborted >> with the error: > >> > Error: The type specifier (SIMPLE-ARRAY BASE-CHAR (4)) is not >> determinably a subtype of the type (VECTOR CHARACTER 14) >> > While executing: MAKE-SEQUENCE, in process Listener(6). >> > Type cmd-. to abort, cmd-\ for a list of available restarts. >> > Type :? for other options. >> 1 > >> >> > > > Hello, > > found the problem, but do not yet know how to fix properly: > > clozure does not like the following statement: > ? (let ((data-type-string (string :html))) > (concatenate (type-of data-type-string) data-type-string "-DIRECTORY")) > > -> chokes with > > > Error: The type specifier (SIMPLE-ARRAY BASE-CHAR (4)) is not determinably a subtype of the type (VECTOR CHARACTER 14) > > While executing: MAKE-SEQUENCE, in process Listener(3). > > Type cmd-. to abort, cmd-\ for a list of available restarts. > > This is due to a change introduced (if I understand it right) by Rainer in revision 396. > > Reverting the change by: > #-no > (defun %def-directory-export-type-unit (export-type-name data-types) > (let* ((data-type-string (string export-type-name)) > (export-type (symbolize (concatenate 'string data-type-string "-DIRECTORY") *keyword-package*)) > (export-type-recursive (symbolize (concatenate 'string data-type-string "-DIRECTORY-HIERARCHY") *keyword-package*))) > (%%def-directory-export-type-unit export-type export-type-recursive data-types))) > > #+no > (defun %def-directory-export-type-unit (export-type-name data-types) > (let* ((data-type-string (string export-type-name)) > (export-type (symbolize (concatenate (type-of data-type-string) data-type-string "-DIRECTORY") *keyword-package*)) > (export-type-recursive (symbolize (concatenate (type-of data-type-string) data-type-string "-DIRECTORY-HIERARCHY") > *keyword-package*))) > > results in a running server in clozure 1.6. > > Have to discuss with Rainer a proper fix though > > Karsten _______________________________________________ WWW-CL mailing list [email protected] https://lists.csail.mit.edu/mailman/listinfo/www-cl