Subject: bug#63288: [PATCH] Mark cl-proclaim, cl-declaim, and cl-declare as obsolete

From: Stefan Monnier <[email-masked]>
Date: Wed, 19 Feb 2025 23:43:29 -0500

>>> (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,

Really?  AFAICT the code should work just fine, and without warnings, if
you just remove the `cl-declare` and leave the variable be lexically scoped.

        Stefan