GNU bug report logs -
#63288
30.0.50; Emacs 30 packages fail to build with native comp on some machines
Previous Next
Reported by: Brian Leung <leungbk <at> posteo.net>
Date: Fri, 5 May 2023 04:00:02 UTC
Severity: normal
Found in version 30.0.50
Done: Pip Cet <pipcet <at> protonmail.com>
Bug is archived. No further changes may be made.
Full log
Message #128 received at 63288 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Thierry Volpiatto <thievol <at> posteo.net> writes:
> Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>
>>>>> No, in some cases you must use (cl-declare (special ...)), and no you
>>>>> can't use defvar in such cases, so if you intend to remove/deprecate
>>>> Could you show us an example?
>>> I used it in helm--completion-in-region to pass PROMPT and
>>> REQUIRE-MATCH,
>>
>> Actually, no, you didn't. 🙁
>> I mean, yes you did use it, but no it did not "pass PROMPT and
>> REQUIRE-MATCH".
>
> It used to work (circa 26?), but yes now it is broken, since when I
> don't know, I rarely use CRM (I saw just yesterday PROMPT was no more
> passing, thanks to this thread). So because this is no more working, I
> understand you don't want to bother maintaining this code which looks
> complex indeed.
>
>
>>> (defmacro my-with-progress (&rest body)
>>> `(let ((reporter (make-progress-reporter "Updating...")))
>>> (progn
>>> ,@body)))
>>>
>>> (defun my-updating ()
>>> (cl-declare (special reporter))
>>> (my-with-progress
>>> (cl-loop for elm in '(a b c d e f g)
>>> do (progn
>>> (sit-for 1)
>>> (progress-reporter-update reporter))
>>> collect elm)))
>>
>> I don't see what is the use of (cl-declare (special reporter)) here.
>> What do you think it changes to the behavior of this code?
>
> It declare reporter as a variable and prevent byte compile warnings,
> same as (defvar reporter) as you have mentioned below.
In fact such code is reporting warnings when using (defvar reporter)
instead of cl-declare:
helm-all-the-icons.el:32:9: Warning: global/dynamic var ‘reporter’ lacks a prefix
helm-all-the-icons.el:42:75: Warning: Lexical argument shadows the dynamic variable reporter
So for this to work I would have to give a prefix to reporter and a nil
value and initialize it with setq, then disable the reporter and
reinitialize the var to nil when done (optional), less handy that cl-declare.
>>> of course you can use a defvar in this case,
>>
>> Exactly: (defvar reporter) would have the same effect.
>>
>>
>> Stefan
--
Thierry
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 132 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.