aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorStefan Monnier2011-02-12 00:53:30 -0500
committerStefan Monnier2011-02-12 00:53:30 -0500
commitce5b520a3758e22c6516e0d864d8c1a3512bf457 (patch)
treebcf74ea6c4f88995c5630113578632dc4ce2a878 /src/bytecode.c
parentc530e1c2a3a036d71942c354ba11b30a06341fd7 (diff)
downloademacs-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.c23
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)