Douglas Katzman | 18 Dec 05:19 2014
Picon
Picon

master: Explain some stuff, or just complain about it

The branch "master" has been updated in SBCL:
       via  709b824ef11f43781906869a5b2ad676fc05152c (commit)
      from  dd3de9095e1c466d9ecfcf777c2ca97453f4697d (commit)

- Log -----------------------------------------------------------------
commit 709b824ef11f43781906869a5b2ad676fc05152c
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Dec 17 23:18:24 2014 -0500

    Explain some stuff, or just complain about it
---
 src/runtime/gc-common.c |    9 +++++++++
 src/runtime/gencgc.c    |    8 ++++++++
 src/runtime/validate.c  |    1 +
 3 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/src/runtime/gc-common.c b/src/runtime/gc-common.c
index c3de58d..6ecb51c 100644
--- a/src/runtime/gc-common.c
+++ b/src/runtime/gc-common.c
 <at>  <at>  -2715,6 +2715,15  <at>  <at>  looks_like_valid_lisp_pointer_p(lispobj pointer, lispobj *start_addr)
     return 1;
 }

+/* META: Note the ambiguous word "validate" in the comment below.
+ * This means "Decide whether <x> is valid".
+ * But when you see os_validate() elsewhere, that doesn't mean to ask
+ * whether something is valid, it says to *make* it valid.
+ * I think it would be nice if we could avoid using the word in the
+ * sense in which os_validate() uses it, which would entail renaming
(Continue reading)

Douglas Katzman | 18 Dec 03:09 2014
Picon
Picon

master: Make ldb not totally inept at showing UCS4-encoded pure ASCII symbols.

The branch "master" has been updated in SBCL:
       via  dd3de9095e1c466d9ecfcf777c2ca97453f4697d (commit)
      from  0c674445e3b881b6c22ee6714eeb68f58cdce6a1 (commit)

- Log -----------------------------------------------------------------
commit dd3de9095e1c466d9ecfcf777c2ca97453f4697d
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Dec 17 21:08:14 2014 -0500

    Make ldb not totally inept at showing UCS4-encoded pure ASCII symbols.

    Remotely apropos of this, Fare pointed out that we never did anything
    about http://article.gmane.org/gmane.lisp.steel-bank.devel/15022
---
 src/runtime/gc-common.c |   15 +++++++++++++++
 src/runtime/gencgc.c    |    3 ++-
 src/runtime/print.c     |   33 ++++++++++++++-------------------
 3 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/src/runtime/gc-common.c b/src/runtime/gc-common.c
index 1529892..c3de58d 100644
--- a/src/runtime/gc-common.c
+++ b/src/runtime/gc-common.c
 <at>  <at>  -3206,4 +3206,19  <at>  <at>  struct vector * instance_classoid_name(lispobj * instance)
   return lowtag_of(layout) != INSTANCE_POINTER_LOWTAG ? NULL
     : layout_classoid_name(native_pointer(layout));
 }
+void safely_show_lstring(struct vector * string, int quotes, FILE *s)
+{
+  extern void show_lstring(struct vector*, int, FILE*);
(Continue reading)

Douglas Katzman | 17 Dec 19:17 2014
Picon
Picon

master: DIGIT-CHAR-P improvement for radix > 10.

The branch "master" has been updated in SBCL:
       via  0c674445e3b881b6c22ee6714eeb68f58cdce6a1 (commit)
      from  b472f4a0af24311a6dc5cea1c6563187faf10313 (commit)

- Log -----------------------------------------------------------------
commit 0c674445e3b881b6c22ee6714eeb68f58cdce6a1
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Dec 17 13:12:08 2014 -0500

    DIGIT-CHAR-P improvement for radix > 10.

    No longer falls back to Unicode for ASCII letters that are not digits.
---
 src/code/target-char.lisp |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/code/target-char.lisp b/src/code/target-char.lisp
index 62f5f7a..437a20f 100644
--- a/src/code/target-char.lisp
+++ b/src/code/target-char.lisp
 <at>  <at>  -584,21 +584,21  <at>  <at>  argument is a lower-case character, NIL otherwise."
   #!+sb-doc
   "If char is a digit in the specified radix, returns the fixnum for which
 that digit stands, else returns NIL."
-  (let ((m (- (char-code char) 48)))
-    (declare (fixnum m))
-    (cond ((and (<= radix 10.) (<= m 79.))
-           ;; Special-case ASCII digits in decimal and smaller radices.
-           (if (and (>= m 0) (< m radix))  m  nil))
-          ;; Digits 0 - 9 are used as is, since radix is larger.
(Continue reading)

Douglas Katzman | 17 Dec 14:22 2014
Picon
Picon

master: fix display of fault_addr

The branch "master" has been updated in SBCL:
       via  b472f4a0af24311a6dc5cea1c6563187faf10313 (commit)
      from  be141f758d81f79fb3492b1363ba353a6b06fc4b (commit)

- Log -----------------------------------------------------------------
commit b472f4a0af24311a6dc5cea1c6563187faf10313
Author: Douglas Katzman <dougk <at> google.com>
Date:   Wed Dec 17 08:20:34 2014 -0500

    fix display of fault_addr
---
 src/runtime/gencgc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c
index a455bef..521e918 100644
--- a/src/runtime/gencgc.c
+++ b/src/runtime/gencgc.c
 <at>  <at>  -4573,7 +4573,7  <at>  <at>  gencgc_handle_wp_violation(void* fault_addr)
     page_index_t page_index = find_page_index(fault_addr);

 #if QSHOW_SIGNALS
-    FSHOW((stderr, "heap WP violation? fault_addr=%x, page_index=%d\n",
+    FSHOW((stderr, "heap WP violation? fault_addr=%p, page_index=%d\n",
            fault_addr, page_index));
 #endif

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

hooks/post-receive
(Continue reading)

Douglas Katzman | 16 Dec 21:11 2014
Picon
Picon

master: Workaround for lp#1383749

The branch "master" has been updated in SBCL:
       via  be141f758d81f79fb3492b1363ba353a6b06fc4b (commit)
      from  f93c213525654a052cf052805adffa372c3a7b48 (commit)

- Log -----------------------------------------------------------------
commit be141f758d81f79fb3492b1363ba353a6b06fc4b
Author: Douglas Katzman <dougk <at> google.com>
Date:   Tue Dec 16 15:06:15 2014 -0500

    Workaround for lp#1383749
---
 tests/threads.impure.lisp |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/tests/threads.impure.lisp b/tests/threads.impure.lisp
index 2638c50..c72a4da 100644
--- a/tests/threads.impure.lisp
+++ b/tests/threads.impure.lisp
 <at>  <at>  -1221,7 +1221,14  <at>  <at> 

 (format t "mutex finalization test done~%")

-(with-test (:name :backtrace)
+;; You have to shoehorn this arbitrary sexpr into a feature expression
+;; to have the test summary show that a test was disabled.
+#+gencgc
+(unless (eql (extern-alien "verify_gens" int)
+             (1+ sb-vm:+highest-normal-generation+))
+  (pushnew :verify-gens *features*))
+
(Continue reading)

Douglas Katzman | 16 Dec 17:32 2014
Picon
Picon

master: fix incorrect cast in fshow

The branch "master" has been updated in SBCL:
       via  f93c213525654a052cf052805adffa372c3a7b48 (commit)
      from  b5b574efbd34afab5fea1ec30ded3c98e7de8523 (commit)

- Log -----------------------------------------------------------------
commit f93c213525654a052cf052805adffa372c3a7b48
Author: Douglas Katzman <dougk <at> google.com>
Date:   Tue Dec 16 11:31:55 2014 -0500

    fix incorrect cast in fshow
---
 src/runtime/interrupt.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/runtime/interrupt.c b/src/runtime/interrupt.c
index b4a1dba..9ae589e 100644
--- a/src/runtime/interrupt.c
+++ b/src/runtime/interrupt.c
 <at>  <at>  -1988,8 +1988,8  <at>  <at>  install_handler(int signal, void handler(int, siginfo_t*, os_context_t*),

     block_blockable_signals(0, &old);

-    FSHOW((stderr, "/interrupt_low_level_handlers[signal]=%x\n",
-           (unsigned int)interrupt_low_level_handlers[signal]));
+    FSHOW((stderr, "/interrupt_low_level_handlers[signal]=%p\n",
+           interrupt_low_level_handlers[signal]));
     if (interrupt_low_level_handlers[signal]==0) {
         if (ARE_SAME_HANDLER(handler, SIG_DFL) ||
             ARE_SAME_HANDLER(handler, SIG_IGN))

(Continue reading)

Douglas Katzman | 16 Dec 05:49 2014
Picon
Picon

master: Fix signed vs. unsigned comparison warnings

The branch "master" has been updated in SBCL:
       via  b5b574efbd34afab5fea1ec30ded3c98e7de8523 (commit)
      from  65474ed6895f75201ba8ea99fb83423db21e41b3 (commit)

- Log -----------------------------------------------------------------
commit b5b574efbd34afab5fea1ec30ded3c98e7de8523
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Dec 15 18:05:38 2014 -0500

    Fix signed vs. unsigned comparison warnings
---
 src/runtime/gencgc.c |    2 +-
 src/runtime/search.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c
index 2658e74..a455bef 100644
--- a/src/runtime/gencgc.c
+++ b/src/runtime/gencgc.c
 <at>  <at>  -4193,7 +4193,7  <at>  <at>  gc_free_heap(void)
             gc_assert(page_free_p(page));
             gc_assert(page_table[page].bytes_used == 0);
             page_start = (sword_t *)page_address(page);
-            for (i=0; i<GENCGC_CARD_BYTES/sizeof(sword_t); i++) {
+            for (i=0; i<(long)(GENCGC_CARD_BYTES/sizeof(sword_t)); i++) {
                 if (page_start[i] != 0) {
                     lose("free region not zero at %x\n", page_start + i);
                 }
diff --git a/src/runtime/search.c b/src/runtime/search.c
index 0f6d846..c736aa0 100644
(Continue reading)

Douglas Katzman | 16 Dec 05:49 2014
Picon
Picon

master: Add comment

The branch "master" has been updated in SBCL:
       via  65474ed6895f75201ba8ea99fb83423db21e41b3 (commit)
      from  66fc1e03cb3508f4b099e63eff76ccf1d5a3943e (commit)

- Log -----------------------------------------------------------------
commit 65474ed6895f75201ba8ea99fb83423db21e41b3
Author: Douglas Katzman <dougk <at> google.com>
Date:   Mon Dec 15 16:46:35 2014 -0500

    Add comment
---
 src/code/defstruct.lisp |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/code/defstruct.lisp b/src/code/defstruct.lisp
index 9390b05..c01cf5c 100644
--- a/src/code/defstruct.lisp
+++ b/src/code/defstruct.lisp
 <at>  <at>  -1251,6 +1251,15  <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.
+  ;; On backends with interleaved raw slots, the convention of having the
+  ;; header possibly "lie" about an extra word is more of a bug than a feature.
+  ;; Because the structure base is aligned, double-word raw slots are properly
+  ;; aligned, and won't change alignment in descendant object types. It would
+  ;; be correct to store the true instance length even though GC preserves
+  ;; the extra data word (as it does for odd-length SIMPLE-VECTOR), treating
+  ;; the total physical length as rounded-to-even. But having two different
+  ;; conventions would be even more unnecessarily confusing, so we use
(Continue reading)

Douglas Katzman | 14 Dec 09:53 2014
Picon
Picon

master: Give perspicuous names to the object allocators used in Genesis.

The branch "master" has been updated in SBCL:
       via  66fc1e03cb3508f4b099e63eff76ccf1d5a3943e (commit)
      from  076c688433f58792d464a2740a3b4467f3e64e00 (commit)

- Log -----------------------------------------------------------------
commit 66fc1e03cb3508f4b099e63eff76ccf1d5a3943e
Author: Douglas Katzman <dougk <at> google.com>
Date:   Sun Dec 14 03:42:43 2014 -0500

    Give perspicuous names to the object allocators used in Genesis.

    The revised names ALLOCATE-HEADER+OBJECT and ALLOCATE-OBJECT
    do exactly what they say, irrespective of whether an object
    is thought of as boxed or unboxed.

    COLD-FDEFINITION-OBJECT was working correctly only by dumb luck;
    subtracting 1 when calling ALLOCATE-BOXED-OBJECT was wrong, because
    the boxed allocator did not add a header, but round-to-even made it
    accidentally come out right, and would not have if fdefns had an odd
    physical length because 1- would have not been rounded up.
    ALLOCATE-SYMBOL used the unboxed allocator which was just strange,
    but correct in that it did add a header to 1- the specified length.
---
 src/compiler/generic/genesis.lisp |  113 ++++++++++++++-----------------------
 1 files changed, 43 insertions(+), 70 deletions(-)

diff --git a/src/compiler/generic/genesis.lisp b/src/compiler/generic/genesis.lisp
index b7496d1..c04e316 100644
--- a/src/compiler/generic/genesis.lisp
+++ b/src/compiler/generic/genesis.lisp
(Continue reading)

stassats | 10 Dec 19:31 2014
Picon
Picon

master: Properly destructure WITH in LOOP.

The branch "master" has been updated in SBCL:
       via  076c688433f58792d464a2740a3b4467f3e64e00 (commit)
      from  58576c26524fc51b847b4cced9a1687606565bde (commit)

- Log -----------------------------------------------------------------
commit 076c688433f58792d464a2740a3b4467f3e64e00
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Wed Dec 10 21:24:20 2014 +0300

    Properly destructure WITH in LOOP.

    When transforming LOOP destructuring into DESTRUCTURING-BIND each
    sublist should start with &optional.

    Reported by Robert Strandh.
---
 NEWS                 |    1 +
 src/code/loop.lisp   |   44 +++++++++++++++++++++++++++++---------------
 tests/loop.pure.lisp |    8 ++++++++
 3 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/NEWS b/NEWS
index d52e1a9..ae23d19 100644
--- a/NEWS
+++ b/NEWS
 <at>  <at>  -12,6 +12,7  <at>  <at>  changes relative to sbcl-1.2.6:
     at compile-time when possible. (lp#330299)
   * bug fix: parsing of malformed type specifiers no longer results
     in a memory-fault-error.
+  * bug fix: LOOP properly destructures nested lists in WITH.
(Continue reading)

stassats | 9 Dec 10:46 2014
Picon
Picon

master: Fix disassembling closures.

The branch "master" has been updated in SBCL:
       via  58576c26524fc51b847b4cced9a1687606565bde (commit)
      from  1779a17f234de63aad3cea5496eedd0dfdffb842 (commit)

- Log -----------------------------------------------------------------
commit 58576c26524fc51b847b4cced9a1687606565bde
Author: Stas Boukarev <stassats <at> gmail.com>
Date:   Tue Dec 9 12:43:59 2014 +0300

    Fix disassembling closures.

    When looking for the function information GET-FUN-SEGMENTS used
    %SIMPLE-FUN-NAME to match the name, but closures are not simple funs.
    Get a simple fun before calling %simple-fun-name.
---
 src/cold/warm.lisp                |    2 +-
 src/compiler/target-disassem.lisp |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/cold/warm.lisp b/src/cold/warm.lisp
index ae3bbdd..cbaaea6 100644
--- a/src/cold/warm.lisp
+++ b/src/cold/warm.lisp
 <at>  <at>  -222,7 +222,7  <at>  <at> 
                  (print-unreadable-object (obj stream :type t :identity t)
                    (write (restart-name obj) :stream stream))))
      (with-compilation-unit ()
-       (let ((*compile-print* nil))                            
+       (let ((*compile-print* nil))
          (do-srcs pcl-srcs)))
(Continue reading)


Gmane