[Ecls-list] ECL behavior of function-defining macro

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Tue Oct 6 13:08:42 UTC 2009


On Tue, Oct 6, 2009 at 11:07 AM, Jeronimo Pellegrini <jpn at aleph0.info> wrote:
> Some recent[0] git update in ECL has changed its behavior in the following
> situation:
>
> (defmacro def (name &key (declare '(optimize (speed 3) (safety 1))))
>  `(defun ,name ()
>     ,(format nil "docstring here")
>     (declare ,declare)
>     10))
> ;; OK, the macro is defined
>
> [0] Some weeks or months ago; I can't tell exactly when.

The "docstring" is being created with type (ARRAY CHARACTER (*)) as
opposed to the base string type (ARRAY BASE-CHAR (*)). That is only
possible when configuring with --enable-unicode (Unix) or
ECL_UNICODE=1 (Windows), but confused the bytecodes compiler. I have
fix this, which obviously was a bug in ECL.

Thanks for reporting!

Juanjo


-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com




More information about the ecl-devel mailing list