diff options
Diffstat (limited to 'lisp/ChangeLog')
| -rw-r--r-- | lisp/ChangeLog | 202 |
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 @@ | |||
| 1 | 2011-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 | |||
| 195 | 2011-04-01 Eli Zaretskii <eliz@gnu.org> | ||
| 196 | |||
| 197 | * info.el (info-display-manual): New function. | ||
| 198 | |||
| 1 | 2011-03-31 Stefan Monnier <monnier@iro.umontreal.ca> | 199 | 2011-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 | ||
| 70 | 2011-03-28 Brian T. Sniffen <bsniffen@akamai.com> (tiny change) | 268 | 2011-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 | ||
| 76 | 2011-03-28 Leo Liu <sdl.web@gmail.com> | 274 | 2011-03-28 Leo Liu <sdl.web@gmail.com> |