Ar an dara lá déag de mí Eanair, scríobh Jerry James:
On Thu, Jan 12, 2012 at 7:51 PM, Stephen J. Turnbull
<stephen(a)xemacs.org> wrote:
> Can you reproduce under the debugger?
Yes.
Great!
> What do you mean by "appears"? That you have traced
the function and
> you see that the reader returns the wrong sexp? Or just that the Lisp
> stack shows the lambda itself, rather than the macro lambda, being
> called? ISTM that the problem could easily be in the interpreter eval
> code that handles macros, since the reader should basically just pair
> up the parens and intern the symbols. I don't see why it would choose
> to drop "(macro . "; it shouldn't know what "macro" means,
at the
> reader stage it's just a symbol AFAIK.
Sorry, I mean that read0() is, in fact, returning the wrong sexp. I
wonder if it has something to do with the dot.
Then remove the dot and try it, (macro lambda (&rest symbols) ...) is
equivalent (well, except you need one fewer close parenthesis). Does it
happen with any ((macro lambda ()) arguments...) expression?
Still means there’s a bug in GCC, though. I wouldn’t be shocked if it was
something overwriting the read_list_state structure in read_list(), but I
can’t know at this distance.
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta