Douglas Katzman | 1 Sep 20:11 2014
Picon
Picon

master: Simplify most uses of WITH-SYMBOL by altering its interface a little

The branch "master" has been updated in SBCL:
       via  3446e1a9daeb95b1861b85eacdc74bdb67dec57e (commit)
      from  33098b9490494d1743bd8b9d54b6a9654621bb83 (commit)

- Log -----------------------------------------------------------------
commit 3446e1a9daeb95b1861b85eacdc74bdb67dec57e
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 1 14:07:45 2014 -0400

    Simplify most uses of WITH-SYMBOL by altering its interface a little
---
 src/code/target-package.lisp |   91 +++++++++++++++++++-----------------------
 1 files changed, 41 insertions(+), 50 deletions(-)

diff --git a/src/code/target-package.lisp b/src/code/target-package.lisp
index e542499..b15b331 100644
--- a/src/code/target-package.lisp
+++ b/src/code/target-package.lisp
 <at>  <at>  -655,46 +655,39  <at>  <at>  REMOVE-PACKAGE-LOCAL-NICKNAME, and the DEFPACKAGE option :LOCAL-NICKNAMES."
 ;;; is bound to the index, or NIL if it is not present. SYMBOL-VAR
 ;;; is bound to the symbol. LENGTH and HASH are the length and sxhash
 ;;; of STRING. ENTRY-HASH is the entry-hash of the string and length.
+;;; If the symbol is found, then FORMS are executed; otherwise not.

-(defmacro with-symbol ((index-var symbol-var table string length sxhash
-                                  entry-hash)
-                       &body forms)
-  (let ((vec (gensym)) (hash (gensym)) (len (gensym)) (h2 (gensym))
+(defmacro with-symbol (((symbol-var &optional (index-var (gensym))) table
+                       string length sxhash entry-hash) &body forms)
(Continue reading)

Douglas Katzman | 1 Sep 19:27 2014
Picon
Picon

master: Use NTH-VALUE when that's what is meant.

The branch "master" has been updated in SBCL:
       via  33098b9490494d1743bd8b9d54b6a9654621bb83 (commit)
      from  6b8f82611030bf389c93362989123c4dbcbad889 (commit)

- Log -----------------------------------------------------------------
commit 33098b9490494d1743bd8b9d54b6a9654621bb83
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 1 13:26:09 2014 -0400

    Use NTH-VALUE when that's what is meant.
---
 src/code/print.lisp |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/code/print.lisp b/src/code/print.lisp
index 7992764..12ee01f 100644
--- a/src/code/print.lisp
+++ b/src/code/print.lisp
 <at>  <at>  -625,12 +625,9  <at>  <at>  variable: an unreadable object representing the error is printed instead.")
               (let ((prefix (or (car (rassoc package (package-%local-nicknames current)))
                                 (package-name package))))
                 (output-symbol-name prefix stream))
-              (multiple-value-bind (symbol externalp)
-                  (find-external-symbol name package)
-                (declare (ignore symbol))
-                (if externalp
-                    (write-char #\: stream)
-                    (write-string "::" stream)))))))
+              (if (nth-value 1 (find-external-symbol name package))
+                  (write-char #\: stream)
(Continue reading)

Douglas Katzman | 1 Sep 19:00 2014
Picon
Picon

master: Fix defknown of MAKE-RANDOM-STATE to avoid manual CHECK-TYPE.

The branch "master" has been updated in SBCL:
       via  6b8f82611030bf389c93362989123c4dbcbad889 (commit)
      from  11b217c48600e74225c865718bf02edb41bfc0fe (commit)

- Log -----------------------------------------------------------------
commit 6b8f82611030bf389c93362989123c4dbcbad889
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Sep 1 12:48:17 2014 -0400

    Fix defknown of MAKE-RANDOM-STATE to avoid manual CHECK-TYPE.
---
 src/code/target-random.lisp |    7 ++++---
 src/compiler/fndb.lisp      |    9 +++++++--
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/code/target-random.lisp b/src/code/target-random.lisp
index f886832..d546094 100644
--- a/src/code/target-random.lisp
+++ b/src/code/target-random.lisp
 <at>  <at>  -97,12 +97,12  <at>  <at>  As per the Common Lisp standard,

 See SB-EXT:SEED-RANDOM-STATE for a SBCL extension to this functionality."
   (/show0 "entering MAKE-RANDOM-STATE")
-  (check-type state (or boolean random-state))
   (seed-random-state state))

 (defun fallback-random-seed ()
   ;; When /dev/urandom is not available, we make do with time and pid
   ;; Thread ID and/or address of a CONS cell would be even better, but...
+  ;; [ADDRESS-BASED-COUNTER-VAL in 'target-sxhash' could be used here]
(Continue reading)

Christophe Rhodes | 1 Sep 12:46 2014
Picon
Picon

master: fix bug #1332983

The branch "master" has been updated in SBCL:
       via  11b217c48600e74225c865718bf02edb41bfc0fe (commit)
      from  bfed509dc2d451e80912df6d5d06b1a3d60e55a2 (commit)

- Log -----------------------------------------------------------------
commit 11b217c48600e74225c865718bf02edb41bfc0fe
Author: Christophe Rhodes <csr21 <at> cantab.net>
Date:   Wed Aug 27 13:16:40 2014 +0100

    fix bug #1332983

    the universal superclass is a special-case for validate-superclass.
    That has knock-on implications on its metaclass (can't be
    built-in-class) which means we have to document an exception to
    another part of AMOP.
---
 NEWS                           |    6 ++++--
 doc/manual/beyond-ansi.texinfo |   34 ++++++++++++++++++++++++++--------
 src/pcl/defs.lisp              |    5 ++++-
 tests/mop.impure.lisp          |   11 ++++++-----
 tests/mop.pure.lisp            |    4 ++++
 5 files changed, 44 insertions(+), 16 deletions(-)

diff --git a/NEWS b/NEWS
index c26fe2c..9f7b109 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -1,7 +1,9  <at>  <at> 
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
 changes relative to sbcl-1.2.3:
(Continue reading)

stassats | 31 Aug 20:29 2014
Picon
Picon

master: Tests: don't test for package documentation without SB-DOC.

The branch "master" has been updated in SBCL:
       via  bfed509dc2d451e80912df6d5d06b1a3d60e55a2 (commit)
      from  c9db8c265aec65a8c2bdea00125c1ebcf7ef11fc (commit)

- Log -----------------------------------------------------------------
commit bfed509dc2d451e80912df6d5d06b1a3d60e55a2
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Sun Aug 31 22:28:59 2014 +0400

    Tests: don't test for package documentation without SB-DOC.

    Some recent changes made the package documentation to become NIL, not
    the previous "", which made the assertion to fail.
---
 tests/interface.pure.lisp |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/interface.pure.lisp b/tests/interface.pure.lisp
index fb58c1e..43d85f5 100644
--- a/tests/interface.pure.lisp
+++ b/tests/interface.pure.lisp
 <at>  <at>  -54,8 +54,10  <at>  <at> 
 (upgraded-array-element-type '(mod 5) nil)
 (upgraded-complex-part-type '(single-float 0.0 1.0) nil)

-;;; We should have documentation for our extension package:
-(assert (documentation (find-package "SB-EXT") t))
+#+sb-doc
+(with-test (:name :sb-ext-documentation)
+  ;;; We should have documentation for our extension package:
(Continue reading)

Douglas Katzman | 31 Aug 20:01 2014
Picon
Picon

master: Point out possible improvement to SXHASH

The branch "master" has been updated in SBCL:
       via  c9db8c265aec65a8c2bdea00125c1ebcf7ef11fc (commit)
      from  8889153625732c7c6e2064fa959094d5b1d61746 (commit)

- Log -----------------------------------------------------------------
commit c9db8c265aec65a8c2bdea00125c1ebcf7ef11fc
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Aug 31 14:00:26 2014 -0400

    Point out possible improvement to SXHASH
---
 src/code/target-sxhash.lisp |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/code/target-sxhash.lisp b/src/code/target-sxhash.lisp
index fe9ad77..6ebc113 100644
--- a/src/code/target-sxhash.lisp
+++ b/src/code/target-sxhash.lisp
 <at>  <at>  -173,6 +173,11  <at>  <at> 
 (declaim (ftype (sfunction (integer) hash) sxhash-bignum))
 (declaim (ftype (sfunction (t) hash) sxhash-instance))

+;; FIXME: a feature of this implementation is (SXHASH "FOO") = (SXHASH 'FOO)
+;;  but that is not a requirement. (in fact it is false of "NIL" and NIL)
+;;  A consequence is that tables of symbols and/or strings, or more
+;;  complex structures such as (FOO "X") and ("FOO" X),
+;;  have more collisions than they should.
 (defun sxhash (x)
   ;; profiling SXHASH is hard, but we might as well try to make it go
   ;; fast, in case it is the bottleneck somewhere.  -- CSR, 2003-03-14
(Continue reading)

Douglas Katzman | 31 Aug 19:52 2014
Picon
Picon

master: Fix some glitches regarding INTERN/FIND-SYMBOL and multiple threads.

The branch "master" has been updated in SBCL:
       via  8889153625732c7c6e2064fa959094d5b1d61746 (commit)
      from  b21cb67f3d2a28d05eb6e841a2fe373e7f587070 (commit)

- Log -----------------------------------------------------------------
commit 8889153625732c7c6e2064fa959094d5b1d61746
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Aug 31 13:50:51 2014 -0400

    Fix some glitches regarding INTERN/FIND-SYMBOL and multiple threads.

    - In a PACKAGE-HASHTABLE, store the hash vector in the last cell
      of the symbol vector so that both can be changed in one write.

    - When resizing, fill a temporary vector with existing symbols,
      then install it so that symbols don't seem to disappear and reappear.

    - Similary in EXPORT perform ADD-SYMBOL before NUKE-SYMBOL.
---
 src/code/package.lisp        |   47 +++++--------
 src/code/target-package.lisp |  156 ++++++++++++++++++++----------------------
 src/compiler/fndb.lisp       |    4 +-
 tests/packages.impure.lisp   |   36 ++++++++++
 4 files changed, 130 insertions(+), 113 deletions(-)

diff --git a/src/code/package.lisp b/src/code/package.lisp
index ae34367..ffe470a 100644
--- a/src/code/package.lisp
+++ b/src/code/package.lisp
 <at>  <at>  -35,14 +35,10  <at>  <at> 
(Continue reading)

Douglas Katzman | 31 Aug 08:04 2014
Picon
Picon

master: Add comment

The branch "master" has been updated in SBCL:
       via  b21cb67f3d2a28d05eb6e841a2fe373e7f587070 (commit)
      from  e22040a5aee2d2c92e332109e69cb6bbafea76d0 (commit)

- Log -----------------------------------------------------------------
commit b21cb67f3d2a28d05eb6e841a2fe373e7f587070
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Aug 31 02:03:34 2014 -0400

    Add comment
---
 src/code/target-package.lisp |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/code/target-package.lisp b/src/code/target-package.lisp
index df1b63d..0a599a3 100644
--- a/src/code/target-package.lisp
+++ b/src/code/target-package.lisp
 <at>  <at>  -911,6 +911,9  <at>  <at>  implementation it is ~S." *default-package-use-list*)
                       (setf (package-%locally-nicknamed-by actual)
                             (delete package (package-%locally-nicknamed-by actual)))))
                   (setf (package-%local-nicknames package) nil)
+                  ;; FIXME: lacking a way to advise UNINTERN that this package
+                  ;; is pending deletion, a large package conses successively
+                  ;; many smaller tables for no good reason.
                   (do-symbols (sym package)
                     (unintern sym package))
                   (with-package-names (names)

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

Douglas Katzman | 31 Aug 07:45 2014
Picon
Picon

master: Probably get specializing array dumping right finally.

The branch "master" has been updated in SBCL:
       via  e22040a5aee2d2c92e332109e69cb6bbafea76d0 (commit)
      from  db052f229232c007817c539616245525cd586052 (commit)

- Log -----------------------------------------------------------------
commit e22040a5aee2d2c92e332109e69cb6bbafea76d0
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Aug 31 01:39:32 2014 -0400

    Probably get specializing array dumping right finally.

    Previous fixes for dumping specialized vectors from the cross-
    compiler contained a fatal flaw: if the host lisp said that
    a vector was a SIMPLE-VECTOR, this was taken as gospel.

    Unfortunately, cross-compilation of 'octets' was in fact broken
    due to d12f5387f9da24da72cb7cb09680ccc1d507f8d5 which really
    needed (SIGNED-BYTE n) arrays to work. That no bug was reported
    could mean that nobody who builds in a Lisp that doesn't have
    (SIGNED-BYTE 16) arrays needs the CP857 or CP864 code mappers.
    But in principle, all specialized arrays were always mishandled
    if the host lisp upgraded them to T.

    There is no good way to write a unit test for this
    aside from regression tests that fail when truly cross-compiled.
---
 src/compiler/dump.lisp |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/compiler/dump.lisp b/src/compiler/dump.lisp
(Continue reading)

Douglas Katzman | 31 Aug 05:17 2014
Picon
Picon

master: Improve the OAOO-ness of DO-SYMBOLS, DO-{ALL, EXTERNAL}-SYMBOLS.

The branch "master" has been updated in SBCL:
       via  db052f229232c007817c539616245525cd586052 (commit)
      from  22e076129f27bb74781d34bacdd29bdb5400c3ba (commit)

- Log -----------------------------------------------------------------
commit db052f229232c007817c539616245525cd586052
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Aug 30 21:57:02 2014 -0400

    Improve the OAOO-ness of DO-SYMBOLS, DO-{ALL,EXTERNAL}-SYMBOLS.

    Iteration is somewhat slower, but now there are fewer places to touch
    when fixing the bug related to simultaneous FIND-SYMBOL and rehash in
    multithreaded code. Conforming code that uses these macros would not
    encounter the rehash bug, due to constraints on traversal operations,
    but a fix for the bug necessarily affects these macros.
    So the trade-off seems fair considering the unlikelihood of package
    iteration being a bottleneck in an application's performance.
---
 src/code/package.lisp      |   89 ++++++++++++--------------------------------
 tests/packages.impure.lisp |    8 ++++
 2 files changed, 32 insertions(+), 65 deletions(-)

diff --git a/src/code/package.lisp b/src/code/package.lisp
index 51860d9..ae34367 100644
--- a/src/code/package.lisp
+++ b/src/code/package.lisp
 <at>  <at>  -119,6 +119,22  <at>  <at> 
 ;; If uninterning stored 0 for the tombstone instead of NIL in the symbol
 ;; vector, we wouldn't mistake it for a genuinely present symbol.
(Continue reading)

Douglas Katzman | 31 Aug 03:15 2014
Picon
Picon

master: Remove kludge from UNINTERESTING-ORDINARY-FUNCTION-REDEFINITION-P.

The branch "master" has been updated in SBCL:
       via  22e076129f27bb74781d34bacdd29bdb5400c3ba (commit)
      from  5e7d58ea89324d9c9d852fba2fb168b58b215f1a (commit)

- Log -----------------------------------------------------------------
commit 22e076129f27bb74781d34bacdd29bdb5400c3ba
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Aug 30 21:07:45 2014 -0400

    Remove kludge from UNINTERESTING-ORDINARY-FUNCTION-REDEFINITION-P.
---
 src/code/condition.lisp |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/src/code/condition.lisp b/src/code/condition.lisp
index 1690ca4..a1c9b02 100644
--- a/src/code/condition.lisp
+++ b/src/code/condition.lisp
 <at>  <at>  -1419,9 +1419,6  <at>  <at>  handled by any other handler, it will be muffled.")

 (defun uninteresting-ordinary-function-redefinition-p (warning)
   (and
-   ;; There's garbage in various places when the first DEFUN runs in
-   ;; cold-init.
-   *cold-init-complete-p*
    (typep warning 'redefinition-with-defun)
    ;; Shared logic.
    (let ((name (redefinition-warning-name warning)))

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


Gmane