Douglas Katzman | 1 Apr 23:40 2015
Picon
Picon

master: Warn about use of deprecated functions when loading compiled code

The branch "master" has been updated in SBCL:
       via  1e5495856c939ff987d8fd3b3e576fab4c240047 (commit)
      from  0b8ef62e3e4cc47046182469ca2bf32003f295ed (commit)

- Log -----------------------------------------------------------------
commit 1e5495856c939ff987d8fd3b3e576fab4c240047
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Apr 1 17:27:13 2015 -0400

    Warn about use of deprecated functions when loading compiled code
---
 NEWS                           |    4 ++++
 package-data-list.lisp-expr    |    2 ++
 src/code/early-extensions.lisp |   40 ++++++++++++++++++++++++++++++++++++++--
 src/code/early-fasl.lisp       |    1 +
 src/code/fop.lisp              |    3 +++
 src/code/load.lisp             |   34 ++++++++++++++++++++--------------
 tests/deprecation.impure.lisp  |   32 ++++++++++++++++++++++++++++++++
 7 files changed, 100 insertions(+), 16 deletions(-)

diff --git a/NEWS b/NEWS
index 77eed1c..84ddb97 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -5,6 +5,10  <at>  <at>  changes relative to sbcl-1.2.10:
     The dispatch table will be altered, but the new entry is disabled.
     Subsequent type-defining forms will cause pprint-dispatch tables to
     re-examine whether any disabled entries should be enabled. (lp#1429520)
+  * enhancement: Loading code containing calls to a deprecated function will,
+    under most circumstances, signal warnings similar to compiling such code.
(Continue reading)

Douglas Katzman | 1 Apr 14:21 2015
Picon
Picon

master: Refactor CALL-WITH-EACH-GLOBALDB-NAME

The branch "master" has been updated in SBCL:
       via  0b8ef62e3e4cc47046182469ca2bf32003f295ed (commit)
      from  172a24e19c02ab4ed4cc46cddd0eb8f85a6cf19f (commit)

- Log -----------------------------------------------------------------
commit 0b8ef62e3e4cc47046182469ca2bf32003f295ed
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Apr 1 08:19:36 2015 -0400

    Refactor CALL-WITH-EACH-GLOBALDB-NAME
---
 src/compiler/globaldb.lisp    |   24 +++++++++++-------------
 src/compiler/info-vector.lisp |   41 ++++++++++++++++++++++++++++-------------
 2 files changed, 39 insertions(+), 26 deletions(-)

diff --git a/src/compiler/globaldb.lisp b/src/compiler/globaldb.lisp
index 07a6af4..0ee1645 100644
--- a/src/compiler/globaldb.lisp
+++ b/src/compiler/globaldb.lisp
 <at>  <at>  -386,19 +386,17  <at>  <at> 
 ;;
 (defun call-with-each-globaldb-name (fun-designator)
   (let ((function (coerce fun-designator 'function)))
-    (dolist (package (list-all-packages))
-      (do-symbols (symbol package)
-        (when (eq (symbol-package symbol) package)
-          (let ((vector (symbol-info-vector symbol)))
-            (when vector
-              ;; Check whether SYMBOL has info for itself
-              (when (plusp (packed-info-field vector 0 0))
(Continue reading)

Douglas Katzman | 31 Mar 22:23 2015
Picon
Picon

master: Make pprint-dispatch tables resilient to uncheckable types.

The branch "master" has been updated in SBCL:
       via  172a24e19c02ab4ed4cc46cddd0eb8f85a6cf19f (commit)
      from  58db8fe72ca9ff4eaae6a5b5d5c2e0a4f7cb66cd (commit)

- Log -----------------------------------------------------------------
commit 172a24e19c02ab4ed4cc46cddd0eb8f85a6cf19f
Author: Douglas Katzman <dougk <at> google.com>
Date:   Tue Mar 31 16:09:03 2015 -0400

    Make pprint-dispatch tables resilient to uncheckable types.
---
 NEWS                      |    7 +++
 build-order.lisp-expr     |    2 +-
 src/code/pprint.lisp      |   96 +++++++++++++++++++++++++++++++++++---------
 src/compiler/early-c.lisp |    8 ++++
 tests/pprint.impure.lisp  |   43 +++++++++++++++++++-
 5 files changed, 134 insertions(+), 22 deletions(-)

diff --git a/NEWS b/NEWS
index 6e892a3..77eed1c 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -1,4 +1,11  <at>  <at> 
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
+changes relative to sbcl-1.2.10:
+  * enhancement: SET-PPRINT-DISPATCH will warn when given an expression in
+    which any part is unrecognizable as a legal type-specifier.
+    The dispatch table will be altered, but the new entry is disabled.
+    Subsequent type-defining forms will cause pprint-dispatch tables to
+    re-examine whether any disabled entries should be enabled. (lp#1429520)
(Continue reading)

Douglas Katzman | 31 Mar 21:34 2015
Picon
Picon

master: Fix meta-bug in test case.

The branch "master" has been updated in SBCL:
       via  58db8fe72ca9ff4eaae6a5b5d5c2e0a4f7cb66cd (commit)
      from  97ac48e3a9ce28f1662da3bdff4162fb7048dfcc (commit)

- Log -----------------------------------------------------------------
commit 58db8fe72ca9ff4eaae6a5b5d5c2e0a4f7cb66cd
Author: Douglas Katzman <dougk <at> google.com>
Date:   Tue Mar 31 15:33:57 2015 -0400

    Fix meta-bug in test case.
---
 tests/pprint.impure.lisp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tests/pprint.impure.lisp b/tests/pprint.impure.lisp
index edf9a9f..a139969 100644
--- a/tests/pprint.impure.lisp
+++ b/tests/pprint.impure.lisp
 <at>  <at>  -274,7 +274,7  <at>  <at> 
                   (pprint-logical-block (nil words :per-line-prefix (or a b c))
                     (pprint-fill *standard-output* (sort (copy-seq words) #'string<) nil))))
     ((or sb-ext:compiler-note warning) (c)
-      (error e))))
+      (error c))))

 (with-test (:name :pprint-logical-block-multiple-per-line-prefix-eval)
   (funcall (compile nil

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

(Continue reading)

Douglas Katzman | 31 Mar 03:02 2015
Picon
Picon

master: Use barrier where intended. Dunno why it didn't work for me before.

The branch "master" has been updated in SBCL:
       via  97ac48e3a9ce28f1662da3bdff4162fb7048dfcc (commit)
      from  7c304c1a796bcbee1d6eb06a3098868857088f16 (commit)

- Log -----------------------------------------------------------------
commit 97ac48e3a9ce28f1662da3bdff4162fb7048dfcc
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Mar 30 20:42:07 2015 -0400

    Use barrier where intended.  Dunno why it didn't work for me before.
---
 src/code/early-extensions.lisp |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/code/early-extensions.lisp b/src/code/early-extensions.lisp
index 91fd3d4..0cdace8 100644
--- a/src/code/early-extensions.lisp
+++ b/src/code/early-extensions.lisp
 <at>  <at>  -549,12 +549,9  <at>  <at> 
                                               :initial-contents '(1 0 0))))))))
       ;; It would be bad if another thread sees MAKE-ARRAY's result in the
       ;; global variable before the vector's header+length have been set.
-      ;; This is theoretically possible if the architecture allows out-of-order
-      ;; memory writes.  A barrier will prevent that, but a meta-bug prevents
-      ;; using SB!THREAD:BARRIER here. The macro isn't defined yet? (FIXME)
-      ;; Note that this bug already existed and I'm just documenting it.
-      ;; Most likely all caches are made before ever starting multiple threads.
-      (progn ; sb!thread:barrier (:write)
+      ;; Without a barrier, this would be theoretically possible if the
+      ;; architecture allows out-of-order memory writes.
(Continue reading)

Douglas Katzman | 29 Mar 17:27 2015
Picon
Picon

master: x86-64: Remove all except RAX variant of ENSURE-SYMBOL-TLS-INDEX

The branch "master" has been updated in SBCL:
       via  7c304c1a796bcbee1d6eb06a3098868857088f16 (commit)
      from  5b21bfd12d811061dea2dcfc8c252345e112f479 (commit)

- Log -----------------------------------------------------------------
commit 7c304c1a796bcbee1d6eb06a3098868857088f16
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Mar 29 00:33:37 2015 -0400

    x86-64: Remove all except RAX variant of ENSURE-SYMBOL-TLS-INDEX

    Kudos to pvk for the helpful critique.
---
 src/assembly/x86-64/alloc.lisp    |  130 +++++++++++++++++++------------------
 src/code/target-thread.lisp       |    9 ++-
 src/compiler/early-backend.lisp   |    6 ++
 src/compiler/generic/genesis.lisp |    7 +--
 src/compiler/generic/vm-fndb.lisp |    2 +-
 src/compiler/x86-64/cell.lisp     |    7 +-
 src/compiler/x86-64/subprim.lisp  |   42 ------------
 7 files changed, 84 insertions(+), 119 deletions(-)

diff --git a/src/assembly/x86-64/alloc.lisp b/src/assembly/x86-64/alloc.lisp
index adf1882..54ba73e 100644
--- a/src/assembly/x86-64/alloc.lisp
+++ b/src/assembly/x86-64/alloc.lisp
 <at>  <at>  -69,67 +69,69  <at>  <at> 
   (def r14)
   (def r15))

(Continue reading)

Douglas Katzman | 29 Mar 00:55 2015
Picon
Picon

master: Delete not-terribly-useful infinite loop.

The branch "master" has been updated in SBCL:
       via  5b21bfd12d811061dea2dcfc8c252345e112f479 (commit)
      from  972858e10f5d8533119aad78000b508711f023de (commit)

- Log -----------------------------------------------------------------
commit 5b21bfd12d811061dea2dcfc8c252345e112f479
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Mar 28 19:54:59 2015 -0400

    Delete not-terribly-useful infinite loop.
---
 src/code/target-thread.lisp |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp
index dad297b..2d0a975 100644
--- a/src/code/target-thread.lisp
+++ b/src/code/target-thread.lisp
 <at>  <at>  -1893,8 +1893,6  <at>  <at>  mechanism for inter-thread communication."
                  :info (list :write :unbound-in-thread))
           (values nil nil))))

-(defun sb!vm::locked-symbol-global-value-add (symbol-name delta)
-  (sb!vm::locked-symbol-global-value-add symbol-name delta))
 

 ;;;; Stepping

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

(Continue reading)

Douglas Katzman | 28 Mar 23:23 2015
Picon
Picon

master: x86-64: accept :LOCK prefix on INC, DEC, BTS, BTR, BTC

The branch "master" has been updated in SBCL:
       via  972858e10f5d8533119aad78000b508711f023de (commit)
      from  f3609c37df10288fe7be3721179a6f598772db03 (commit)

- Log -----------------------------------------------------------------
commit 972858e10f5d8533119aad78000b508711f023de
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Mar 28 18:22:15 2015 -0400

    x86-64: accept :LOCK prefix on INC,DEC,BTS,BTR,BTC
---
 src/compiler/x86-64/insts.lisp |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/compiler/x86-64/insts.lisp b/src/compiler/x86-64/insts.lisp
index 4895b0d..ff2940a 100644
--- a/src/compiler/x86-64/insts.lisp
+++ b/src/compiler/x86-64/insts.lisp
 <at>  <at>  -2267,18 +2267,20  <at>  <at> 

 ;;; The one-byte encodings for INC and DEC are used as REX prefixes
 ;;; in 64-bit mode so we always use the two-byte form.
-(define-instruction inc (segment dst)
+(define-instruction inc (segment dst &optional prefix)
   (:printer reg/mem ((op '(#b1111111 #b000))))
   (:emitter
+   (emit-prefix segment prefix)
    (let ((size (operand-size dst)))
      (maybe-emit-operand-size-prefix segment size)
      (maybe-emit-rex-for-ea segment dst nil)
(Continue reading)

Douglas Katzman | 28 Mar 22:42 2015
Picon
Picon

master: Pad assembly routines to double-Lispword alignment.

The branch "master" has been updated in SBCL:
       via  f3609c37df10288fe7be3721179a6f598772db03 (commit)
      from  ae488e78db637dd822a576ceb53d71ce501b51e1 (commit)

- Log -----------------------------------------------------------------
commit f3609c37df10288fe7be3721179a6f598772db03
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Mar 28 17:14:07 2015 -0400

    Pad assembly routines to double-Lispword alignment.
---
 src/assembly/assemfile.lisp |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/assembly/assemfile.lisp b/src/assembly/assemfile.lisp
index b728cec..9d86638 100644
--- a/src/assembly/assemfile.lisp
+++ b/src/assembly/assemfile.lisp
 <at>  <at>  -104,7 +104,8  <at>  <at> 
          (push (cons ',name ,name) *entry-points*)
          , <at> code
          , <at> (generate-return-sequence
-            (or (cadr (assoc :return-style options)) :raw)))
+            (or (cadr (assoc :return-style options)) :raw))
+         (emit-alignment sb!vm:n-lowtag-bits))
        (when sb!xc:*compile-print*
          (format *error-output* "~S assembled~%" ',name)))))

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

(Continue reading)

Douglas Katzman | 28 Mar 21:27 2015
Picon
Picon

master: Move *FOP-STACK* into FASL-INPUT structure.

The branch "master" has been updated in SBCL:
       via  ae488e78db637dd822a576ceb53d71ce501b51e1 (commit)
      from  c160d5532afaff22c6ad7c437dc6e1b2b6c7094b (commit)

- Log -----------------------------------------------------------------
commit ae488e78db637dd822a576ceb53d71ce501b51e1
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Mar 28 16:10:24 2015 -0400

    Move *FOP-STACK* into FASL-INPUT structure.
---
 src/code/early-fasl.lisp          |    1 +
 src/code/fop.lisp                 |   56 +++++++++++++++-----------
 src/code/load.lisp                |   37 +++++++----------
 src/code/target-load.lisp         |   23 +++++------
 src/compiler/generic/genesis.lisp |   78 ++++++++++++++++++-------------------
 5 files changed, 97 insertions(+), 98 deletions(-)

diff --git a/src/code/early-fasl.lisp b/src/code/early-fasl.lisp
index db5b181..5ee6d18 100644
--- a/src/code/early-fasl.lisp
+++ b/src/code/early-fasl.lisp
 <at>  <at>  -166,6 +166,7  <at>  <at> 
                        (:copier nil))
   (stream nil :type ansi-stream :read-only t)
   (table (make-fop-vector 1000) :type simple-vector)
+  (stack (make-fop-vector 100) :type simple-vector)
   ;; Sometimes we want to skip over any FOPs with side-effects (like
   ;; function calls) while executing other FOPs. SKIP-UNTIL will
   ;; either contain the position where the skipping will stop, or
(Continue reading)

Douglas Katzman | 28 Mar 20:28 2015
Picon
Picon

master: Don't need *COLD-FOP-FUNS* - just change *FOP-FOPS* in the xc host.

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

- Log -----------------------------------------------------------------
commit c160d5532afaff22c6ad7c437dc6e1b2b6c7094b
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sat Mar 28 15:27:38 2015 -0400

    Don't need *COLD-FOP-FUNS* - just change *FOP-FOPS* in the xc host.
---
 src/code/early-fasl.lisp          |   10 +++++-----
 src/code/fop.lisp                 |   12 ++++++------
 src/code/load.lisp                |    8 ++++----
 src/compiler/dump.lisp            |    2 +-
 src/compiler/generic/genesis.lisp |   26 +++++++++-----------------
 5 files changed, 25 insertions(+), 33 deletions(-)

diff --git a/src/code/early-fasl.lisp b/src/code/early-fasl.lisp
index 7b7c113..db5b181 100644
--- a/src/code/early-fasl.lisp
+++ b/src/code/early-fasl.lisp
 <at>  <at>  -131,24 +131,24  <at>  <at> 
 
 ;;;; the FOP database

-(declaim (simple-vector *fop-names* *fop-funs*))
+(declaim (simple-vector **fop-names** **fop-funs**))

 ;;; a vector indexed by a FaslOP that yields the FOP's name
(Continue reading)


Gmane