From: Philipp Stephani <p.stephani2@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>, Paul Eggert <eggert@cs.ucla.edu>
Cc: emacs-devel@gnu.org
Subject: Re: Old-style backquotes
Date: Sun, 08 Oct 2017 14:58:45 +0000 [thread overview]
Message-ID: <CAArVCkRBKwyA9MsNPbwVxpS8g5NP3JedD0CWw=PjZtVn+8gm+g@mail.gmail.com> (raw)
In-Reply-To: <83h8vg1dhy.fsf@gnu.org>
[-- Attachment #1.1: Type: text/plain, Size: 545 bytes --]
Eli Zaretskii <eliz@gnu.org> schrieb am Di., 3. Okt. 2017 um 17:02 Uhr:
> > From: Paul Eggert <eggert@cs.ucla.edu>
> > Date: Tue, 3 Oct 2017 07:12:25 -0700
> >
> > On 10/03/2017 06:51 AM, Philipp Stephani wrote:
> > > old-style backquotes were deprecated ten years ago
> > > (1d06469794a66d6c8b424e6f17da029ebc5bb295). Is it time to finally turn
> > > them into errors for Emacs 26, and remove them in Emacs 27?
> >
> > Ten years is long enough, so I'd say it's time.
>
> On master, please (unless there are objections).
>
OK, here's a patch.
[-- Attachment #1.2: Type: text/html, Size: 952 bytes --]
[-- Attachment #2: 0001-Raise-an-error-when-detecting-old-style-backquotes.txt --]
[-- Type: text/plain, Size: 4898 bytes --]
From 96d9780bf072772f3be289b4c344d741b9ce3249 Mon Sep 17 00:00:00 2001
From: Philipp Stephani <phst@google.com>
Date: Tue, 3 Oct 2017 16:14:54 +0200
Subject: [PATCH] Raise an error when detecting old-style backquotes.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
They have been deprecated for a decade now.
* src/lread.c (Fload): Don’t use record_unwind_protect to warn about
old-style backquotes any more. They now generate a hard error.
(read1): Signal an error when detecting old-style backquotes. Remove
unused label.
(syms_of_lread): Remove unused internal variable
‘lread--old-style-backquotes’.
(load_error_old_style_backquotes): Rename from
‘load_warn_oldstyle_backquotes’. Signal an error.
* test/src/lread-tests.el (lread-tests--old-style-backquotes): Adapt
unit test.
---
src/lread.c | 32 ++++++--------------------------
test/src/lread-tests.el | 10 +++++-----
2 files changed, 11 insertions(+), 31 deletions(-)
diff --git a/src/lread.c b/src/lread.c
index 6bc93b1481..44953baa77 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1003,14 +1003,11 @@ load_error_handler (Lisp_Object data)
return Qnil;
}
-static void
-load_warn_old_style_backquotes (Lisp_Object file)
+static _Noreturn void
+load_error_old_style_backquotes (void)
{
- if (!NILP (Vlread_old_style_backquotes))
- {
- AUTO_STRING (format, "Loading `%s': old-style backquotes detected!");
- CALLN (Fmessage, format, file);
- }
+ AUTO_STRING (format, "Loading `%s': old-style backquotes detected!");
+ xsignal1 (Qerror, CALLN (Fformat_message, format, Vload_file_name));
}
static void
@@ -1282,10 +1279,6 @@ Return t if the file exists and loads successfully. */)
version = -1;
- /* Check for the presence of old-style quotes and warn about them. */
- 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
about them. */
specbind (Qlread_unescaped_character_literals, Qnil);
@@ -3178,10 +3171,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
first_in_list exception (old-style can still be obtained via
"(\`" anyway). */
if (!new_backquote_flag && first_in_list && next_char == ' ')
- {
- Vlread_old_style_backquotes = Qt;
- goto default_label;
- }
+ load_error_old_style_backquotes ();
else
{
Lisp_Object value;
@@ -3232,10 +3222,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
return list2 (comma_type, value);
}
else
- {
- Vlread_old_style_backquotes = Qt;
- goto default_label;
- }
+ load_error_old_style_backquotes ();
}
case '?':
{
@@ -3423,7 +3410,6 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
row. */
FALLTHROUGH;
default:
- default_label:
if (c <= 040) goto retry;
if (c == NO_BREAK_SPACE)
goto retry;
@@ -4996,12 +4982,6 @@ 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 ("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,
doc: /* List of deprecated unescaped character literals encountered by `read'.
diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el
index ac730b4f00..241cebb6b1 100644
--- a/test/src/lread-tests.el
+++ b/test/src/lread-tests.el
@@ -173,13 +173,13 @@ lread-tests--last-message
(should (string-suffix-p "/somelib.el" (caar load-history)))))
(ert-deftest lread-tests--old-style-backquotes ()
- "Check that loading warns about old-style backquotes."
+ "Check that loading doesn’t accept 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!")))))
+ (let ((data (should-error (load file-name nil :nomessage :nosuffix))))
+ (should (equal (cdr data)
+ (list (concat (format-message "Loading `%s': " file-name)
+ "old-style backquotes detected!")))))))
(ert-deftest lread-lread--substitute-object-in-subtree ()
(let ((x (cons 0 1)))
--
2.14.2
next prev parent reply other threads:[~2017-10-08 14:58 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-03 13:51 Old-style backquotes Philipp Stephani
2017-10-03 14:12 ` Paul Eggert
2017-10-03 14:17 ` [PATCH] Raise an error when detecting old-style backquotes Philipp Stephani
2017-10-03 17:43 ` Stefan Monnier
2017-10-03 18:36 ` Philipp Stephani
2017-10-03 18:52 ` Stefan Monnier
2017-10-08 16:03 ` Philipp Stephani
2017-10-08 19:14 ` Stefan Monnier
2017-10-04 14:12 ` Richard Stallman
2017-10-04 15:30 ` Stefan Monnier
2017-10-05 7:03 ` Richard Stallman
2017-10-06 4:04 ` Stefan Monnier
2017-10-06 15:17 ` Richard Stallman
2017-10-03 15:02 ` Old-style backquotes Eli Zaretskii
2017-10-08 14:58 ` Philipp Stephani [this message]
2017-10-08 16:05 ` Eli Zaretskii
2017-10-08 16:09 ` Eli Zaretskii
2017-10-08 16:25 ` Philipp Stephani
2017-10-08 16:38 ` Eli Zaretskii
2017-10-08 16:59 ` Philipp Stephani
2017-12-09 20:44 ` Philipp Stephani
2017-12-09 20:48 ` Alan Mackenzie
2017-12-09 20:58 ` Philipp Stephani
2017-12-09 21:05 ` Philipp Stephani
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='CAArVCkRBKwyA9MsNPbwVxpS8g5NP3JedD0CWw=PjZtVn+8gm+g@mail.gmail.com' \
--to=p.stephani2@gmail.com \
--cc=eggert@cs.ucla.edu \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/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).