emacs-diffs
[Top][All Lists]
Advanced

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

feature/native-comp 2ee2fb5 07/17: * Prune now unnecessary byte-code obj


From: Andrea Corallo
Subject: feature/native-comp 2ee2fb5 07/17: * Prune now unnecessary byte-code objects
Date: Fri, 15 May 2020 15:07:55 -0400 (EDT)

branch: feature/native-comp
commit 2ee2fb5a86a8933b1105a1dc5b597ebb8ce57e40
Author: Andrea Corallo <address@hidden>
Commit: Andrea Corallo <address@hidden>

    * Prune now unnecessary byte-code objects
    
        * lisp/emacs-lisp/comp.el (comp-finalize-container): Prune
        byte-code that was lambdas.
        (comp-compile-ctxt-to-file): Remove fixme.
---
 lisp/emacs-lisp/comp.el | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 705225d..3bcfdc9 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -2117,7 +2117,16 @@ These are substituted with a normal 'set' op."
                  for obj each hash-keys of h
                  for i from 0
                  do (puthash obj i h)
-                 collect obj)))
+                 ;; Prune byte-code objects coming from lambdas.
+                 ;; These are not anymore necessary as they will be
+                 ;; replaced at load time by native-elisp-subrs.
+                 ;; Note: we leave the objects in the idx hash table
+                 ;; to still be able to retrieve the correct index
+                 ;; from the corresponding m-var.
+                 collect (if (gethash obj
+                                      (comp-ctxt-byte-func-to-func-h 
comp-ctxt))
+                             nil
+                           obj))))
 
 (defun comp-finalize-relocs ()
   "Finalize data containers for each relocation class.
@@ -2159,7 +2168,6 @@ Update all insn accordingly."
   "Compile as native code the current context naming it NAME.
 Prepare every function for final compilation and drive the C back-end."
   (let ((dir (file-name-directory name)))
-    ;; FIXME: Strip bytecompiled functions here.
     (comp-finalize-relocs)
     (unless (file-exists-p dir)
       ;; In case it's created in the meanwhile.



reply via email to

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