]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/loadup.el: Check advice after `rmc.el`; turn error into warning
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 7 Dec 2023 18:13:47 +0000 (13:13 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 7 Dec 2023 18:13:47 +0000 (13:13 -0500)
lisp/loadup.el

index ef4203917d4a3960ba5e54a4219a7afc81ba4dc6..03ed2186392ee3317eec2e5f152c101e65f13036 100644 (file)
 ;; from the repository.  It is generated just after temacs is built.
 (load "leim/leim-list.el" t)
 
-(unless (featurep 'ls-lisp)
-  ;; Actively disallow advised functions during preload since:
-  ;; - advices in Emacs's core are generally considered bad style;
-  ;; - `Snarf-documentation' looses docstrings of primitives advised
-  ;;   during preload (bug#66032#20).
-  ;;
-  ;; Don't verify this under MS-Windows and Android, both systems that
-  ;; load ls-lisp, which advises insert-directory.
-  (mapatoms
-   (lambda (f)
-     (and (advice--p (symbol-function f))
-          (error "Advice installed on preloaded function %s" f)))))
-
 ;; If you want additional libraries to be preloaded and their
 ;; doc strings kept in the DOC file rather than in core,
 ;; you may load them with a "site-load.el" file.
@@ -422,6 +409,18 @@ lost after dumping")))
 ;; Used by `kill-buffer', for instance.
 (load "emacs-lisp/rmc")
 
+;; Actively check for advised functions during preload since:
+;; - advices in Emacs's core are generally considered bad style;
+;; - `Snarf-documentation' looses docstrings of primitives advised
+;;   during preload (bug#66032#20).
+(mapatoms
+ (lambda (f)
+   (and (advice--p (symbol-function f))
+        ;; Don't make it an error because it's not serious enough and
+        ;; it can be annoying during development.  Also there are still
+        ;; circumstances where we use advice on preloaded functions.
+        (message "Warning: Advice installed on preloaded function %S" f))))
+
 ;; Make sure default-directory is unibyte when dumping.  This is
 ;; because we cannot decode and encode it correctly (since the locale
 ;; environment is not, and should not be, set up).  default-directory