Planet SBCL

September 2, 2010

SBCL Commits1.0.42.24: print symbols with fully qualified names in critical places (Nikodemus Siivola)

1.0.42.24: print symbols with fully qualified names in critical places

 Patch by Attila Lendvai, lp#622789.

 Less room for package confusion this way.
  • [DH] NEWS
  • [DH] src/code/class.lisp
  • [DH] src/code/condition.lisp
  • [DH] src/code/defmacro.lisp
  • [DH] src/code/defstruct.lisp
  • [DH] src/compiler/early-c.lisp
  • [DH] src/pcl/cpl.lisp
  • [DH] src/pcl/macros.lisp
  • [DH] src/pcl/std-class.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.23: x86-64: Fix passing of unboxed complex float arguments. (Alastair Bridgewater)

1.0.42.23: x86-64: Fix passing of unboxed complex float arguments.

  * This has been broken since 1.0.27.14 (x86oid frame pointer
bias).

  * The "move-arg" VOPs for complex floats required a different
adjustment when being placed relative to the normal frame base
pointer, due to the bias, than when being placed relative to
other base pointers.  Unfortunately, a new requirement was also
added that restricted the appropriate registers for use as
frame base pointers to one, and one which would not normally be
selected, leading to "Unexpected offset" errors.

  * Removed the restriction.

  * The logic in EA-FOR-CXF-STACK is still broken: The frame bias
is only applied when the frame pointer is RSP, which will never
happen, and is not applied when the frame pointer is any other
register.  At the same time, so far as I can tell, the bias seems
to be unneccessary.

  * Bug reported by sykopomp in #lispgames.
  • [DH] src/compiler/x86-64/float.lisp
  • [DH] tests/compiler.pure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.22: x86-64: Add test case for unboxed complex float arguments. (Alastair Bridgewater)

1.0.42.22: x86-64: Add test case for unboxed complex float arguments.

  * This has been broken since 1.0.27.14.
  • [DH] tests/compiler.pure.lisp
  • [DH] version.lisp-expr
 

September 1, 2010

SBCL Commits1.0.42.21: grab-bag of Solaris related fixes (Nikodemus Siivola)

1.0.42.21: grab-bag of Solaris related fixes

 Patch by Jim Wise, lp#627581.

 * make make-doc.sh work on SunOS (due to old /bin/sh)

 * avoid the struct dirent distrust-length build issue in sb-posix

 * fix an issue in the run-program.ed test

 * add .html to .cvsignore
  • [DH] NEWS
  • [DH] contrib/sb-posix/constants.lisp
  • [DH] doc/manual/.cvsignore
  • [DH] doc/manual/Makefile
  • [DH] doc/manual/make-tempfiles.sh
  • [DH] tests/run-program.impure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.20: use platform-dependent CFLAGS consistently in tests (Nikodemus Siivola)

1.0.42.20: use platform-dependent CFLAGS consistently in tests

 Patch by Josh Elsasser, lp#615499.

 In his words:

 "Attached is a patch which moves all the duplicated, out-of-sync C
 compiler flag selection in the tests into a single wrapper script.
 When passed a flag like -sbcl-pic or -sbcl-shared, the script will
 decided if -fPIC or -shared/-bundle is needed based on SOFTWARE-TYPE
 and MACHINE-TYPE which SBCL has passed in the environment.

 I tested this on several x86 OSes and a couple PowerPC, as well as
 SunOS on SPARC and OpenBSD on x86-64. For the -sbcl-pic case I have
 verified that -fPIC is needed on OpenBSD-PowerPC, OpenBSD-X86-64,
 SunOS-SPARC and SunOS-X86; the other cases are guesses based on the
 existing reader conditionals. It is not needed on Darwin or Linux on
 PowerPC, or on any x86 OSes I tested aside from SunOS.

 I haven't verified that -arch x86_64 is actually needed on
 Darwin-X86-64, or that something like -m64 isn't needed on other
 X86-64 OSes (aside from OpenBSD)."
  • [DH] tests/foreign-stack-alignment.impure.lisp
  • [DH] tests/foreign.test.sh
  • [DH] tests/kill-non-lisp-thread.impure.lisp
  • [DH] tests/run-compiler.sh
  • [DH] tests/run-tests.lisp
  • [DH] tests/swap-lispobjs.impure.lisp
  • [DH] tests/test-util.lisp
  • [DH] tests/threads.impure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.19: make SB-CONCURRENCY more GC friendly (Nikodemus Siivola)

1.0.42.19: make SB-CONCURRENCY more GC friendly

 * Patch by "3b", lp#628098.

 * Break chains of detached nodes, so conservativism won't kill us.
  • [DH] contrib/sb-concurrency/queue.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.18: let's take that again (Nikodemus Siivola)

1.0.42.18: let's take that again

 Previous commit was supposed to have this commit message:

 "OpenBSD build fix -- signal handlers need to lead FPU control word"

 * Patch by Josh Elsasser, lp#615492.

   In his words:

   OpenBSD/amd64 recently began running signal handlers with a clean
   FPU state, making it necessary to load the floating point control
   word. The attached patch does exactly this, and works equally well
   on OpenBSD systems from both before and after the signal handler
   change was made.

   This patch is necessary to build SBCL x86-64 on recent -current
   snapshots of OpenBSD, and for the upcoming 4.8 release.

 * Committing untested, as I don't have OpenBSD handy.
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.17: better host lisp fasl-type logic (Nikodemus Siivola)

1.0.42.17: better host lisp fasl-type logic

 * Patch by Josh Elsasser, lp#615492.

   In his words:

   OpenBSD/amd64 recently began running signal handlers with a clean
   FPU state, making it necessary to load the floating point control
   word. The attached patch does exactly this, and works equally well
   on OpenBSD systems from both before and after the signal handler
   change was made.

   This patch is necessary to build SBCL x86-64 on recent -current
   snapshots of OpenBSD, and for the upcoming 4.8 release.

 * Committing untested, as I don't have OpenBSD handy.
  • [DH] NEWS
  • [DH] src/runtime/x86-64-bsd-os.c
  • [DH] src/runtime/x86-64-bsd-os.h
 

SBCL Commits1.0.42.17: better host lisp fasl-type logic (Nikodemus Siivola)

1.0.42.17: better host lisp fasl-type logic

 * Patch by "nixeagle", lp#592903.

   Use COMPILE-FILE-PATHNAME to figure out the right pathname-type.
  • [DH] src/cold/shared.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.16: better RANDOM type-error reporting (Nikodemus Siivola)

1.0.42.16: better RANDOM type-error reporting

 * Since RANDOM has an explicit check for the type, use the EXPLICIT-CHECK
   flag in the DEFKNOWN...

 * Patch by Stas Boukarev, lp#598986.
  • [DH] NEWS
  • [DH] src/compiler/fndb.lisp
  • [DH] version.lisp-expr
 

Launchpad Bugs[628098] garbage from sb-concurrency:queue is hard to collect (3b)

Affects Status Importance Assigned to Bug watch
sbcl Fix Committed Undecided -
 

SBCL Commits1.0.42.15: prevent inline expansion from creating refs to dead lambda-vars (Nikodemus Siivola)

1.0.42.15: prevent inline expansion from creating refs to dead lambda-vars

 * Fixes lp#454681.

 * Patch by Alexey. In his words, in reference to the test-case:

   (multiple-value-bind (iterator+977 getter+978)
       (does-not-exist-but-does-not-matter)
     (flet ((iterator+976 ()
              (funcall iterator+977)))
       (declare (inline iterator+976))
       (let ((iterator+976 #'iterator+976))
         (funcall iterator+976)))))

   Inline expansion of ITERATOR+976 tries to refer to a dead
   LAMBDA-VAR ITERATOR+977 of varargs entry, which was substituted
   with ITERATOR+977 of &OPTIONAL processor. Thus the referenced
   variable is dead and is not bound anywhere.

   The attached patch fixes the problem by giving up on inline
   expansion if it tries to make a reference to a dead LAMBDA-VAR,
   similar to the way dead BLOCK tags are treated.
  • [DH] NEWS
  • [DH] src/compiler/ir1tran.lisp
  • [DH] src/compiler/ir1util.lisp
  • [DH] src/compiler/node.lisp
  • [DH] tests/compiler.pure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.14: socket-connect thread safety, version 2 (Nikodemus Siivola)

1.0.42.14: socket-connect thread safety, version 2

 * Code from 1.0.40.7 to use getprotobyname_r.

 * Use grovel-features.sh to check for its and getprotobynumber_r's
   existence, and add feature :os-provides-getprotoby-r when so.

   If they do not exist, use a lock instead.
  • [DH] NEWS
  • [DH] contrib/sb-bsd-sockets/constants.lisp
  • [DH] contrib/sb-bsd-sockets/inet.lisp
  • [DH] tools-for-build/grovel-features.sh
  • [DH] tools-for-build/os-provides-getprotoby-r-test.c
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.13: update ASDF to 2.004 (Nikodemus Siivola)

1.0.42.13: update ASDF to 2.004

 * Patch by Faré Rideau, lp#605260.

   (Not quite as-is: I split the git scripting from the makefile into
    pull-asdf.sh for clarity.)
  • [DH] NEWS
  • [DH] contrib/asdf/Makefile
  • [DH] contrib/asdf/asdf.lisp
  • [DH] contrib/asdf/asdf.texinfo
  • [DH] contrib/asdf/pull-asdf.sh
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.11: reinline nested LIST and VECTOR calls in MAKE-ARRAY initial-contents (Nikodemus Siivola)

1.0.42.11: reinline nested LIST and VECTOR calls in MAKE-ARRAY initial-contents

 * Fixes lp#586105.

 * The source transform for MAKE-ARRAY makes LIST and VECTOR notinline
   so that the deftransforms can pick initial-contents and dimensions
   apart.

   However, when a list or vector in initial-contents is not part of
   the initialization structure but an actual initialization value,
   then notinline loses both performance in general, and foils nested
   DX in particular.

   So, walk the initial-contents and restore inlining for the actual
   initialization values.
  • [DH] NEWS
  • [DH] src/compiler/array-tran.lisp
  • [DH] tests/dynamic-extent.impure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.11: SB-EXT:WORD for use with ATOMIC-INCF (Nikodemus Siivola)

1.0.42.11: SB-EXT:WORD for use with ATOMIC-INCF &co

 (Symbol previously known as SB-VM:WORD.)

 * Requiring users to #+ their way to (UNSIGNED-BYTE 32) and 64 is
   just mean and brittle.
  • [DH] NEWS
  • [DH] package-data-list.lisp-expr
  • [DH] src/code/late-extensions.lisp
  • [DH] version.lisp-expr
 

August 31, 2010

Launchpad Bugs[627581] Solaris patch rollup for post-1.0.42 (Jim Wise)

Affects Status Importance Assigned to Bug watch
sbcl Fix Committed Undecided -
 

SBCL Commits1.0.42.10: guard against time travel by getrusage() (Nikodemus Siivola)

1.0.42.10: guard against time travel by getrusage()

 * Fixes lp#544421, we hope.

 * Apparently sometimes getrusage() returns a smaller value on second
   call -- this seems to happen under pretty extreme loads, mostly --
   which we want to guard against.
  • [DH] NEWS
  • [DH] src/code/gc.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.9: fix defmethod declarations for aliases of builtin classes as specializers (Nikodemus Siivola)

1.0.42.9: fix defmethod declarations for aliases of builtin classes as specializers

 * Fixes lp#618387.

 * When we have a :defined class that we want a type declaration for, don't use
   the name we used to look up the class, but the CLASS-NAME of the class.
  • [DH] NEWS
  • [DH] src/pcl/boot.lisp
  • [DH] tests/clos.impure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.8: fix build on OpenBSD/i386 -current and upcoming 4.8 release (Nikodemus Siivola)

1.0.42.8: fix build on OpenBSD/i386 -current and upcoming 4.8 release

 * Patch by Josh Elsasser, lp#615489.

 * On OpenBSD/i386, the structure that stores the FPU state during
   signals was recently moved.

   Add a script to tools-for-build/ which is run from make-config.sh
   to detect where the FPU state is located, and create a
   src/runtime/openbsd-sigcontext.h header containing a #define which
   src/runtime/x86-bsd-os.c can use.

   This is necessary to build SBCL on recent -current snapshots of
   OpenBSD, and for the upcoming 4.8 release.

 * Missing NEWS entry for last commit.
  • [DH] NEWS
  • [DH] make-config.sh
  • [DH] src/runtime/x86-bsd-os.c
  • [DH] tools-for-build/openbsd-sigcontext.sh
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.7: fix shell scripts on Solaris (and FreeBSD?) (Nikodemus Siivola)

1.0.42.7: fix shell scripts on Solaris (and FreeBSD?)

 * Patch by Josh Elsasser, lp#615497.

 * Fixes for run-sbcl.sh and tests/subr.sh on Solaris, some of which I
   believe were also necessary on FreeBSD.

 * A missing #include needed on Solaris is also added.
  • [DH] run-sbcl.sh
  • [DH] src/runtime/runtime.c
  • [DH] tests/subr.sh
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.6: fix os-provides-dladdr-test.c (Nikodemus Siivola)

1.0.42.6: fix os-provides-dladdr-test.c

  For dladdr to be present in dlfcn.h, #define _GNU_SOURCE should be
  before any includes.

  Patch by Stas Boukarev.
  • [DH] NEWS
  • [DH] tools-for-build/os-provides-dladdr-test.c
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.5: revert 1.0.42.2, "correct defknown for data-vector-ref-with-offset" (Nikodemus Siivola)

1.0.42.5: revert 1.0.42.2, "correct defknown for data-vector-ref-with-offset"

 Adjusting the defknown also requires adjusting the VOPs to accept negative
 indexes, and since I don't have time right now to audit the sign handling
 in them, I'm reverting for now.

 Saga continues on https://bugs.launchpad.net/sbcl/+bug/622958
  • [DH] NEWS
  • [DH] src/compiler/fndb.lisp
  • [DH] tests/compiler.pure.lisp
  • [DH] version.lisp-expr
 

Launchpad Bugs[627199] Can't print a waitqueue object when *print-circle* is nil (Faré)

Affects Status Importance Assigned to Bug watch
sbcl Confirmed Low -
 

August 30, 2010

Launchpad Bugs[626962] os-provides-dladdr-test linux compatibility (Stas Boukarev)

Affects Status Importance Assigned to Bug watch
sbcl Fix Committed Undecided -
 

Launchpad Bugs[626930] load.impure uses insufficiently random names for temporary files (pipping)

Affects Status Importance Assigned to Bug watch
sbcl Confirmed Low -
 

Launchpad Bugs[626912] improved install.sh (Nikodemus Siivola)

Affects Status Importance Assigned to Bug watch
sbcl Confirmed Wishlist -
 

SBCL Commits1.0.42.4: fix compiler-macros for WRITE and WRITE-TO-STRING (Nikodemus Siivola)

1.0.42.4: fix compiler-macros for WRITE and WRITE-TO-STRING

 * Based on patch by Stas Boukarev, lp#598374 and lp#581564.

 * Handle output-stream designators in WRITE.

 * Avoid name capture in WRITE-TO-STRING.
  • [DH] NEWS
  • [DH] src/code/print.lisp
  • [DH] tests/print.impure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.3: DOTIMES and non-integer counts (Nikodemus Siivola)

1.0.42.3: DOTIMES and non-integer counts

 * For non-literal non-integer counts we already did the right thing,
   but eg. literal floats slipped under the radar.

 * Patch by Roman Marynchak, lp#619393.
  • [DH] NEWS
  • [DH] src/code/defboot.lisp
  • [DH] tests/compiler.pure.lisp
  • [DH] version.lisp-expr
 

SBCL Commits1.0.42.2: correct defknown for data-vector-ref-with-offset (Nikodemus Siivola)

1.0.42.2: correct defknown for data-vector-ref-with-offset

 * If the offset is positive, the index can be negative and still
   correct.

 * Fixes lp#622958
  • [DH] NEWS
  • [DH] src/compiler/fndb.lisp
  • [DH] tests/compiler.pure.lisp
  • [DH] version.lisp-expr
 



Last updated: September 2, 2010 08:14 AM