aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/ChangeLog')
-rw-r--r--lisp/ChangeLog202
1 files changed, 200 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 32e9c92a255..288199fd702 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,201 @@
12011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 Add lexical binding.
4
5 * subr.el (apply-partially): Use new closures rather than CL.
6 (--dolist-tail--, --dotimes-limit--): Don't declare dynamic.
7 (dolist, dotimes): Use slightly different expansion for lexical code.
8 (functionp): Move to C.
9 (letrec): New macro.
10 (with-wrapper-hook): Use it and apply-partially instead of CL.
11 (eval-after-load): Preserve lexical-binding.
12 (save-window-excursion, with-output-to-temp-buffer): Turn them
13 into macros.
14
15 * simple.el (with-wrapper-hook, apply-partially): Move to subr.el.
16
17 * help-fns.el (help-split-fundoc): Return nil if there's nothing else
18 than the arglist.
19 (help-add-fundoc-usage): Don't add `Not documented'.
20 (help-function-arglist): Handle closures, subroutines, and new
21 byte-code-functions.
22 (help-make-usage): Remove leading underscores.
23 (describe-function-1): Handle closures.
24 (describe-variable): Use special-variable-p for completion.
25
26 * files.el (lexical-binding): Declare safe.
27
28 * emacs-lisp/pcase.el: Don't use destructuring-bind.
29 (pcase--memoize): Rename from pcase-memoize. Change weakness.
30 (pcase): Add `let' pattern.
31 Change memoization so it actually works.
32 (pcase-mutually-exclusive-predicates): Add byte-code-function-p.
33 (pcase--u1) <guard, pred>: Fix possible shadowing problem.
34 <let>: New case.
35
36 * emacs-lisp/macroexp.el: Use lexical binding.
37 (macroexpand-all-1): Check obsolete macros. Expand compiler-macros.
38 Don't convert ' to #' without checking that it's indeed quoting
39 a lambda.
40
41 * emacs-lisp/lisp-mode.el (eval-last-sexp-1):
42 Use eval-sexp-add-defvars.
43 (eval-sexp-add-defvars): New fun.
44
45 * emacs-lisp/float-sup.el (pi): Don't declare as dynamically bound.
46
47 * emacs-lisp/eieio.el (byte-compile-file-form-defmethod):
48 Don't autoload.
49 (eieio-defgeneric-form-primary-only-one): Use `byte-compile' rather
50 than the internal `byte-compile-lambda'.
51 (defmethod): Don't hide code under quotes.
52 (eieio-defmethod): New `code' argument.
53
54 * emacs-lisp/eieio-comp.el: Remove.
55
56 * emacs-lisp/edebug.el (edebug-eval-defun)
57 (edebug-eval-top-level-form): Use eval-sexp-add-defvars.
58 (edebug-toggle): Avoid `eval'.
59
60 * emacs-lisp/disass.el (disassemble-internal): Handle new
61 `closure' objects.
62 (disassemble-1): Handle new byte codes.
63
64 * emacs-lisp/cl.el (pushnew): Silence warning.
65
66 * emacs-lisp/cl-macs.el (cl-byte-compile-block)
67 (cl-byte-compile-throw): Remove.
68 (cl-block-wrapper, cl-block-throw): Use compiler-macros instead.
69
70 * emacs-lisp/cl-extra.el (cl-macroexpand-all): Properly quote CL
71 closures.
72
73 * emacs-lisp/cconv.el: New file.
74
75 * emacs-lisp/bytecomp.el: Use lexical binding instead of
76 a "bytecomp-" prefix. Macroexpand everything as a separate phase.
77 (byte-compile-initial-macro-environment):
78 Handle declare-function here.
79 (byte-compile--lexical-environment): New var.
80 (byte-stack-ref, byte-stack-set, byte-discardN)
81 (byte-discardN-preserve-tos): New lap codes.
82 (byte-interactive-p): Don't use any more.
83 (byte-compile-push-bytecodes, byte-compile-push-bytecode-const2):
84 New macros.
85 (byte-compile-lapcode): Use them and handle new lap codes.
86 (byte-compile-obsolete): Remove.
87 (byte-compile-arglist-signature): Handle new byte-code arg"lists".
88 (byte-compile-arglist-warn): Check late def of inlinable funs.
89 (byte-compile-cl-warn): Don't silence warnings for compiler-macros
90 since they should have been expanded by now.
91 (byte-compile--outbuffer): Rename from bytecomp-outbuffer.
92 (byte-compile-from-buffer): Remove unused second arg.
93 (byte-compile-preprocess): New function.
94 (byte-compile-toplevel-file-form): New function to distinguish
95 file-form calls from outside from file-form calls from hunk-handlers.
96 (byte-compile-file-form): Simplify.
97 (byte-compile-file-form-defsubst): Remove.
98 (byte-compile-file-form-defmumble): Simplify now that
99 byte-compile-lambda always returns a byte-code-function.
100 (byte-compile): Preprocess.
101 (byte-compile-byte-code-maker, byte-compile-byte-code-unmake):
102 Remove, not used any more.
103 (byte-compile-arglist-vars, byte-compile-make-lambda-lexenv)
104 (byte-compile-make-args-desc): New funs.
105 (byte-compile-lambda): Handle lexical functions. Always return
106 a byte-code-function.
107 (byte-compile-reserved-constants): New var, to make up room for
108 closed-over variables.
109 (byte-compile-constants-vector): Obey it.
110 (byte-compile-top-level): New args `lexenv' and `reserved-csts'.
111 (byte-compile-macroexpand-declare-function): New function.
112 (byte-compile-form): Call byte-compile-unfold-bcf to inline immediate
113 byte-code-functions.
114 (byte-compile-form): Check obsolescence here.
115 (byte-compile-inline-lapcode, byte-compile-unfold-bcf): New functions.
116 (byte-compile-variable-ref): Remove.
117 (byte-compile-dynamic-variable-op): New fun.
118 (byte-compile-dynamic-variable-bind, byte-compile-variable-ref)
119 (byte-compile-variable-set): New funs.
120 (byte-compile-discard): Add 2 args.
121 (byte-compile-stack-ref, byte-compile-stack-set)
122 (byte-compile-make-closure, byte-compile-get-closed-var): New funs.
123 (byte-compile-funarg, byte-compile-funarg-2): Remove, handled in
124 macroexpand-all instead.
125 (byte-compile-quote-form): Remove.
126 (byte-compile-push-binding-init, byte-compile-not-lexical-var-p)
127 (byte-compile-bind, byte-compile-unbind): New funs.
128 (byte-compile-let): Handle let* and lexical binding.
129 (byte-compile-let*): Remove.
130 (byte-compile-catch, byte-compile-unwind-protect)
131 (byte-compile-track-mouse, byte-compile-condition-case):
132 Handle a new :fun-body form, used for lexical scoping.
133 (byte-compile-save-window-excursion)
134 (byte-compile-with-output-to-temp-buffer): Remove.
135 (byte-compile-defun): Simplify.
136 (byte-compile-stack-adjustment): New fun.
137 (byte-compile-out): Use it.
138 (byte-compile-refresh-preloaded): Don't reload byte-compiler files.
139
140 * emacs-lisp/byte-run.el (make-obsolete): Don't set the `byte-compile'
141 handler any more.
142
143 * emacs-lisp/byte-opt.el: Use lexical binding.
144 (byte-inline-lapcode): Remove (to bytecomp).
145 (byte-compile-inline-expand): Pay attention to inlining to/from
146 lexically bound code.
147 (byte-compile-unfold-lambda): Don't handle byte-code-functions
148 any more.
149 (byte-optimize-form-code-walker): Don't handle save-window-excursion
150 any more and don't call compiler-macros.
151 (byte-compile-splice-in-already-compiled-code): Remove.
152 (byte-code): Don't inline any more.
153 (disassemble-offset): Receive `bytes' as argument rather than via
154 dynamic scoping.
155 (byte-compile-tag-number): Declare before first use.
156 (byte-decompile-bytecode-1): Handle new byte-codes, don't change
157 `return' even if make-spliceable.
158 (byte-compile-side-effect-and-error-free-ops): Add stack-ref, remove
159 obsolete interactive-p.
160 (byte-optimize-lapcode): Optimize new lap-codes.
161 Don't trip up on new form of `byte-constant' lap code.
162
163 * emacs-lisp/autoload.el (make-autoload): Don't burp on trivial macros.
164
165 * emacs-lisp/advice.el (ad-arglist): Use help-function-arglist.
166
167 * custom.el (custom-initialize-default, custom-declare-variable):
168 Use `defvar'.
169
170 * Makefile.in (BIG_STACK_DEPTH, BIG_STACK_OPTS, BYTE_COMPILE_FLAGS):
171 New variables.
172 (compile-onefile, .el.elc, compile-calc, recompile): Use them.
173 (COMPILE_FIRST): Add macroexp and cconv.
174 * makefile.w32-in: Mirror changes in Makefile.in.
175
176 * vc/cvs-status.el:
177 * vc/diff-mode.el:
178 * vc/log-edit.el:
179 * vc/log-view.el:
180 * vc/smerge-mode.el:
181 * textmodes/bibtex-style.el:
182 * textmodes/css.el:
183 * startup.el:
184 * uniquify.el:
185 * minibuffer.el:
186 * newcomment.el:
187 * reveal.el:
188 * server.el:
189 * mpc.el:
190 * emacs-lisp/smie.el:
191 * doc-view.el:
192 * dired.el:
193 * abbrev.el: Use lexical binding.
194
1952011-04-01 Eli Zaretskii <eliz@gnu.org>
196
197 * info.el (info-display-manual): New function.
198
12011-03-31 Stefan Monnier <monnier@iro.umontreal.ca> 1992011-03-31 Stefan Monnier <monnier@iro.umontreal.ca>
2 200
3 * loadup.el: Load minibuffer after loaddefs, to use define-minor-mode. 201 * loadup.el: Load minibuffer after loaddefs, to use define-minor-mode.
@@ -69,8 +267,8 @@
69 267
702011-03-28 Brian T. Sniffen <bsniffen@akamai.com> (tiny change) 2682011-03-28 Brian T. Sniffen <bsniffen@akamai.com> (tiny change)
71 269
72 * net/imap.el (imap-shell-open, imap-process-connection-type): Use 270 * net/imap.el (imap-shell-open, imap-process-connection-type):
73 imap-process-connection-type for 'shell' streams as well as 271 Use imap-process-connection-type for 'shell' streams as well as
74 Kerberos, SSL, other subprocesses. 272 Kerberos, SSL, other subprocesses.
75 273
762011-03-28 Leo Liu <sdl.web@gmail.com> 2742011-03-28 Leo Liu <sdl.web@gmail.com>