]> git.eshelyaron.com Git - emacs.git/commitdiff
Make "eager macro-expansion" warning into an error
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 30 Jun 2022 11:18:15 +0000 (13:18 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 30 Jun 2022 11:18:15 +0000 (13:18 +0200)
* doc/lispref/loading.texi (How Programs Do Loading): Update
documentation.

* lisp/emacs-lisp/macroexp.el:
(internal-macroexpand-for-load): We've been warning about eager
macro expansion for many years, so finally change that into an
error (bug#18154).

doc/lispref/loading.texi
etc/NEWS
lisp/emacs-lisp/macroexp.el

index 8a2bb5fa2dba74a1476812c051874075c33ba39e..00a1fe05fdd19e8567379001696ac7360eebec16 100644 (file)
@@ -149,10 +149,9 @@ up the execution of uncompiled code.  Sometimes, this macro expansion
 cannot be done, owing to a cyclic dependency.  In the simplest
 example of this, the file you are loading refers to a macro defined
 in another file, and that file in turn requires the file you are
-loading.  This is generally harmless.  Emacs prints a warning
+loading.  Emacs will issue an error about
 (@samp{Eager macro-expansion skipped due to cycle@dots{}})
-giving details of the problem, but it still loads the file, just
-leaving the macro unexpanded for now.  You may wish to restructure
+giving details of the problem.  You have to restructure
 your code so that this does not happen.  Loading a compiled file does
 not cause macroexpansion, because this should already have happened
 during compilation.  @xref{Compiling Macros}.
index 1d56547d0d43fbe4b7f13e4b3158398f84d40a0e..ad0acd674e2423d1d7700c2165b2ad6d65e81efc 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -159,6 +159,9 @@ of 'user-emacs-directory'.
 \f
 * Incompatible changes in Emacs 29.1
 
++++
+** Warning about "eager macro-expansion failure" is changed into an error.
+
 ---
 ** Previously, the X reverseVideo value at startup was heeded for all frames.
 This meant that if you had a reverseVideo resource on the initial
index bae303c213cafc71072118776f23e48ea7efc350..0fb4cf680a8e7b661e3f5be6db0e09ae0904131f 100644 (file)
@@ -796,8 +796,8 @@ test of free variables in the following ways:
         (if (eq (car-safe (car bt)) 'macroexpand-all) (setq bt (cdr bt)))
         (if macroexp--debug-eager
             (debug 'eager-macroexp-cycle)
-          (message "Warning: Eager macro-expansion skipped due to cycle:\n  %s"
-                   (mapconcat #'prin1-to-string (nreverse bt) " => ")))
+          (error "Warning: Eager macro-expansion skipped due to cycle:\n  %s"
+                 (mapconcat #'prin1-to-string (nreverse bt) " => ")))
         (push 'skip macroexp--pending-eager-loads)
         form))
      (t
@@ -811,7 +811,7 @@ test of free variables in the following ways:
          ;; Hopefully this shouldn't happen thanks to the cycle detection,
          ;; but in case it does happen, let's catch the error and give the
          ;; code a chance to macro-expand later.
-         (message "Eager macro-expansion failure: %S" err)
+         (error "Eager macro-expansion failure: %S" err)
          form))))))
 
 ;; ¡¡¡ Big Ugly Hack !!!