Christophe Rhodes | 23 Oct 13:13 2014
Picon
Picon

master: fix APROPOS/APROPOS-LIST and inherited symbols

The branch "master" has been updated in SBCL:
       via  844efffa77733395addf22261d31ef4a9de0a9f8 (commit)
      from  c82cc623c8af54cb309de7b77da9519950947298 (commit)

- Log -----------------------------------------------------------------
commit 844efffa77733395addf22261d31ef4a9de0a9f8
Author: Christophe Rhodes <csr21 <at> cantab.net>
Date:   Thu Oct 23 12:12:48 2014 +0100

    fix APROPOS/APROPOS-LIST and inherited symbols

    lp#1364413; thanks to Zach Beane.
---
 NEWS                         |    2 ++
 src/code/target-package.lisp |   10 +++++-----
 tests/interface.impure.lisp  |   20 ++++++++++++++++++++
 3 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/NEWS b/NEWS
index ba8d4e6..7b2e33c 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -18,6 +18,8  <at>  <at>  changes relative to sbcl-1.2.4:
   * bug fix: in interpreted code, inequality predicates did not type-check
     arguments that weren't examined, and a 1-argument use of MIN or MAX
     accepted a complex number. (lp#1373702)
+  * bug fix: APROPOS and APROPOS-LIST handle inherited symbols correctly.
+    (lp#1364413, thanks to Zach Beane)

 changes in sbcl-1.2.4 relative to sbcl-1.2.3:
(Continue reading)

Douglas Katzman | 19 Oct 06:55 2014
Picon
Picon

master: Better commentary for %INSTANCE-LENGTH in the cross compiler.

The branch "master" has been updated in SBCL:
       via  c82cc623c8af54cb309de7b77da9519950947298 (commit)
      from  c857378f7efb569018843ac505fdead1fe53701f (commit)

- Log -----------------------------------------------------------------
commit c82cc623c8af54cb309de7b77da9519950947298
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Oct 19 00:50:20 2014 -0400

    Better commentary for %INSTANCE-LENGTH in the cross compiler.
---
 src/code/defbangstruct.lisp |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/code/defbangstruct.lisp b/src/code/defbangstruct.lisp
index c3ac50b..2f5ee3f 100644
--- a/src/code/defbangstruct.lisp
+++ b/src/code/defbangstruct.lisp
 <at>  <at>  -186,10 +186,17  <at>  <at> 
   (defun %instance-length (instance)
     (aver (or (typep instance 'structure!object)
               (xc-dumpable-structure-instance-p instance)))
-    ;; This seems strangely incompatible- INSTANCE-LENGTH should return an odd number
-    ;; so that including the header word (not counted), it comes out even.
-    ;; Except that on the xc host you can't access a slot beyond the layout-length,
-    ;; whereas on the target you can if there is a slack word - it reads as NIL.
+    ;; INSTANCE-LENGTH tells you how many data words the backend is able to
+    ;; physically access in this structure. Since every structure occupies
+    ;; an even number of words, the storage slots comprise an odd number
+    ;; of words after subtracting 1 for the header.
(Continue reading)

Douglas Katzman | 19 Oct 05:49 2014
Picon
Picon

master: Whitespace fix and a trivial simplification

The branch "master" has been updated in SBCL:
       via  c857378f7efb569018843ac505fdead1fe53701f (commit)
      from  fa360be98ee2b100b4828e2a5ef22490fcdab1dc (commit)

- Log -----------------------------------------------------------------
commit c857378f7efb569018843ac505fdead1fe53701f
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Oct 18 23:48:51 2014 -0400

    Whitespace fix and a trivial simplification
---
 src/code/defstruct.lisp   |    4 +---
 src/compiler/ir1tran.lisp |    2 +-
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/code/defstruct.lisp b/src/code/defstruct.lisp
index 2257fdc..73f248e 100644
--- a/src/code/defstruct.lisp
+++ b/src/code/defstruct.lisp
 <at>  <at>  -1244,9 +1244,7  <at>  <at>  unless :NAMED is also specified.")))
   ;; the object as indicated in the header, so the pad word needs to be
   ;; included in that length to guarantee proper alignment of raw double float
   ;; slots, necessary for (at least) the SPARC backend.
-  (let ((layout-length (dd-layout-length dd)))
-    (declare (type index layout-length))
-    (+ layout-length (mod (1+ layout-length) 2))))
+  (logior (dd-layout-length dd) 1))

 ;;; This is called when we are about to define a structure class. It
 ;;; returns a (possibly new) class object and the layout which should
(Continue reading)

Douglas Katzman | 19 Oct 04:13 2014
Picon
Picon

master: Add comment on misleading accessor name for array data slot

The branch "master" has been updated in SBCL:
       via  fa360be98ee2b100b4828e2a5ef22490fcdab1dc (commit)
      from  4f0820d41f0bb21d4d124ded75ae76f130bc822a (commit)

- Log -----------------------------------------------------------------
commit fa360be98ee2b100b4828e2a5ef22490fcdab1dc
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Oct 18 22:00:51 2014 -0400

    Add comment on misleading accessor name for array data slot
---
 src/compiler/generic/objdef.lisp |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/compiler/generic/objdef.lisp b/src/compiler/generic/objdef.lisp
index 0b8f17b..7bd7ae4 100644
--- a/src/compiler/generic/objdef.lisp
+++ b/src/compiler/generic/objdef.lisp
 <at>  <at>  -115,6 +115,9  <at>  <at> 
             :set-trans (setf %array-available-elements)
             :set-known ())
   (data :type array
+        ;; FIXME: terrible name for the accessor.
+        ;; It is in general just an ARRAY,
+        ;; and should be named %ARRAY-DATA.
         :ref-trans %array-data-vector
         :ref-known (flushable foldable)
         :set-trans (setf %array-data-vector)

-----------------------------------------------------------------------
(Continue reading)

Douglas Katzman | 19 Oct 04:13 2014
Picon
Picon

master: Signal style-warning for (DECLARE (OPTIMIZE (SPEED 0) SPEED)) etc

The branch "master" has been updated in SBCL:
       via  4f0820d41f0bb21d4d124ded75ae76f130bc822a (commit)
      from  97ce5d9c32671319f043713368cbcc59f6506c20 (commit)

- Log -----------------------------------------------------------------
commit 4f0820d41f0bb21d4d124ded75ae76f130bc822a
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Oct 18 21:59:03 2014 -0400

    Signal style-warning for (DECLARE (OPTIMIZE (SPEED 0) SPEED)) etc
---
 NEWS                       |    2 +
 src/compiler/ir1tran.lisp  |   45 +++++++++++++++++++++++++++----------------
 src/compiler/policy.lisp   |    8 +++++++
 src/compiler/proclaim.lisp |   35 ++++++++++++++++++++++++++++-----
 tests/compiler.pure.lisp   |   29 ++++++++++++++++++++++++++++
 5 files changed, 96 insertions(+), 23 deletions(-)

diff --git a/NEWS b/NEWS
index ff0f998..ba8d4e6 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -7,6 +7,8  <at>  <at>  changes relative to sbcl-1.2.4:
   * enhancement: The reader now normalizes symbols to Normalization
     Form KC (NFKC). This behavior can be disabled with
     SB-EXT:READTABLE-NORMALIZATION
+  * enhancement: a style-warning is signaled if OPTIMIZE declarations
+    multiply specify a quality with differing values. (lp#310267)
   * bug fix: conservatively pointed to pages wipe out unused dwords so
     that they cannot act as false roots in turn.
(Continue reading)

Douglas Katzman | 16 Oct 00:36 2014
Picon
Picon

master: Fix disappearing docstring that also broke #!-sb-doc badly. lp#1381781

The branch "master" has been updated in SBCL:
       via  97ce5d9c32671319f043713368cbcc59f6506c20 (commit)
      from  f8b4b23f45e207c5a179eb9f0c983f746c8ea314 (commit)

- Log -----------------------------------------------------------------
commit 97ce5d9c32671319f043713368cbcc59f6506c20
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Oct 15 18:33:18 2014 -0400

    Fix disappearing docstring that also broke #!-sb-doc badly. lp#1381781
---
 src/code/target-char.lisp |    2 +-
 tests/interface.pure.lisp |   20 ++++++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/src/code/target-char.lisp b/src/code/target-char.lisp
index e3ad565..f1e4787 100644
--- a/src/code/target-char.lisp
+++ b/src/code/target-char.lisp
 <at>  <at>  -622,7 +622,7  <at>  <at>  is either numeric or alphabetic."
 (macrolet ((def (name test doc)
              (declare (ignorable doc))
              `(defun ,name (character &rest more-characters)
-                #!+sb-doc
+                #!+sb-doc ,doc
                 (if more-characters
                     (do ((c character (nth i more-characters))
                          (i 0 (1+ i)))
diff --git a/tests/interface.pure.lisp b/tests/interface.pure.lisp
index 43d85f5..76fe1b5 100644
(Continue reading)

Douglas Katzman | 15 Oct 15:54 2014
Picon
Picon

master: Implement CHAR/=, CHAR-NOT-EQUAL using same logic as numeric /=

The branch "master" has been updated in SBCL:
       via  f8b4b23f45e207c5a179eb9f0c983f746c8ea314 (commit)
      from  3e0734e2ced3ed6ed488701863b3e1fe02cc964f (commit)

- Log -----------------------------------------------------------------
commit f8b4b23f45e207c5a179eb9f0c983f746c8ea314
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Oct 15 09:50:12 2014 -0400

    Implement CHAR/=,CHAR-NOT-EQUAL using same logic as numeric /=
---
 src/code/numbers.lisp     |    6 ++----
 src/code/target-char.lisp |   43 ++++++++++++++++++-------------------------
 2 files changed, 20 insertions(+), 29 deletions(-)

diff --git a/src/code/numbers.lisp b/src/code/numbers.lisp
index baf1459..f0cdedb 100644
--- a/src/code/numbers.lisp
+++ b/src/code/numbers.lisp
 <at>  <at>  -789,7 +789,6  <at>  <at> 
       (return (do-rest-arg ((n) more-numbers (1+ i))
                 (the number n)))))) ; for effect

-;; FIXME: macroize the guts of inequalities /=, CHAR/=, CHAR-NOT-EQUAL
 (defun /= (number &rest more-numbers)
   #!+sb-doc
   "Return T if no two of its arguments are numerically equal, NIL otherwise."
 <at>  <at>  -799,9 +798,8  <at>  <at> 
             (i 0 (1+ i)))
           ((>= i (length more-numbers))
(Continue reading)

Christophe Rhodes | 15 Oct 15:41 2014
Picon
Picon

master: sort out fixnum / float leaks in split-seconds-for-sleep

The branch "master" has been updated in SBCL:
       via  739b742a0b700e49bdd32f03a6ccc6ea43382c8b (commit)
      from  95a7c5b2493a02d76745e0a96d6b2afc4db2ee21 (commit)

- Log -----------------------------------------------------------------
commit 739b742a0b700e49bdd32f03a6ccc6ea43382c8b
Author: Christophe Rhodes <csr21 <at> cantab.net>
Date:   Wed Oct 15 13:43:43 2014 +0100

    sort out fixnum / float leaks in split-seconds-for-sleep

    Two different (but related) errors in host vs target fixnums
---
 src/code/toplevel.lisp |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/code/toplevel.lisp b/src/code/toplevel.lisp
index b8581d8..2dd366b 100644
--- a/src/code/toplevel.lisp
+++ b/src/code/toplevel.lisp
 <at>  <at>  -174,19 +174,19  <at>  <at>  means to wait indefinitely.")
                                                     (load-time-value 1f9 t))))))))
     (declare (inline split-float))
     (typecase seconds
-      ((single-float 0f0 #.(float most-positive-fixnum 1f0))
+      ((single-float 0f0 #.(float sb!xc:most-positive-fixnum 1f0))
        (split-float))
-      ((double-float 0d0 #.(float most-positive-fixnum 1d0))
+      ((double-float 0d0 #.(float sb!xc:most-positive-fixnum 1d0))
        (split-float))
(Continue reading)

Christophe Rhodes | 15 Oct 15:41 2014
Picon
Picon

master: fix a more unusual host compiler leak

The branch "master" has been updated in SBCL:
       via  3e0734e2ced3ed6ed488701863b3e1fe02cc964f (commit)
      from  739b742a0b700e49bdd32f03a6ccc6ea43382c8b (commit)

- Log -----------------------------------------------------------------
commit 3e0734e2ced3ed6ed488701863b3e1fe02cc964f
Author: Christophe Rhodes <csr21 <at> cantab.net>
Date:   Wed Oct 15 13:44:24 2014 +0100

    fix a more unusual host compiler leak

    a macroexpand-time computation involving the host's value of
    internal-time-units-per-second: needs to be done instead with
    the target's.
---
 src/code/late-extensions.lisp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/code/late-extensions.lisp b/src/code/late-extensions.lisp
index 279bb5b..aa81060 100644
--- a/src/code/late-extensions.lisp
+++ b/src/code/late-extensions.lisp
 <at>  <at>  -479,7 +479,7  <at>  <at>  returns NIL each time."
                   (let ((,time-left (- ,deadline (get-internal-real-time))))
                     (if (plusp ,time-left)
                         (* (coerce ,time-left 'single-float)
-                           ,(/ 1.0 internal-time-units-per-second))
+                           (load-time-value (/ 1.0f0 internal-time-units-per-second) t))
                         0)))))
          , <at> body))))
(Continue reading)

Douglas Katzman | 15 Oct 14:32 2014
Picon
Picon

master: Improve comment and tests from previous commit, fix lp#1373702.

The branch "master" has been updated in SBCL:
       via  95a7c5b2493a02d76745e0a96d6b2afc4db2ee21 (commit)
      from  4323c6624a8a6da374a28336035433fdb2cfe905 (commit)

- Log -----------------------------------------------------------------
commit 95a7c5b2493a02d76745e0a96d6b2afc4db2ee21
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Oct 15 08:28:51 2014 -0400

    Improve comment and tests from previous commit, fix lp#1373702.
---
 NEWS                      |    3 +++
 src/code/numbers.lisp     |   22 ++++++++++------------
 src/compiler/fndb.lisp    |    4 ++--
 tests/arith.pure.lisp     |   20 ++++++++++++++++++++
 tests/character.pure.lisp |   16 ----------------
 5 files changed, 35 insertions(+), 30 deletions(-)

diff --git a/NEWS b/NEWS
index 23c41de..ff0f998 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -13,6 +13,9  <at>  <at>  changes relative to sbcl-1.2.4:
     bindings is improved (lp#375326, lp#1368305)
   * bug fix: HANDLER-{BIND,CASE} no longer drop into ldb when a clause
     contains an undefined condition type; regression in 1.1.19 (lp#1378939)
+  * bug fix: in interpreted code, inequality predicates did not type-check
+    arguments that weren't examined, and a 1-argument use of MIN or MAX
+    accepted a complex number. (lp#1373702)

(Continue reading)

Douglas Katzman | 15 Oct 06:12 2014
Picon
Picon

master: Remove cruft from GENSYM and make it significantly less consy usually.

The branch "master" has been updated in SBCL:
       via  4323c6624a8a6da374a28336035433fdb2cfe905 (commit)
      from  f344b98be063ed858ca77b5b836411b8f35aee14 (commit)

- Log -----------------------------------------------------------------
commit 4323c6624a8a6da374a28336035433fdb2cfe905
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Oct 15 00:08:19 2014 -0400

    Remove cruft from GENSYM and make it significantly less consy usually.

    There was at one point a QUICK-INTEGER-TO-STRING function
    which Nikodemus removed due to it being somewhat unsightly -
    it computed an approximate string length and then used %SHRINK-VECTOR.
    This change computes a correct length, and avoids UCS4 when possible.
---
 src/code/symbol.lisp |   45 ++++++++++++++++++++++++++++-----------------
 1 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/src/code/symbol.lisp b/src/code/symbol.lisp
index 702e66c..cafea98 100644
--- a/src/code/symbol.lisp
+++ b/src/code/symbol.lisp
 <at>  <at>  -388,9 +388,27  <at>  <at>  distinct from the global value. Can also be SETF."
 ;;;; GENSYM and friends

 (defun %make-symbol-name (prefix counter)
-  (with-output-to-string (s)
-    (write-string prefix s)
-    (%output-integer-in-base counter 10 s)))
(Continue reading)


Gmane