[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r113521: * src/eval.c (Fprogn): Do not check that BO
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] trunk r113521: * src/eval.c (Fprogn): Do not check that BODY is a proper list. |
Date: |
Wed, 24 Jul 2013 06:21:14 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 113521
revision-id: address@hidden
parent: address@hidden
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Wed 2013-07-24 07:21:07 +0100
message:
* src/eval.c (Fprogn): Do not check that BODY is a proper list.
This undoes the previous change. The check slows down the
interpreter, and is not needed to prevent a crash. See
<http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
* doc/lispref/eval.texi (Special Forms): Mention 'lambda'. Also, say that
non-well-formed expressions result in unspecified behavior, though
Emacs will not crash.
modified:
doc/lispref/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-6155
doc/lispref/eval.texi eval.texi-20091113204419-o5vbwnq5f7feedwu-6178
etc/NEWS news-20100311060928-aoit31wvzf25yr1z-1
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/eval.c eval.c-20091113204419-o5vbwnq5f7feedwu-237
=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog 2013-07-22 09:19:00 +0000
+++ b/doc/lispref/ChangeLog 2013-07-24 06:21:07 +0000
@@ -1,3 +1,9 @@
+2013-07-24 Paul Eggert <address@hidden>
+
+ * eval.texi (Special Forms): Mention 'lambda'. Also, say that
+ non-well-formed expressions result in unspecified behavior, though
+ Emacs will not crash.
+
2013-07-22 Michael Albinus <address@hidden>
* files.texi (Magic File Names): Add file-notify-add-watch,
=== modified file 'doc/lispref/eval.texi'
--- a/doc/lispref/eval.texi 2013-01-01 09:11:05 +0000
+++ b/doc/lispref/eval.texi 2013-07-24 06:21:07 +0000
@@ -432,6 +432,14 @@
and which are used without evaluation. Whether a particular argument is
evaluated may depend on the results of evaluating other arguments.
+ If an expression's first symbol is that of a special form, the
+expression should follow the rules of that special form; otherwise,
+Emacs's behavior is not well-defined (though it will not crash). For
+example, @code{((lambda (x) x . 3) 4)} contains a subexpression that
+begins with @code{lambda} but is not a well-formed @code{lambda}
+expression, so Emacs may signal an error, or may return 3 or 4 or
address@hidden, or may behave in other ways.
+
Here is a list, in alphabetical order, of all of the special forms in
Emacs Lisp with a reference to where each is described.
@@ -463,6 +471,9 @@
@item interactive
@pxref{Interactive Call}
address@hidden lambda
address@hidden Expressions}
+
@item let
@itemx let*
@pxref{Local Variables}
=== modified file 'etc/NEWS'
--- a/etc/NEWS 2013-07-23 07:22:16 +0000
+++ b/etc/NEWS 2013-07-24 06:21:07 +0000
@@ -538,14 +538,6 @@
** `visited-file-modtime' now returns -1 for nonexistent files.
Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous
in the presence of files with negative time stamps.
-
-** Special forms with implied progn now check for proper lists.
-Starting in Emacs 21.4, a special form with an implied progn of an
-improper list ignored the trailing value, treating it as nil. For
-example, (cond (t (message "hello") . "there")) ignored the "there".
-This inadvertent change to Emacs's behavior has been reverted, and
-Emacs now signals an error for these improper forms, as it did in
-version 21.3 and earlier.
* Lisp Changes in Emacs 24.4
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-07-23 23:00:43 +0000
+++ b/src/ChangeLog 2013-07-24 06:21:07 +0000
@@ -1,3 +1,10 @@
+2013-07-24 Paul Eggert <address@hidden>
+
+ * eval.c (Fprogn): Do not check that BODY is a proper list.
+ This undoes the previous change. The check slows down the
+ interpreter, and is not needed to prevent a crash. See
+ <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
+
2013-07-23 Glenn Morris <address@hidden>
* Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
=== modified file 'src/eval.c'
--- a/src/eval.c 2013-07-23 07:22:16 +0000
+++ b/src/eval.c 2013-07-24 06:21:07 +0000
@@ -454,12 +454,6 @@
body = XCDR (body);
}
- if (!NILP (body))
- {
- /* This can happen if functions like Fcond are the caller. */
- wrong_type_argument (Qlistp, body);
- }
-
UNGCPRO;
return val;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r113521: * src/eval.c (Fprogn): Do not check that BODY is a proper list.,
Paul Eggert <=