emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 721357b868 09/14: Remove the unused unbind-all bytecode


From: Mattias Engdegård
Subject: master 721357b868 09/14: Remove the unused unbind-all bytecode
Date: Mon, 24 Jan 2022 05:42:37 -0500 (EST)

branch: master
commit 721357b86856505324b5f32584d5eae0ba9ab4ac
Author: Mattias Engdegård <mattiase@acm.org>
Commit: Mattias Engdegård <mattiase@acm.org>

    Remove the unused unbind-all bytecode
    
    It was implemented but never generated, originally intended for
    TCO in the pre-lexbind era (which was semantically dubious anyway).
    Removing it speeds up the interpreter because there is no longer any
    need for the outermost `count` variable unless checking is enabled.
    
    * lisp/emacs-lisp/bytecomp.el:
    * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst):
    * src/bytecode.c (BYTE_CODES, exec_byte_code):
    Remove definition and implementation of unbind-all, freeing up the opcode
    for other purposes.
---
 lisp/emacs-lisp/bytecomp.el | 6 +-----
 lisp/emacs-lisp/comp.el     | 1 -
 src/bytecode.c              | 8 +-------
 3 files changed, 2 insertions(+), 13 deletions(-)

diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index a34ba37c04..2f4bf66343 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -796,11 +796,7 @@ the unwind-action")
 (byte-defop 144  0 byte-temp-output-buffer-setup-OBSOLETE)
 (byte-defop 145 -1 byte-temp-output-buffer-show-OBSOLETE)
 
-;; these ops are new to v19
-
-;; To unbind back to the beginning of this frame.
-;; Not used yet, but will be needed for tail-recursion elimination.
-(byte-defop 146  0 byte-unbind-all)
+;; unused: 146
 
 ;; these ops are new to v19
 (byte-defop 147 -2 byte-set-marker)
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 74b0b1197b..3c61063a3c 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -1943,7 +1943,6 @@ and the annotation emission."
       (byte-condition-case) ;; Obsolete
       (byte-temp-output-buffer-setup-OBSOLETE)
       (byte-temp-output-buffer-show-OBSOLETE)
-      (byte-unbind-all) ;; Obsolete
       (byte-set-marker auto)
       (byte-match-beginning auto)
       (byte-match-end auto)
diff --git a/src/bytecode.c b/src/bytecode.c
index 75f1a6b43e..b2e8f4a916 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -227,7 +227,7 @@ DEFINE (Bcondition_case, 0217)      /* Obsolete since 
Emacs-25.  */         \
 DEFINE (Btemp_output_buffer_setup, 0220) /* Obsolete since Emacs-24.1.  */ \
 DEFINE (Btemp_output_buffer_show, 0221)  /* Obsolete since Emacs-24.1.  */ \
                                                                        \
-DEFINE (Bunbind_all, 0222)     /* Obsolete.  Never used.  */           \
+/* 0222 was Bunbind_all, never used. */                                 \
                                                                        \
 DEFINE (Bset_marker, 0223)                                             \
 DEFINE (Bmatch_beginning, 0224)                                                
\
@@ -703,12 +703,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, 
Lisp_Object maxdepth,
          unbind_to (SPECPDL_INDEX () - op, Qnil);
          NEXT;
 
-       CASE (Bunbind_all):     /* Obsolete.  Never used.  */
-         /* To unbind back to the beginning of this frame.  Not used yet,
-            but will be needed for tail-recursion elimination.  */
-         unbind_to (count, Qnil);
-         NEXT;
-
        CASE (Bgoto):
          op = FETCH2;
        op_branch:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]