[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sbcl-commits
Subject:    [Sbcl-commits] master: No more destructive MERGE of shared data in best-modular-version
From:       "Paul Khuong" <pkhuong () users ! sourceforge ! net>
Date:       2013-07-18 21:05:44
Message-ID: E1UzvOV-0001MR-JD () sfs-ml-1 ! v29 ! ch3 ! sourceforge ! com
[Download RAW message or body]

The branch "master" has been updated in SBCL:
       via  e240610bcc02cfe6f970131a362502d33be114c5 (commit)
      from  953e2961a4e0f130d67da600d1c965d6794a8984 (commit)

- Log -----------------------------------------------------------------
commit e240610bcc02cfe6f970131a362502d33be114c5
Author: Paul Khuong <pvk@pvk.ca>
Date:   Tue Jul 9 08:16:41 2013 -0400

    No more destructive MERGE of shared data in best-modular-version
    
    The old code worked by accident: few/no platform implements
    untagged signed modular arithmetic VOPs.
    
    The new code handles that common case to avoid consing a fresh list
    when the MERGE will be an identity.
---
 src/compiler/srctran.lisp |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp
index 18f7301..2fc1c40 100644
--- a/src/compiler/srctran.lisp
+++ b/src/compiler/srctran.lisp
@@ -3044,7 +3044,10 @@
   ;; 3. >/>= width-matched :untagged
   (let* ((uuwidths (modular-class-widths *untagged-unsigned-modular-class*))
          (uswidths (modular-class-widths *untagged-signed-modular-class*))
-         (uwidths (merge 'list uuwidths uswidths #'< :key #'car))
+         (uwidths (if (and uuwidths uswidths)
+                      (merge 'list (copy-list uuwidths) (copy-list uswidths)
+                             #'< :key #'car)
+                      (or uuwidths uswidths)))
          (twidths (modular-class-widths *tagged-modular-class*)))
     (let ((exact (find (cons width signedp) uwidths :test #'equal)))
       (when exact

-----------------------------------------------------------------------


hooks/post-receive
-- 
SBCL

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Sbcl-commits mailing list
Sbcl-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-commits
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic