stassats | 26 Jul 19:22 2016
Picon
Picon

master: Fix sequence type derivation in the presence of negation types.

The branch "master" has been updated in SBCL:
       via  a6d81f1496f2dbafbcaca9d672bc91a895062e7a (commit)
      from  a2d1969e8bd6fdf56352a82af23ba22247f9dbff (commit)

- Log -----------------------------------------------------------------
commit a6d81f1496f2dbafbcaca9d672bc91a895062e7a
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Tue Jul 26 20:07:50 2016 +0300

    Fix sequence type derivation in the presence of negation types.
---
 src/code/late-type.lisp    |   11 +++++++----
 src/compiler/seqtran.lisp  |    2 +-
 src/compiler/typetran.lisp |    5 +++--
 tests/compiler.pure.lisp   |   22 +++++++++++++++++++++-
 4 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/src/code/late-type.lisp b/src/code/late-type.lisp
index b9bd188..b8df752 100644
--- a/src/code/late-type.lisp
+++ b/src/code/late-type.lisp
 <at>  <at>  -3070,7 +3070,8  <at>  <at>  used for a COMPLEX component.~: <at> >"
   (labels ((process-compound-type (types)
              (let (dimensions)
                (dolist (type types)
-                 (unless (hairy-type-p type)
+                 (unless (or (hairy-type-p type)
+                             (negation-type-p type))
                    (let ((current-dimensions (determine type)))
                      (cond ((eq current-dimensions '*)
(Continue reading)

Jan Moringen | 24 Jul 20:11 2016
Picon
Picon

master: Allow OR method combination for early generic functions

The branch "master" has been updated in SBCL:
       via  a2d1969e8bd6fdf56352a82af23ba22247f9dbff (commit)
      from  5fc41bda7f04282eb0808767cadd771a3532ef91 (commit)

- Log -----------------------------------------------------------------
commit a2d1969e8bd6fdf56352a82af23ba22247f9dbff
Author: Jan Moringen <jmoringe <at> techfak.uni-bielefeld.de>
Date:   Sun Mar 20 01:40:20 2016 +0100

    Allow OR method combination for early generic functions

    This will be needed for the generic function
    MAKE-SPECIALIZER-FORM-USING-CLASS.

    * *!GENERIC-FUNCTION-FIXUPS* now declares method combinations

    * !FIX-EARLY-GENERIC-FUNCTIONS can now handle STANDARD and OR method
      combinations

    * !BOOTSTRAP-META-BRAID "manually" creates the OR method combination
      object in addition to the STANDARD one

    * The method on COMPUTE-EFFECTIVE-METHOD for SHORT-METHOD-COMBINATION is
      now implemented by a new ordinary function
      SHORT-COMPUTE-EFFECTIVE-METHOD and created
      via *!GENERIC-FUNCTION-FIXUPS*

    This change is part of an effort to integrate the necessary extensions
    to support generalizer metaobjects [1] into SBCL's PCL.

(Continue reading)

Douglas Katzman | 20 Jul 15:45 2016
Picon
Picon

master: Tweak CANONICALIZE-WIDETAGS (formerly -HEADERS)

The branch "master" has been updated in SBCL:
       via  5fc41bda7f04282eb0808767cadd771a3532ef91 (commit)
      from  a833d4df8373d42ea359ba0e667cb56ed66b55fc (commit)

- Log -----------------------------------------------------------------
commit 5fc41bda7f04282eb0808767cadd771a3532ef91
Author: Douglas Katzman <dougk <at> google.com>
Date:   Tue Jul 19 12:18:40 2016 -0400

    Tweak CANONICALIZE-WIDETAGS (formerly -HEADERS)

    Recognize range plus a singleton as possibly a range minus one widetag,
    as in the slightly contrived example:
    (typep x '(or (simple-array (unsigned-byte 32) (*))
                  (simple-array (unsigned-byte 62) (*))
                  (simple-array (unsigned-byte 64) (*)))
    which reduces to:
      simple-array-unsigned-byte-32-widetag through
      simple-array-unsigned-byte-64-widetag inclusive,
      EXCEPT simple-array-unsigned-byte-63-widetag
---
 src/compiler/generic/early-type-vops.lisp |   42 ++++++++++++++++++-----------
 src/compiler/ppc/type-vops.lisp           |    2 +-
 src/compiler/x86-64/type-vops.lisp        |    2 +-
 src/compiler/x86/type-vops.lisp           |    2 +-
 4 files changed, 29 insertions(+), 19 deletions(-)

diff --git a/src/compiler/generic/early-type-vops.lisp b/src/compiler/generic/early-type-vops.lisp
index b28a5f9..f5b44dd 100644
--- a/src/compiler/generic/early-type-vops.lisp
(Continue reading)

stassats | 18 Jul 17:57 2016
Picon
Picon

master: sb-posix: Fix getresuid() and getresgid().

The branch "master" has been updated in SBCL:
       via  a833d4df8373d42ea359ba0e667cb56ed66b55fc (commit)
      from  6081679b3e0fb7292596f77156976ed699c77304 (commit)

- Log -----------------------------------------------------------------
commit a833d4df8373d42ea359ba0e667cb56ed66b55fc
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Mon Jul 18 18:56:30 2016 +0300

    sb-posix: Fix getresuid() and getresgid().

    The functions actually accept three arguments, not zero.
    Pass pointers to uid-t/gid-t to them, return three values.

    Fixes lp#1603806
---
 contrib/sb-posix/interface.lisp |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/contrib/sb-posix/interface.lisp b/contrib/sb-posix/interface.lisp
index 0c9c235..ac31421 100644
--- a/contrib/sb-posix/interface.lisp
+++ b/contrib/sb-posix/interface.lisp
 <at>  <at>  -280,8 +280,6  <at>  <at> 

   ;; uid, gid
   (define-call "geteuid" uid-t never-fails) ; "always successful", it says
-  #-sunos
-  (define-call "getresuid" uid-t never-fails)
   (define-call "getuid" uid-t never-fails)
(Continue reading)

Jan Moringen | 17 Jul 15:16 2016
Picon
Picon

master: New helper function CHECK-METHOD-LAMBDA

The branch "master" has been updated in SBCL:
       via  6081679b3e0fb7292596f77156976ed699c77304 (commit)
      from  180ff0c4cae960c1e9eb760a300af9bc581ba42a (commit)

- Log -----------------------------------------------------------------
commit 6081679b3e0fb7292596f77156976ed699c77304
Author: Jan Moringen <jmoringe <at> techfak.uni-bielefeld.de>
Date:   Tue Mar 15 09:53:14 2016 +0100

    New helper function CHECK-METHOD-LAMBDA

    Also fix a few typos in comments.
---
 src/pcl/boot.lisp |   25 +++++++++++++------------
 1 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/pcl/boot.lisp b/src/pcl/boot.lisp
index 8e0cdf0..a723618 100644
--- a/src/pcl/boot.lisp
+++ b/src/pcl/boot.lisp
 <at>  <at>  -306,6 +306,14  <at>  <at>  generic function lambda list ~S~:>"
       ;; no defaults or supplied-p vars allowed for &OPTIONAL or &KEY
       (verify-each-atom-or-singleton '&optional optional)
       (verify-each-atom-or-singleton '&key keys))))
+
+(defun check-method-lambda (method-lambda context)
+  (unless (typep method-lambda '(cons (eql lambda)))
+    (error "~ <at> <The METHOD-LAMBDA argument to ~
+            ~/sb-impl:print-symbol-with-prefix/, ~S, is not a lambda ~
+            form.~ <at> :>"
(Continue reading)

Jan Moringen | 17 Jul 15:16 2016
Picon
Picon

master: Simplify MAKE-METHOD-FUNCTION, !EARLY-MAKE-A-METHOD

The branch "master" has been updated in SBCL:
       via  180ff0c4cae960c1e9eb760a300af9bc581ba42a (commit)
      from  b9e5bce921ea746b1d0b4b745386f2d42a54fc65 (commit)

- Log -----------------------------------------------------------------
commit 180ff0c4cae960c1e9eb760a300af9bc581ba42a
Author: Jan Moringen <jmoringe <at> techfak.uni-bielefeld.de>
Date:   Fri Jul 3 22:53:02 2015 +0200

    Simplify MAKE-METHOD-FUNCTION, !EARLY-MAKE-A-METHOD
---
 src/pcl/boot.lisp |  107 +++++++++++++++++++++++++----------------------------
 1 files changed, 50 insertions(+), 57 deletions(-)

diff --git a/src/pcl/boot.lisp b/src/pcl/boot.lisp
index 486884a..8e0cdf0 100644
--- a/src/pcl/boot.lisp
+++ b/src/pcl/boot.lisp
 <at>  <at>  -80,14 +80,13  <at>  <at>  bootstrapping.
 ;;; early definition. Do this in a way that makes sure that if we
 ;;; redefine one of the early definitions the redefinition will take
 ;;; effect. This makes development easier.
-(dolist (fns *!early-functions*)
-  (let ((name (car fns))
-        (early-name (cadr fns)))
-    (setf (gdefinition name)
-            (set-fun-name
-             (lambda (&rest args)
-               (apply (fdefinition early-name) args))
-             name))))
(Continue reading)

Jan Moringen | 17 Jul 14:51 2016
Picon
Picon

master: Simplify COMPUTE-PV, PV-WRAPPERS-FROM-PV-ARGS

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

- Log -----------------------------------------------------------------
commit b9e5bce921ea746b1d0b4b745386f2d42a54fc65
Author: Jan Moringen <jmoringe <at> techfak.uni-bielefeld.de>
Date:   Sun Jul 17 14:02:45 2016 +0200

    Simplify COMPUTE-PV, PV-WRAPPERS-FROM-PV-ARGS
---
 src/pcl/vector.lisp |   45 ++++++++++++++++++++-------------------------
 1 files changed, 20 insertions(+), 25 deletions(-)

diff --git a/src/pcl/vector.lisp b/src/pcl/vector.lisp
index 207ddbb..c17d9a5 100644
--- a/src/pcl/vector.lisp
+++ b/src/pcl/vector.lisp
 <at>  <at>  -91,28 +91,23  <at>  <at> 
              new-value)))

 (defun compute-pv (slot-name-lists wrappers)
-  (let ((wrappers (ensure-list wrappers))
-        elements)
-    (dolist (slot-names slot-name-lists)
-      (when slot-names
-        (let* ((wrapper (pop wrappers))
-               (std-p (layout-for-std-class-p wrapper))
-               (class (wrapper-class* wrapper)))
-          (dolist (slot-name slot-names)
(Continue reading)

Jan Moringen | 17 Jul 14:51 2016
Picon
Picon

master: Remove leading NIL from slot name lists

The branch "master" has been updated in SBCL:
       via  0038790653e05feb0d87384845edadd6dade29b8 (commit)
      from  65bde5f7f8441385ade6c1c3ce8aa1b8a5f9d9d0 (commit)

- Log -----------------------------------------------------------------
commit 0038790653e05feb0d87384845edadd6dade29b8
Author: Jan Moringen <jmoringe <at> techfak.uni-bielefeld.de>
Date:   Sat Jul 16 19:40:39 2016 +0200

    Remove leading NIL from slot name lists

    A FIXME comment said:

      NIL at the head of the list is a remnant from old purged code, that
      hasn't been quite cleaned up yet.

    Changed producers of such lists:

    * SLOT-NAME-LISTS-FROM-SLOTS
    * MAKE-STD-{WRITER,READER,BOUNDP}-METHOD-FUNCTION

    Changed consumers:

    * INTERN-PV-TABLE
    * COMPUTE-PV
---
 src/pcl/slots-boot.lisp |   12 ++++++------
 src/pcl/vector.lisp     |   13 +++----------
 2 files changed, 9 insertions(+), 16 deletions(-)

(Continue reading)

Jan Moringen | 17 Jul 14:51 2016
Picon
Picon

master: Use STABLE-SORT instead of SORT when sorting slot name lists

The branch "master" has been updated in SBCL:
       via  2d2a267b5a2ce7db080574d7de6b8088f3ffef84 (commit)
      from  0038790653e05feb0d87384845edadd6dade29b8 (commit)

- Log -----------------------------------------------------------------
commit 2d2a267b5a2ce7db080574d7de6b8088f3ffef84
Author: Jan Moringen <jmoringe <at> techfak.uni-bielefeld.de>
Date:   Sun Jul 17 13:16:28 2016 +0200

    Use STABLE-SORT instead of SORT when sorting slot name lists

    Sorting slot name lists is intended to reduce the number of interned
    permutation vectors. After 93b0a4e, the sort predicate no longer takes
    symbol packages into account. Thus, SORT may produce any permutation for
    identically named symbols with different home packages. Using
    STABLE-SORT improves this a bit by at least keeping the original order.

    Suggested-by: Douglas Katzman <dougk <at> google.com>
---
 src/pcl/vector.lisp |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/pcl/vector.lisp b/src/pcl/vector.lisp
index 05796a3..207ddbb 100644
--- a/src/pcl/vector.lisp
+++ b/src/pcl/vector.lisp
 <at>  <at>  -555,7 +555,8  <at>  <at> 
 (defun sort-slots (slots)
   (mapcar (lambda (parameter-entry)
             (destructuring-bind (name . entries) parameter-entry
(Continue reading)

Jan Moringen | 17 Jul 14:51 2016
Picon
Picon

master: Simplify MAKE-STD-{WRITER, READER, BOUNDP}-METHOD-FUNCTION

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

- Log -----------------------------------------------------------------
commit 2bcdc1c8c8d58784b5d6d45790e87930d3cf0d75
Author: Jan Moringen <jmoringe <at> techfak.uni-bielefeld.de>
Date:   Sat Jul 16 19:42:20 2016 +0200

    Simplify MAKE-STD-{WRITER,READER,BOUNDP}-METHOD-FUNCTION
---
 src/pcl/slots-boot.lisp |  154 ++++++++++++++++++++++-------------------------
 1 files changed, 72 insertions(+), 82 deletions(-)

diff --git a/src/pcl/slots-boot.lisp b/src/pcl/slots-boot.lisp
index a6d4745..db98013 100644
--- a/src/pcl/slots-boot.lisp
+++ b/src/pcl/slots-boot.lisp
 <at>  <at>  -432,90 +432,80  <at>  <at> 
         class-or-name
         (find-class class-or-name nil))))

-(defun make-std-reader-method-function (class-or-name slot-name)
-  (ecase (slot-access-strategy (maybe-class class-or-name) slot-name 'reader t)
-    (:standard
-     (let* ((initargs (copy-tree
-                       (make-method-function
-                        (lambda (instance)
-                          (pv-binding1 ((bug "Please report this")
-                                        (instance) (instance-slots))
(Continue reading)

Douglas Katzman | 15 Jul 00:54 2016
Picon
Picon

master: x86-64: put vector widetag and maybe length w/byte-sized store

The branch "master" has been updated in SBCL:
       via  65bde5f7f8441385ade6c1c3ce8aa1b8a5f9d9d0 (commit)
      from  dc0591cc8c460375ab6c123dcb90e586518cba78 (commit)

- Log -----------------------------------------------------------------
commit 65bde5f7f8441385ade6c1c3ce8aa1b8a5f9d9d0
Author: Douglas Katzman <dougk <at> google.com>
Date:   Thu Jul 14 18:44:12 2016 -0400

    x86-64: put vector widetag and maybe length w/byte-sized store
---
 src/compiler/x86-64/alloc.lisp  |   50 ++++++++++++++++++++++++++++----------
 src/compiler/x86-64/macros.lisp |   15 +++++------
 2 files changed, 44 insertions(+), 21 deletions(-)

diff --git a/src/compiler/x86-64/alloc.lisp b/src/compiler/x86-64/alloc.lisp
index 576c7db..dfdb734 100644
--- a/src/compiler/x86-64/alloc.lisp
+++ b/src/compiler/x86-64/alloc.lisp
 <at>  <at>  -68,6 +68,31  <at>  <at> 
 
 ;;;; special-purpose inline allocators

+;;; Special variant of 'storew' which might have a shorter encoding
+;;; when storing to the heap (which starts out zero-filled).
+(defun storew* (word object slot lowtag zeroed)
+  (if (or (not zeroed) (not (typep word '(signed-byte 32))))
+      (storew word object slot lowtag) ; Possibly use temp-reg-tn
+      (inst mov
+            (make-ea (cond ((typep word '(unsigned-byte 8)) :byte)
(Continue reading)


Gmane