sbcl Log


Commit Date  
[e98148] by Eric Marsden Eric Marsden , pushed by Nikodemus Siivola Nikodemus Siivola

fix SEARCH vector vector transform

Didn't handle empty sequences correctly.

Didn't handle NIL as KEY correctly.

2011-10-31 13:03:41 Tree
[2a0f85] by Nikodemus Siivola Nikodemus Siivola

make DELETE-FILE respect *DEFAULT-PATHNAME-DEFAULTS*

MERGE-PATHNAMES to get an absolute pathname. (Using TRUENAME would be wrong,
since then we would delete files pointed to by symbolic links, and not the
symbolic links themselves -- a nasty regression that would be!)

Also remove the "for error checking" TRUENAME call from there: unlink will
give us an errno that tells what we need to know -- and lo! there is one
race condition less in the system.

Previously using relative pathnames it was possible to accidentally delete
the wrong file.

Fixes lp#882877.

NB: currently DELETE-DIRECTORY and RENAME-FILE use TRUENAME with just the
aforementioned unfortunate consequence, but I'm hesitant to change them
during the freeze -- so dealing with this issue in them will have to
wait a bit.

2011-10-30 20:44:44 Tree
[408ed6] by Robert Brown Robert Brown , pushed by Nikodemus Siivola Nikodemus Siivola

fix GENCGC DYNAMIC-USAGE on 64-bit platforms

Fixes lp#881445.

2011-10-30 19:45:30 Tree
[b2d132] by Paul Khuong Paul Khuong

Fix constant character comparisons for SPARC/sb-unicode

SPARC only supports (SIGNED-BYTE 13) for literal values. Only emit
comparison with literal characters up to (CODE-CHAR 4095).

Reported by Eric Marsden on sbcl-devel.

Fixes lp#883519.

2011-10-30 06:42:15 Tree
[a27847] by Paul Khuong Paul Khuong

Eliminate an infinite recursion in TYPE-UNION of INTERSECTION types

Reported by Eric Marsden on sbcl-devel.

Fixes lp#883498.

2011-10-30 06:32:41 Tree
[ec8285] by Paul Khuong Paul Khuong

Take inline trampoline into account when optimizing fall-through jumps

The IR2-level optimisation bug manifests itself as randomly bogus
code in the presence of tail and local calls to the same function.

Reported by Eric Marsden on sbcl-devel.

Test case by Anton Kovalenko.

Fixes lp#883500

2011-10-30 06:02:03 Tree
[b85af7] by Nikodemus Siivola Nikodemus Siivola , pushed by Nikodemus Siivola Nikodemus Siivola

waiting for arbitrary events SB-EXT:WAIT-FOR

While using this to wait for other threads isn't good style,
sometimes it is _much_ easier to just state the thing you're
waiting for than build the synchronization to make it nice.

And sometimes the event lives in the external world, in which case
you really need to poll anyways:

(wait-for (probe-file pathname))

2011-10-28 15:56:49 Tree
[a18b41] by Alastair Bridgewater Alastair Bridgewater

Fix unhandled error in float.pure.lisp on non-x86oids.

* SB-VM::TOUCH-OBJECT doesn't exist on non-x86oids, and the
package is locked. Disable reading of forms that refer to it
on non-x86oids.

2011-10-25 14:25:25 Tree
[6b0994] by Alastair Bridgewater Alastair Bridgewater

Fix debug.impure.lisp / BUG-310175 for :stack-allocatable-lists targets.

* Not all platforms stack-allocate. Some platforms (PPC) stack-
allocate some things, but not most things.

* PPC, in particular, stack allocates for LIST and LIST* (the
:stack-allocatable-lists feature), but doesn't stack allocate for
CONS. And it turns out that the compiler transforms one-arg-LIST
and two-arg-LIST* to CONS.

* Use two-arg-LIST to force the :stack-allocatable-lists code
path, and mark the test as failing on non-:stack-allocatable-lists
targets.

2011-10-25 14:13:58 Tree
[182a7b] by Alastair Bridgewater Alastair Bridgewater

Fix FP traps on OSX/x86.

* De-cripple SB-INT:SET-FLOATING-POINT-MODES for this platform.

* Enable restoring the FPU control word during interrupt handling
on this platform (RESTORE_FP_CONTROL_FROM_CONTEXT).

* Implement restoring the FPU control word on this platform
(os_restore_fp_control).

* Update :FAILS-ON information for the now-passing tests.

* Update the commentary on test float.pure.lisp /
(ADDITION-OVERFLOW BUG-372) to more accurately reflect when it will
provide useful data (only when running float.pure.lisp separately).

2011-10-24 19:25:11 Tree
[f60e99] by Alastair Bridgewater Alastair Bridgewater

Fix FP traps on OSX/x86-64.

* De-cripple SB-INT:SET-FLOATING-POINT-MODES for this platform.

* Enable restoring the FPU control word during interrupt handling
on this platform (RESTORE_FP_CONTROL_FROM_CONTEXT).

* Implement restoring the FPU control word on this platform
(os_restore_fp_control).

* Update :FAILS-ON information for the now-passing tests.

* Insert an addtional copy of test float.pure.lisp /
(ADDITION-OVERFLOW BUG-372) to detect failure to restore the FPU
control word in signal handling, with appropriate commentary.

2011-10-24 13:57:44 Tree
[082940] by Paul Khuong Paul Khuong

Fix a long-standing bug in (PRIMITIVE-TYPE [MEMBER type])

A refactoring in 1.0.12.18 resulted in overly-optimistic primitive
type.

Reported by Eric Marsden on sbcl-devel.

2011-10-22 01:38:00 Tree
[b0920f] by Paul Khuong Paul Khuong

Fix another assumption w.r.t fixnum width and n-lowtag-bits

This time in LOGBITP.

Reported by Eric Marsden on sbcl-devel.

2011-10-22 01:04:55 Tree
[357b03] by Alastair Bridgewater Alastair Bridgewater

More unboxed-byte-addresses-are-word-addresses damage.

* In the binding stack tests, the binding stack pointer is altered
by adding two to SB-VM::*BINDING-STACK-POINTER*. This "works" when
n-fixnum-tag-bits is equal to word-shift, but is badly wrong when
they differ.

* Fixed by adding a variable to hold the actual delta required,
based on the difference between n-fixnum-tag-bits and word-shift.

* Incidentally, how on earth does this test work on threaded PPC?
PPC has the BSP in a register, not a variable, and there are no
memory barriers around the synchronization for GCs. How does the
(incf sb-vm::*binding-stack-pointer*) not die from an unbound
symbol? And, really, it looks like it doesn't matter if a thread
dies or lands in the debugger: If the process doesn't die screaming,
the test always passes, even if it only does a single GC.

* And, while we're on the topic, how on earth does this test work
on x86? The memory-barrier argument should apply there as well.
Wait, I know! The CPU still gets timer interrupts, and the kernel
effectively provides a barrier then. And the "it doesn't matter"
argument also applies here: If it doesn't deadlock the system
completely, the main thread will kill everything off and call it a
success after four seconds anyway.

2011-10-20 14:44:08 Tree
[a53e74] by Alastair Bridgewater Alastair Bridgewater , pushed by Alastair Bridgewater Alastair Bridgewater

Improve some test cases for fixnum-width independence

* In arith.pure.lisp, some test cases were defined in terms of
n-lowtag-bits instead of n-fixnum-tag-bits.

* In sb-aclrepl, the bignum used for testing fit within an
(signed-byte 63), the largest possible fixnum type on a 64-bit system.

* Thanks to Paul Khuong for finding and fixing the arith.pure.lisp
tests.

2011-10-19 19:49:32 Tree
[805f1d] by Stas Boukarev Stas Boukarev

(format t "a~0&b") shouldn't print any newlines.

Fixes lp#867684.

2011-10-11 20:20:31 Tree
[a06908] by Juho Snellman Juho Snellman

Sleep is apparently still consing on 32-bit platforms, mark test as failing

2011-10-09 02:20:57 Tree
[d2c580] by Juho Snellman Juho Snellman

Remove the invalid :sleep-many-interrupts test

2011-10-09 01:18:11 Tree
[60e249] by Christophe Rhodes Christophe Rhodes

really fix float rounding on 32-bit platforms

Now, as well as not giving completely the wrong answer for most
larger-than-fixnum double floats, we additionally don't try to perform
arithmetic on NIL for larger-than-fixnum single-floats.

2011-10-07 19:35:35 Tree
[d7952c] by David Lichteblau David Lichteblau

Ignore a known failure in script.test.sh on Darwin

script.test.sh includes a test case that fails on Darwin because of
a bug in SBCL. However, this is the first release to run this test at
all. Lacking a proper mechanism to mark the test case as a known
failure on Darwin, skip it entirely on that platform for now.

Thanks to Fare for testing.

2011-09-29 22:40:02 Tree
[96aa79] by Nikodemus Siivola Nikodemus Siivola

handle non-standard slot allocations when updating classes

* Refactor layout comparison to work on the effective slot definition list(s)
directly -- easier to understand.

* When new slots with custom allocation are added, add their names to the
"added" list for UPDATE-INSTANCE-FOR-REDEFINED-CLASS. This is not specified
by ANSI, but unless we do this those slots don't get initialized.

Removing custom slots is hairier, as is changing a custom slot into
a normal slot. Add some tests that poke in this area as well...

* Replace wrapper-instance-slot-layout and wrapper-class-slots with the
CLASS-SLOTS lists -- saves space and makes things easier to understand.

Has a small performance cost for updating instances and SLOT-MISSING. Will
refactor again if this is critical in the real world.

2011-09-20 17:50:18 Tree
[516fe4] by Max Mikhanosha Max Mikhanosha , pushed by Christophe Rhodes Christophe Rhodes

Fix (run-program) to cleanup fd handlers

Signed-off-by: Christophe Rhodes <csr21@cantab.net>

2011-09-06 13:53:26 Tree
[875439] by Christophe Rhodes Christophe Rhodes

fix rounding of floats big enough to be bignums

Wow, so broken: the attempt to confuse while pretending to do
round-to-even goes back decades to original CMUCL sources. Rewrite
the bignum branch with a more careful and clear version that is obviously
correct.

Optimizers might want to elide some of the computation on appropriate
platforms: on 32-bit platforms, all single floats outside the fixnum
range are integral, while on 64-bit platforms all single and double floats
outside the fixnum range are integral. (This could be implemented by
comparing most-fooative-fixnum with fooble-float-significand-byte)

2011-09-04 19:32:03 Tree
[cd470a] by David Lichteblau David Lichteblau

Fix I/O redirection of script.test.sh

With this fix, "run-tests.sh | tee" passes again on Linux.
Thanks to Fare Rideau for the report.

2011-09-02 19:40:28 Tree
[797692] by Paul Khuong Paul Khuong

Optional support for zlib-based in-memory deflate/inflate for core files

* As this is based on zlib, only add the dependency when
:SB-CORE-COMPRESSION is enabled as a build-time feature. On x86-64,
compressed cores take about 1/4 the space, but start up in a few
tenths of a second.

Unlike gzexe'd executables, compressed images work without writing
to /tmp.

If :SB-CORE-COMPRESSION is enabled, trigger compression with the
:COMPRESSION argument to SAVE-LISP-AND-DIE.

* Also add a NEWS entry for the literal complex-single-float bugfix

2011-08-28 03:23:03 Tree
Older >