X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/ebe0c9b6b02cfb328457156c25387c3e2b7ba961..a83ec3c99a6536a248c4806fbbafbc47c2047bc6:/lisp/ChangeLog diff --git a/lisp/ChangeLog b/lisp/ChangeLog dissimilarity index 96% index c1e12152f1..133bf70d48 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,815 +1,926 @@ -2011-03-30 Juanma Barranquero - - * makefile.w32-in (COMPILE_FIRST): Remove pcase. - -2011-03-30 Stefan Monnier - - * subr.el (with-output-to-temp-buffer): Don't change current-buffer to - standard-output while running the body. - - * startup.el: Fix up warnings, move lambda expressions - outside of quote. - - * Makefile.in (COMPILE_FIRST): Remove pcase; it's not so important. - -2011-03-24 Stefan Monnier - - * startup.el: Convert to lexical-binding. Mark unused arguments. - (command-line-1): Get rid of the "cl1-" prefix now that we use lexical - scoping instead. - * emacs-lisp/float-sup.el (pi): Leave it lexically scoped. - * emacs-lisp/lisp-mode.el (eval-sexp-add-defvars): New fun. - (eval-last-sexp-1): Use eval-sexp-add-defvars. - * emacs-lisp/edebug.el (edebug-eval-defun): Use eval-sexp-add-defvars. - * emacs-lisp/cconv.el (cconv--analyse-function): - Fix `report-error/log-warning' mixup. - -2011-03-23 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): - byte-compile-lambda now always returns a byte-code-function. - (byte-compile-byte-code-maker, byte-compile-byte-code-unmake) - (byte-compile-closure): Remove. - (byte-compile-lambda): Always return a byte-code-function. - (byte-compile-top-level): Don't handle `byte-code' forms specially. - (byte-compile-inline-lapcode): New function, taken from byte-opt.el. - (byte-compile-unfold-bcf): New function. - (byte-compile-form): Use it to optimize inline byte-code-functions. - (byte-compile-function-form, byte-compile-defun): Simplify. - (byte-compile-defmacro): Don't bother calling - byte-compile-byte-code-maker. - * emacs-lisp/byte-opt.el (byte-inline-lapcode): Move to bytecomp.el. - (byte-compile-inline-expand): Inline all bytecompiled functions. - Unify the inlining code of the lexbind and dynbind interpreted - functions. - (byte-compile-unfold-lambda): Don't handle byte-compiled functions - at all. - (byte-optimize-form-code-walker): Don't optimize byte-compiled inlined - functions here. - (byte-compile-splice-in-already-compiled-code): Remove. - (byte-code): Don't optimize it any more. - (byte-decompile-bytecode-1): Remove unused bytedecomp-bytes. - Leave `byte-return's even for `make-spliceable'. - -2011-03-20 Christian Ohler - - * emacs-lisp/cl-macs.el (cl-block-wrapper): Fix typo that broke CL - blocks. - -2011-03-20 Stefan Monnier - - * emacs-lisp/debug.el (debugger-setup-buffer): Revert local change to - print depth and length. - -2011-03-19 Stefan Monnier - - * emacs-lisp/cl-macs.el (cl-byte-compile-block, cl-block-wrapper) - (cl-block-throw, cl-byte-compile-throw): Use a compiler-macro rather - than a `byte-compile' hook to optimize away unused CL blocks, so that - also works for lexbind code. - Move the code after define-compiler-macro. - -2011-03-16 Stefan Monnier - - * emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): - Add byte-code-function-p. - (pcase--u1): Remove left-over code from early development. - Fix case of variable shadowing in guards and predicates. - (pcase--u1): Add a new `let' pattern. - - * emacs-lisp/bytecomp.el: Remove the bytecomp- prefix now that we use - lexical-binding. - (byte-compile-outbuffer): Rename from bytecomp-outbuffer. - * emacs-lisp/cl-macs.el (load-time-value): - * emacs-lisp/cl.el (cl-compiling-file): Adjust to new name. - - * emacs-lisp/byte-opt.el (byte-compile-inline-expand): Make it work to - inline lexbind interpreted functions into lexbind code. - (bytedecomp-bytes): Not a dynamic var any more. - (disassemble-offset): Get the bytes via an argument instead. - (byte-decompile-bytecode-1): Use push. - -2011-03-15 Stefan Monnier - - * makefile.w32-in (COMPILE_FIRST): Fix up last change. - * ldefs-boot.el: Revert to upstream's version. - -2011-03-13 Stefan Monnier - - * help-fns.el (help-function-arglist): - * emacs-lisp/bytecomp.el (byte-compile-arglist-warn): - * subr.el (apply-partially): Adjust to new format. - * emacs-lisp/disass.el (disassemble-internal): Catch closures. - -2011-03-12 Stefan Monnier - - * subr.el (apply-partially): Move from subr.el; don't use lexical-let. - (eval-after-load): Obey lexical-binding. - * simple.el (apply-partially): Move to subr.el. - * makefile.w32-in: Match changes in Makefile.in. - (BIG_STACK_DEPTH, BIG_STACK_OPTS, BYTE_COMPILE_FLAGS): New vars. - (.el.elc, compile-CMD, compile-SH, compile-always-CMD) - (compile-always-SH, compile-calc-CMD, compile-calc-SH): Use them. - (COMPILE_FIRST): Add pcase, macroexp, and cconv. - * emacs-lisp/macroexp.el (macroexpand-all-1): Silence warning about - calling CL's `compiler-macroexpand'. - * emacs-lisp/bytecomp.el (byte-compile-preprocess): New function. - (byte-compile-initial-macro-environment) - (byte-compile-toplevel-file-form, byte-compile, byte-compile-sexp): - Use it. - (byte-compile-eval, byte-compile-eval-before-compile): - Obey lexical-binding. - (byte-compile--for-effect): Rename from `for-effect'. - (display-call-tree): Use case. - * emacs-lisp/byte-opt.el (for-effect): Don't declare as dynamic. - (byte-optimize-form-code-walker, byte-optimize-form): - Revert to old arg name. - * Makefile.in (BYTE_COMPILE_FLAGS): New var. - (compile-onefile, .el.elc, compile-calc, recompile): Use it. - -2011-03-11 Stefan Monnier - - * subr.el (letrec): New macro. - (with-wrapper-hook): Move from simple.el and don't use CL. - * simple.el (with-wrapper-hook): Move with-wrapper-hook to subr.el. - * help-fns.el (help-function-arglist): Handle subroutines as well. - (describe-variable): Use special-variable-p to filter completions. - * emacs-lisp/macroexp.el (macroexpand-all-1): Don't expand `declare' - in defmacros. - * emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): - Handle `declare'. - * emacs-lisp/cl.el (pushnew): Silence unfixable warning. - * emacs-lisp/cl-macs.el (defstruct, define-compiler-macro): - Mark unused arg as unused. - * emacs-lisp/byte-opt.el (byte-optimize-lapcode): Use memq. - * emacs-lisp/autoload.el (make-autoload): Don't assume the macro's - first sexp is a list. - (autoload-generate-file-autoloads): Improve error message. - * emacs-lisp/advice.el (ad-arglist): Use help-function-arglist - to understand the new byte-code arg format. - * vc/smerge-mode.el: - * vc/log-view.el: - * vc/log-edit.el: - * vc/cvs-status.el: - * uniquify.el: - * textmodes/css-mode.el: - * textmodes/bibtex-style.el: - * reveal.el: - * newcomment.el: - * emacs-lisp/smie.el: - * abbrev.el: Use lexical-binding. - -2011-03-10 Stefan Monnier - - * emacs-lisp/bytecomp.el: Use lexical-binding. - (byte-recompile-directory): Remove unused var `bytecomp-dest'. - (byte-recompile-file): Use derived-mode-p. - (byte-compile-from-buffer): Remove arg `bytecomp-filename'. - Use byte-compile-current-file instead. - (byte-compile-file): Adjust call accordingly. - (bytecomp-outbuffer): Move declaration before first use. - (for-effect): Declare dynamic. - (byte-compile-file-form-defmumble): Use byte-compile-current-file. - (byte-compile-top-level, byte-compile-out-toplevel, byte-compile-form): - Move dyn-binding of for-effect from function argument to let binding. - (byte-compile-out-toplevel): Don't both passing for-effect to - byte-optimize-lapcode. - (byte-compile-top-level-body, byte-compile-body): - Rename for-effect -> for-effect-arg so it's lexical. - - * subr.el (functionp): Remove, now that it's in src/eval.c. - - * emacs-lisp/byte-opt.el: Use lexical-binding. - (for-effectm byte-compile-tag-number): Declare dynamic. - (byte-optimize-form-code-walker, byte-optimize-form): Move dynamic - binding of for-effect from function argument to let binding. - (byte-decompile-bytecode-1): Move dynamic binding of bytedecomp-bytes - from function argument to let binding. - - * emacs-lisp/cconv.el (cconv--convert-function): Rename from - cconv-closure-convert-function. - (cconv-convert): Rename from cconv-closure-convert-rec. - (cconv--analyse-use): Rename from cconv-analyse-use. - (cconv--analyse-function): Rename from cconv-analyse-function. - (cconv--analyse-use): Change some patterns to silence compiler. - (cconv-convert, cconv--convert-function): Rewrite. - * emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust check for - new byte-code representation. - -2011-03-06 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-arglist-signature): - Handle integer arglist descriptor. - (byte-compile-make-args-desc): Make integer arglist descriptor. - (byte-compile-lambda): Use integer arglist descriptor to mark lexical - byte-coded functions instead of an extra slot. - * help-fns.el (help-add-fundoc-usage): Don't add a dummy doc. - (help-split-fundoc): Return a nil doc if there was no actual doc. - (help-function-arglist): Generate an arglist from an integer arg-desc. - * emacs-lisp/pcase.el (pcase--memoize): Rename from pcase-memoize; - Make only the key weak. - (pcase): Change the key used in the memoization table, so it does not - always get GC'd away. - * emacs-lisp/macroexp.el (macroexpand-all-1): Slight change to the - pcase pattern to generate slightly better code. - -2011-03-01 Stefan Monnier - - * emacs-lisp/cconv.el (cconv-liftwhen): Increase threshold. - (cconv-closure-convert-rec): Convert interactive spec in empty lexenv. - (cconv-analyse-use): Improve unused vars warnings. - (cconv-analyse-form): Analyze interactive spec in empty lexenv. - * emacs-lisp/bytecomp.el (byte-compile-lambda): Always byte-compile - the interactive spec in lexical-binding mode. - (byte-compile-refresh-preloaded): Don't reload byte-compiler files. - * custom.el (custom-initialize-default): Use defvar. - (custom-declare-variable): Set the special-variable-p flag. - * help-fns.el (help-make-usage): Drop leading underscores. - * dired.el (dired-revert, dired-make-relative): Mark unused args. - (dired-unmark-all-files): Remove unused var `query'. - (dired-overwrite-confirmed): Declare. - (dired-restore-desktop-buffer): Don't use dynamically scoped arg names. - * mpc.el: Mark unused args. - (mpc--faster-toggle): Remove unused var `songnb'. - * server.el (server-kill-buffer-running): Move before first use. - * minibuffer.el: Mark unused args. - -2011-02-26 Stefan Monnier - - * emacs-lisp/cconv.el (cconv-closure-convert-rec): Fix last change for - λ-lift candidates that end up not λ-lifted. - - * emacs-lisp/cconv.el: Compute freevars in cconv-analyse. - (cconv-mutated, cconv-captured): Remove. - (cconv-captured+mutated, cconv-lambda-candidates): Don't give them - a global value. - (cconv-freevars-alist): New var. - (cconv-freevars): Remove. - (cconv--lookup-let): Remove. - (cconv-closure-convert-function): Extract from cconv-closure-convert-rec. - (cconv-closure-convert-rec): Adjust to above changes. - (fboundp): New function. - (cconv-analyse-function, form): Rewrite. - * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): - Handle declare-function here. - (byte-compile-obsolete): Remove. - (byte-compile-arglist-warn): Check late defsubst here. - (byte-compile-file-form): Simplify. - (byte-compile-file-form-defsubst): Remove. - (byte-compile-macroexpand-declare-function): Rename from - byte-compile-declare-function, turn it into a macro-expander. - (byte-compile-normal-call): Check obsolescence. - (byte-compile-quote-form): Remove. - (byte-compile-defmacro): Revert to trunk's definition which seems to - work just as well and handles `declare'. - * emacs-lisp/byte-run.el (make-obsolete): Don't modify byte-compile. - * Makefile.in (BIG_STACK_DEPTH): Increase to 1200. - (compile-onefile): Pass $(BIG_STACK_OPTS) before "-l bytecomp". - * emacs-lisp/macroexp.el: Use lexbind. - (macroexpand-all-1): Check macro obsolescence. - * vc/diff-mode.el: Use lexbind. - * follow.el (follow-calc-win-end): Simplify. - -2011-02-25 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-lapcode): Handle new form of - `byte-constant'. - (byte-compile-close-variables, displaying-byte-compile-warnings): - Add edebug spec. - (byte-compile-toplevel-file-form): New fun, split out of - byte-compile-file-form. - (byte-compile-from-buffer): Use it to avoid applying cconv - multiple times. - (byte-compile): Only strip `function' if it's present. - (byte-compile-lambda): Add `reserved-csts' argument. - Use new lexenv arg of byte-compile-top-level. - (byte-compile-reserved-constants): New var. - (byte-compile-constants-vector): Obey it. - (byte-compile-constants-vector): Handle new `byte-constant' form. - (byte-compile-top-level): Add args `lexenv' and `reserved-csts'. - (byte-compile-form): Don't check callargs here. - (byte-compile-normal-call): Do it here instead. - (byte-compile-push-unknown-constant) - (byte-compile-resolve-unknown-constant): Remove, unused. - (byte-compile-make-closure): Use `make-byte-code' rather than `curry', - putting the environment into the "constant" pool. - (byte-compile-get-closed-var): Use special byte-constant. - * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Handle new - intermediate special form `internal-make-vector'. - (byte-optimize-lapcode): Handle new form of `byte-constant'. - * help-fns.el (describe-function-1): Don't handle funvecs. - * emacs-lisp/macroexp.el (macroexpand-all-1): Only convert quote to - function if the content is a lambda expression, not if it's a closure. - * emacs-lisp/eieio-come.el: Remove. - * emacs-lisp/eieio.el: Don't require eieio-comp. - (defmethod): Do a bit more work to find the body and wrap it into - a function before passing it to eieio-defmethod. - (eieio-defmethod): New arg `code' for it. - * emacs-lisp/debug.el (debugger-setup-buffer): Don't hide things in - debugger backtrace. - * emacs-lisp/cl-extra.el (cl-macroexpand-all): Use backquotes, and be - more careful when quoting a function value. - * emacs-lisp/cconv.el (cconv-freevars): Accept defvar/defconst. - (cconv-closure-convert-rec): Catch stray `internal-make-closure'. - * Makefile.in (COMPILE_FIRST): Compile pcase and cconv early. - -2011-02-21 Stefan Monnier - - * emacs-lisp/cconv.el (cconv-closure-convert-rec): Let the byte - compiler choose the representation of closures. - (cconv--env-var): Remove. - * emacs-lisp/bytecomp.el (byte-compile--env-var): New var. - (byte-compile-make-closure, byte-compile-get-closed-var): - New functions. - -2011-02-21 Stefan Monnier - - * subr.el (with-output-to-temp-buffer): New macro. - - * simple.el (count-words-region): Don't use interactive-p. - - * minibuffer.el: Use lexical-binding. Replace all uses of lexical-let. - - * emacs-lisp/eieio.el (eieio-defgeneric-form-primary-only-one): - Call byte-compile rather than byte-compile-lambda. - - * emacs-lisp/eieio-comp.el (eieio-byte-compile-file-form-defmethod): - Rename from byte-compile-file-form-defmethod. - Don't byte-compile-lambda. - (eieio-byte-compile-defmethod-param-convert): Rename from - byte-compile-defmethod-param-convert. - - * emacs-lisp/cl-extra.el (cl-macroexpand-all): Don't assume that the - value of (function (lambda ...)) is self-quoting. - - * emacs-lisp/cconv.el: Use lexical-binding. - (cconv--lookup-let): Rename from cconv-lookup-let. - (cconv-closure-convert-rec): Fix handling of captured+mutated - arguments in defun/defmacro. - - * emacs-lisp/bytecomp.el (byte-compile-lapcode): - Turn stack-ref-0 into dup. - (byte-compile-form): Don't indirect-function since it can signal - errors. - (byte-compile-stack-ref, byte-compile-stack-set): Adjust to stack-refs - being relative to top rather than to bottom in the byte-code. - (with-output-to-temp-buffer): Remove. - (byte-compile-with-output-to-temp-buffer): Remove. - - * emacs-lisp/byte-opt.el (byte-compile-side-effect-and-error-free-ops): - Remove interactive-p. - (byte-optimize-lapcode): Update optimizations now that stack-refs are - relative to the top rather than to the bottom. - -2011-02-19 Stefan Monnier - - * subr.el (save-window-excursion): New macro, moved from C. - * emacs-lisp/lisp-mode.el (save-window-excursion): Don't touch. - * emacs-lisp/cconv.el (cconv-closure-convert-rec, cconv-analyse-form): - Don't handle save-window-excursion any more. - * emacs-lisp/bytecomp.el (interactive-p, save-window-excursion): - Don't use the byte-code any more. - (byte-compile-form): Check macro expansion was done. - (byte-compile-save-window-excursion): Remove. - * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): - Ignore save-window-excursion. Don't macroepand any more. - -2011-02-18 Stefan Monnier - - * emacs-lisp/pcase.el (pcase--expand, pcase--u, pcase--u1, pcase--q1): - Avoid destructuring-bind which results in poorer code. - -2011-02-17 Stefan Monnier - - * files.el (lexical-binding): Add a safe-local-variable property. - - * emacs-lisp/cl-macs.el (cl-byte-compile-block): Disable optimization - in lexbind, because it needs a different implementation. - - * emacs-lisp/cconv.el (cconv--set-diff, cconv--set-diff-map) - (cconv--map-diff, cconv--map-diff-elem, cconv--map-diff-set): New funs. - (cconv--env-var): New constant. - (cconv-closure-convert-rec): Use it and use them. Fix a typo that - ended up forgetting to remove entries from lmenvs in `let'. - For `lambda' use the outer `fvrs' when building the closure and don't - forget to remove `vars' from the `emvrs' and `lmenvs' of the body. - - * emacs-lisp/bytecomp.el (byte-compile-arglist-warn): - Correctly extract arglist from `closure's. - (byte-compile-cl-warn): Compiler-macros are run earlier now. - (byte-compile-top-level): Bind byte-compile-lexical-environment to nil, - except for lambdas. - (byte-compile-form): Don't run the compiler-macro expander here. - (byte-compile-let): Merge with byte-compile-let*. - Don't preserve-body-value if the body's value was discarded. - - * emacs-lisp/byte-opt.el (byte-inline-lapcode): Check how many elements - are added to the stack. - (byte-compile-splice-in-already-compiled-code): Don't touch lexical nor - byte-compile-depth now that byte-inline-lapcode does it for us. - (byte-compile-inline-expand): Don't inline dynbind byte code into - lexbind code, since it has to be done differently. - -2011-02-12 Stefan Monnier - - * emacs-lisp/byte-lexbind.el: Delete. - - * emacs-lisp/bytecomp.el (byte-compile-current-heap-environment) - (byte-compile-current-num-closures): Remove vars. - (byte-vec-ref, byte-vec-set): Remove byte codes. - (byte-compile-arglist-vars, byte-compile-make-lambda-lexenv): Move from - byte-lexbind.el. - (byte-compile-lambda): Never build a closure. - (byte-compile-closure-code-p, byte-compile-make-closure): Remove. - (byte-compile-closure): Simplify. - (byte-compile-top-level): Don't mess with heap environments. - (byte-compile-dynamic-variable-bind): Always maintain - byte-compile-bound-variables. - (byte-compile-variable-ref, byte-compile-variable-set): Always just use - the stack for lexical vars. - (byte-compile-push-binding-init): Simplify. - (byte-compile-not-lexical-var-p): New function, moved from cconv.el. - (byte-compile-bind, byte-compile-unbind): New functions, moved and - simplified from byte-lexbind.el. - (byte-compile-let, byte-compile-let*): Simplify. - (byte-compile-condition-case): Don't add :fun-body to the bound vars. - (byte-compile-defmacro): Simplify. - - * emacs-lisp/cconv.el (cconv-not-lexical-var-p): Remove. - (cconv-freevars, cconv-analyse-function, cconv-analyse-form): - Use byte-compile-not-lexical-var-p instead. - - * help-fns.el (describe-function-1): Fix paren typo. - - * emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops) - (byte-optimize-lapcode): Remove byte-vec-ref and byte-vec-set. - -2011-02-11 Stefan Monnier - - * emacs-lisp/cconv.el (cconv-closure-convert): Drop `toplevel' arg. - (cconv-closure-convert-toplevel): Remove. - (cconv-lookup-let): New fun. - (cconv-closure-convert-rec): Don't bother with defs-are-legal. - Use :fun-body to handle special forms that require closing their forms. - - * emacs-lisp/bytecomp.el (byte-compile-file-form, byte-compile): - Use cconv-closure-convert instead of cconv-closure-convert-toplevel. - (byte-compile-lambda, byte-compile-make-closure): - * emacs-lisp/byte-lexbind.el (byte-compile-maybe-push-heap-environment): - Make sure cconv did its job. - - * emacs-lisp/byte-opt.el (byte-optimize-lapcode): Check stack-depth - before using it. - - * dired.el (dired-desktop-buffer-misc-data): Don't use a dynamic var as - function argument. - -2011-02-11 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-lambda): Fix `fun' that was not - renamed to `bytecomp-fun'. - - * emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze): - Understand the :fun-body case for catch, save-window-excursion, and - condition-case. - (byte-compile-maybe-push-heap-environment): No need when nclosures is - zero and byte-compile-current-num-closures is -1. - - * emacs-lisp/cconv.el (cconv-not-lexical-var-p): New function. - (cconv-freevars): Use it. - (cconv-closure-convert-rec): Avoid `position'. - (cconv-analyse-function): New function. - (cconv-analyse-form): Use it. `inclosure' can't be nil any more. - Check lexical vars at let-binding time rather than when referenced. - For defuns to be in an empty environment and lambdas to take lexical args. - Pay attention to the need to build closures in catch, unwind-protect, - save-window-excursion, condition-case, and track-mouse. - Fix defconst/defvar handling. - -2011-02-10 Stefan Monnier - - * emacs-lisp/cconv.el (cconv-mutated, cconv-captured) - (cconv-captured+mutated, cconv-lambda-candidates): Fix up declaration. - (cconv-freevars): Minor cleanup. Fix handling of the error var in - condition-case. - - * emacs-lisp/bytecomp.el (byte-compile-catch) - (byte-compile-unwind-protect, byte-compile-track-mouse) - (byte-compile-condition-case, byte-compile-save-window-excursion): - Provide a :fun-body alternative, so that info can be propagated from the - surrounding context, as is the case for lexical scoping. - -2011-02-10 Igor Kuzmin - - * emacs-lisp/cconv.el: New file. - * emacs-lisp/bytecomp.el: Use cconv. - (byte-compile-file-form, byte-compile): - Call cconv-closure-convert-toplevel when requested. - * server.el: - * mpc.el: - * emacs-lisp/pcase.el: - * doc-view.el: - * dired.el: Use lexical-binding. - -2010-12-27 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-track-mouse): Don't use #'. - -2010-12-15 Stefan Monnier - - * emacs-lisp/edebug.el (edebug-eval-defun, edebug-eval): - * emacs-lisp/lisp-mode.el (eval-last-sexp-1, eval-defun-1): - * ielm.el (ielm-eval-input): - * simple.el (eval-expression): Use new eval arg to obey lexical-binding. - -2010-12-14 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-condition-case): Use push. - -2010-12-13 Stefan Monnier - - * subr.el (with-lexical-binding): Remove. - -2010-06-18 Stefan Monnier - - * emacs-lisp/byte-lexbind.el (byte-compile-compute-lforminfo): - specialp -> special-variable-p. - -2010-06-15 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): - Don't macroexpand before evaluating in eval-and-compile, in case - `body's macro expansion uses macros and functions defined in itself. - -2010-06-14 Stefan Monnier - - * emacs-lisp/bytecomp.el (byte-compile-check-variable): - Update byte-compile-not-obsolete-var to byte-compile-not-obsolete-vars. - - * Makefile.in (.el.elc): Increase max-lisp-eval-depth. - -2006-12-04 Miles Bader - - * Makefile.in (COMPILE_FIRST_STACK_DEPTH): New variable. - (compile, compile-always): Use it. - -2005-10-24 Miles Bader - - * subr.el (functionp): Re-remove. - - * emacs-lisp/bytecomp.el (byte-compile-closure): Add optional - ADD-LAMBDA argument, which we just pass to `byte-compile-lambda'. - (byte-compile-defun): Use ADD-LAMBDA arg to `byte-compile-closure' - instead of adding lambda ourselves. - -2004-08-09 Miles Bader - - Changes from merging the funvec patch: - - * emacs-lisp/bytecomp.el (byte-compile-make-closure): Use `curry' - instead of `vector' to create compiled closures. - - Merge funvec patch. - -2004-05-20 Miles Bader - - * subr.el (functionp): Use `funvecp' instead of - `byte-compiled-function-p'. - * help-fns.el (describe-function-1): Describe curried functions - and other funvecs as such. - (help-highlight-arguments): Only format things that look like a - function. - -2004-04-29 Miles Bader - - * emacs-lisp/bytecomp.el (byte-compile-top-level): Add new entries - to `byte-compile-lexical-environment' at the start, not end. - (byte-compile-delay-out): Correctly default STACK-ADJUST to zero. - - * emacs-lisp/byte-opt.el (byte-opt-update-stack-params): - Don't crash on no-op lapcode entries (car is nil). - - * emacs-lisp/byte-lexbind.el (byte-compile-make-lambda-lexenv): - Push a lexvar onto lexenv, not a vinfo! - -2004-04-11 Miles Bader - - * emacs-lisp/bytecomp.el (byte-compile-top-level): - Correctly analyze lexically-bound arguments. - - * emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze): - Use `append' instead of `nconc'. - - * emacs-lisp/byte-lexbind.el (byte-compile-make-lvarinfo): - Don't use backquote to make a mutable data-structure. - (byte-compile-lvarinfo-num-refs, byte-compile-lvarinfo-num-sets): - Rename to use `num-' instead of `num'. - (byte-compile-make-lambda-lexenv): Adjust accordingly. - -2004-04-10 Miles Bader - - * emacs-lisp/byte-lexbind.el (byte-compile-compute-lforminfo): - Look at variable's global specialp state too. - -2004-04-09 Miles Bader - - * emacs-lisp/byte-opt.el (byte-optimize-lapcode): - Default initial-stack-depth to 0. - (byte-optimize-lapcode): Discard the right number of values in - the stack-set+discard-->discard optimization. - -2004-04-02 Miles Bader - - * emacs-lisp/lisp-mode.el (eval-last-sexp-1): Setup the lexical - environment if lexical-binding is enabled. - -2003-10-14 Miles Bader - - * emacs-lisp/macroexp.el (macroexpand-all-1): Special-case - `backquote-list*' to avoid stack overflows. - -2003-04-04 Miles Bader - - * help-fns.el (help-function-arglist): Handle interpreted closures. - -2002-11-20 Miles Bader - - * emacs-lisp/bytecomp.el (byte-compile-stack-adjustment): - Correctly handle discardN* operators. - * emacs-lisp/byte-opt.el (byte-optimize-lapcode): Fix stack-depth - tracking errors. - -2002-08-26 Miles Bader - - * international/mule.el (make-char): Macroexpand call to - charset-id constructed by `byte-compile' hook. - - * emacs-lisp/macroexp.el (macroexpand-all-1): Expand defconst value. - - * emacs-lisp/byte-opt.el (byte-opt-update-stack-params): New macro. - (byte-optimize-lapcode): Keep track of stack-depth in final pass too. - Add more optimizations for lexical binding. - (byte-compile-inline-expand): Macroexpand result of inlining. - - * emacs-lisp/bytecomp.el (byte-compile-lambda): Update call to - byte-compile-closure-initial-lexenv-p. - (byte-discardN-preserve-tos): Alias to byte-discardN. - (byte-compile-push-binding-init): Don't push unused variables on - init-lexenv. - (byte-compile-push-binding-init): Don't use LFORMINFO if it's nil. - (byte-compile-lambda): Don't look at lexical environment unless - we're using lexical binding. - (byte-compile-defmacro): Correctly generate macros. - - * emacs-lisp/byte-lexbind.el (byte-compile-unbind): Optimize the - dynamic-bindings-only case. - (byte-compile-bind): Don't special-case unused lexical variables. - - * emacs-lisp/disass.el (disassemble-1): Print arg for discardN ops. - -2002-08-19 Miles Bader - - * emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): - Handle `byte-discardN-preserve-tos' pseudo-op. - (byte-compile-side-effect-and-error-free-ops): Add `byte-stack-ref'. - (byte-compile-side-effect-free-ops): Add `byte-vec-ref'. - (byte-optimize-lapcode): Add some cases for stack-set/ref ops. - Add tracking of stack-depth. Unfinished code to collapse - lexical-unbinding sequences. - - * emacs-lisp/bytecomp.el (byte-compile-lapcode): - Handle `byte-discardN-preserve-tos' pseudo-op. - (byte-compile-top-level): If there are lexical args, output a TAG - op to record the initial stack-depth for the optimizer. - -2002-08-17 Miles Bader - - * emacs-lisp/bytecomp.el (byte-discardN): Add byte-defop. - (byte-compile-lapcode): Include byte-discardN. - (byte-compile-lambda): Fixup closure detection. - (byte-compile-top-level): Handle arguments for a lexical lambda. - (byte-compile-lexical-variable-ref, byte-compile-variable-ref) - (byte-compile-variable-set): Use byte-compile-stack-set/ref. - (byte-compile-discard): Add new parameters NUM and PRESERVE-TOS. - (byte-compile-stack-ref, byte-compile-stack-set): New functions. - (byte-compile-push-binding-init): Get the variable list properly - from LFORMINFO. - - * emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze): - Ignore setq'd variables we're not interested in. - (byte-compile-make-lambda-lexenv): Add assertion that closed-over - variables be heap allocated. - (byte-compile-closure-initial-lexenv-p): Rename from - byte-compile-closure-lexenv-p. - (byte-compile-non-stack-bindings-p): Get the variable list - properly from LFORMINFO. - (byte-compile-maybe-push-heap-environment): Handle the - no-closed-over-variables case correctly. - (byte-compile-bind): Use byte-compile-stack-set/ref. - Don't bother modifying INIT-LEXENV as no one will see the changes. - (byte-compile-unbind): Call `byte-compile-discard' to handle - unbinding lexical bindings. - - * emacs-lisp/disass.el (disassemble-internal): Handle closures. - (disassemble-1): Handle new bytecodes. - * emacs-lisp/byte-opt.el (disassemble-offset): Handle new bytecodes. - -2002-06-16 Miles Bader - - * emacs-lisp/macroexp.el (macroexp-accumulate): New macro. - (macroexpand-all-forms, macroexpand-all-clauses): Use it. - * Makefile.in (compile): Undo previous change. - -2002-06-14 Miles Bader - - * Makefile.in (COMPILE_FIRST): Add `emacs-lisp/macroexp.el'. - (compile): Add a special case that compiles `emacs-lisp/macroexp.el' - with an increased max-lisp-eval-depth. - - * emacs-lisp/bytecomp.el: Provide `bytecomp-preload', at the - beginning of the file. Require `byte-lexbind' at compile time. - Add a few doc string. - (byte-compile-push-bytecodes) - (byte-compile-push-bytecode-const2): New macros. - (byte-compile-lapcode): Use them. Do general code cleanup. - (byte-compile-initial-macro-environment): Expand macros in - byte-compile-eval before passing to byte-compile-top-level. - (byte-compile): Use the `byte-compile-initial-macro-environment'. - - * emacs-lisp/byte-lexbind.el: Require `bytecomp-preload' instead of - `bytecomp'. - (byte-compile-bind): Use `byte-compile-dynamic-variable-bind' to bind - dynamic variables. - (byte-compile-maybe-push-heap-environment): Fix function name typo. - -2002-06-13 Miles Bader - - Byte compiler lexical binding support (not finished yet): - * emacs-lisp/bytecomp.el: Require `macroexp'. - (byte-compile-lexical-environment) - (byte-compile-current-heap-environment) - (byte-compile-current-num-closures): New variables. - (0, 178, 179, 180, 181): New byte-opcodes. - (byte-compile-lapcode): Handle stack-ref/set opcodes. Signal an - error if a delay-output placeholder is not filled in yet. - (byte-compile-file-form, byte-compile): Expand all macros with - `macroexpand-all'. - (byte-compile-file-form-defsubst, byte-compile-form): Don't expand - macros here. - (byte-compile-make-lambda-lexenv): Autoload. - (byte-compile-lambda): Initial code for handling lexically-bound - arguments and closures; doesn't work yet. - (byte-compile-closure-code-p, byte-compile-make-closure) - (byte-compile-closure): New functions. - (byte-compile-check-variable, byte-compile-dynamic-variable-op) - (byte-compile-dynamic-variable-bind) - (byte-compile-lexical-variable-ref, byte-compile-variable-set): - New functions. - (byte-compile-variable-ref): Remove second argument. Now only - handles real variable references (not setting or binding). - (byte-compile-push-unknown-constant) - (byte-compile-resolve-unknown-constant): New functions. - (byte-compile-funarg, byte-compile-funarg-2): Functions removed. - (byte-compile-function-form): Use either `byte-compile-constant' - or `byte-compile-closure'. - (byte-compile-setq): Use `byte-compile-variable-set' instead of - `byte-compile-variable-ref'. - (apply, mapcar, mapatoms, mapconcat, mapc, sort): - `byte-defop-compiler-1's removed. - (byte-compile-while): Make sure lexically-bound variables inside - the loop don't get stored in an environment outside the loop. - (byte-compile-compute-lforminfo): Autoload. - (byte-compile-push-binding-init): New function. - (byte-compile-let, byte-compile-let*): Handle lexical binding. - (byte-compile-defun): Use `byte-compile-closure' to do the work. - (byte-compile-defmacro): Use `byte-compile-make-closure'. - (byte-compile-defvar): Expand the generated call to `push' since - we're past macroexpansion already. - (byte-compile-stack-adjustment): New function. - (byte-compile-out): Make second arg optional. Rewrite for clarity. - (byte-compile-delay-out, byte-compile-delayed-out): New functions. - - * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): - Don't expand macros here. - - * emacs-lisp/macroexp.el (macroexpand-all-1): Expand defmacro forms. - - * emacs-lisp/byte-lexbind.el (byte-compile-make-lvarinfo) - (byte-compile-lforminfo-add-var) - (byte-compile-lforminfo-note-closure) - (byte-compile-compute-lforminfo) - (byte-compile-lforminfo-from-lambda) - (byte-compile-lforminfo-analyze) - (byte-compile-heapenv-add-accessible-env) - (byte-compile-heapenv-ensure-access) - (byte-compile-rearrange-let-clauses, byte-compile-bind) - (byte-compile-unbind): Fix a bunch of typos. - -2002-06-12 Miles Bader - - * emacs-lisp/byte-lexbind.el, emacs-lisp/macroexp.el: New files. - - * subr.el (functionp): Function removed (now a subr). - * help-fns.el (describe-function-1): Handle interpreted closures. - -;; arch-tag: bd1b5b8b-fdb2-425d-9ac2-20689fb0ee70 +2011-04-06 Chong Yidong + + * emacs-lisp/tabulated-list.el: New file. + +2011-04-06 Juanma Barranquero + + * files.el (after-find-file-from-revert-buffer): Remove variable. + (after-find-file): Dont' bind it. + (revert-buffer-in-progress-p): New variable. + (revert-buffer): Bind it. + Pass nil for `after-find-file-from-revert-buffer'. + + * saveplace.el (save-place-find-file-hook): Use new variable + `rever-buffer-in-progress-p', not `after-find-file-from-revert-buffer'. + +2011-04-06 Glenn Morris + + * Makefile.in (AUTOGEN_VCS): New variable. + (autoloads): Use $AUTOGEN_VCS. + + * calendar/cal-move.el (calendar-scroll-toolkit-scroll): New function. + * calendar/calendar.el (calendar-mode-map): + Check for toolkit scroll bars. (Bug#8305) + +2011-04-05 Chong Yidong + + * minibuffer.el (completion-in-region--postch) + (completion-in-region-mode): Remove unnecessary messages. + +2011-04-05 Juanma Barranquero + + * font-lock.el (font-lock-refresh-defaults): + Don't bind `hi-lock--inhibit-font-lock-hook', removed in + 2010-10-09T04:09:19Z!cyd@stupidchicken.com and 2010-10-11T23:57:49Z!lekktu@gmail.com (2010-10-12). + + * info.el (Info-directory-list, Info-read-node-name-2) + (Info-split-parameter-string): Doc fixes. + (Info-virtual-nodes): Reflow docstring. + (Info-find-file, Info-directory-toc-nodes, Info-history-toc-nodes) + (Info-apropos-toc-nodes, info-finder, Info-get-token) + (Info-find-emacs-command-nodes, Info-speedbar-key-map): + Fix typos in docstrings. + (Info-revert-buffer-function, Info-search, Info-isearch-pop-state) + (Info-speedbar-hierarchy-buttons, Info-speedbar-goto-node) + (Info-speedbar-buttons, Info-desktop-buffer-misc-data) + (Info-restore-desktop-buffer): Mark unused parameters. + (Info-directory-find-file, Info-directory-find-node) + (Info-history-find-file, Info-history-find-node, Info-toc-find-node) + (Info-virtual-index-find-node, Info-apropos-find-file) + (Info-apropos-find-node, Info-finder-find-file, Info-finder-find-node): + Mark unused parameters; fix typos in docstrings. + (Info-virtual-index): Remove unused local variable `nodename'. + +2011-04-05 Deniz Dogan + + * net/rcirc.el: Update my e-mail address. + (rcirc-mode-map): Remove M-o binding. + +2011-04-05 Chong Yidong + + * startup.el (command-line): Save the cursor's theme-face + directly, instead of using face-override-spec. + + * custom.el (load-theme): Minor optimization in assigning faces. + +2011-04-04 Juanma Barranquero + + * help-fns.el (describe-variable): Complete all variables having + documentation, including keywords. + http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00112.html + +2011-04-04 Juanma Barranquero + + Convert to lexical-binding. + + * bs.el (bs-refresh, bs-sort-buffer-interns-are-last) + (bs--get-marked-string, bs--get-modified-string) + (bs--get-readonly-string, bs--get-size-string, bs--get-name) + (bs--get-mode-name, bs--get-file-name): Mark unused arguments. + (bs--configuration-name-for-prefix-arg): Rename argument PREFIX-ARG. + + * ehelp.el (electric-help-execute-extended) + (electric-help-ctrl-x-prefix): + * hexl.el (hexl-revert-buffer-function): + * linum.el (linum-after-change, linum-after-scroll): + * emacs-lisp/re-builder.el (reb-auto-update): Mark unused arguments. + + * help-fns.el (help-describe-category-set): Remove unused ERR variable. + +2011-04-04 Daiki Ueno + + * epa-dired.el: + * epa-mail.el: + * epa-hook.el: + * epa-file.el: + * epa.el: + * epg.el: Use lexical binding. + +2011-04-03 Chong Yidong + + * dired-aux.el (dired-create-files): Add docstring (Bug#7970). + + * textmodes/flyspell.el (flyspell-word): Recognize default + dictionary case for flyspell-mark-duplications-exceptions. Use + regexp matching for languages. + (flyspell-mark-duplications-exceptions): Add "that" and "had" for + default dictionary (Bug#7926). + +2011-04-02 Chong Yidong + + * emacs-lisp/package.el (package--with-work-buffer): Recognize + https URLs. + + * net/network-stream.el: Move from gnus/proto-stream.el. Change + prefix to network-stream throughout. + (open-protocol-stream): Merge into open-network-stream, leaving + open-protocol-stream as an alias. Handle nil BUFFER args. + + * subr.el (open-network-stream): Move to net/network-stream.el. + +2011-04-02 Glenn Morris + + * find-dired.el (find-exec-terminator): New option. + (find-ls-option): Test for -ls support. + (find-ls-subdir-switches): Test for -b in find-ls-option. + (find-dired, find-grep-dired): Doc fixes. + (find-dired): Use find-exec-terminator. + + * find-dired.el (find-ls-option, find-ls-subdir-switches) + (find-grep-options): Do not autoload these defcustoms, remove purecopy. + (find-name-arg): Remove purecopy. + + * progmodes/grep.el (grep-find-use-xargs): Doc fix. + (grep-compute-defaults): Check for `-exec COMMAND +' support. + Set grep-find-use-xargs, grep-find-command, and grep-find-template + accordingly. Don't add the null-device if not needed. + + * files.el (save-some-buffers): Doc fix. + +2011-04-02 Eli Zaretskii + + * makefile.w32-in (EMACS): Default to ../src/$(BLD)/emacs.exe. + +2011-04-01 Juanma Barranquero + + * progmodes/idlwave.el (idlwave-one-key-select, idlwave-list-abbrevs): + Use `dolist' rather than `mapcar'. + +2011-04-01 Stefan Monnier + + Add lexical binding. + + * subr.el (apply-partially): Use new closures rather than CL. + (--dolist-tail--, --dotimes-limit--): Don't declare dynamic. + (dolist, dotimes): Use slightly different expansion for lexical code. + (functionp): Move to C. + (letrec): New macro. + (with-wrapper-hook): Use it and apply-partially instead of CL. + (eval-after-load): Preserve lexical-binding. + (save-window-excursion, with-output-to-temp-buffer): Turn them + into macros. + + * simple.el (with-wrapper-hook, apply-partially): Move to subr.el. + + * help-fns.el (help-split-fundoc): Return nil if there's nothing else + than the arglist. + (help-add-fundoc-usage): Don't add `Not documented'. + (help-function-arglist): Handle closures, subroutines, and new + byte-code-functions. + (help-make-usage): Remove leading underscores. + (describe-function-1): Handle closures. + (describe-variable): Use special-variable-p for completion. + + * files.el (lexical-binding): Declare safe. + + * emacs-lisp/pcase.el: Don't use destructuring-bind. + (pcase--memoize): Rename from pcase-memoize. Change weakness. + (pcase): Add `let' pattern. + Change memoization so it actually works. + (pcase-mutually-exclusive-predicates): Add byte-code-function-p. + (pcase--u1) : Fix possible shadowing problem. + : New case. + + * emacs-lisp/macroexp.el: Use lexical binding. + (macroexpand-all-1): Check obsolete macros. Expand compiler-macros. + Don't convert ' to #' without checking that it's indeed quoting + a lambda. + + * emacs-lisp/lisp-mode.el (eval-last-sexp-1): + Use eval-sexp-add-defvars. + (eval-sexp-add-defvars): New fun. + + * emacs-lisp/float-sup.el (pi): Don't declare as dynamically bound. + + * emacs-lisp/eieio.el (byte-compile-file-form-defmethod): + Don't autoload. + (eieio-defgeneric-form-primary-only-one): Use `byte-compile' rather + than the internal `byte-compile-lambda'. + (defmethod): Don't hide code under quotes. + (eieio-defmethod): New `code' argument. + + * emacs-lisp/eieio-comp.el: Remove. + + * emacs-lisp/edebug.el (edebug-eval-defun) + (edebug-eval-top-level-form): Use eval-sexp-add-defvars. + (edebug-toggle): Avoid `eval'. + + * emacs-lisp/disass.el (disassemble-internal): Handle new + `closure' objects. + (disassemble-1): Handle new byte codes. + + * emacs-lisp/cl.el (pushnew): Silence warning. + + * emacs-lisp/cl-macs.el (cl-byte-compile-block) + (cl-byte-compile-throw): Remove. + (cl-block-wrapper, cl-block-throw): Use compiler-macros instead. + + * emacs-lisp/cl-extra.el (cl-macroexpand-all): Properly quote CL + closures. + + * emacs-lisp/cconv.el: New file. + + * emacs-lisp/bytecomp.el: Use lexical binding instead of + a "bytecomp-" prefix. Macroexpand everything as a separate phase. + (byte-compile-initial-macro-environment): + Handle declare-function here. + (byte-compile--lexical-environment): New var. + (byte-stack-ref, byte-stack-set, byte-discardN) + (byte-discardN-preserve-tos): New lap codes. + (byte-interactive-p): Don't use any more. + (byte-compile-push-bytecodes, byte-compile-push-bytecode-const2): + New macros. + (byte-compile-lapcode): Use them and handle new lap codes. + (byte-compile-obsolete): Remove. + (byte-compile-arglist-signature): Handle new byte-code arg"lists". + (byte-compile-arglist-warn): Check late def of inlinable funs. + (byte-compile-cl-warn): Don't silence warnings for compiler-macros + since they should have been expanded by now. + (byte-compile--outbuffer): Rename from bytecomp-outbuffer. + (byte-compile-from-buffer): Remove unused second arg. + (byte-compile-preprocess): New function. + (byte-compile-toplevel-file-form): New function to distinguish + file-form calls from outside from file-form calls from hunk-handlers. + (byte-compile-file-form): Simplify. + (byte-compile-file-form-defsubst): Remove. + (byte-compile-file-form-defmumble): Simplify now that + byte-compile-lambda always returns a byte-code-function. + (byte-compile): Preprocess. + (byte-compile-byte-code-maker, byte-compile-byte-code-unmake): + Remove, not used any more. + (byte-compile-arglist-vars, byte-compile-make-lambda-lexenv) + (byte-compile-make-args-desc): New funs. + (byte-compile-lambda): Handle lexical functions. Always return + a byte-code-function. + (byte-compile-reserved-constants): New var, to make up room for + closed-over variables. + (byte-compile-constants-vector): Obey it. + (byte-compile-top-level): New args `lexenv' and `reserved-csts'. + (byte-compile-macroexpand-declare-function): New function. + (byte-compile-form): Call byte-compile-unfold-bcf to inline immediate + byte-code-functions. + (byte-compile-form): Check obsolescence here. + (byte-compile-inline-lapcode, byte-compile-unfold-bcf): New functions. + (byte-compile-variable-ref): Remove. + (byte-compile-dynamic-variable-op): New fun. + (byte-compile-dynamic-variable-bind, byte-compile-variable-ref) + (byte-compile-variable-set): New funs. + (byte-compile-discard): Add 2 args. + (byte-compile-stack-ref, byte-compile-stack-set) + (byte-compile-make-closure, byte-compile-get-closed-var): New funs. + (byte-compile-funarg, byte-compile-funarg-2): Remove, handled in + macroexpand-all instead. + (byte-compile-quote-form): Remove. + (byte-compile-push-binding-init, byte-compile-not-lexical-var-p) + (byte-compile-bind, byte-compile-unbind): New funs. + (byte-compile-let): Handle let* and lexical binding. + (byte-compile-let*): Remove. + (byte-compile-catch, byte-compile-unwind-protect) + (byte-compile-track-mouse, byte-compile-condition-case): + Handle a new :fun-body form, used for lexical scoping. + (byte-compile-save-window-excursion) + (byte-compile-with-output-to-temp-buffer): Remove. + (byte-compile-defun): Simplify. + (byte-compile-stack-adjustment): New fun. + (byte-compile-out): Use it. + (byte-compile-refresh-preloaded): Don't reload byte-compiler files. + + * emacs-lisp/byte-run.el (make-obsolete): Don't set the `byte-compile' + handler any more. + + * emacs-lisp/byte-opt.el: Use lexical binding. + (byte-inline-lapcode): Remove (to bytecomp). + (byte-compile-inline-expand): Pay attention to inlining to/from + lexically bound code. + (byte-compile-unfold-lambda): Don't handle byte-code-functions + any more. + (byte-optimize-form-code-walker): Don't handle save-window-excursion + any more and don't call compiler-macros. + (byte-compile-splice-in-already-compiled-code): Remove. + (byte-code): Don't inline any more. + (disassemble-offset): Receive `bytes' as argument rather than via + dynamic scoping. + (byte-compile-tag-number): Declare before first use. + (byte-decompile-bytecode-1): Handle new byte-codes, don't change + `return' even if make-spliceable. + (byte-compile-side-effect-and-error-free-ops): Add stack-ref, remove + obsolete interactive-p. + (byte-optimize-lapcode): Optimize new lap-codes. + Don't trip up on new form of `byte-constant' lap code. + + * emacs-lisp/autoload.el (make-autoload): Don't burp on trivial macros. + + * emacs-lisp/advice.el (ad-arglist): Use help-function-arglist. + + * custom.el (custom-initialize-default, custom-declare-variable): + Use `defvar'. + + * Makefile.in (BIG_STACK_DEPTH, BIG_STACK_OPTS, BYTE_COMPILE_FLAGS): + New variables. + (compile-onefile, .el.elc, compile-calc, recompile): Use them. + (COMPILE_FIRST): Add macroexp and cconv. + * makefile.w32-in: Mirror changes in Makefile.in. + + * vc/cvs-status.el: + * vc/diff-mode.el: + * vc/log-edit.el: + * vc/log-view.el: + * vc/smerge-mode.el: + * textmodes/bibtex-style.el: + * textmodes/css.el: + * startup.el: + * uniquify.el: + * minibuffer.el: + * newcomment.el: + * reveal.el: + * server.el: + * mpc.el: + * emacs-lisp/smie.el: + * doc-view.el: + * dired.el: + * abbrev.el: Use lexical binding. + +2011-04-01 Eli Zaretskii + + * info.el (info-display-manual): New function. + +2011-03-31 Stefan Monnier + + * loadup.el: Load minibuffer after loaddefs, to use define-minor-mode. + +2011-03-31 Tassilo Horn + + * net/rcirc.el (rcirc-handler-001): Only authenticate, if there's + an entry for that server in rcirc-authinfo. (Bug#8385) + +2011-03-31 Glenn Morris + + * progmodes/f90.el (f90-find-tag-default): Handle multiple `%'. + + * generic-x.el (etc-fstab-generic-mode): Add ext4, sysfs keywords. + +2011-03-30 Christoph Scholtes + + * progmodes/python.el (python-default-interpreter) + (python-python-command-args, python-jython-command-args) + (python-which-shell, python-which-args, python-which-bufname) + (python-file-queue, python-comint-output-filter-function) + (python-toggle-shells, python-shell): Remove obsolete defcustoms, + variables and functions. + +2011-03-30 Stefan Monnier + + * minibuffer.el (completion-table-dynamic): Optimize `boundaries'. + (completion-in-region-mode): New minor mode. + (completion-in-region): Use it. + (completion-in-region--data, completion-in-region-mode-map): New vars. + (completion-in-region--postch): New function. + (completion--capf-misbehave-funs, completion--capf-safe-funs): + New vars. + (completion--capf-wrapper): New function. + (completion-at-point): Use it to track well-behavedness of + hook functions. + (completion-help-at-point): New command. + +2011-03-30 Jason Merrill (tiny change) + + * vc/add-log.el (add-change-log-entry): Don't use whitespace + syntax class to search for whitespace on a single line + (Message-ID: <4D938140.4030905@redhat.com>). + +2011-03-30 Leo Liu + + * abbrev.el (abbrev-edit-save-to-file, abbrev-edit-save-buffer): + New commands. + (edit-abbrevs-map): Bind them here. + (write-abbrev-file): New optinal arg VERBOSE. (Bug#5937) + +2011-03-29 Ken Manheimer + + * allout.el (allout-hide-by-annotation, allout-flag-region): + Reduce possibility of overlay leakage by making them volatile. + + * allout-widgets.el (allout-widgets-tally): Define as nil so the + hash is not shared between buffers. Mode initialization is + responsible for giving it a useful starting value. + (allout-item-span): Reduce possibility of overlay leakage by + making them volatile. + (allout-widgets-count-buttons-in-region): Add diagnostic function + for tracking down button overlay leaks. + +2011-03-29 Leo Liu + + * ido.el (ido-read-internal): Use the default history var + minibuffer-history if no HISTORY is specified. + +2011-03-28 Brian T. Sniffen (tiny change) + + * net/imap.el (imap-shell-open, imap-process-connection-type): + Use imap-process-connection-type for 'shell' streams as well as + Kerberos, SSL, other subprocesses. + +2011-03-28 Leo Liu + + * abbrev.el (abbrev-table-empty-p): New function. + (prepare-abbrev-list-buffer): Place empty abbrev tables after + nonempty ones. (Bug#5937) + +2011-03-27 Jan Djärv + + * cus-start.el (all): Add boolean ns-auto-hide-menu-bar. + +2011-03-27 Leo Liu + + * ansi-color.el (ansi-color-names-vector): Allow cons cell value + for foreground and background colors. + (ansi-color-make-color-map): Adapt. + +2011-03-25 Leo Liu + + * midnight.el (midnight-time-float): Remove. Note it calculates + the microsecond component incorrectly and seconds-to-time does the + same job. + Remove redundant (require 'timer). + + * ido.el (ido-read-internal): Simplify with read-from-minibuffer. + (ido-completions): Remove unused arguments. (Bug#8329) + +2011-03-24 Stefan Monnier + + * minibuffer.el (completion--flush-all-sorted-completions): + Remove itself from hook. + (completion-at-point): Let the functions perform the completion + immediately and return nil or t. + * comint.el (comint-dynamic-complete-functions): Now identical to + completion-at-point-functions. + (comint-dynamic-list-input-ring): Remove unused var `index'. + (comint--match-partial-filename, comint--unquote&expand-filename): + New funs, split from comint-match-partial-filename. + (comint-dynamic-complete): Use completion-at-point. + (comint-dynamic-complete-filename): Use comint--match-partial-filename. + +2011-03-24 Drew Adams + + * thingatpt.el: Support `defun'. + +2011-03-23 Leo Liu + + * abbrevlist.el: Move to obsolete/abbrevlist.el. + + * help-mode.el (help-mode-finish): Tweak regexp. + +2011-03-23 Glenn Morris + + * eshell/esh-opt.el (eshell-eval-using-options): + Do not bind unused local variable `eshell-option-stub'. + + * progmodes/gdb-mi.el (gdb): Fix typo in previous change. + +2011-03-22 Juanma Barranquero + + * emacs-lisp/derived.el (define-derived-mode): Wrap declaration of + keymap variable in `with-no-warnings' to avoid a warning when the + keymap has been already `defconst'ed. + +2011-03-22 Leo Liu + + * abbrev.el (write-abbrev-file): Use utf-8 for writing if it can + encode all chars in abbrevs; otherwise use emacs-mule or + utf-8-emacs. (Bug#8308) + +2011-03-22 Juanma Barranquero + + * simple.el (backward-delete-char-untabify): + Avoid warning about using `delete-backward-char'. + + * image.el (image-type-file-name-regexps): Make it variable. + `imagemagick-register-types' modifies it, and the user may want + to add new extensions for known image types. + (imagemagick-register-types): Throw error if not using ImageMagick. + +2011-03-22 Leo Liu + + * net/rcirc.el (rcirc-completion-at-point): Return nil if point is + located before rcirc-prompt-end-marker. + (rcirc-complete): Error if point is not after rcirc prompt. + Handle the case when table is nil. + (rcirc-user-authenticated): Define to fix compiler warning. + +2011-03-22 Chong Yidong + + * custom.el (custom--inhibit-theme-enable): Make it affect only + custom-theme-set-variables and custom-theme-set-faces. + (provide-theme): Ignore custom--inhibit-theme-enable. + (load-theme): Enable the theme explicitly if NO-ENABLE is non-nil. + (custom-enabling-themes): Delete variable. + (enable-theme): Accept only loaded themes as arguments. + Ignore the special custom-enabled-themes variable. + (custom-enabled-themes): Forbid themes from setting this. + Eliminate use of custom-enabling-themes. + (custom-push-theme): Quote "changed" custom var entry. + +2011-03-21 Leo Liu + + * ido.el (ido-read-internal): Add ido-selected to history instead + of user input. + +2011-03-21 Stefan Monnier + + * subr.el (deferred-action-list, deferred-action-function): + Mark obsolete. + +2011-03-21 Leo Liu + + * vc/log-view.el: Remove (require 'wid-edit), not needed after the + change on 2011-02-13 (bug#8309). + + * minibuffer.el (read-file-name-function): Change default value. + (read-file-name--defaults): Rename from read-file-name-defaults. + (read-file-name-default): Rename from read-file-name. + (read-file-name): Call read-file-name-function. + +2011-03-21 Glenn Morris + + * eshell/esh-opt.el (eshell-eval-using-options, eshell-process-args): + Doc fixes. + +2011-03-21 Chong Yidong + + * cus-theme.el: Add missing provide statement. + (customize-create-theme): Extract theme value correctly. + (custom-theme-visit-theme): Autoload. + (customize-create-theme): Prompt before inserting default faces. + +2011-03-20 Jay Belanger + + * calc/calc-menu.el (calc-units-menu): Add entries for logarithmic + units and musical notes. + +2011-03-20 Leo + + * ido.el (ido-read-internal): Use completing-read-default. + (ido-completing-read): Fix compatibility with completing-read. + +2011-03-20 Christian Ohler + + * emacs-lisp/ert.el (ert-run-tests-batch): Remove unused variable. + (ert-delete-all-tests): Use `called-interactively-p' rather than + `interactive-p'. + (ert--make-xrefs-region): Respect END. + +2011-03-19 Chong Yidong + + * dired-aux.el (dired-create-directory): Signal an error if the + directory already exists (Bug#8246). + + * facemenu.el (list-colors-display): Call list-faces-display + inside with-help-window. + (list-colors-print): Use display property to align the final + column, instead of checking window-width. + +2011-03-19 Eli Zaretskii + + * emerge.el (emerge-metachars): Separate value for ms-dos and + windows-nt systems. + (emerge-protect-metachars): Quote correctly for ms-dos and + windows-nt systems. + +2011-03-19 Ralph Schleicher + + * info.el (info-initialize): Replace all uses of `:' with + path-separator for compatibility with non-Unix systems. + Cache quoting of path-separator. (Bug#8258) + +2011-03-19 Juanma Barranquero + + * avoid.el (mouse-avoidance-mode, mouse-avoidance-nudge-dist) + (mouse-avoidance-threshold, mouse-avoidance-banish-destination) + (mouse-avoidance-mode): Fix typos in docstrings. + +2011-03-19 Chong Yidong + + * startup.el (package-subdirectory-regexp): Move from package.el. + Omit \\` and \\', and let callers add them. + + * emacs-lisp/package.el (package-strip-version) + (package-load-all-descriptors): Add \\` and \\' to + package-subdirectory-regexp before using it. + (package-untar-buffer): New arg DIR; ensure that file untars only + into this expected directory. Remove superfluous delete-region. + (package-unpack): Caller changed. + (package-tar-file-info): Use package-subdirectory-regexp. + +2011-03-18 Stefan Monnier + + * vc/diff-mode.el (diff-mode-map): Shadow problematic bindings from + diff-mode-shared-map (bug#8284). + (diff-mode-shared-map): Re-introduce some bindings that were problematic. + +2011-03-17 Lars Magne Ingebrigtsen + + * calendar/time-date.el (format-seconds): Use assoc instead of + assoc-string, since assoc-string doesn't exist in XEmacs. + +2011-03-17 Juanma Barranquero + + * custom.el (custom-known-themes): Reflow docstring. + (custom-theme-load-path): Fix typo in docstring. + (load-theme): Fix typo in error message. + (custom-available-themes, custom-variable-theme-value): + Use `let', not `let*'. + +2011-03-17 Jay Belanger + + * calc/README: Mention inclusion of musical notes. + + * calc/calc-units.el (calc-lu-quant): Rename from + `calc-logunits-quantity'. + (calcFunc-lupquant): Rename from `calcFunc-powerquant'. + (calcFunc-lufquant): Rename from `calcFunc-fieldquant'. + (calc-db): Rename from `calc-dblevel'. + (calcFunc-dbpower): Rename from `calcFunc-dbpowerlevel'. + (calcFunc-dbfield): Rename from `calcFunc-dbfieldlevel'. + (calc-np): Rename from `calc-nplevel'. + (calcFunc-nppower): Rename from `calcFunc-nppowerlevel'. + (calcFunc-npfield): Rename from `calcFunc-npfieldlevel'. + (calc-lu-plus): Rename from `calc-logunits-add'. + (calcFunc-lupadd): Rename from `calcFunc-lupoweradd'. + (calcFunc-lufadd): Rename from `calcFunc-lufieldadd'. + (calc-lu-minus): Rename from `calc-logunits-sub'. + (calcFunc-lupsub): Rename from `calcFunc-lupowersub'. + (calcFunc-lufsub): Rename from `calcFunc-lufieldsub'. + (calc-lu-times): Rename from `calc-logunits-mul'. + (calcFunc-lupmul): Rename from `calcFunc-lupowermul'. + (calcFunc-lufmul): Rename from `calcFunc-lufieldmul'. + (calc-lu-divide): Rename from `calc-logunits-div'. + (calcFunc-lupdiv): Rename from `calcFunc-lupowerdiv'. + (calcFunc-lufdiv): Rename from `calcFunc-lufielddiv'. + + * calc/calc-ext.el (calc-init-extensions): Update the names of the + functions being autoloaded. + + * calc/calc.el (calc-lu-power-reference): Rename from + `calc-logunits-power-reference'. + (calc-lu-field-reference): Rename from + `calc-logunits-field-reference'. + + * calc/calc-help (calc-l-prefix-help): Mention musical note functions. + +2011-03-17 Stefan Monnier + + * minibuffer.el (completion-all-sorted-completions): + Use :completion-cycle-penalty text property if present. + +2011-03-16 Ken Manheimer + + * allout.el (allout-yank-processing): Adjust for new rebulleting + regime so bullet being yanked is used without prompting the user + for a choice. + +2011-03-16 Juanma Barranquero + + * startup.el (command-line): Warn the user that _emacs is deprecated. + +2011-03-16 Juanma Barranquero + + * progmodes/delphi.el (delphi-search-path, delphi-indent-level) + (delphi-verbose, delphi-comment-face, delphi-string-face) + (delphi-keyword-face, delphi-ignore-changes, delphi-indent-line) + (delphi-mode-abbrev-table, delphi-debug-buffer, delphi-tab) + (delphi-find-unit, delphi-find-current-xdef, delphi-fill-comment) + (delphi-new-comment-line, delphi-font-lock-defaults) + (delphi-debug-mode-map, delphi-mode-syntax-table, delphi-mode): + Fix typos in docstrings. + +2011-03-15 Ken Manheimer + + * allout.el (allout-make-topic-prefix, allout-rebullet-heading): + Invert the roles of character and string values for INSTEAD, so a + string is used for the more common case of a defaulting prompt. + +2011-03-15 Stefan Monnier + + * progmodes/ruby-mode.el (ruby-backward-sexp): + * progmodes/ebrowse.el (ebrowse-draw-file-member-info): + * play/gamegrid.el (gamegrid-make-face): + * play/bubbles.el (bubbles--grid-width, bubbles--grid-height) + (bubbles--colors, bubbles--shift-mode, bubbles--initialize-images): + * notifications.el (notifications-notify): + * net/xesam.el (xesam-search-engines): + * net/quickurl.el (quickurl-list-insert): + * vc/vc-hg.el (vc-hg-dir-printer): Fix use of case. + +2011-03-15 Chong Yidong + + * startup.el (command-line): Update package subdirectory regexp. + +2011-03-15 Stefan Monnier + + * allout.el (allout-abbreviate-flattened-numbering) + (allout-mode-deactivate-hook): Fix up obsolescence "date". + + * subr.el (read-char-choice): Only show the cursor after the prompt, + not after the answer. + +2011-03-15 Kevin Ryde + + * help-fns.el (variable-at-point): Skip leading quotes, if any + (bug#8253). + +2011-03-15 Stefan Monnier + + * emacs-lisp/bytecomp.el (byte-compile-save-excursion): Change the + warning message. + +2011-03-14 Michael Albinus + + * shell.el (shell): When called interactively, offer to change the + shell file name on remote hosts. + +2011-03-13 Teodor Zlatanov + + * net/ldap.el (ldap-search-internal): Add `auth-source-search' + integration for LDAP parameters. The host, base, user or binddn, + and secret tokens can be specified in a netrc file, for instance. + This is optional because an `auth-source' parameter must be + specified in the search attributes. + +2011-03-13 Juanma Barranquero + + * help.el (describe-mode): Link to the mode's definition (bug#8185). + +2011-03-12 Stefan Monnier + + * ebuff-menu.el (electric-buffer-menu-mode-map): Move initialization + into declaration. Remove redundant and harmful binding. + +2011-03-12 Eli Zaretskii + + * files.el (file-ownership-preserved-p): Pass `integer' as an + explicit 2nd argument to `file-attributes'. If the file's owner + is the Administrators group on Windows, and the current user is + Administrator, consider that a match. + + * server.el (server-ensure-safe-dir): Consider server directory + safe on MS-Windows if its owner is the Administrators group while + the current Emacs user is Administrator. Use `=' to compare + numerical UIDs, since they could be integers or floats. + +2011-03-12 Juanma Barranquero + + * vc/vc-bzr.el (vc-bzr-state): Handle bzr 2.3.0 (follow-up to bug#8170). + +2011-03-12 Michael Albinus + + Sync with Tramp 2.2.1. + + * net/tramp-sh.el (tramp-methods): Exchange "%k" marker with options. + + * net/trampver.el: Update release number. + +2011-03-12 Stefan Monnier + + * progmodes/compile.el (compilation--previous-directory): Fix up + various nil/dead-marker mismatches (bug#8014). + (compilation-directory-properties, compilation-error-properties): + Don't call it at a position past the one we're about to change. + + * emacs-lisp/bytecomp.el (byte-compile-make-obsolete-variable): + Disable obsolescence warnings in the file that declares it. + +2011-03-11 Ken Manheimer + + * allout-widgets.el (allout-widgets-tally): Initialize + allout-widgets-tally as a hash table rather than nil to prevent + mode-line redisplay warnings. + Also, clarify the module description and fix a comment typo. + +2011-03-11 Juanma Barranquero + + * help-fns.el (describe-variable): Don't complete keywords. + Suggested by Teodor Zlatanov . + +2011-03-10 Chong Yidong + + * emacs-lisp/package.el (package-version-join): Impose a standard + string representation for pre/alpha/beta version lists. + (package-unpack-single): Standardize the directory name by passing + it through package-version-join. + (package-strip-rcs-id): Accept any version string that does not + signal an error in version-to-list. + +2011-03-10 Michael Albinus + + * simple.el (delete-trailing-whitespace): Return nil for the + benefit of `write-file-functions'. + +2011-03-10 Glenn Morris + + * vc/vc-hg.el (vc-hg-pull, vc-hg-merge-branch): Use vc-hg-program. + + * vc/vc-git.el (vc-git-program): New option. + (vc-git-branches, vc-git-pull, vc-git-merge-branch, vc-git-command) + (vc-git--call): Use it. + + * eshell/esh-util.el (eshell-condition-case): Doc fix. + + * cus-edit.el (Custom-newline): If no button at point, look + for a subgroup button at start-of-line. (Bug#2298) + + * mail/rmail.el (rmail-msgend, rmail-msgbeg): Doc fixes. + +2011-03-10 Julien Danjou + + * avoid.el (mouse-avoidance-ignore-p): Do not move the cursor if + `cursor-type' is nil. + +2011-03-09 Jay Belanger + + * calc/calc.el (calc-mode-map): Don't bind "C-_" to `calc-missing-key'. + +2011-03-09 Ken Manheimer + + * allout.el Summary: Change so yank of distinctive-bullet items + preserves the existing header prefix, rebulleting it if necessary, + rather than replacing it. This is necessary for proper operation + of cooperative addons like allout-widgets. + (allout-make-topic-prefix, allout-rebullet-heading): Change + SOLICIT arg to INSTEAD, and interpret additionally a string value + as alternate bullet to be used, instead of prompting the user for + a bullet character. + +2011-03-09 Michael Albinus + + * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): + Do not use `tramp-file-name-port', because this returns also + `tramp-default-port'. + +2011-03-09 Deniz Dogan + + * net/rcirc.el (rcirc-handler-001): Remove useless + with-rcirc-process-buffer. + (rcirc-check-auth-status): Swap arguments to string-match. + +2011-03-09 Glenn Morris + + * shell.el (shell-mode): + Set comint-input-ring-size from HISTSIZE. (Bug#7889) + + * progmodes/gdb-mi.el (gdb): Improve 2010-12-08 change. + Check for GDBHISTFILE, HISTSIZE, etc. (Bug#7889) + +2011-03-08 Chong Yidong + + * emacs-lisp/package.el (package-refresh-contents) + (package-menu-execute): Use condition-case-no-debug. + +2011-03-08 Michael Albinus + + * simple.el (shell-command-to-string): Use `process-file'. + + * emacs-lisp/package.el (package-tar-file-info): Handle also + remote files. + + * emacs-lisp/package-x.el (package-upload-buffer-internal): + Use `equal' for upload base check. + +2011-03-08 Arni Magnusson (tiny change) + + * textmodes/texinfo.el (texinfo-environments): + Add deftypecv, deftypeivar, deftypemethod, deftypeop, html. (Bug#2783) + +2011-03-08 Glenn Morris + + * cus-start.el (cursor-in-non-selected-windows): + Fix :set quoting oddness. (Bug#8192) + + * font-lock.el (lisp-font-lock-keywords-1): Don't highlight `)' + in some setf expressions. (Bug#2159) + +2011-03-08 Chong Yidong + + * custom.el (custom-available-themes): Return themes in + alphabetical order. + +See ChangeLog.15 for earlier changes. + +;; Local Variables: +;; coding: utf-8 +;; End: + + Copyright (C) 2011 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs. If not, see .