bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#67005: 30.0.50; improve nadivce/comp/trampoline handling


From: Jens Schmidt
Subject: bug#67005: 30.0.50; improve nadivce/comp/trampoline handling
Date: Thu, 23 Nov 2023 22:13:14 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Andrea Corallo <acorallo@gnu.org> writes:

> Eli Zaretskii <eliz@gnu.org> writes:
>
>> Does this patch resolve the 2 TODO items you are now deleting?  Or
>> were they already resolved by previous changes, and we just failed to
>> keep the comments up-to-date?
>
> I'd say the second.

Exactly.  Sorry for not mentioning.  My reasoning for removing these
TODO items was as follows, easy one (?) first:

>> -  ;; - obsolete advice.el.

- The main entry point to "advice.el", macro `defadvice', is declared
  obsolete as follows:

  (declare (doc-string 3) (indent 2)
           (obsolete "use `advice-add' or `define-advice'" "30.1")

- The Elisp manual mentions that as well in "(elisp) Porting Old
  Advice".

- Users are complaining about obsoletion on emacs-devel (but that is
  probably not a good criterion).

>> -  ;; - change all defadvice in lisp/**/*.el.

This one is a bit harder.  So first a bit of find and grep, commented
and lacking the required line continuation for better readability:

  find . -type f
       ! -path ./lisp/emacs-lisp/advice.el
       # testing defadvice compatibility
       ! -path ./test/lisp/emacs-lisp/nadvice-tests.el
       # generated files
       ! -path ./lisp/TAGS
       ! -path ./lisp/ldefs-boot.el
       ! -path ./lisp/loaddefs.el
       ! -name '*.info'
       ! -name '*.el[cn]'
       ! -name '*.pdmp'
       # collateral
       ! -name '*ChangeLog*'
       ! -name '*NEWS*'
       -exec grep --color=auto -nH --null -e defadvice '{}' +

Then I manually traced the results to find references to old advices,
where they are not explicitly referred to as old ones.  There are some
such references in comments, docstrings, font lock defs, etc., and some
of these probably should even be cared about.  But there are only two
instances where an advice is defined by means of `defadvice':

  # I didn't count that one as living in lisp/**/*.el
  ./test/manual/cedet/tests/test.el:75

  # this one is explicitly tagged as backward compatibility hack for
  # "Emacs < 22 and XEmacs"
  ./lisp/progmodes/cc-mode.el:2733





reply via email to

[Prev in Thread] Current Thread [Next in Thread]