diff options
| author | Stefan Monnier | 2011-02-12 00:53:30 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2011-02-12 00:53:30 -0500 |
| commit | ce5b520a3758e22c6516e0d864d8c1a3512bf457 (patch) | |
| tree | bcf74ea6c4f88995c5630113578632dc4ce2a878 /src/bytecode.c | |
| parent | c530e1c2a3a036d71942c354ba11b30a06341fd7 (diff) | |
| download | emacs-ce5b520a3758e22c6516e0d864d8c1a3512bf457.tar.gz emacs-ce5b520a3758e22c6516e0d864d8c1a3512bf457.zip | |
* lisp/emacs-lisp/byte-lexbind.el: Delete.
* 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.
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 96d2aa273f2..9bf6ae45ce9 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -231,8 +231,6 @@ extern Lisp_Object Qand_optional, Qand_rest; | |||
| 231 | /* Bstack_ref is code 0. */ | 231 | /* Bstack_ref is code 0. */ |
| 232 | #define Bstack_set 0262 | 232 | #define Bstack_set 0262 |
| 233 | #define Bstack_set2 0263 | 233 | #define Bstack_set2 0263 |
| 234 | #define Bvec_ref 0264 | ||
| 235 | #define Bvec_set 0265 | ||
| 236 | #define BdiscardN 0266 | 234 | #define BdiscardN 0266 |
| 237 | 235 | ||
| 238 | #define Bconstant 0300 | 236 | #define Bconstant 0300 |
| @@ -1722,27 +1720,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1722 | case Bstack_set2: | 1720 | case Bstack_set2: |
| 1723 | stack.bottom[FETCH2] = POP; | 1721 | stack.bottom[FETCH2] = POP; |
| 1724 | break; | 1722 | break; |
| 1725 | case Bvec_ref: | ||
| 1726 | case Bvec_set: | ||
| 1727 | /* These byte-codes used mostly for variable references to | ||
| 1728 | lexically bound variables that are in an environment vector | ||
| 1729 | instead of on the byte-interpreter stack (generally those | ||
| 1730 | variables which might be shared with a closure). */ | ||
| 1731 | { | ||
| 1732 | int index = FETCH; | ||
| 1733 | Lisp_Object vec = POP; | ||
| 1734 | |||
| 1735 | if (! VECTORP (vec)) | ||
| 1736 | wrong_type_argument (Qvectorp, vec); | ||
| 1737 | else if (index < 0 || index >= XVECTOR (vec)->size) | ||
| 1738 | args_out_of_range (vec, make_number (index)); | ||
| 1739 | |||
| 1740 | if (op == Bvec_ref) | ||
| 1741 | PUSH (XVECTOR (vec)->contents[index]); | ||
| 1742 | else | ||
| 1743 | XVECTOR (vec)->contents[index] = POP; | ||
| 1744 | } | ||
| 1745 | break; | ||
| 1746 | case BdiscardN: | 1723 | case BdiscardN: |
| 1747 | op = FETCH; | 1724 | op = FETCH; |
| 1748 | if (op & 0x80) | 1725 | if (op & 0x80) |