Douglas Katzman | 16 Sep 03:51 2014
Picon
Picon

master: Tweak LOAD-FASL-GROUP

The branch "master" has been updated in SBCL:
       via  fc0b37be2517308a975d3c5853c4852f787f0b23 (commit)
      from  bd444eb3be6befe5e5cb6f19a5de41ba24c849a4 (commit)

- Log -----------------------------------------------------------------
commit fc0b37be2517308a975d3c5853c4852f787f0b23
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 15 21:50:57 2014 -0400

    Tweak LOAD-FASL-GROUP
---
 src/code/load.lisp |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/code/load.lisp b/src/code/load.lisp
index c50381b..15c0953 100644
--- a/src/code/load.lisp
+++ b/src/code/load.lisp
 <at>  <at>  -192,6 +192,7  <at>  <at> 
 (defvar *fop-stack*)
 (declaim (simple-vector *fop-stack*))

+(declaim (inline fop-stack-empty-p))
 (defun fop-stack-empty-p ()
   (eql 0 (svref *fop-stack* 0)))

 <at>  <at>  -450,12 +451,7  <at>  <at> 
   (when (check-fasl-header stream)
     (catch 'fasl-group-end
       (reset-fop-table)
(Continue reading)

Douglas Katzman | 16 Sep 03:26 2014
Picon
Picon

master: In FOP-FUNCALL{-FOR-EFFECT} check for stack underflow once only.

The branch "master" has been updated in SBCL:
       via  bd444eb3be6befe5e5cb6f19a5de41ba24c849a4 (commit)
      from  2d7157cda6fbbec074c3cdb2c31adfe470ac3083 (commit)

- Log -----------------------------------------------------------------
commit bd444eb3be6befe5e5cb6f19a5de41ba24c849a4
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 15 21:25:12 2014 -0400

    In FOP-FUNCALL{-FOR-EFFECT} check for stack underflow once only.
---
 src/code/fop.lisp |   35 +++++++++++++++--------------------
 1 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/src/code/fop.lisp b/src/code/fop.lisp
index c9c9463..0047dbf 100644
--- a/src/code/fop.lisp
+++ b/src/code/fop.lisp
 <at>  <at>  -481,27 +481,22  <at>  <at> 
       (progn (eval expr)
              nil)))

-(define-fop (fop-funcall 55)
-  (let ((arg (read-byte-arg)))
-    (if *skip-until*
-        (fop-stack-pop-n (1+ arg))
-        (if (zerop arg)
-            (funcall (pop-stack))
-            (do ((args () (cons (pop-stack) args))
-                 (n arg (1- n)))
(Continue reading)

Douglas Katzman | 16 Sep 02:04 2014
Picon
Picon

master: Make DEFINE-FOP more declarative and perform fewer underflow checks.

The branch "master" has been updated in SBCL:
       via  2d7157cda6fbbec074c3cdb2c31adfe470ac3083 (commit)
      from  b3b6bcb3a6c21e9495e96037f52ea6a1c2361a81 (commit)

- Log -----------------------------------------------------------------
commit 2d7157cda6fbbec074c3cdb2c31adfe470ac3083
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 15 16:11:23 2014 -0400

    Make DEFINE-FOP more declarative and perform fewer underflow checks.
---
 src/code/fop.lisp  |  269 ++++++++++++++++++++++++----------------------------
 src/code/load.lisp |   34 +++----
 2 files changed, 139 insertions(+), 164 deletions(-)

diff --git a/src/code/fop.lisp b/src/code/fop.lisp
index 2ea03ca..c9c9463 100644
--- a/src/code/fop.lisp
+++ b/src/code/fop.lisp
 <at>  <at>  -17,12 +17,38  <at>  <at> 
 ;;;     The body might pop the fop stack. The result of the body is
 ;;;     discarded.
 ;;; STACKP describes whether or not the body interacts with the fop stack.
-(defmacro define-fop ((name fop-code &key (pushp t) (stackp t)) &body forms)
+;; [It should be possible to eliminate :stackp and :pushp by always exposing
+;; the POP and PUSH macros - there seems to be little harm in doing so -
+;; and pushing the result if and only if the body returns exactly one value.
+;; Some fops redundantly use (VALUES) at the end of the body, having said
+;; :pushp nil, where the former seems actually the right way to go about it.
+;; Meanwhile, this style of lambda list is the least inconvenient change
(Continue reading)

Douglas Katzman | 15 Sep 21:03 2014
Picon
Picon

master: Restore a FIXME that someone should not have been deleted; add a new one.

The branch "master" has been updated in SBCL:
       via  b3b6bcb3a6c21e9495e96037f52ea6a1c2361a81 (commit)
      from  9e860a1f4b96320eff04d77c0f28b12373d1efc7 (commit)

- Log -----------------------------------------------------------------
commit b3b6bcb3a6c21e9495e96037f52ea6a1c2361a81
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 15 15:00:18 2014 -0400

    Restore a FIXME that someone should not have been deleted; add a new one.

    The first comment is not mine. It was rightly added in d57319a5
    ("FASL changes for 64-bit compatibility") but Nikodemus removed it,
    having fixed only one of the weird declarations. There are 6 others.
---
 src/code/load.lisp |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/code/load.lisp b/src/code/load.lisp
index 8e1aebe..99653ac 100644
--- a/src/code/load.lisp
+++ b/src/code/load.lisp
 <at>  <at>  -76,6 +76,10  <at>  <at> 
          ((zerop ,n-cnt) ,n-res)
        (declare (type index ,n-pos ,n-cnt)))))

+;;; FIXME: why do all of these reading functions and macros declare
+;;; (SPEED 0)?  was there some bug in the compiler which has since
+;;; been fixed?  --njf, 2004-09-08
+
(Continue reading)

Douglas Katzman | 15 Sep 19:53 2014
Picon
Picon

master: Remove some dead comments about *LOAD-PRINT* in fasloading.

The branch "master" has been updated in SBCL:
       via  9e860a1f4b96320eff04d77c0f28b12373d1efc7 (commit)
      from  6f4651530132e0d4c827ee5841aa4037636fe922 (commit)

- Log -----------------------------------------------------------------
commit 9e860a1f4b96320eff04d77c0f28b12373d1efc7
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 15 13:48:15 2014 -0400

    Remove some dead comments about *LOAD-PRINT* in fasloading.

    Change 6fded021 made it work rather nicely.
---
 src/code/fop.lisp |   25 ++++---------------------
 1 files changed, 4 insertions(+), 21 deletions(-)

diff --git a/src/code/fop.lisp b/src/code/fop.lisp
index 2e91e32..2ea03ca 100644
--- a/src/code/fop.lisp
+++ b/src/code/fop.lisp
 <at>  <at>  -454,30 +454,17  <at>  <at> 
     (read-n-bytes *fasl-input-stream* vector 0 bytes)
     vector))

-(define-fop (fop-eval 53)
+(define-fop (fop-eval 53) ; This seems to be unused
   (if *skip-until*
       (pop-stack)
       (let ((result (eval (pop-stack))))
-        ;; FIXME: CMU CL had this code here:
(Continue reading)

Douglas Katzman | 14 Sep 06:49 2014
Picon
Picon

master: Enhance the mechanism for recording full-calls in IR2.

The branch "master" has been updated in SBCL:
       via  6f4651530132e0d4c827ee5841aa4037636fe922 (commit)
      from  3bd421c42682b4249ea8f49e3505c5c3b38325c1 (commit)

- Log -----------------------------------------------------------------
commit 6f4651530132e0d4c827ee5841aa4037636fe922
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Sep 14 00:38:42 2014 -0400

    Enhance the mechanism for recording full-calls in IR2.

    This could be used to generate style-warnings for inline functions
    and compiler-macros that are defined after their first use, in a way
    that is potentially more robust than recording all functions for which
    :WHERE-FROM become :ASSUMED after any file, and hooking the INLINE
    proclamation to signal a warning.

    The compile-time logic is sufficiently lightweight that there
    is no reason to make it conditional on #!+sb-show,
    and if disabled there is no cost at all anyway.
---
 make-host-2.lisp           |   29 +++++++++++++++++++++++++++++
 src/compiler/globaldb.lisp |   10 ++++++++--
 src/compiler/ir2tran.lisp  |   18 +++++++++++++++---
 3 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/make-host-2.lisp b/make-host-2.lisp
index ccdc580..9925e51 100644
--- a/make-host-2.lisp
+++ b/make-host-2.lisp
(Continue reading)

Douglas Katzman | 12 Sep 21:41 2014
Picon
Picon

master: Parameterize the magic number in Martin's former 'life' patch

The branch "master" has been updated in SBCL:
       via  3bd421c42682b4249ea8f49e3505c5c3b38325c1 (commit)
      from  845a7bfc75896b403e6079bc3f85239dd8d0a497 (commit)

- Log -----------------------------------------------------------------
commit 3bd421c42682b4249ea8f49e3505c5c3b38325c1
Author: Douglas Katzman <dougk <at> google.com>
Date:   Fri Sep 12 15:15:52 2014 -0400

    Parameterize the magic number in Martin's former 'life' patch

    (Courtesy originally of Nikodemus)
    The default remains 10, but more can help. A spectacularly slow compile-file
    went from 1.5 minutes down to 30 seconds by raising this.
    It is prudent to change this only around specific files though,
    if the remark about possible non-convergence in finite time is to be believed.
---
 src/compiler/life.lisp |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/compiler/life.lisp b/src/compiler/life.lisp
index 149d05f..4d45d7e 100644
--- a/src/compiler/life.lisp
+++ b/src/compiler/life.lisp
 <at>  <at>  -532,7 +532,7  <at>  <at> 
 ;;; for the read-only case, but switched at one point to always
 ;;; updating it. This generally speeds up the compiler nicely, but
 ;;; sometimes it causes an infinite loop in the updating machinery,
-;;; We cheat by switching of the fast path if it seems we're looping
+;;; We cheat by switching off the fast path if it seems we're looping
(Continue reading)

Douglas Katzman | 12 Sep 18:13 2014
Picon
Picon

master: Don't insert <at> BODY thrice in DO-PACKED-TNS

The branch "master" has been updated in SBCL:
       via  845a7bfc75896b403e6079bc3f85239dd8d0a497 (commit)
      from  d9377b603f415bcb1beca81cb902bf26c5e029b4 (commit)

- Log -----------------------------------------------------------------
commit 845a7bfc75896b403e6079bc3f85239dd8d0a497
Author: Douglas Katzman <dougk <at> google.com>
Date:   Fri Sep 12 10:10:22 2014 -0400

    Don't insert  <at> BODY thrice in DO-PACKED-TNS
---
 src/compiler/tn.lisp     |   25 ++++++++++++-------------
 tests/compiler.pure.lisp |   38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 13 deletions(-)

diff --git a/src/compiler/tn.lisp b/src/compiler/tn.lisp
index 79ce6dc..86d9213 100644
--- a/src/compiler/tn.lisp
+++ b/src/compiler/tn.lisp
 <at>  <at>  -16,22 +16,21  <at>  <at> 
 ;;; in this component.
 (defvar *component-being-compiled*)

-;;; DO-PACKED-TNS (TN-Var Component [Result]) Declaration* Form*
+;;; DO-PACKED-TNS (TN-Var Component [Result]) Form*
 ;;;
 ;;; Iterate over all packed TNs allocated in COMPONENT.
 (defmacro do-packed-tns ((tn component &optional result) &body body)
-  (let ((n-component (gensym)))
-    `(let ((,n-component (component-info ,component)))
(Continue reading)

Douglas Katzman | 12 Sep 18:13 2014
Picon
Picon

master: Remove reference to nonexistent function

The branch "master" has been updated in SBCL:
       via  d9377b603f415bcb1beca81cb902bf26c5e029b4 (commit)
      from  75962eda71e7e48e08f72473e30d7fa393b2a6ae (commit)

- Log -----------------------------------------------------------------
commit d9377b603f415bcb1beca81cb902bf26c5e029b4
Author: Douglas Katzman <dougk <at> google.com>
Date:   Fri Sep 12 09:54:43 2014 -0400

    Remove reference to nonexistent function
---
 src/compiler/info-vector.lisp |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/src/compiler/info-vector.lisp b/src/compiler/info-vector.lisp
index a5c8743..1e09e12 100644
--- a/src/compiler/info-vector.lisp
+++ b/src/compiler/info-vector.lisp
 <at>  <at>  -117,8 +117,7  <at>  <at> 

 (declaim (inline make-info-forwarding-pointer
                  info-forwarding-pointer-target
-                 info-value-moved-p
-                 increment-count)
+                 info-value-moved-p)
          (ftype (sfunction (t) simple-vector) info-env-rehash)
          (ftype (sfunction (t t) simple-vector) %wait-for-rehash))

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

(Continue reading)

Douglas Katzman | 12 Sep 17:56 2014
Picon
Picon

master: Improve LOOP REPEAT N for constant-foldable N.

The branch "master" has been updated in SBCL:
       via  75962eda71e7e48e08f72473e30d7fa393b2a6ae (commit)
      from  d15420c9f9db79bd6201f10b621b6f549d653e5b (commit)

- Log -----------------------------------------------------------------
commit 75962eda71e7e48e08f72473e30d7fa393b2a6ae
Author: Douglas Katzman <dougk <at> google.com>
Date:   Fri Sep 12 11:50:04 2014 -0400

    Improve LOOP REPEAT N for constant-foldable N.
---
 src/code/loop.lisp   |   10 ++++++----
 tests/loop.pure.lisp |   12 ++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/code/loop.lisp b/src/code/loop.lisp
index 466b8c7..ff87dd4 100644
--- a/src/code/loop.lisp
+++ b/src/code/loop.lisp
 <at>  <at>  -1197,12 +1197,14  <at>  <at>  code to be loaded.
 (defun loop-do-repeat ()
   (loop-disallow-conditional :repeat)
   (let* ((form (loop-get-form))
-         (type (cond ((not (realp form))
+         (count (and (constantp form) ; FIXME: lexical environment constants
+                     (sb!int:constant-form-value form)))
+         (type (cond ((not (realp count))
                       'integer)
-                     ((plusp form)
-                      `(mod ,(1+ (ceiling form))))
(Continue reading)

Christophe Rhodes | 11 Sep 18:18 2014
Picon
Picon

master: grab-bag of walker fixes

The branch "master" has been updated in SBCL:
       via  d15420c9f9db79bd6201f10b621b6f549d653e5b (commit)
      from  b7ec25a34d2737d76066e2082a2ac715bdf0348b (commit)

- Log -----------------------------------------------------------------
commit d15420c9f9db79bd6201f10b621b6f549d653e5b
Author: Christophe Rhodes <csr21 <at> cantab.net>
Date:   Thu Sep 11 16:48:57 2014 +0100

    grab-bag of walker fixes

    - define a specific load-time-value walker function.  It's wrong, but
      at least we now know it's wrong;
    - all special-operators are fboundp by design, so don't exclude
      fboundp special operators from our walker consistency check
    - untangle what the CONTEXT argument to walker function means
      (and adapt WALK-TAGBODY-1 accordingly)
    - delete unused function WALK-BINDINGS-2
    - test (SETQ (X) 3) not expanding (X) macro
    - no such thing as NESTED-WALK-FORM any more
---
 src/pcl/walk.lisp      |   50 ++++++++++----------
 tests/walk.impure.lisp |  119 +++++++++++++++++++++++++++---------------------
 2 files changed, 91 insertions(+), 78 deletions(-)

diff --git a/src/pcl/walk.lisp b/src/pcl/walk.lisp
index 05dcb93..25674cd 100644
--- a/src/pcl/walk.lisp
+++ b/src/pcl/walk.lisp
 <at>  <at>  -235,8 +235,7  <at>  <at> 
(Continue reading)


Gmane