GNU bug report logs -
#58601
29.0.50; Infinite loop in byte-compile--first-symbol-with-pos
Previous Next
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
Alan Mackenzie [2022-10-19 08:52 +0000] wrote:
> On Tue, Oct 18, 2022 at 15:19:35 -0400, Stefan Monnier wrote:
>> >> 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.
>
> I think somebody who writes something like that _deserves_ to go into an
> infinite loop. Have you ever seen anything at all like this in real
> life?
See some of the recent commits listed in my other message.
--
Basil
This bug report was last modified 2 years and 300 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.