stassats | 25 Jun 00:05 2016
Picon
Picon

master: Fix a typo in NEWS.

The branch "master" has been updated in SBCL:
       via  978deba6e2fd2b7256f197e17381a3a6c2bc4450 (commit)
      from  f6134f3e69b84d168d3b873a78cfb020e8c1aa60 (commit)

- Log -----------------------------------------------------------------
commit 978deba6e2fd2b7256f197e17381a3a6c2bc4450
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Sat Jun 25 01:04:43 2016 +0300

    Fix a typo in NEWS.
---
 NEWS |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index 915688d..578c09f 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -2,14 +2,14  <at>  <at> 

 changes relative to sbcl-1.3.6:
   * optimization: faster operations on list-sets.
-  * optimization: better type derivition of set functions.
+  * optimization: better type derivation of set functions.
     (lp#1592152)

 changes in sbcl-1.3.6 relative to sbcl-1.3.5:
   * bug fix: do not insert conditional newlines in print-unreadable-object
     (lp#1398290). This reverses a change made in lp#488979 which reversed
     a fix advertised in release 0.8.14 to pass the GCL ANSI Test Suite.
(Continue reading)

stassats | 23 Jun 02:17 2016
Picon
Picon

master: Slightly optimize APPEND.

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

- Log -----------------------------------------------------------------
commit f6134f3e69b84d168d3b873a78cfb020e8c1aa60
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Thu Jun 23 03:01:04 2016 +0300

    Slightly optimize APPEND.

    Use &more instead of a dynamic-extent &rest.
---
 src/code/list.lisp |   65 ++++++++++++++++++++-------------------------------
 1 files changed, 26 insertions(+), 39 deletions(-)

diff --git a/src/code/list.lisp b/src/code/list.lisp
index 14bcd5e..82e265f 100644
--- a/src/code/list.lisp
+++ b/src/code/list.lisp
 <at>  <at>  -384,54 +384,41  <at>  <at> 
 (defun append (&rest lists)
   #!+sb-doc
   "Construct a new list by concatenating the list arguments"
-  (declare (truly-dynamic-extent lists) (optimize speed))
-  (labels ((fail (object)
-             (error 'type-error
-                    :datum object
-                    :expected-type 'list))
-           (append-into (last-cons current rest)
(Continue reading)

stassats | 23 Jun 02:17 2016
Picon
Picon

master: Micro-optimize type-check-error/word on x86-64.

The branch "master" has been updated in SBCL:
       via  74bc14754e7291c424cd237ce5bbe09e05b6f61f (commit)
      from  63cc64af992b229b7925ab6ba91d77747b8de0fc (commit)

- Log -----------------------------------------------------------------
commit 74bc14754e7291c424cd237ce5bbe09e05b6f61f
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Thu Jun 23 01:52:22 2016 +0300

    Micro-optimize type-check-error/word on x86-64.

    ERROR-CALL can accept constants.
---
 src/compiler/x86-64/call.lisp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/compiler/x86-64/call.lisp b/src/compiler/x86-64/call.lisp
index bd147b3..b072362 100644
--- a/src/compiler/x86-64/call.lisp
+++ b/src/compiler/x86-64/call.lisp
 <at>  <at>  -1345,7 +1345,7  <at>  <at> 
   (:args (object :scs (signed-reg unsigned-reg))
          ;; Types are trees of symbols, so 'any-reg' is not
          ;; really possible.
-         (type :scs (any-reg descriptor-reg)))
+         (type :scs (any-reg descriptor-reg constant)))
   (:arg-types untagged-num *)
   (:vop-var vop)
   (:save-p :compute-only)

(Continue reading)

stassats | 23 Jun 02:17 2016
Picon
Picon

master: Remove a commented out version of COERCE.

The branch "master" has been updated in SBCL:
       via  5b5fe384bb0cac6b81f887b24054323c322c255c (commit)
      from  74bc14754e7291c424cd237ce5bbe09e05b6f61f (commit)

- Log -----------------------------------------------------------------
commit 5b5fe384bb0cac6b81f887b24054323c322c255c
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Thu Jun 23 01:56:37 2016 +0300

    Remove a commented out version of COERCE.

    It's been there for 15 years, it's time for it to go.
---
 src/code/coerce.lisp |   69 --------------------------------------------------
 1 files changed, 0 insertions(+), 69 deletions(-)

diff --git a/src/code/coerce.lisp b/src/code/coerce.lisp
index 9fb09a3..485323f 100644
--- a/src/code/coerce.lisp
+++ b/src/code/coerce.lisp
 <at>  <at>  -261,72 +261,3  <at>  <at> 
         (t
          (coerce-error))))))

-;;; new version, which seems as though it should be better, but which
-;;; does not yet work
-#+nil
-(defun coerce (object output-type-spec)
-  #!+sb-doc
-  "Coerces the Object to an object of type Output-Type-Spec."
(Continue reading)

Martin Cracauer | 22 Jun 22:19 2016
Picon
Picon

master: Fix comment about *code-coverage-info*.

The branch "master" has been updated in SBCL:
       via  63cc64af992b229b7925ab6ba91d77747b8de0fc (commit)
      from  f85a8cf0d1fb6e8c7b258e898b7af3233713e0b9 (commit)

- Log -----------------------------------------------------------------
commit 63cc64af992b229b7925ab6ba91d77747b8de0fc
Author: Samuel Freilich <sfreilich <at> google.com>
Date:   Wed Jun 22 16:15:40 2016 -0400

    Fix comment about *code-coverage-info*.

    *code-coverage-info* uses +code-coverage-unmarked+, not nil, to
    indicate the state of a path that has not been visited. The
    instrumentation generating code marks those records as constant to
    ensure that multiple records for the same location get coalesced (the
    instrumentation code subsequently modifies them anyways, suppressing
    the warning about modifying a constant value). Because of that, it's
    important that well-behaved user code won't contain any constant
    lists that are coincidentally equivalent to (cons path state), where
    path is a list of fixnums.

    (cracauer commit on behalf of Sam)
---
 src/compiler/main.lisp |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/compiler/main.lisp b/src/compiler/main.lisp
index 4458a5c..3932323 100644
--- a/src/compiler/main.lisp
+++ b/src/compiler/main.lisp
(Continue reading)

stassats | 22 Jun 18:30 2016
Picon
Picon

master: Optimize ECASE/ETYPECASE expansion.

The branch "master" has been updated in SBCL:
       via  f85a8cf0d1fb6e8c7b258e898b7af3233713e0b9 (commit)
      from  ce9654358c2c715a6bfd698fb8ed74ea3ee1e5da (commit)

- Log -----------------------------------------------------------------
commit f85a8cf0d1fb6e8c7b258e898b7af3233713e0b9
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Wed Jun 22 17:14:24 2016 +0300

    Optimize ECASE/ETYPECASE expansion.

    Instead of using a single case-failure function use two, ecase-failure
    and etypecase-failure, which results in more compact code.
---
 package-data-list.lisp-expr |    3 ++-
 src/code/macros.lisp        |   31 +++++++++++++++++--------------
 src/code/target-error.lisp  |   16 +++++++++++-----
 src/compiler/fndb.lisp      |    2 +-
 4 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/package-data-list.lisp-expr b/package-data-list.lisp-expr
index 0ba8c46..0d357a9 100644
--- a/package-data-list.lisp-expr
+++ b/package-data-list.lisp-expr
 <at>  <at>  -2087,7 +2087,8  <at>  <at>  is a good idea, but see SB-SYS re. blurring of boundaries."
                ;; symbols from former SB!CONDITIONS
                "*HANDLER-CLUSTERS*" "*RESTART-CLUSTERS*"

-               "CASE-FAILURE" "NAMESTRING-PARSE-ERROR"
+               "CASE-FAILURE" "ECASE-FAILURE" "ETYPECASE-FAILURE"
(Continue reading)

Douglas Katzman | 22 Jun 15:23 2016
Picon
Picon

master: Unbreak non-threaded x86, and use less #![-+]

The branch "master" has been updated in SBCL:
       via  ce9654358c2c715a6bfd698fb8ed74ea3ee1e5da (commit)
      from  06499489a11c43c22286a2ccb233558476725a57 (commit)

- Log -----------------------------------------------------------------
commit ce9654358c2c715a6bfd698fb8ed74ea3ee1e5da
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Jun 22 09:19:17 2016 -0400

    Unbreak non-threaded x86, and use less #![-+]
---
 src/compiler/x86/macros.lisp |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/compiler/x86/macros.lisp b/src/compiler/x86/macros.lisp
index f5a682f..68223bd 100644
--- a/src/compiler/x86/macros.lisp
+++ b/src/compiler/x86/macros.lisp
 <at>  <at>  -93,10 +93,6  <at>  <at> 
            (ash symbol-value-slot word-shift)
            (- other-pointer-lowtag))))

-(defmacro tls-index-of (symbol)
-  `(make-ea-for-object-slot ,symbol ,sb!vm:symbol-tls-index-slot
-                            ,other-pointer-lowtag))
-
 (defmacro load-symbol-value (reg symbol)
   `(inst mov ,reg (make-ea-for-symbol-value ,symbol)))

 <at>  <at>  -104,6 +100,10  <at>  <at> 
(Continue reading)

stassats | 22 Jun 14:49 2016
Picon
Picon

master: Add (optimize allow-non-returning-tail-call) to ERROR wrappers.

The branch "master" has been updated in SBCL:
       via  06499489a11c43c22286a2ccb233558476725a57 (commit)
      from  bc6e1832bcdb4bdf336d2d9e1b174eb847a206e4 (commit)

- Log -----------------------------------------------------------------
commit 06499489a11c43c22286a2ccb233558476725a57
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Wed Jun 22 15:23:21 2016 +0300

    Add (optimize allow-non-returning-tail-call) to ERROR wrappers.

    For better backtraces.
---
 package-data-list.lisp-expr         |    5 +-
 src/code/array.lisp                 |    4 +
 src/code/coerce.lisp                |    2 +
 src/code/early-extensions.lisp      |    4 +
 src/code/early-type.lisp            |    1 +
 src/code/fd-stream.lisp             |    5 ++
 src/code/host-c-call.lisp           |    1 +
 src/code/interr.lisp                |    1 +
 src/code/loop.lisp                  |    1 +
 src/code/module.lisp                |    1 +
 src/code/reader.lisp                |    4 +
 src/code/seq.lisp                   |  127 ++++++++++++++++++-----------------
 src/code/target-char.lisp           |    1 +
 src/code/target-error.lisp          |    2 +
 src/compiler/parse-lambda-list.lisp |    4 +-
 src/pcl/gray-streams.lisp           |    2 +
 16 files changed, 99 insertions(+), 66 deletions(-)
(Continue reading)

stassats | 22 Jun 05:09 2016
Picon
Picon

master: Declare a type in %set-fill-pointer.

The branch "master" has been updated in SBCL:
       via  bc6e1832bcdb4bdf336d2d9e1b174eb847a206e4 (commit)
      from  4302c37afbc2b0794f65c7ed0a1d0bdc05cdf595 (commit)

- Log -----------------------------------------------------------------
commit bc6e1832bcdb4bdf336d2d9e1b174eb847a206e4
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Wed Jun 22 05:58:43 2016 +0300

    Declare a type in %set-fill-pointer.
---
 src/code/array.lisp |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/code/array.lisp b/src/code/array.lisp
index 45f186b..32074b3 100644
--- a/src/code/array.lisp
+++ b/src/code/array.lisp
 <at>  <at>  -1073,7 +1073,8  <at>  <at>  of specialized arrays is supported."
       (fill-pointer-error vector)))

 (defun %set-fill-pointer (vector new)
-  (declare (explicit-check))
+  (declare (explicit-check)
+           (index new))
   (flet ((oops (x)
            (fill-pointer-error vector x)))
     (cond ((not (array-has-fill-pointer-p vector))

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

stassats | 22 Jun 05:09 2016
Picon
Picon

master: Optimize array-dimensions.

The branch "master" has been updated in SBCL:
       via  4302c37afbc2b0794f65c7ed0a1d0bdc05cdf595 (commit)
      from  9c92f855111ad56df24fff3d31324d1268ffa383 (commit)

- Log -----------------------------------------------------------------
commit 4302c37afbc2b0794f65c7ed0a1d0bdc05cdf595
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Wed Jun 22 05:42:38 2016 +0300

    Optimize array-dimensions.
---
 src/code/array.lisp |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/code/array.lisp b/src/code/array.lisp
index 3ae584a..45f186b 100644
--- a/src/code/array.lisp
+++ b/src/code/array.lisp
 <at>  <at>  -996,12 +996,15  <at>  <at>  of specialized arrays is supported."
 (defun array-dimensions (array)
   #!+sb-doc
   "Return a list whose elements are the dimensions of the array"
-  (declare (array array))
-  (if (array-header-p array)
-      (do ((results nil (cons (array-dimension array index) results))
-           (index (1- (array-rank array)) (1- index)))
-          ((minusp index) results))
-      (list (array-dimension array 0))))
+  (declare (explicit-check))
+  (cond ((array-header-p array)
(Continue reading)

stassats | 22 Jun 04:34 2016
Picon
Picon

master: Declare the return type of %ARRAY-RANK as ARRAY-RANK.

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

- Log -----------------------------------------------------------------
commit 9c92f855111ad56df24fff3d31324d1268ffa383
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Wed Jun 22 05:27:11 2016 +0300

    Declare the return type of %ARRAY-RANK as ARRAY-RANK.
---
 src/compiler/generic/vm-fndb.lisp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/compiler/generic/vm-fndb.lisp b/src/compiler/generic/vm-fndb.lisp
index cbfbf82..936af2a 100644
--- a/src/compiler/generic/vm-fndb.lisp
+++ b/src/compiler/generic/vm-fndb.lisp
 <at>  <at>  -136,7 +136,7  <at>  <at> 
   (flushable))
 (defknown %set-array-dimension (t index index) index
   ())
-(defknown %array-rank (t) index
+(defknown %array-rank (t) array-rank
   (flushable))

 (defknown %make-instance (index) instance

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

(Continue reading)


Gmane