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

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

bug#70779: closed ([PATCH] Emacs 30 and warning about missing lexical-bi


From: GNU bug Tracking System
Subject: bug#70779: closed ([PATCH] Emacs 30 and warning about missing lexical-binding declaration)
Date: Mon, 06 May 2024 15:04:02 +0000

Your message dated Mon, 06 May 2024 17:02:46 +0200
with message-id <m2h6fbq8yx.fsf@macmutant.fritz.box>
and subject line Re: bug#70779: [PATCH] Emacs 30 and warning about missing 
lexical-binding declaration
has caused the debbugs.gnu.org bug report #70779,
regarding [PATCH] Emacs 30 and warning about missing lexical-binding declaration
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
70779: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70779
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH] Emacs 30 and warning about missing lexical-binding declaration Date: Sun, 05 May 2024 13:03:26 +0200 User-agent: Gnus/5.13 (Gnus v5.13)
Hi all,

Emacs 30 now emits a warning when it loads an .el file without the
lexical-binding cookie (commits 81bad84a6 and 1121f17d7c).  This is the
entry from Emacs NEWS:

    *** Warn about missing 'lexical-binding' directive.
    The compiler now warns if an Elisp file lacks the standard
    '-*- lexical-binding: ... -*-' cookie on the first line.
    This line typically looks something like

        ;;; My little pony mode  -*- lexical-binding: t -*-

    It is needed to inform the compiler about which dialect of ELisp
    your code is using: the modern dialect with lexical binding or
    the old dialect with only dynamic binding.

    Lexical binding avoids some name conflicts and allows the compiler to
    detect more mistakes and generate more efficient code, so it is
    recommended.  For how to adapt your code to lexical binding, see the
    manual section "(elisp) Converting to Lexical Binding".

    If your code cannot be converted to lexical binding, you can insert
    the line

        ;;; -*- lexical-binding: nil -*-

    first in the file to declare that it uses the old dialect.

This change affects all auto-parsed style files when AUCTeX loads them.
I suggest the following change to `TeX-auto-store' in tex.el:

--8<---------------cut here---------------start------------->8---
diff --git a/tex.el b/tex.el
index cda1d7f6..32cfd21e 100644
--- a/tex.el
+++ b/tex.el
@@ -4267,6 +4267,8 @@ If TEX is a directory, generate style files for all files 
in the directory."
         (TeX-unload-style style)
         (with-current-buffer (generate-new-buffer file)
           (erase-buffer)
+          (insert (concat ";;" (make-string 40 ?\s)
+                          "-*- lexical-binding: t; -*-\n\n"))
           (insert "(TeX-add-style-hook\n \""
                   style "\"\n (lambda ()")
           (unless (string= tex-cmd-opts "")
--8<---------------cut here---------------end--------------->8---

Any comments welcome.

Best, Arash



--- End Message ---
--- Begin Message --- Subject: Re: bug#70779: [PATCH] Emacs 30 and warning about missing lexical-binding declaration Date: Mon, 06 May 2024 17:02:46 +0200 User-agent: Gnus/5.13 (Gnus v5.13)
Ikumi Keita <ikumi@ikumi.que.jp> writes:

> I think these auto files are generally not intended for human eyes. So
> we wouldn't have to care much about the justtification of the prop line.
> I vote for simpler form.

Yes, Sir ;-)  I installed the simple version, closing.

Best, Arash


--- End Message ---

reply via email to

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