[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el
From: |
Miles Bader |
Subject: |
[Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el |
Date: |
Thu, 13 Jun 2002 03:35:54 -0400 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Branch: lexbind
Changes by: Miles Bader <address@hidden> 02/06/13 03:35:53
Modified files:
lisp/emacs-lisp: bytecomp.el
Log message:
Lexical binding support (not finished yet):
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.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/emacs-lisp/bytecomp.el.diff?only_with_tag=lexbind&tr1=2.98&tr2=2.98.2.1&r1=text&r2=text
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el,
Miles Bader <=
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el, Miles Bader, 2002/06/14
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el, Richard M. Stallman, 2002/06/15
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el, Dave Love, 2002/06/24
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el, Stefan Monnier, 2002/06/24
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el, Juanma Barranquero, 2002/06/27
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el, Dave Love, 2002/06/27
- [Emacs-commit] emacs/lisp/emacs-lisp bytecomp.el, Dave Love, 2002/06/29