sbcl Log


Commit Date  
[2b4757] by Jim Wise Jim Wise

Adjust for Solaris /bin/sh.

2011-11-10 15:05:43 Tree
[9cd044] by Nikodemus Siivola Nikodemus Siivola

timeouts on JOIN-THREAD

Marking the return convention experimental for now, as I'm
not sure if

...we should signal a separate condition type for timeouts.

...we should have a separate :TIMEOUT-VALUE argument.

...if that value should default to value of DEFAULT.

Pfff. Interfaces are hard -- let's go shopping!

2011-11-10 13:15:35 Tree
[1ecff2] by Nikodemus Siivola Nikodemus Siivola

timeouts on semaphores and mailboxes, fix timeouts on condition variables

* Accidentally put in the version of condition variable timeouts that just
looked like a spurious wakeup instead of returning NIL without grabbing
the mutex. Ooops -- fixed that.

* The issue with mailbox tests on Darwin at least appears to be related
to our usage of pthread functions inside signal handlers.

2011-11-10 12:12:59 Tree
[66cbca] by Nikodemus Siivola Nikodemus Siivola

make it possible to build only selected contribs

Not for users as such, but for poking at specific contribs with a faster
turnaround.

2011-11-10 12:12:59 Tree
[b1f97e] by Jim Wise Jim Wise

At least one of the Tests which hang on Darwin also hang on SunOS.

Make (not (or darwin sunos)) for the moment, and I'll tey to narrow this
down tomorrow.

sb-concurrency otherwise builds and tests great with new thread stuff on
Solaris/X86 -- on to ../../tests!

2011-11-10 03:25:19 Tree
[d6f967] by Nikodemus Siivola Nikodemus Siivola

killing lutexes, adding timeouts

* Remove all lutex-specific code from the system.
** Use SB-FUTEX for futex-capable platforms, and plain SB-THREAD
otherwise.
** Make non-futex mutexes unfair spinlocks for now, using WAIT-FOR to
provide timeouts and backoff.
** Build non-futex condition variables on top of a queue and WAIT-FOR.

Performance implications: SB-FUTEX builds should perform pretty much the
same, or improve a bit. Threaded non-futex builds are affected as follows:

1. Threads idling on semaphores or condition variables aren't quite as
cheap. Just how costly depends on the OS. On Darwin 1000 idle threads
can chew up a bit over 50% CPU. I will try to address this later.

2. Contested locking around operations that take considerably longer
than a single timeslice suffers mild degradation.

3. Contested locking around operations that don't take long is an order
of magnitude performant.

4. Highly active semaphores perform much better. (Follows from #3.)

* GRAB-MUTEX gets timeout support on all platforms.

* CONDITION-WAIT gets timeout support.

* Disable a bunch of prone-to-hang thread tests on Darwin. (All of them
were already prone to hang prior to this commit.)

* Enable a bunch tests that now /pass/ on Darwin. \o/ This doesn't mean that
the threaded Darwin is fully expected to pass all tests yet, but let's say
it's more likely to do so.

...but still not robust enough to enable threads on Darwin by default.

* GET-MUTEX/GRAB-MUTEX get refactored into two main parts: %TRY-MUTEX and
%WAIT-ON-MUTEX, which are also used directly from CONDITION-WAIT where
appropriate.

2011-11-09 23:00:48 Tree
[ecfd15] by Jim Wise Jim Wise

Skip testl fcntl.flock.2 on NetBSD.
Not sure what's going on with this one -- getting a return status
of '0' from child process, but don't see a path through code that
will produce this. Will work on this further.

2011-11-09 18:54:10 Tree
[cf3616] by Jim Wise Jim Wise

Adjust for NetBSD location of perl.

NetBSD does not ship with perl by default, but if it's present, it will
be in /usr/pkg/bin. Would be nice to find another portable way to do this.

2011-11-09 14:20:38 Tree
[3f4760] by Nikodemus Siivola Nikodemus Siivola

MAP-DIRECTORY didn't :CLASSIFY-SYMLINKS by default

...even though it said it did.

Given

foo/bar => ../src/bar
src/bar/quux.asd

now

(directory "foo/*/*.asd")

finds the .asd as expected.

2011-11-09 12:05:35 Tree
[5b137a] by Jim Wise Jim Wise

NetBSD also fails on test based on opening /dev/stdout from a script.

Add it to Darwin in platforms which skip this test.

2011-11-08 19:48:21 Tree
[6b0e40] by Paul Khuong Paul Khuong

Correct address computation in atomic-incf/aref for wide fixnums

Reported by Martin Cracauer.

Fixes lp#887220.

2011-11-07 19:18:38 Tree
[7d0782] (sbcl-1.0.53) by Juho Snellman Juho Snellman

1.0.53: will be tagged as "sbcl-1.0.53"

2011-11-06 20:31:00 Tree
[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
[1e006a] by Nikodemus Siivola Nikodemus Siivola

missing NEWS for previous commit

2011-10-30 19:55:17 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
[5d9de0] by Paul Khuong Paul Khuong

Unbreak the build on SPARC

Broken in b2d132a93 (last commit). The cross-compiler can be a tad
paranoid.

2011-10-30 15:34:33 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
[6a7128] by Nikodemus Siivola Nikodemus Siivola

fix ROTATE-BYTE on 64-bit words using constant negative rotation

Fixes lp#882151.

2011-10-29 18:34:29 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
[b2036b] by Nikodemus Siivola Nikodemus Siivola

nuke the age-old experimental-thread.patch

Not pertinent anymore.

2011-10-27 14:07:30 Tree
[a32e30] by Alastair Bridgewater Alastair Bridgewater

Minor lowtag-handling cleanup in genesis.

* Instead of explicitly testing a lowtag against two or four
constants (with scary reader conditionals for making the decision)
to determine if a given lowtag is an other-immediate, introduce a
function, IS-OTHER-IMMEDIATE-LOWTAG, paralleling IS-FIXNUM-LOWTAG,
with commentary, operating along the same lines as a similar
function in runtime.h.

2011-10-26 14:38:15 Tree
[8b88c2] by Alastair Bridgewater Alastair Bridgewater

room: KLUDGE-reduction.

* Now that the thread structure doesn't have a lowtag, we can
remove the KLUDGE that prevented even FIXNUMs from being treated
as though they were thread-object-sized instead of a single word.

2011-10-25 22:43:36 Tree
Older >