1. 12 Feb, 2011 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/byte-lexbind.el: Delete. · ce5b520a
      Stefan Monnier authored
      * lisp/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.
      * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops)
      (byte-optimize-lapcode): Remove byte-vec-ref and byte-vec-set.
      * lisp/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.
      * src/bytecode.c (Bvec_ref, Bvec_set): Remove.
      (exec_byte_code): Don't handle them.
      * lisp/help-fns.el (describe-function-1): Fix paren typo.
      ce5b520a
  2. 11 Feb, 2011 2 commits
    • Stefan Monnier's avatar
      Let cconv use :fun-body in special forms that need it. · 295fb2ac
      Stefan Monnier authored
      * lisp/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.
      * lisp/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):
      * lisp/emacs-lisp/byte-lexbind.el (byte-compile-maybe-push-heap-environment):
      Make sure cconv did its job.
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Check stack-depth
      before using it.
      * lisp/dired.el (dired-desktop-buffer-misc-data): Don't use a dynamic var as
      function argument.
      295fb2ac
    • Stefan Monnier's avatar
      Make cconv-analyse understand the need for closures. · 43e67019
      Stefan Monnier authored
      * lisp/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.
      
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Fix `fun' that was not
      renamed to `bytecomp-fun'.
      
      * lisp/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.
      43e67019
  3. 10 Feb, 2011 2 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/bytecomp.el (byte-compile-catch) · d779e73c
      Stefan Monnier authored
      (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.
      
      * lisp/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.
      d779e73c
    • Igor Kuzmin's avatar
      * lisp/emacs-lisp/cconv.el: New file. · 94d11cb5
      Igor Kuzmin authored
      * lisp/emacs-lisp/bytecomp.el: Use cconv.
      (byte-compile-file-form, byte-compile):
      Call cconv-closure-convert-toplevel when requested.
      * lisp/server.el:
      * lisp/mpc.el:
      * lisp/emacs-lisp/pcase.el:
      * lisp/doc-view.el:
      * lisp/dired.el: Use lexical-binding.
      94d11cb5
  4. 25 Jan, 2011 1 commit
  5. 16 Jan, 2011 1 commit
  6. 02 Jan, 2011 1 commit
  7. 27 Dec, 2010 1 commit
  8. 23 Dec, 2010 1 commit
    • Stefan Monnier's avatar
      Fix up last change. · 17870c01
      Stefan Monnier authored
      * lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Fix up use of
      print-number-table.
      * src/print.c (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): Remove.
      (print_preprocess): Fix handling of uninterned symbols in last change.
      17870c01
  9. 14 Dec, 2010 1 commit
    • Stefan Monnier's avatar
      Try and be more careful about propagation of lexical environment. · defb1411
      Stefan Monnier authored
      * src/eval.c (apply_lambda, funcall_lambda): Remove lexenv arg.
      (Feval): Always eval in the empty environment.
      (eval_sub): New function.  Use it for all calls to Feval that should
      evaluate in the lexical environment of the caller.
      Pass `closure's as is to apply_lambda.
      (Ffuncall): Pass `closure's as is to funcall_lambda.
      (funcall_lambda): Extract lexenv for `closure's, when applicable.
      Also use lexical scoping for the &rest argument, if applicable.
      * src/lisp.h (eval_sub): Declare.
      * src/lread.c (readevalloop): Remove `evalfun' argument.
      * src/print.c (Fwith_output_to_temp_buffer):
      * src/data.c (Fsetq_default): Use eval_sub.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case): Use push.
      defb1411
  10. 12 Nov, 2010 1 commit
    • Glenn Morris's avatar
      bytecomp trivia. · 7847454a
      Glenn Morris authored
      * lisp/emacs-lisp/bytecomp.el (byte-compile-log-buffer): New constant.
      Use it to replace all instances of "*Compile-Log*"
      7847454a
  11. 11 Nov, 2010 1 commit
  12. 02 Nov, 2010 1 commit
  13. 01 Nov, 2010 1 commit
  14. 31 Oct, 2010 1 commit
    • Julien Danjou's avatar
      * lisp/emacs-lisp/bytecomp.el (byte-recompile-file): New fun. · 430e7297
      Julien Danjou authored
      (byte-recompile-directory):
      * lisp/emacs-lisp/lisp-mode.el (emacs-lisp-byte-compile-and-load):
      * cedet/ede/proj-elisp.el (project-compile-target):
      * cedet/semantic/ede-grammar.el (project-compile-target):
      Use `byte-recompile-file'.
      
      Fixes: debbugs:7297
      430e7297
  15. 03 Oct, 2010 1 commit
  16. 02 Oct, 2010 2 commits
  17. 23 Sep, 2010 1 commit
    • Glenn Morris's avatar
      Trivial bytecomp.el change. · 7a16788b
      Glenn Morris authored
      * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defvar):
      (byte-compile-defvar, byte-compile-cl-warn):
      Start warnings with lower-case, like the majority.
      7a16788b
  18. 17 Sep, 2010 1 commit
  19. 15 Sep, 2010 1 commit
  20. 11 Sep, 2010 2 commits
  21. 08 Sep, 2010 2 commits
  22. 29 Aug, 2010 1 commit
  23. 15 Jun, 2010 1 commit
  24. 14 Jun, 2010 1 commit
  25. 13 Jun, 2010 1 commit
  26. 24 May, 2010 1 commit
  27. 23 Apr, 2010 1 commit
  28. 13 Jan, 2010 1 commit
  29. 07 Dec, 2009 1 commit
  30. 01 Dec, 2009 1 commit
  31. 27 Nov, 2009 1 commit
  32. 16 Nov, 2009 1 commit
  33. 14 Nov, 2009 1 commit
    • Glenn Morris's avatar
      (byte-compile-single-version): Remove, unused. · 0028351d
      Glenn Morris authored
      (baud-rate, byte-code-function-p)
      (byte-compile-generate-emacs19-bytecodes, byte-compile-overwrite-file)
      (byte-compiler-valid-options, byte-compiler-options-handler)
      (byte-compile-and-load-file, byte-compile-buffer):
      Remove commented-out code.
      0028351d
  34. 05 Nov, 2009 1 commit
  35. 04 Nov, 2009 1 commit