GNU bug report logs -
#65344
28.2; Unable to Edebug cl-flet form which uses argument destructuring
Previous Next
Reported by: Brandon Irizarry <brandon.irizarry <at> gmail.com>
Date: Wed, 16 Aug 2023 18:23:02 UTC
Severity: normal
Found in version 28.2
Fixed in version 30.1
Done: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #32 received at 65344 <at> debbugs.gnu.org (full text, mbox):
On 18.08.23 07:58, Michael Heerdegen wrote:
> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> which I would naively expect to be suitable for a single function in
>> an flet/labels. (Maybe without the (setf ...) case, I'm not sure
>> ATM).
>
> That's correct, but only one part.
RIght, that's what I meant.
>> Do you perhaps have an insight why there are two &name in the flet
>> spec?
>
> Eh - not really. That's some internal magic - to correctly associate
> the code with the function names or something like that, I guess.
Ok. It's probably not important.
>> Also naively asked, what does the &or in the flet case mean? Does it
>> say that that the elements of the flet can either be symbols or
>> functions?
>
> There is a second syntax to support: a function binding can also have
> the syntax (fname EXPR) instead of (fname args body...). EXPR can be a
> lambda expression but also any arbitrary Lisp returning a function
> value.
(Another nominee for the most obscure feature of the month. That's also
not in CL, BTW.)
When I try something like
(cl-flet (y (x (lambda () 1)))
(x))
I get a not-a-list error from the Y. That's kind of what I'm wondering.
The debug declaratino for flet has the symbolp at the same level as
the local-function &define.
And, if that's the problem, the next question would then be how to
declare a binding (FN VALUE). Maybe (%define &name ... <something>)?
This bug report was last modified 1 year and 261 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.