sbcl Log


Commit Date  
[baf305] by David Lichteblau David Lichteblau

Factor out most x86 code using the FS prefix into a macro WITH-TLS-EA.

The macro expands into the exact same forms it replaces at the moment.

Windows threading will be able to plug into this macro with few changes,
and notably much reduced read-time conditionals.

2012-08-10 18:54:30 Tree
[dd54f9] by David Lichteblau David Lichteblau

Use safepoints for INTERRUPT-THREAD

* In INTERRUPT-THREAD, stop threads using safepoints instead of
signals.

* Currently not used by default. Users need to set feature
SB-THRUPTION to enable this code. SB-THRUPTION should only be set
when SB-SAFEPOINT is also enabled.

* This feature should ultimately be rolled into SB-SAFEPOINT, but
remains as a separate build option until both versions are equally
well-tested, and until other avoidable uses of signals have also
been replaced by safepoints.

* On the term "thruption": Earlier work on this feature sometimes
used "interrupt" to refer to INTERRUPT-THREAD, causing confusion
with the traditional meaning of "interrupt" as POSIX signal or WIN32
exception. To avoid such confusion, the runtime now refers to
INTERRUPT-THREAD as a "thruption", short for th(read) (inter)ruption.

* SIGPIPE is not used for threads running Lisp code, but a low-level
handler for SIGPIPE still exists which arranges for threads running
FFI code (in particular, threads blocked in poll, select,
futex_wait) to be interrupted.

* OS support: Minor changes to signal handling required, currently
implemented for Linux and Solaris.

Credits: This is a POSIX backport of Windows threading changes by
Anton Kovalenko and Dmitry Kalyanov.

2012-08-10 18:54:28 Tree
[e6f4c7] by David Lichteblau David Lichteblau

Add safepoint mechanism

* Stop threads for GC at safepoints only.

* Replaces use of SIG_STOP_FOR_GC.

* Currently not used by default. Users need to set feature
SB-SAFEPOINT to enable this code. SB-SAFEPOINT should only be set
when SB-THREAD is also enabled.

* ISA support: Each architecture needs VOP support, and changes to
foreign call-out assembly; only x86 and x86-64 implemented at this
point.

* OS support: Minor changes to signal handling required, currently
implemented for Linux and Solaris.

* Performance note: Does not currently replace pseudo-atomic entirely,
except on Windows. Only once further work has been done to reduce
use of signals will pseudo-atomic become truly redundant. Therefore
use of safepoints on POSIX currently still implies the combined
performance overhead of both mechanisms.

* Design alternatives exist for some choices made here. In particular,
this commit places the safepoint trap page into the SBCL binary for
simplicity. It is likely that future changes to allow slam-free
runtime changes will have to go back to a hand-crafted address
parameter.

* This feature has been extracted from work related to Windows
support and backported to POSIX.

Credits: Uses the CSP-based stop-the-world protocol by Anton Kovalenko,
based on the safepoint and threading work by Dmitry Kalyanov. Use of
safepoints for SBCL originally researched by Paul Khuong.

2012-08-10 12:51:45 Tree
2012-08-06 20:42:39 Tree
[b558c5] (sbcl-sbcl-1.0.58) by Juho Snellman Juho Snellman

sbcl-1.0.58: will be tagged as "sbcl-sbcl-1.0.58"

2012-08-06 06:46:45 Tree
[578362] by Paul Khuong Paul Khuong

Fix threads on Darwin 10.8

* We used to pun (64-bit) addresses into 32-bit mach_port_name.

* We used to assume arbitrary 32-bit addresses were always
acceptable mach port names.

* Stop doing that. Instead, allocate small descriptors until one's
address is an acceptable port name (inspired by CCL).

* Also, keep a lock-free free-list of descriptors to skip the previous
loop in common cases.

* There are still some strange issues, but I can't tell if they're new,
and they seem preferable to consistently lose-ing when spawning threads.

2012-08-01 22:10:09 Tree
[597826] by Cyrus Harmon Cyrus Harmon , pushed by Paul Khuong Paul Khuong

Miscellaneous cleanups for threaded darwin platforms

* Gather some related declarations in fewer (conditionalised) places

* Lay down some infrastructure for mach port different from threads'
addresses

* Slightly modified by Paul Khuong

2012-08-01 22:09:59 Tree
[b75bc9] by Stas Boukarev Stas Boukarev

Fix build of contribs on Windows.

Set CC variable in make-target-contrib.sh, not in asdf-module.mk, Make
defaults CC to "cc" making it impossible to conditionally set CC to gcc
if it's unset.

2012-07-28 15:15:57 Tree
[bb99c3] by Juho Snellman Juho Snellman

Update to asdf 2.23

2012-07-27 10:31:26 Tree
[a799c7] by Stas Boukarev Stas Boukarev

run-program: Don't make pty the process's controlling terminal.

When called without an existing pty, for example in Slime, run-program
will make the created pty as the process's controlling.

(process-close (run-program "cat" () :pty t :search t :wait nil))
was terminated with SIGHUP when called under Slime.

2012-07-26 23:09:56 Tree
[6202d1] by David Lichteblau David Lichteblau

Restore buildability of run-program.impure on win32

... which had, unfortunately, been affected negatively by the previous
commit.

2012-07-19 18:45:33 Tree
[f9663e] by David Lichteblau David Lichteblau

win32: Mark all currently failing tests as such

This change is not to be taken as an indication that these tests are not
going to be fixed. Instead, it establishes a baseline against which to
measure future improvements, and it guards against further regression.

Please let's mark any newly added, problematic tests in the same fashion.

2012-07-19 17:46:39 Tree
[97527a] by David Lichteblau David Lichteblau

Temporarily disable problematic exhaust tests on Windows

2012-07-18 17:42:13 Tree
[98cc9e] by David Lichteblau David Lichteblau

Use preprocessor includes for link_or_copy on Windows

2012-07-17 13:48:47 Tree
[7acdf1] by Stas Boukarev Stas Boukarev

Declare types for sb-kernel:coerce-to-condition.

Add
(defknown coerce-to-condition ((or condition symbol string function)
list type-specifier symbol)
condition
(explicit-check))
Which helps to remove optimization notes in some cases with
restart-case.

Fixes lp#1025416.

2012-07-16 20:34:43 Tree
[2273f3] by Lutz Euler Lutz Euler

Correct the info directory entry in sbcl-internals.texinfo.

The file name was wrong so that the info directory link wasn't working.
LP #1023175, thanks to Orivej Desh for the report and the fix.

2012-07-11 19:52:36 Tree
[80ad08] by Lutz Euler Lutz Euler

Improve docstrings of MAKE-RANDOM-STATE and SEED-RANDOM-STATE.

The formatting of some item lists in the docstring of SEED-RANDOM-STATE
was broken in the manual. Fix the indentation of the docstring so that
the conversion to texinfo can correctly collect multiple lines belonging
to the same bullet points, and drop a "- " intended to indicate a
single-item list as that doesn't work (according to comments in
docstrings.lisp item lists must consist of at least two items).

Fix some small grammatical errors.

While MAKE-RANDOM-STATE's docstring is not in the manual, it consists
mostly of a part of SEED-RANDOM-STATE's docstring, so apply the fixes
there, too.

2012-06-29 22:08:34 Tree
[90eeb9] by David Lichteblau David Lichteblau , pushed by David Lichteblau David Lichteblau

Simplify %symbol-value-in-thread further

Since Alastair Bridgewater fixed the race conditions in this function,
there is no need to loop anymore.

2012-06-18 15:33:30 Tree
[358f21] by David Lichteblau David Lichteblau

Use %p for pthread pointers in debugging output

2012-06-18 15:33:30 Tree
[04c236] by David Lichteblau David Lichteblau

brief_print: reset cur_lines

Otherwise, when running with QSHOW, the runtime stops printing
after 5000 objects (for example for traps).

2012-06-18 15:33:03 Tree
[109e6f] by David Lichteblau David Lichteblau , pushed by David Lichteblau David Lichteblau

Make run-sbcl.sh executable

2012-06-18 13:36:48 Tree
[41c307] by Paul Khuong Paul Khuong

Improved merge-sort implementation for lists

The new implementation is simpler and more efficient than the previous
bottom-up sort. It only differs from the original patch aesthetically.

STABLE-SORT-LIST is also now MAYBE-INLINE, to enable selective inlining.

Thanks to Takeru Ohta for the code and for his patience.

2012-06-17 08:53:47 Tree
[d720bc] by Nikodemus Siivola Nikodemus Siivola

fix long-standing debug-name confusion

The calls to IR1-CONVERT-LAMBDA-BODY with the a VARARGS-ENTRY and
HAIRY-ARG-PROCESSOR debug-names were no such things.

These calls produces the actual lambda for the main body of the function,
and as such should have the original source-name and debug-name.

As proof of the pudding, we previously failed to detect several known
function that are recursive but aren't marked as such in the DEFKNOWNs. With
this that changes, so fix the DEFKNOWNs.

2012-06-12 05:40:06 Tree
[5cf295] by David Lichteblau David Lichteblau , pushed by David Lichteblau David Lichteblau

Fix typo in whitespacely-canonical-filenames

Thanks to Lutz Euler.

2012-06-09 22:12:32 Tree
[2b4cb8] by Nikodemus Siivola Nikodemus Siivola

a few more .mailmap entries

Trying to pick a canonical email for each, so that

git shortlog -se

shows only one line per person.

2012-06-09 21:02:28 Tree
Older >