• Stefan Monnier's avatar
    Use offsets relative to top rather than bottom for stack refs · 3e21b6a7
    Stefan Monnier authored
    * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-and-error-free-ops):
    Remove interactive-p.
    (byte-optimize-lapcode): Update optimizations now that stack-refs are
    relative to the top rather than to the bottom.
    * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode):
    Turn stack-ref-0 into dup.
    (byte-compile-form): Don't indirect-function since it can signal
    (byte-compile-stack-ref, byte-compile-stack-set): Adjust to stack-refs
    being relative to top rather than to bottom in the byte-code.
    (with-output-to-temp-buffer): Remove.
    (byte-compile-with-output-to-temp-buffer): Remove.
    * lisp/emacs-lisp/cconv.el: Use lexical-binding.
    (cconv--lookup-let): Rename from cconv-lookup-let.
    (cconv-closure-convert-rec): Fix handling of captured+mutated
    arguments in defun/defmacro.
    * lisp/emacs-lisp/eieio-comp.el (eieio-byte-compile-file-form-defmethod):
    Rename from byte-compile-file-form-defmethod.
    Don't byte-compile-lambda.
    (eieio-byte-compile-defmethod-param-convert): Rename from
    * lisp/emacs-lisp/eieio.el (eieio-defgeneric-form-primary-only-one):
    Call byte-compile rather than byte-compile-lambda.
    * src/alloc.c (Fgarbage_collect): Don't mark the byte-stack redundantly.
    * src/bytecode.c (exec_byte_code): Change stack_ref and stack_set to use
    offsets relative to top rather than to bottom.
    * lisp/subr.el (with-output-to-temp-buffer): New macro.
    * lisp/simple.el (count-words-region): Don't use interactive-p.
alloc.c 164 KB