sbcl Log

Commit Date  
[01044a] (10.4 kB) by Christophe Rhodes Christophe Rhodes
Merge Perry Metzger "netbsd patches" sbcl-devel 2004-04-06
... don't merge SB_THREAD/spinlock cleanup; the right answer
is to define an almost-null get_spinlock() version
for non-threaded builds.

2004-04-08 12:00:30 View
[074ba0] (10.4 kB) by Christophe Rhodes Christophe Rhodes
Merge patch (Perry Metzger sbcl-devel 2004-03-27) for partial
NetBSD support (some work also due to Valtteri Vuorikoski)

2004-03-29 10:36:30 View
[dcf597] (10.3 kB) by Daniel Barlow Daniel Barlow
"Well, the hours are pretty good"

Merged the resistance-is-futex branch: see commit messages on
branch for scary details

"... but now I come to think about it, most of the actual minutes
are pretty lousy"

2003-11-27 06:21:04 View
[2378b4] (10.3 kB) 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 View
[19f5c6] (10.6 kB) by Christophe Rhodes Christophe Rhodes
Make the prototype of the GENERIC-FUNCTION class (and indeed all
other direct instances of GENERIC-FUNCTION) printable; also use
a newline rather than a semicolon in x86-arch.c in the hope that
it's more acceptable to OpenBSD.

2003-07-27 17:13:51 View
[5813c7] (10.5 kB) by Daniel Barlow Daniel Barlow

SMP safety: prefix thread synchronosation insns with LOCK

Delete "waitpid pid -1" message on GC

2003-04-18 01:29:40 View
[1419c1] (10.5 kB) by Daniel Barlow Daniel Barlow

=== Threads merge, 12.5 metres ===

Added ppc vop for CURRENT-THREAD-OFFSET-SAP : note that other
ports (alpha, sparc, etc) wil need this too

Fix the PPC symbol hashing problem with symbol names < 4
characters long (thanks CSR)

Replace CONTROL_STACK_FOO with thread-> or SymbolValue as
appropriate in various non-x86 places (cheneygc, ldb backtrace

get_spinlock defn moved into $arch-arch.c, as unlikely to vary
much between one OS and another on a given arch. Other arches
need to add this too, but for non-threaded ports the dummy
version in ppc-arch.c will do fine.

Stub arch_os_get_current_thread, arch_os_thread_{init,cleanup}
added for Linux/PPC: needs adding to other ports

Add missing UNIX-SETSID definition, used in MAKE-LISTENER-THREAD

2003-04-03 18:26:59 View
[e365f2] (10.3 kB) by Daniel Barlow Daniel Barlow

=== Threads merge, 100 metres ===

This is the first commit of experimental native threads for
SBCL. Note that thread support is by default not compiled in
- you need to add :sb-thread to target features. Note also
that non-x86 probably doesn't build in this version - that
will be fixed imminently

See log messages for dan_native_threads_branch,
dan_native_threads_2_branch, dan_native_threads_3_branch for
more information. I'm not going to type it all in again

2003-04-02 11:15:10 View
[3bb2fb] (10.2 kB) by Daniel Barlow Daniel Barlow
Committed patch for gencgc refactoring based on work done
on threads branch.

... to make header file management a lot simpler, and allow
the use of interesting typedefs in genesis :C-TYPE slot
options, we split runtime.h into lots of smaller files that
can be (semi-)independently included.

... all GC and GCish functions now have the same interface,
so no need for (eq *internal-gc* #'collect-garbage) test in

... current_region_end_addr and current_region_free_pointer
go away, eliminating potential for weird bugs when they're
not synchronized properly. Yay OAOO

... disabled (actually, removed) inline allocation, as it
depended on old current_region_* (see above) and appears
to make not a lot of actual difference to run times anyway

pseudo-atomic support is now always compiled in. I can see
no good reason for not having it

... much code in alloc() collapsed. Also alloc() no longer
attempts to drop its PA and do a collection in the middle of
allocation - instead it uses the existing maybe_gc flag to
indicate that collection should happen when the allocation is
done. Possibly this has bad effects when trying to allocate
an object bigger than available dynamic space, but that would
fit if a GC were done first. Given the (complete lack of)
error handling for out-of-memory conditions in this and all
previous SBCL versions, it would be a foolish programmer who
was depending on this anyway, though.

2003-02-27 00:49:57 View
[637371] (10.2 kB) by Christophe Rhodes Christophe Rhodes
Linux floating point fixes
... define an os_restore_fp_control() function in the runtime, and
use it in signal handlers (protected by #ifdef
LISP_FEATURE_LINUX in non-Linux-specific code)
... write useful definitions of it
... for x86 (probably correct)
... for ppc (works, but could do with fixing)
... delete a SET_FPU_CONTROL_WORD from initialization
... dunno why it was there; no observable symptoms. Shout
if some early x86/Linux system no longer works.
... export to C (via sbcl.h) Lisp's view of the floating point
control word
... delete some floating-point-related stale symbols and comments
from package-data-list.lisp-expr
Now floating point stuff mostly works (I think) on x86/Linux and
ppc/Linux, as well as sparc/SunOS. Other platforms still
probably don't work.

2002-07-16 13:48:02 View
[be9eb6] (9.7 kB) by William Harold Newman William Harold Newman

(Incidentally, I've pretty much given up on incrementing the
fasl file version number on every renaming. Eventually
I'll bump it, with a very high level summary comment.)
back to standard abbrev. FUN for "object of type FUNCTION"..
..find . -name *.lisp | xargs egrep -i '[^a-z:]:function-'
..and 'function-end'
..and 'function-start'
..and 'FunctionEnd' and 'FunctionStart' and 'function.end'
..and 'function-type'
..but SB-EXT:*DERIVE-FUNCTION-TYPES* remains the same

2001-10-08 02:34:15 View
[3bd7a9] (9.7 kB) by William Harold Newman William Harold Newman
made verbose GC output report GET-INTERNAL-RUN-TIME when each
GC happens, so that when you reading a log containing
many verbose GC messages, you have a better chance of
grokking what happened
fixed POSIX-GETENV doc string after Alexey Dejneka pointed out
that it was wrong
removed some #+OpenBSD stubifications, since FILE-LENGTH is no
longer completely broken on OpenBSD now
fixed the skip-trailing-whitespace logic in READ so it no
longer requires a second Ctrl-D char to return EOF
merged MNA HANDLER-CASE patch: Since the compiler seems to be
smart enough to handle it now, use lexical scoping
again instead of the previous dynamic scoping
workaround; and also do #+X86 (FLOAT-WAIT).
quasimerged MNA fix-GCC-warnings patch (sbcl-devel
2001-07-17), editing the source by hand
also made other tweaks to fix GCC warnings
fixed memory leak in wrapped_readlink()
merged MNA port of rtoy COERCE and ARRAY-ELEMENT-TYPE
DEFOPTIMIZERs from CMU CL (sbcl-devel 2001-07-16)
merged MNA port of rtoy irrational math fixes (sbcl-devel
added MNA regression tests of irrational functions
merged MNA port of cachopo COPY-READTABLE fix (sbcl-devel
merged MNA port of mai DESCRIBE-a-class fix (sbcl-devel
added to remove stuff like
factored out LOOKS-LIKE-NAME-OF-SPECIAL-VAR-P to support this
removed call to no-longer-defined OUTPUT-INTERPRETED-FUNCTION
will hopefully go away real soon anyway)
fixed bug 26: ARRAY-DISPLACEMENT now returns (VALUES NIL 0)
for undisplaced arrays.
fixed bug 55: DEFMACRO-MUNDANELY no longer ignores DOC.
set default for *DERIVE-FUNCTION-TYPES* to NIL (i.e. ANSI
overrode the default within the cross-compiler, so that SBCL
itself is still built the old static efficient way
fixed the DCONSING carry case in PROFILE
ported CMU CL fix to FILL-POINTER-OUCH (Tim Moore's fix
to Janne Rinta-Manty's bug report)

2001-07-30 19:30:33 View
[81cfdf] (9.7 kB) by William Harold Newman William Harold Newman
made ldb conditional on :SB-LDB in *FEATURES*. (Dan Barlow
likes having the system stop on an ldb> prompt even
when running as a batch program, but for me it's a
nuisance. I want sh to terminate when it hits
an error, period, since typically I make it beep when
it's done. And since ldb isn't really appropriate for
the problems that ordinary users have to deal with,
it should be reasonable to suppress it by default,
which is an overkill way to keep my system from
stopping on an ldb> prompt.)
more gencgc tidying..
..hardwired enable_pointer_filter conditionalization to
always be enabled
..renamed the PTR() and Pointerp() macros to
native_pointer() and is_lisp_pointer() inline

2001-07-14 04:25:14 View
[4719b7] (9.7 kB) by William Harold Newman William Harold Newman
removed various REMOVEME stuff
more profiling/PCOUNTER stuff..
..restored "grep ';.*decla.*type'" stuff in profile.lisp,
and did other un-fluidifications of pcounter.lisp
and profile.lisp
..converted various PCOUNTER-related DECLAIMs to DEFKNOWNs

2001-06-24 15:54:39 View
[d45e8a] (9.8 kB) by William Harold Newman William Harold Newman
(This version has some REMOVEME stuff in it to help me
debug a PROFILE failure which seemed to be related to
nonmonotonicity of GET-INTERNAL-RUN-TIME, and which
then morphed into a SIGILL problem (all on OpenBSD).
I don't think those should cause any failures for
other systems, so I left 'em in for now.)
deleted old SPARC-only UNIX-TIMES implementation of
munged the code in profile.lisp hunting, so far unsuccessfully,
for "-1 is not UNSIGNED-BYTE" problem
added temporary test for monotonicity of GET-INTERNAL-RUN-TIME
moved the definition of *BEFORE-SAVE-INITIALIZATIONS*
earlier so things should work for the right reason
deleted unused INDENTING-FURTHER
separated x86 SIGILL handling from SIGTRAP handling

2001-06-07 20:27:34 View
[358cad] (8.9 kB) by William Harold Newman William Harold Newman
turned interrupt_install_low_level_handler() into
undoably_install_low_level_interrupt_handler(), which
uses atexit() to arrange for the handler to be removed
at exit, for tidiness in general and specifically
because without the the interaction between the GC
and the exit()-time segfaults caused by memory
corruption is making it tricky to debug the
OpenBSD port

2001-05-26 20:33:48 View
[d7f613] (8.8 kB) by William Harold Newman William Harold Newman
(This system state is seriously screwed up. It did build,
both on Linux and on OpenBSD, but signalled an
error after writing out sbcl.core on OpenBSD, and
although it runs a little both on Linux and on
OpenBSD, it hangs in the regression tests. It
also has some temporary hacks marked REMOVEME,
including one which suppresses PURIFY when
building the system (!).)
made the system build on OpenBSD again..
..stubbed stuff out as a quick fix to the problem of FFI to
64-bit stat.st_size
tried to make the system run on OpenBSD again..
..initialized current_dynamic_space, since it's now used
..added new assertions about GENCGC alloc_region stuff being
reset when it should be
renamed Lisp-level struct stat stuff to struct wrapped_stat
tried to tidy up Lisp-level stat stuff; removed mysterious
(STRING= NAME "") behavior from UNIX-STAT
added to help in low-level compile-and-try cycle
pulled alloc_region-is-reset logic out into separate
functions, and added more assertions on it (hunting
for a bug which broke the old assertions)
renamed gc_alloc_large to gc_alloc_possibly_large, and
gc_quick_alloc_large_unboxed to
enabled various GC checks, e.g. gencgc_zero_check=1
deleted unused (and bizarre..) gencgc_verify_zero_fill()
turned off PURIFY in order to get the system to build, since
PURIFY seems to be misbehaving (leaving INIT-FUNCTION
above the cutoff address..)

2001-05-15 14:08:31 View
[dfa55a] (8.6 kB) by William Harold Newman William Harold Newman
NOTE: This is a slightly screwed-up checkin, which won't
quite build as is, because the checked-in changes from
the Alpha port expect various src/code/*types.lisp
files (e.g. src/code/x86-linux-types.lisp) which
Daniel Barlow created by hand once and for all. Those
are in my working directory but I didn't check them in
because almost immediately, probably, I
expect to rearrange things so that the build
process generates a types file on every run of So since CVS add/delete is a little mixed up,
I thought I'd just skip it, even though it means that
this version isn't quite buildable unless you grab
those files from DB's patch.
merged Daniel Barlow's port to the Alpha CPU sbcl-devel
moved CIRCULAR-LIST-P to early-extensions.lisp (since it
logically belongs there, and DB's new definition,
unlike the old one, doesn't have a physical dependence
on IGNORE-ERRORS which prevents it from being there)
merged boot-extensions.lisp, early-extensions.lisp, and
late-extensions.lisp, since there's no longer any
distinction between the files
deleted CVS files from sbcl-alpha-extra-files.tar, since
they were probably an oversight, I think
also src/compiler/alpha/z050.pdf:-|
The patch change
- (/hexstr arguments)
+ #!+sb-show (/hexstr arguments)
shouldn't be necessary because /SHOW, like all the
/FOO macros, is already conditional on SB-SHOW. So I
undid this change (and added some comments in
src/code/show.lisp explaining the intended behavior
of /FOO macros).
merged stat_wrapper.c into the relatively new, related
wrap.c file; deleted stat_wrapper.h since stat wrappers
seem never intended to be used by C code anyway
renamed build-tools/ to tools-for-build/ in the interest of
unambiguous (even painfully unambiguous)
globally-visible names
tweaked tests/alien.impure.lisp so that the test uses a
non-GENCGC-dependent variable (instead of having to
have the test conditional on #+GENCGC).

2001-05-07 20:16:21 View
[6df93c] (8.6 kB) by William Harold Newman William Harold Newman
MNA megapatch to src/runtime/, zillions of little fixes

2000-11-27 17:20:27 View
[5eb978] (8.7 kB) by William Harold Newman William Harold Newman applied MNA megapatch (will be edited shortly)

2000-11-01 23:58:41 View
[7f76d5] (8.7 kB) by William Harold Newman William Harold Newman fixed breakpoints on OpenBSD

2000-10-25 02:37:24 View
[cea489] (8.6 kB) by William Harold Newman William Harold Newman removed CVS dollar-Header-dollar tags from sources

2000-10-20 23:30:33 View
[5f338d] (8.6 kB) by William Harold Newman William Harold Newman control_stack stuff redone as Lisp/C constants

2000-10-18 23:08:20 View
[6d9ecc] (8.6 kB) by William Harold Newman William Harold Newman

added various /SHOW0-ish statements to help when debugging internal
error handling

can become MAKE-ARRAY, since M-S-A is something to make it easier to
build parts of the cross-compiler under the cross-compilation host,
and DEFUN INTERNAL-ERROR-ARGUMENTS is in x86-vm.lisp, which is not
part of the cross-compiler, and so is never compiled by the
cross-compilation host.

changed MAKE-VALID-LISP-OBJ from a MACROLET macro to a global
function, for clarity and easier debugging

deleted unused SET-VALUE macro from MACROLET in DEFERR

deleted code marked REMOVEME, accidentally left over from previous
debugging exercises

CONTEXT-REGISTER functions to use unsigned representations instead of
signed representations, to conform to implicit assumptions in the
debug-int code inherited from CMU CL. (Without this, new type errors
are generated in infinite regress when we try to handle errors
involving negative fixnums, e.g. (BUTLAST NIL -1).)

tweaked stuff in test/ directory a little bit in anticipation of
setting up real regression tests

2000-09-20 18:50:02 View
[a530bb] (8.8 kB) by William Harold Newman William Harold Newman

Initial revision

2000-09-18 01:26:16 View