sbcl Log


Commit Date  
[e31ed1] (sbcl-1.1.3) by Christophe Rhodes Christophe Rhodes

1.1.3: will be tagged as "sbcl-1.1.3"

2012-12-31 21:29:02 Tree
[bf40ae] by David Lichteblau David Lichteblau

Fix attach_thread to allocate a TLS index for *gc-inhibit* if needed

Instead of occasionally setting a global value for this variable...

Thanks to Stas Boukarev for the bug report.

2012-12-29 14:24:14 Tree
2012-12-21 20:29:23 Tree
[d8422b] by David Lichteblau David Lichteblau

Preserve superclass structure accessors in infodb

Do not overwrite inherited structure accessor entries in infodb when
a sub-structure-class gets defined with same conc-name.

Fixes CAS access to slots of direct superclass instances in this
case (and in particular, non-futex safepoint builds).

2012-12-21 19:32:21 Tree
[935edf] by David Lichteblau David Lichteblau

Set a console Ctrl handler for Windows

Install a Lisp callback using SetConsoleCtrlHandler, allowing users
to interrupt SBCL using C-c in the Windows console.

We cannot currently control the size of the stack available to us in
this handler, but since we are mainly only calling INTERRUPT-THREAD,
even a small stack might be sufficient for our purposes.

Thanks to Anton Kovalenko.

2012-12-21 19:32:21 Tree
[79721a] by David Lichteblau David Lichteblau

Add STDCALL alien convention support for Windows

Thanks to Anton Kovalenko.

2012-12-21 19:32:21 Tree
[37d382] by David Lichteblau David Lichteblau

Support building without PSEUDO-ATOMIC on POSIX safepoints

- Mark Lisp signal handlers with a flag `synchronous' to indicate
whether we can (and must) handle them immediately. Conversely,
we understand this flag to imply a guarantee that the signal
does not occur during allocation.

- Any signal with a Lisp handler that is not synchronous is
implemented in the runtime using a trampoline, which (instead of
invoking Lisp code directly) first spawns a new pthread, which
only then calls back into Lisp to invoke the handler function
(with a fake signal context).

- Used in particular for SIGINT.

- For SIGPROF, introduce a second per-thread allocation region,
which gets swapped with the usual region around the call into
SIGPROF-HANDLER. This handler is a special case, because it is
careful not to trigger GC nor non-local unwinds, and we can
safely return to the original region afterwards.

- Add a new subclass SIGNAL-HANDLER-THREAD for this purpose,
making it easy to identify these threads (e.g. in the test
driver).

- Run sprof tests while building the contrib. Add a test stressing
time profiling of allocation sequences.

Enable using :SB-SAFEPOINT-STRICTLY on features.

Quite usable already on x86 and x86-64; PPC still has more prominent
issues, e.g. in threads.impure.lisp.

2012-12-21 19:30:48 Tree
[daa6f0] by David Lichteblau David Lichteblau

Foreign callbacks

Allow alien callbacks to be invoked in pthreads created outside of
the Lisp runtime:

Add new runtime functions attach_os_thread, detach_os_thread
allowing such threads to acquire a `struct thread' temporarily,
turning them into Lisp threads.

In a main deviation from the Windows branch (which has a similar
feature), this mechanism does not involve user-land thread (fiber)
mechanisms to switch between stacks. Instead, Lisp code merely runs
on the existing pthread's stack.

Currently a safepoint-only feature, because only safepoint-based
builds already go through a convenient trampoline function for
callbacks, but a backport of this feature to non-safepoint builds
might be straightforward.

2012-12-21 19:28:09 Tree
[d80e51] by David Lichteblau David Lichteblau

Re-complicate all_threads check in arch_os_get_current_thread

This check used to be x86-only, and apparently for good reason.
Make it so again.

2012-12-21 19:27:45 Tree
[de3bfc] by Nathan Froyd Nathan Froyd

adjust DATA-VECTOR-FROM-INITS to avoid full calls to MAKE-ARRAY when possible

We don't need to do full calls to MAKE-ARRAY in certain cases for
ADJUST-ARRAY now, which avoids calls to SUBTYPEP and friends. This
change significantly speeds up ADJUST-ARRAY for common cases, like the
calls made by VECTOR-PUSH-EXTEND.

2012-12-20 04:51:20 Tree
[e32906] by Nathan Froyd Nathan Froyd

factor out ALLOCATE-VECTOR-WITH-WIDETAG function from MAKE-ARRAY

2012-12-20 04:51:20 Tree
[daa1d2] by Nathan Froyd Nathan Froyd

adjust call to REPLACE inside ADJUST-ARRAY

The more information we can provide, the better.

2012-12-20 04:51:20 Tree
[43c663] by Nathan Froyd Nathan Froyd

don't check SUBTYPEP of ELEMENT-TYPE in ADJUST-ARRAY unnecessarily

2012-12-20 04:51:20 Tree
[a1019c] by Nathan Froyd Nathan Froyd

lazily compute MIN-EXTENSION for VECTOR-PUSH-EXTEND

This change avoids a full call to LENGTH on every call to VECTOR-PUSH-EXTEND.

2012-12-20 04:51:20 Tree
[053e40] by Stas Boukarev Stas Boukarev

Fix a typo in the previous commit.

-1 should be ~S.

2012-12-18 17:51:09 Tree
[62964a] by Stas Boukarev Stas Boukarev

Better error message for SLEEP.

Add explicit-check to defknown, sleep already explicitly checks the
argument.
Slightly improve the produced error message.

2012-12-18 17:38:24 Tree
[9f53ac] by Stas Boukarev Stas Boukarev

make.sh --help no longer runs clean.sh

Fixes lp#937001

2012-12-18 15:04:29 Tree
[fe6da9] by Stas Boukarev Stas Boukarev

sb-rotate-byte: Don't use :if-component-dep-fails.

Newer ASDF doesn't support it anymore.

2012-12-17 19:08:28 Tree
[9644b3] by David Lichteblau David Lichteblau

In x86 arch_os_get_current_thread(), do not load from %fs

Simplify arch_os_get_current_thread() such that %fs is not being
loaded directly even on platforms which preserve it reliably (in
particular, Linux/x86 and Solaris/x86).

Aside from a code simplification and reduction of cross-platform
differences, this change is an improvement in the following way:

If arch_os_get_current_thread() gets called in a non-Lisp pthread,
it now returns NULL cleanly even on the platforms mentioned above.

On the other platforms, keep the support for restoring %fs, but
refactor to remove code duplication with arch_os_thread_init().
Coalesce the two differently-spelled Lisp features for this case
into one.

2012-12-17 13:42:07 Tree
[f21d13] by David Lichteblau David Lichteblau

Split up new_thread_trampoline

Refactor it into two independent pieces for initialization and
deinitialization around the point of its central funcall.

2012-12-17 13:42:07 Tree
[789406] by David Lichteblau David Lichteblau

Factor INITIAL-THREAD-FUNCTION out of MAKE-THREAD

2012-12-17 13:42:07 Tree
[77acf5] by Stas Boukarev Stas Boukarev

Fix a typo.

In the previous commit, varaibles -> variables.

Adjust NEWS by adding lp#n.

2012-12-17 13:35:05 Tree
[17e630] by Stas Boukarev Stas Boukarev

Warn about misconfigured locale.

Check the return value of setlocale(3) and inform about values of
relevant environment variables.
Fixes lp#727625

2012-12-16 17:10:08 Tree
[219457] by David Lichteblau David Lichteblau

Remove a few :FAILS-ON test flags for Windows

2012-12-05 16:34:29 Tree
[dea1e4] by David Lichteblau David Lichteblau

Support long file names on Windows; more CRT function avoidance

- Use native namestrings of the form \\?\ and \\?\UNC\ as required.

- UNC pathnames now represented using the keyword :UNC in the device.
This aspect of the implementation is user-visible, but considered
subject to change.

- Update a few final holdouts among the file system routines which
were still using CRT functions and replace them with native versions:
FILE-LENGTH, QUERY-FILE-SYSTEM, DELETE-FILE, DELETE-DIRECTORY.

- Sneakily include a getenv change, technically unrelated.

Thanks to Anton Kovalenko.

2012-12-05 16:34:29 Tree
Older >