GNU bug report logs - #58601
29.0.50; Infinite loop in byte-compile--first-symbol-with-pos

Previous Next

Package: emacs;

Reported by: "Basil L. Contovounesios" <contovob <at> tcd.ie>

Date: Mon, 17 Oct 2022 23:25:01 UTC

Severity: normal

Found in version 29.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Alan Mackenzie <acm <at> muc.de>
Cc: "Basil L. Contovounesios" <contovob <at> tcd.ie>, Mattias EngdegÄrd <mattiase <at> acm.org>, 58601 <at> debbugs.gnu.org
Subject: bug#58601: 29.0.50; Infinite loop in byte-compile--first-symbol-with-pos
Date: Tue, 18 Oct 2022 15:19:35 -0400
>> That's not the problem, because it's just for illustrative purposes.
>> Instead of 'arg' being passed unchanged as the FORM argument, it could
>> just as well have been `(my-frobnicate ,arg).
>
> That would not loop, since there is a symbol with position there.

BTE, the real-world use case is a compiler macro which takes the list of
args and tucks the name of another function in front.  So the generated
code, passed to `macroexp-warn-and-return` has the shape

    (somefun somearg1 somearg2)

where `somefun` does *not* come from the source but from the
compiler-macro instead and hence doesn't have any sympos, and then
`somearg1` was an expression of the form

   (quote #1=(1 2 3 . #1#))

So, there was no cycle in the code part, the cycle is only inside the
data embedded in the code.


        Stefan





This bug report was last modified 2 years and 299 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.