Planet SBCL

June 15, 2013

Launchpad Bugs[1191267] Pretty printing quasiquoted forms not pretty

Affects Status Importance Assigned to Bug watch
sbcl New Undecided -
 

June 10, 2013

Launchpad Bugs[1189650] 1.1.8 doesn't compile on debian 7.0 with sbcl 1.0.57

Affects Status Importance Assigned to Bug watch
sbcl Invalid Undecided -
 

Launchpad Bugs[1189568] Float truncate generates redundant machine code

Affects Status Importance Assigned to Bug watch
sbcl New Undecided -
 

June 9, 2013

Launchpad Bugs[1189146] Building manual fails with recent texinfo

Affects Status Importance Assigned to Bug watch
sbcl New Undecided -
 

Launchpad Bugs[1189119] Loop destructuring default values and declarations

Affects Status Importance Assigned to Bug watch
sbcl Triaged Low -
 

June 6, 2013

Launchpad Bugs[1188289] sb-concurrency fails self-tests on Windows

Affects Status Importance Assigned to Bug watch
sbcl New Undecided -
 

SBCL CommitsSimplify getting the contents of assembler segments.

Simplify getting the contents of assembler segments.

Extend FINALIZE-SEGMENT to compact the segment's buffer and provide an
exported function to get at this buffer. This resolves an old KLUDGE
noted at ON-SEGMENT-CONTENTS-VECTORLY, making this function unnecessary.

There are several benefits to this change: First, the consumers of
assembler segment's contents, like WRITE-SEGMENT-CONTENTS which is used
for example during FASL dumping, or MAKE-CORE-COMPONENT, now call
WRITE-SEQUENCE respectively COPY-BYTE-VECTOR-TO-SYSTEM-AREA only once
per segment and not once per the pieces of the segment's contents that
ON-SEGMENT-CONTENTS-VECTORLY provided, which makes for less overhead.

Second, this allows to greatly simplify the whole operation of
DISASSEMBLE-ASSEM-SEGMENT, in the course deleting several helpers of it.
So far this repartitioned the pieces of the segment's contents from
ON-SEGMENT-CONTENTS-VECTORLY, while caring not to split the contents
inside instructions, which needed a sizable amount of code. Now the
segment's contents are simply disassembled as a whole. Also, the old
code (specifically SEGMENT-OVERFLOW) didn't take prefix instructions
into account correctly which surfaced as the bug in lp#1085729.

Fixes lp#1085729.

Also, fix an unrelated typo in NEWS.
  • [DH] NEWS
  • [DH] package-data-list.lisp-expr
  • [DH] src/compiler/assem.lisp
  • [DH] src/compiler/generic/target-core.lisp
  • [DH] src/compiler/target-disassem.lisp
 

June 5, 2013

SBCL CommitsStop exporting unused symbols.

Stop exporting unused symbols.
  • [DH] contrib/sb-bsd-sockets/defpackage.lisp
  • [DH] contrib/sb-introspect/introspect.lisp
  • [DH] package-data-list.lisp-expr
  • [DH] src/code/bignum.lisp
  • [DH] src/compiler/fndb.lisp
  • [DH] src/compiler/generic/vm-fndb.lisp
  • [DH] src/compiler/ppc/parms.lisp
  • [DH] src/compiler/sparc/parms.lisp
  • [DH] src/compiler/x86/parms.lisp
 

SBCL CommitsFactor out read-var-integer into a function.

Factor out read-var-integer into a function.

read-var-integer macro is used quite a number of times, expand the
macro into a SETF, which calls %read-var-integer, which does actual
reading. Reduces the core size by 65KB on x86-64.
  • [DH] src/code/debug-var-io.lisp
  • [DH] src/compiler/target-disassem.lisp
 

Launchpad Bugs[1187879] Unhandled error in test dynamic-extent.impure.lisp/CONSERVATIVE-NESTED-DX

Affects Status Importance Assigned to Bug watch
sbcl Confirmed Undecided -
 

SBCL CommitsGet rid of vm-support-routines indirection.

Get rid of vm-support-routines indirection.

VM routines were defined using two functions, one calling another
through structure slots. This is unnecessary, removing leads to a
~200KB core size reduction on x86-64.
  • [DH] package-data-list.lisp-expr
  • [DH] src/assembly/alpha/support.lisp
  • [DH] src/assembly/hppa/support.lisp
  • [DH] src/assembly/mips/support.lisp
  • [DH] src/assembly/ppc/support.lisp
  • [DH] src/assembly/sparc/support.lisp
  • [DH] src/assembly/x86-64/support.lisp
  • [DH] src/assembly/x86/support.lisp
  • [DH] src/compiler/alpha/c-call.lisp
  • [DH] src/compiler/alpha/call.lisp
  • [DH] src/compiler/alpha/nlx.lisp
  • [DH] src/compiler/alpha/pred.lisp
  • [DH] src/compiler/alpha/vm.lisp
  • [DH] src/compiler/backend.lisp
  • [DH] src/compiler/generic/late-nlx.lisp
  • [DH] src/compiler/generic/primtype.lisp
  • [DH] src/compiler/hppa/c-call.lisp
  • [DH] src/compiler/hppa/call.lisp
  • [DH] src/compiler/hppa/insts.lisp
  • [DH] src/compiler/hppa/nlx.lisp
  • [DH] src/compiler/hppa/pred.lisp
  • [DH] src/compiler/hppa/vm.lisp
  • [DH] src/compiler/mips/c-call.lisp
  • [DH] src/compiler/mips/call.lisp
  • [DH] src/compiler/mips/insts.lisp
  • [DH] src/compiler/mips/nlx.lisp
  • [DH] src/compiler/mips/pred.lisp
  • [DH] src/compiler/mips/vm.lisp
  • [DH] src/compiler/ppc/c-call.lisp
  • [DH] src/compiler/ppc/call.lisp
  • [DH] src/compiler/ppc/insts.lisp
  • [DH] src/compiler/ppc/nlx.lisp
  • [DH] src/compiler/ppc/pred.lisp
  • [DH] src/compiler/ppc/vm.lisp
  • [DH] src/compiler/sparc/c-call.lisp
  • [DH] src/compiler/sparc/call.lisp
  • [DH] src/compiler/sparc/insts.lisp
  • [DH] src/compiler/sparc/nlx.lisp
  • [DH] src/compiler/sparc/pred.lisp
  • [DH] src/compiler/sparc/vm.lisp
  • [DH] src/compiler/x86-64/c-call.lisp
  • [DH] src/compiler/x86-64/call.lisp
  • [DH] src/compiler/x86-64/nlx.lisp
  • [DH] src/compiler/x86-64/pred.lisp
  • [DH] src/compiler/x86-64/vm.lisp
  • [DH] src/compiler/x86/c-call.lisp
  • [DH] src/compiler/x86/call.lisp
  • [DH] src/compiler/x86/nlx.lisp
  • [DH] src/compiler/x86/pred.lisp
  • [DH] src/compiler/x86/vm.lisp
  • [DH] tests/vm.before-xc.lisp
 

SBCL CommitsOptimize (mod FIXNUM) type-checks on x86oids.

Optimize (mod FIXNUM) type-checks on x86oids.

Instead of two (and (>= x 0) (< x FIXNUM)) comparisons, do one
unsigned.
(mod power-of-two) is further optimized by doing one mask test
determine the range and fixnumness in one go.
  • [DH] NEWS
  • [DH] package-data-list.lisp-expr
  • [DH] src/code/interr.lisp
  • [DH] src/compiler/generic/interr.lisp
  • [DH] src/compiler/generic/vm-type.lisp
  • [DH] src/compiler/ir2tran.lisp
  • [DH] src/compiler/x86-64/type-vops.lisp
  • [DH] src/compiler/x86/type-vops.lisp
 

SBCL Commitssb-bsd-sockets: More robust inet-socket-bind test on Windows.

sb-bsd-sockets: More robust inet-socket-bind test on Windows.

Nested unwind-protects aren't supported on Windows.
  • [DH] contrib/sb-bsd-sockets/tests.lisp
 

June 4, 2013

SBCL Commitssb-bsd-socket tests: don't listen on a predefined port.

sb-bsd-socket tests: don't listen on a predefined port.

Listening on 1974 prevents from building contribs in parallel.
  • [DH] NEWS
  • [DH] contrib/sb-bsd-sockets/tests.lisp
 

SBCL Commitsfix CL case conversions of characters involving iota subscript

fix CL case conversions of characters involving iota subscript

Oh boy.  Judging by the length of the web page explaining the issue
(at <http://www.tlg.uci.edu/~opoudjis/unicode/unicode_adscript.html>)
this is a bit of a minefield.  I hope that this doesn't contribute
further to the trouble...

Although the combined _WITH_PROSGEGRAMMENI characters are of
general class "Lt" (i.e. titlecase), for CL purposes we treat them
as the uppercase equivalent of the lowercase _WITH_YPOGEGRAMMENI
characters (as directly specified by the case mapping data in
UnicodeData.txt).  This is a little awkward, and involves a bit
of rearrangement in the indices of the misc table entries to make
the (CL) uppercase/lowercase tests efficient, but seems to be the
best of all possible worlds given that we must comply with CL's
character-to-character case mappings -- the alternative of not
providing an uppercase version of LOWERCASE_OMEGA_WITH_YPOGEGRAMMENI
seems even weirder.

The way this is done in ucd.lisp is a little bit kludgy, because we
have to avoid giving the same exception to the serbian titlecase
digraphs (Dz and friends) which mustn't map to anything, or else
we'd break invertibility.  (The lowercase dz and uppercase DZ are
already (CL) case mappings of each other).  Probably the thing which
will confuse future readers is that some (Unicode) titlecase
characters are (CL) upper-case-p.
  • [DH] src/code/target-char.lisp
  • [DH] tests/character.pure.lisp
  • [DH] tools-for-build/ucd.lisp
 

June 3, 2013

SBCL CommitsSimpler and more precise type derivation for APPEND/NCONC

Simpler and more precise type derivation for APPEND/NCONC

 We can suppose that all but the last argument are lists when
 deriving the return type... and the logic to compute the return
 type can be much simpler: it's either a CONS, the last argument,
 or we don't know which (yet).
  • [DH] src/compiler/srctran.lisp
  • [DH] tests/compiler.pure.lisp
 

Launchpad Bugs[1187041] canonname in addrinfo has wrong type

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

SBCL CommitsUninitialized type-error conditions can now be printed.

Uninitialized type-error conditions can now be printed.

(print (make-condition 'simple-type-error)) signalled an unbound slot
error.

Reported by Eric Marsden, fixes lp#1184586.
  • [DH] NEWS
  • [DH] src/code/condition.lisp
  • [DH] tests/condition.pure.lisp
 

SBCL Commitssb-bsd-sockets: Fix type of canonname in addrinfo.

sb-bsd-sockets: Fix type of canonname in addrinfo.

Should be c-string-pointer, not c-string.

Fixes lp#1187041, patch by Jerry James.
  • [DH] NEWS
  • [DH] contrib/sb-bsd-sockets/constants.lisp
 

SBCL CommitsFix APPEND/NCONC type derivation properly this time.

Fix APPEND/NCONC type derivation properly this time.

Use type-intersection for checking types, it's more robust than what
was there before.

And a slight improvement. When argument in the middle can't be a NIL,
then the end result is guaranteed to be a CONS. Previously, the
assumption was if the type is a CONS, but that doesn't work with types
like (or cons vector).
  • [DH] src/compiler/srctran.lisp
  • [DH] tests/compiler.pure.lisp
 

SBCL Commitsfixes in EXPT type derivation

fixes in EXPT type derivation

It was possible to construct mostly (but not completely) unobservable
bogus floating-point types when deriving the type of functions
returning the value of calls to EXPT.  Noticed by Vsevolod Dyomkin,
who found a way to observe it by redefining methods.
  • [DH] NEWS
  • [DH] src/compiler/float-tran.lisp
  • [DH] tests/compiler.impure.lisp
 

SBCL CommitsFix NCONC type derivation.

Fix NCONC type derivation.

Properly check the types of arguments, instead of testing for subtypes
or supertypes of LIST, check for arguments to be subtypes of NULL or CONS.

Reported by Jerry James.
  • [DH] NEWS
  • [DH] src/compiler/srctran.lisp
  • [DH] tests/compiler.pure.lisp
 

SBCL Commitssleep: Add more precautions to avoid consing on x86.

sleep: Add more precautions to avoid consing on x86.
  • [DH] src/code/toplevel.lisp
  • [DH] tests/interface.pure.lisp
 

SBCL CommitsFix sleep on ratios, avoiding consing.

Fix sleep on ratios, avoiding consing.

Enable sleep tests for some platforms.
  • [DH] src/code/toplevel.lisp
  • [DH] tests/interface.pure.lisp
 

SBCL Commitssome tests of SLEEP with ratios

some tests of SLEEP with ratios
  • [DH] tests/interface.pure.lisp
 

SBCL Commitsfix sleep on most ratios

fix sleep on most ratios

really really ensure that the second argument to nanosleep is an
integer
  • [DH] src/code/toplevel.lisp
 

SBCL Commitsdelete ye olde FIXME relating to unbound variable warnings

delete ye olde FIXME relating to unbound variable warnings

Testing the code in the real system gives a full warning
  • [DH] src/code/toplevel.lisp
 

SBCL Commitsfix (again) the handling of read errors in the debugger

fix (again) the handling of read errors in the debugger

Actually the read errors were doing what we wanted, but EOF was no
longer popping one debugger level.  The control transfer is a bit
gnarly, so explicitly grab the restart we might want to use and pass
it as an argument to DEBUG-READ.
  • [DH] src/code/debug.lisp
 

May 31, 2013

Launchpad Bugs[1186238] defconstant ignores package locks

Affects Status Importance Assigned to Bug watch
sbcl Triaged Wishlist -
 

May 30, 2013

Launchpad Bugs[1186042] compiler crash doing "ql:quickload :cl-ppcre)

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



Last updated: June 15, 2013 12:30 PM