summaryrefslogtreecommitdiff
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2011-02-12 00:53:30 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2011-02-12 00:53:30 -0500
commitce5b520a3758e22c6516e0d864d8c1a3512bf457 (patch)
treebcf74ea6c4f88995c5630113578632dc4ce2a878 /src/bytecode.c
parentc530e1c2a3a036d71942c354ba11b30a06341fd7 (diff)
* 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 96d2aa273f..9bf6ae45ce 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -231,8 +231,6 @@ extern Lisp_Object Qand_optional, Qand_rest;
/* Bstack_ref is code 0. */
#define Bstack_set 0262
#define Bstack_set2 0263
-#define Bvec_ref 0264
-#define Bvec_set 0265
#define BdiscardN 0266
#define Bconstant 0300
@@ -1722,27 +1720,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
case Bstack_set2:
stack.bottom[FETCH2] = POP;
break;
- case Bvec_ref:
- case Bvec_set:
- /* These byte-codes used mostly for variable references to
- lexically bound variables that are in an environment vector
- instead of on the byte-interpreter stack (generally those
- variables which might be shared with a closure). */
- {
- int index = FETCH;
- Lisp_Object vec = POP;
-
- if (! VECTORP (vec))
- wrong_type_argument (Qvectorp, vec);
- else if (index < 0 || index >= XVECTOR (vec)->size)
- args_out_of_range (vec, make_number (index));
-
- if (op == Bvec_ref)
- PUSH (XVECTOR (vec)->contents[index]);
- else
- XVECTOR (vec)->contents[index] = POP;
- }
- break;
case BdiscardN:
op = FETCH;
if (op & 0x80)