unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Philipp Stephani <p.stephani2@gmail.com>
To: eliz@gnu.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org
Cc: Philipp <phst@google.com>
Subject: Re: [PATCH] Make `old-style-backquotes' variable internal
Date: Sat, 13 May 2017 10:35:04 +0000	[thread overview]
Message-ID: <CAArVCkTwSD4y=auKqqSFLFVUW=FcNTVoutXo_-PAUoU1pWhhkw@mail.gmail.com> (raw)
In-Reply-To: <20170507114946.38440-1-phst@google.com>

[-- Attachment #1: Type: text/plain, Size: 6959 bytes --]

Philipp <phil07c1@gmail.com> schrieb am So., 7. Mai 2017 um 13:49 Uhr:

> * src/lread.c (load_warn_old_style_backquotes, Fload, read1)
> (syms_of_lread): Rename `old-style-backquotes' to
> `lread--old-style-backquotes', and clarify that it's for internal
> use only.
> * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename
> variable.
> * test/src/lread-tests.el (lread-tests--old-style-backquotes): Add
> unit test.
> * emacs-lisp/bytecomp-tests.el
> (bytecomp-tests--old-style-backquotes): Add unit test.
> ---
>  etc/NEWS                               |  5 +++++
>  lisp/emacs-lisp/bytecomp.el            |  4 ++--
>  src/lread.c                            | 17 +++++++++--------
>  test/lisp/emacs-lisp/bytecomp-tests.el | 15 +++++++++++++++
>  test/src/lread-tests.el                |  9 +++++++++
>  5 files changed, 40 insertions(+), 10 deletions(-)
>
> diff --git a/etc/NEWS b/etc/NEWS
> index 1f1f4b4b4b..166744b848 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -896,6 +896,11 @@ which was sometimes numerically incorrect.  For
> example, on a 64-bit
>  host (max 1e16 10000000000000001) now returns its second argument
>  instead of its first.
>
> ++++
> +** The variable 'old-style-backquotes' has been made internal and
> +renamed to 'lread--old-style-backquotes'.  No user code should use
> +this variable.
> +
>
>  * Lisp Changes in Emacs 26.1
>
> diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
> index 201733ff03..04335ffbfe 100644
> --- a/lisp/emacs-lisp/bytecomp.el
> +++ b/lisp/emacs-lisp/bytecomp.el
> @@ -2021,11 +2021,11 @@ byte-compile-from-buffer
>                  (not (eobp)))
>           (setq byte-compile-read-position (point)
>                 byte-compile-last-position byte-compile-read-position)
> -         (let* ((old-style-backquotes nil)
> +         (let* ((lread--old-style-backquotes nil)
>                   (lread--unescaped-character-literals nil)
>                   (form (read inbuffer)))
>              ;; Warn about the use of old-style backquotes.
> -            (when old-style-backquotes
> +            (when lread--old-style-backquotes
>                (byte-compile-warn "!! The file uses old-style backquotes !!
>  This functionality has been obsolete for more than 10 years already
>  and will be removed soon.  See (elisp)Backquote in the manual."))
> diff --git a/src/lread.c b/src/lread.c
> index 6467043b1d..3cf8ef5a4e 100644
> --- a/src/lread.c
> +++ b/src/lread.c
> @@ -948,7 +948,7 @@ load_error_handler (Lisp_Object data)
>  static void
>  load_warn_old_style_backquotes (Lisp_Object file)
>  {
> -  if (!NILP (Vold_style_backquotes))
> +  if (!NILP (Vlread_old_style_backquotes))
>      {
>        AUTO_STRING (format, "Loading `%s': old-style backquotes
> detected!");
>        CALLN (Fmessage, format, file);
> @@ -1214,7 +1214,7 @@ Return t if the file exists and loads successfully.
> */)
>    version = -1;
>
>    /* Check for the presence of old-style quotes and warn about them.  */
> -  specbind (Qold_style_backquotes, Qnil);
> +  specbind (Qlread_old_style_backquotes, Qnil);
>    record_unwind_protect (load_warn_old_style_backquotes, file);
>
>    /* Check for the presence of unescaped character literals and warn
> @@ -3037,7 +3037,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
> first_in_list)
>            "(\`" anyway).  */
>         if (!new_backquote_flag && first_in_list && next_char == ' ')
>           {
> -           Vold_style_backquotes = Qt;
> +           Vlread_old_style_backquotes = Qt;
>             goto default_label;
>           }
>         else
> @@ -3091,7 +3091,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool
> first_in_list)
>           }
>         else
>           {
> -           Vold_style_backquotes = Qt;
> +           Vlread_old_style_backquotes = Qt;
>             goto default_label;
>           }
>        }
> @@ -4840,10 +4840,11 @@ variables, this must be set in the first line of a
> file.  */);
>                doc: /* List of buffers being read from by calls to
> `eval-buffer' and `eval-region'.  */);
>    Veval_buffer_list = Qnil;
>
> -  DEFVAR_LISP ("old-style-backquotes", Vold_style_backquotes,
> -              doc: /* Set to non-nil when `read' encounters an old-style
> backquote.  */);
> -  Vold_style_backquotes = Qnil;
> -  DEFSYM (Qold_style_backquotes, "old-style-backquotes");
> +  DEFVAR_LISP ("lread--old-style-backquotes", Vlread_old_style_backquotes,
> +              doc: /* Set to non-nil when `read' encounters an old-style
> backquote.
> +For internal use only.  */);
> +  Vlread_old_style_backquotes = Qnil;
> +  DEFSYM (Qlread_old_style_backquotes, "lread--old-style-backquotes");
>
>    DEFVAR_LISP ("lread--unescaped-character-literals",
>                 Vlread_unescaped_character_literals,
> diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el
> b/test/lisp/emacs-lisp/bytecomp-tests.el
> index 3624904753..a83c998a59 100644
> --- a/test/lisp/emacs-lisp/bytecomp-tests.el
> +++ b/test/lisp/emacs-lisp/bytecomp-tests.el
> @@ -529,6 +529,21 @@ bytecomp-tests--with-temp-file
>                         (list (concat "unescaped character literals "
>                                       "\", (, ), ;, [, ] detected!"))))))))
>
> +(ert-deftest bytecomp-tests--old-style-backquotes ()
> +  "Check that byte compiling warns about old-style backquotes."
> +  (should (boundp 'lread--old-style-backquotes))
> +  (bytecomp-tests--with-temp-file source
> +    (write-region "(` (a b))" nil source)
> +    (bytecomp-tests--with-temp-file destination
> +      (let* ((byte-compile-dest-file-function (lambda (_) destination))
> +            (byte-compile-error-on-warn t)
> +            (byte-compile-debug t)
> +            (err (should-error (byte-compile-file source))))
> +        (should (equal (cdr err)
> +                       (list "!! The file uses old-style backquotes !!
> +This functionality has been obsolete for more than 10 years already
> +and will be removed soon.  See (elisp)Backquote in the manual.")))))))
> +
>  ;; Local Variables:
>  ;; no-byte-compile: t
>  ;; End:
> diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el
> index 84342348d4..e45d184cad 100644
> --- a/test/src/lread-tests.el
> +++ b/test/src/lread-tests.el
> @@ -142,4 +142,13 @@ lread-tests--last-message
>                             "unescaped character literals "
>                             "\", (, ), ;, [, ] detected!")))))
>
> +(ert-deftest lread-tests--old-style-backquotes ()
> +  "Check that loading warns about old-style backquotes."
> +  (lread-tests--with-temp-file file-name
> +    (write-region "(` (a b))" nil file-name)
> +    (should (equal (load file-name nil :nomessage :nosuffix) t))
> +    (should (equal (lread-tests--last-message)
> +                   (concat (format-message "Loading `%s': " file-name)
> +                           "old-style backquotes detected!")))))
> +
>  ;;; lread-tests.el ends here
> --
> 2.12.2
>
>
Pushed as a1d4615921.

[-- Attachment #2: Type: text/html, Size: 8412 bytes --]

      reply	other threads:[~2017-05-13 10:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <jwvk2uivag9.fsf-monnier+emacsbugs@gnu.org>
2017-05-06 21:14 ` [PATCH] Make `old-style-backquotes' variable internal Philipp
2017-05-07  2:31   ` Eli Zaretskii
2017-05-07 11:49     ` Philipp
2017-05-13 10:35       ` Philipp Stephani [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAArVCkTwSD4y=auKqqSFLFVUW=FcNTVoutXo_-PAUoU1pWhhkw@mail.gmail.com' \
    --to=p.stephani2@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=phst@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).