sbcl Log

Commit Date  
[93108e] by Daniel Barlow Daniel Barlow ; cutting threads

There is getting to be rather a lot of sensible but
not-now-while-we're-releasing code in my thread/gc fix.
So here it is on a branch, hopefully minus the slightly
more evil debugging crud

doc/ - fix up some of the sgml errors that sourceforge keeps
mailing me about

New function release-spinlock that only changes the lock value
if we owned the spinlock, so good for unwind-protect cleanups
when lock acquisition failed

get-spinlock release-spinlock current-thread-id could all win
from being inlinable

Use a RT signal (SIG_DEQUEUE) for resuming threads that were
on queues, instead of having SIGCONT do both this and the
resume-after-gc task.

Scattered commentary describing the state of the signal mask
in various interesting places

In gencgc alloc, only install a deferred handler for GC if
there was no previous handler for anything else. This fixes
a longstanding bug where the GC thread would eat all cpu while
waiting indefinitely for othr threads to stop.

Add SIG_STOP_FOR_GC to the blockable list

interrupt_maybe_gc_int: enable signals before calling SUB-GC,
or the locking that sub-gc does is going to interact badly.

Minor rearrangement to parent thread to stop it having to wake
up on every GC

Inline arch_os_get_current_thread (note, thread.h is not a
sensible place for an x86linuxonly operation, rearrange this
before committing to HEAD)

Add grovel_headers lines for our RT signals. OAOOM alert...
(Actually, of these three we only need SIG-DEQUEUE)

2003-09-30 11:23:02 Tree
[d4e910] by Daniel Barlow Daniel Barlow
asdf-install gets a good deal smarter about GPG signatures: it's
now usable for installing CLiki package even from non-CCLAN places

NEWS file updates for GC changes

Minor changes to 'Beyond ANSI' chapter in manual

2003-09-21 00:52:00 Tree
[bc59d6] by William Harold Newman William Harold Newman
redid the implementation of --disable-debugger so that it won't
get bewildered when BREAK is called (thanks to Dan and
Christophe for bug reporting and guidance)
deleted UGLINESS, reexpressing some of the issues as BUGS and
just dropping others ("That's the way it is.":-)

2003-09-13 01:19:37 Tree
[b7eed5] by Daniel Barlow Daniel Barlow
Exciting gencgc hacking: SB-SYS:WITH-PINNED-OBJECTS

When passing Lisp objects to foreign code, it is important
that GC doesn't change the object's address as the foreign
code's pointers to it won't be updated. Traditionally this is
done using WITHOUT-GCING, but that's not ideal in a threaded
system where one thread may be doing a blocking alien call and
other threads would like to continue as normal.

So, instead we shove pointers to the important objects on the
C stack where they will cause the pages pointed to to be
pinned in place using preserve_pointers. Additionally we make
a small change to gencgc to ensure that they _stay_ pinned in
subsequent GCs

On ports that use cheneygc we can't do this, so
these ports don't have threads anyway, that's not a major

Small updates to doc/internals-notes/threading-specials,
slightly larger updates to comments regarding ALLOCATION
and PSEUDO-ATOMIC macros

Documentation update to the FFI chapter

2003-09-02 00:08:14 Tree
[a57db6] by Christophe Rhodes Christophe Rhodes
Fix effective method cacheing over method combination changes
(Andreas Fuchs sbcl-help 2003-08-27) after GM
... REINITIALIZE-INSTANCE :AROUND to remove affected methods
from the cache
Also fix cut'n'pasteo in documentation of methods

2003-08-28 09:07:57 Tree
[2378b4] by Daniel Barlow Daniel Barlow

Merge stop_the_world branch: a new scheme for stopping threads
during GC, that avoids the use of ptrace and lets any of the
threads stop any of the others. This is a summary log entry:
see branch commits for details

New C functions maybe_defer_handler and run_deferred_handler,
which encapsulate a lot of the "is it safe to run this handler
now? no, ok, copy its siginfo somewhere safe and do it later"
cruft that's presently done ad hoc.

Stack scavenging now looks for esp in the most recent
interrupt context for each thread. Requires that threads
save said interrupt contexts in sig_stop_for_gc_handler

Clean up some compiler warnings in gencgc.c

Lisp-level changes: approximately a reversion to old-style (or
single-threaded) GC. Haven't actually added the gc hooks back
in yet, but now there's at least a place for them to go.

Lock around SUB-GC to remove window that may allow two threads
to attempt to collect at once.

WITHOUT-INTERRUPTS around SUB-GC to protect c-level spinlocks
used in gc_{stop,start}_the_world

(C-level spinlocks are just integers manipulated by get_spinlock(),
release_spinlock(). There's no unwind-protect or anything
involved in their use, so a thread interrupted when it's
holding one of these will continue to hold it)

Remove #if 0 from around the copying of sigmask in
undo_fake_foreign_function_call. Replace sizeof(sigmask_t)
with an expression involving the value of NSIG and the rash
assumption that sigset_t is a bitmask.

Moved get_spinlock into foo-arch.h and made it static inline.
Added release_spinlock for parity

Delete irritating message from sigcont_handler

New test cases

2003-08-25 21:00:00 Tree
[f601ed] by Alexey Dejneka Alexey Dejneka
Update documentation for type checking.

2003-06-25 16:07:06 Tree
[d49c71] by Christophe Rhodes Christophe Rhodes
... rearrange build order so that macros are defined at the
birth of the cross-compiler (and that relevant variables are
declared special)
... define the condition type (slots for OLD-VALUE, NEW-VALUE
and NAME)
... actually throw the error in %DEFCONSTANT (and have an ABORT
restart, too)
... document and test

2003-06-05 19:58:32 Tree
[97fc8a] by William Harold Newman William Harold Newman

doc tweaking
refactoring in preparation for checking *FEATURES* compatibility
in fasl load

2003-04-26 02:43:01 Tree
[d65640] by William Harold Newman William Harold Newman

Do EVAL of one --eval form before READ of the next --eval form.
(to avoid package gotchas reported by dan_b)

2003-04-14 01:42:14 Tree
[abbf4d] by Christophe Rhodes Christophe Rhodes

Export those classes which are present in our implementation of
the MOP from SB-MOP
... also document absence of METAOBJECT and disjointness of

2003-03-31 12:19:25 Tree
[be76f6] by Daniel Barlow Daniel Barlow

Add some files needed by the soon-to-be-merged thread support

Some non-invasive (supposed not to break unithread builds)
changes to existing files
... add SB-THREAD package
... fs-segment-prefix "instruction" definition
... some documentation

(OK, so it will break McCLIM. That's easily fixable, though)

2003-03-26 01:04:41 Tree
[a3ab89] by Christophe Rhodes Christophe Rhodes
Merge SXHASH improvements
... distribute (SXHASH <fixnum>) a little more widely over the
available space;
... make (SXHASH <bit-vector>) consider rather more than just
the first four bits.
Miscellaneous cleanups
... don't delete contrib's html documentation
... make vanilla modules depend on the (newly-built) sbcl.core
... some cleanups in snapshot/SB-SHOW logic
... quit from the low-level debugger now exits the process with
an error code (because, um, even getting to ldb is a
pretty serious error)

2003-03-15 19:01:30 Tree
[24e6aa] by William Harold Newman William Harold Newman
doc fixes, some from #lisp...
...emu pointed out where arg order stuff for :TEST functions
is specified.
...dan-b found a much-less-hackish !ENTITY for the manual.

2003-02-23 16:14:46 Tree
[c5dac3] by Daniel Barlow Daniel Barlow
Short note in the user's manual to document (or at least allude
vaguely to) the ext:*module-provider-functions* list as it

2003-02-07 02:14:24 Tree
[73d6a1] by William Harold Newman William Harold Newman
added support for the customary --help and --version command
line options, as #lisp IRCers encouraged me to do

2003-02-06 01:27:10 Tree
[e16754] by William Harold Newman William Harold Newman
noted bug 227
(bug 226 gone w/ recent APD fix)

2002-11-21 16:52:06 Tree
[8e1eb3] by Christophe Rhodes Christophe Rhodes
Implement internal counter for SXHASH on PCL instances
(more-or-less as per Gerd Moellman cmucl-imp)
entomotomy: sxhash-on-pcl-instances-returns-42
... 3 not 2 for %funcallable-instance-info, apparently
... add extra arg to BOA-constructor call
... add generic-function clause to SXHASH definition
Minor doc/ frob (claiming MOP support, modulo bugs)

2002-11-07 18:08:49 Tree
[b062a0] by William Harold Newman William Harold Newman
SB!C, so don't need double colons in SB!C: prefixes.
made (FORMAT "foo" "bar") fail earlier, at
FILL-POINTER-OUTPUT-STREAM ctor time, instead of
when the FILL-POINTER-OUTPUT-STREAM is first used for
got rid of *TOPLEVEL-LAMBDA-MAX* and
in COMPILE-TOPLEVEL, and various now-redundant

2002-10-10 16:55:05 Tree
[ef11b0] by William Harold Newman William Harold Newman

2002-09-12 14:10:01 Tree
[19e8b8] by William Harold Newman William Harold Newman
merged Nathan Froyd's "various constants in SB-UNIX" patch
(sbcl-devel 2002-08-27)

2002-08-31 23:36:57 Tree
[bb6182] by Christophe Rhodes Christophe Rhodes
No changes; simply adding back the .cvsignore files that I managed
to remove. Sorry. :-/

2002-08-14 13:28:23 Tree
[6c1299] by Christophe Rhodes Christophe Rhodes
(I hope this checkin works. I have issued conflicting instructions
to do with adding and removal of .cvsignore files, and
it's possible that this has confused things. Only the
.cvsignore files should be messed up, if anything has
gone wrong)
Merge APD patch for BUG 191a (sbcl-devel 2002-08-12)
... s/slots-for-this-defclass/slot-names-for-this-defclass/
Merge patch from Gerd Moelmann regarding the long form of
DEFINE-METHOD-COMBINATION (cmucl-imp 2002-06-18)
Remove now-unneccessary .cvsignore files (having added a "master"
cvsignore file in sbcl's CVSROOT)

2002-08-14 13:25:58 Tree
[9f10bc] by Daniel Barlow Daniel Barlow
merge gc-cleanup-branch

2002-08-06 11:46:32 Tree
[9131b1] by Daniel Barlow Daniel Barlow
update supported architecture list in manual page. No exciting

2002-07-30 21:33:09 Tree
Older >