Subject: Re: bug#61962: 30.0.50; New trouble with symbols with positions

From: Michael Heerdegen <[email-masked]>
Date: Tue, 07 Mar 2023 16:15:24 +0100

Alan Mackenzie <[email-masked]> writes:

> I've now written safe-copy-tree, and committed it together with the fix
> in bytecomp.el to master.

Thanks.  Works well for me.

One note: the function fails for deeply nested structures because it
hits the recursion limit, e.g. for

#+begin_src emacs-lisp
(let ((my-list (list 1)))
  (dotimes (i 10000)
    (setq my-list (list my-list)))
  (safe-copy-tree my-list))
#+end_src

> > I wonder now if other cases also suffer from the problem.  What happens
> > when I call `eval' in a macro expander (i.e. while generating the macro
> > expansion, not in the result of an expansion)?  And how does
> > `cl-eval-when' behave (this is actually a special case of the first
> > question) ?
>
> I think these are so far unsolved problems with the
> symbols-with-position mechanism - sometimes the s-w-p leaks out of macro
> contexts.  Are you seeing this problem in real life?

So far, not that I knew, no.  I'll keep my eyes open.

Thanks,

Michael.