sbcl Log


Commit Date  
[266ccb] by David Lichteblau David Lichteblau

Add a safepoint-based mechanism to avoid SIGALRM for the TIMER facility

- Retrofits the signal-free timer thread for Windows (thanks to
Anton Kovalenko) to POSIXy platforms.

- Provide os_* functions in the C runtime which simulate the win32
API for waitable timers.

Currently supported on Linux (timerfd), FreeBSD (kqueue), and SunOS
(completion ports). A tentative (untested) implementation is
provided for Darwin's kqueue.

2012-09-19 15:10:28 Tree
[83fc8f] by David Lichteblau David Lichteblau

New predicate THREAD-EPHEMERAL-P for certain system threads

Adds an `ephemeral' flag to the thread structure and exports it.
When true, we can assume that the thread will be started and stopped
by the runtime automatically as needed.

The flag is currently of a purely informational nature; it does not
change the behaviour of thread-related functions.

Thanks to Anton Kovalenko.

2012-09-19 13:45:06 Tree
[81678b] by Nathan Froyd Nathan Froyd

add truly-dynamic-extent declarations for various &rest number functions

This change eliminates some spurious heap consing when using, e.g.
(REDUCE #'+ ...). We ought to be able to do a better job of optimizing
REDUCE, but this is a helpful first step in any event.

2012-09-19 01:49:16 Tree
[69990b] by Paul Khuong Paul Khuong , pushed by David Lichteblau David Lichteblau

Kill leftover threads after each test

Otherwise, slightly broken tests manifest as hard failures in later
tests.

Thanks to Paul Khuong.

2012-09-18 16:43:05 Tree
[5c6755] by Paul Khuong Paul Khuong , pushed by David Lichteblau David Lichteblau

Fix "exit from normal thread" test

The test did not wait for the child to exit, resulting in spurious
failures on loaded or single-core machines.

2012-09-18 16:08:12 Tree
[8afcf4] by David Lichteblau David Lichteblau

Reduce the numbers of threads in test ATOMIC-UPDATE on 32bit platforms

This test creates 1000 threads in a row -- too many for some 32bit
platforms due to lack of memory or fragmentation.

2012-09-18 15:44:00 Tree
[2b67d2] by David Lichteblau David Lichteblau

sunos-os.c: Do not lose on mmap failure

Brings this platform in line with other POSIX backends. It is desirable
that we do not `lose' just because too many threads have been created,
for reasons of user-friendliness -- and also because individual
ill-behaved tests should not cause the entire run-tests process to fail.

2012-09-18 15:43:53 Tree
[89d479] by David Lichteblau David Lichteblau

Minor repair work around odxprint

Fixes the build on SunOS.

2012-09-18 15:16:16 Tree
[87c62d] by Nikodemus Siivola Nikodemus Siivola

don't assume only bits are looked for in bit-vectors

2012-09-17 19:47:39 Tree
[7c9bae] by Nikodemus Siivola Nikodemus Siivola

fix unthreaded build

2012-09-16 13:34:39 Tree
[508bdb] by Christophe Rhodes Christophe Rhodes

Fix clisp cross-compile

Problems:

* least-positive-long-float is unrepresentable in clisp, ending up
with being zero
* clisp's decode-float returns a 0 exponent for a 0 float (rather
than something large and negative)
* everything got constant-folded in the cross-compiler, thus using
the host's runtime.

Solution: compute the value using sb!vm:double-float-digits/bias

2012-09-15 17:42:16 Tree
[239125] by Nikodemus Siivola Nikodemus Siivola

timeouts for WITH-MUTEX and WITH-RECURSIVE-LOCK

* Also support :WAIT-P in WITH-RECUSIVE-LOCK.

* Deprecate GET-MUTEX properly (been deprecated since early 2010, but didn't signal
a compile-time warning, and we used it internally.)

* Make WITH-MUTEX signal a runtime error when :VALUE is used and is other
than current thread or NIL. Releasing it isn't going to work right if
someone else holds it.

2012-09-15 11:27:09 Tree
[af3fdb] by Nikodemus Siivola Nikodemus Siivola

implement ATOMIC-PUSH and ATOMIC-POP

2012-09-15 11:27:08 Tree
[76db27] by Nikodemus Siivola Nikodemus Siivola

fix CAS on DEFCAS-defined places when the form is a macro

2012-09-15 11:27:06 Tree
[ed46a5] by David Lichteblau David Lichteblau

Port safepoints to FreeBSD/x86

2012-09-14 17:36:23 Tree
[3b39e4] by David Lichteblau David Lichteblau

x86-bsd-os.c: Include stdio

Fixes the build on FreeBSD 9.1/x86.

2012-09-14 17:36:23 Tree
[bad78f] by David Lichteblau David Lichteblau

Port tests/expect.sh, foreign.test.sh to FreeBSD's shell

Fixes clos.test.sh, foreign.test.sh on FreeBSD 9.1.

2012-09-14 17:36:21 Tree
[60bb50] by David Lichteblau David Lichteblau

Tweak slam.sh to be slightly more configurable regarding the host binary

Developers building with an existing SBCL as a host, which is not
installed as "sbcl" in the path, or which needs a --core option, can
now set XC_LISP and XC_CORE prior to invoking slam.sh. Previously,
such a host could only be used with slam.sh after custom
modifications to the script.

The default behaviour is unchanged.

2012-09-11 12:56:35 Tree
[1b39d9] by Juho Snellman Juho Snellman

release.sh: Push accumulated automation changes.

2012-09-11 12:50:33 Tree
[5cfc11] by David Lichteblau David Lichteblau

Add dyndebug flags backtrace_when_lost, sleep_when_lost

Available when :SB-QSHOW is enabled, these settings can be enabled
through the SBCL_DYNDEBUG environment variable to customize SBCL's
behaviour prior to entry to ldb.

With backtrace_when_lost, lossage shows a backtrace before
continuing with the lossage handler as usual. (Thanks to Dmitry
Kalyanov for this idea, here committed as a dyndebug option.)

With sleep_when_lost activated, the monitor is preempted, and SBCL
will instead cease to do anything except for a OS-level sleep call.
This behaviour has proven useful in preserving a failing thread's
current state until an external debugger can be attached.

2012-09-11 12:42:51 Tree
[ebb604] by David Lichteblau David Lichteblau

Add odxprint, a replacement for FSHOW which can be configured at run-time

- A new macro odxprint(flag, "fmt", ...) performs the equivalent of
a printf("fmt", ...), but only if `flag' has been enabled at
run-time.

- Environment variables can be used to set flags, using either
SBCL_DYNDEBUG="flag1 flag2 flag3" syntax, or
SBCL_DYNDEBUG__FLAG1="nonempty string" syntax.

- Lisp feature SB-QSHOW enables support for odxprint-based FSHOW.
(Users who prefer to edit runtime.h to enable QSHOW can still do
so...) SB-QSHOW is enabled by default on Windows, where the
odxprint mechanism was first used.

- Implement FSHOW, FSHOW_SIGNAL on top of odxprint. Corresponding
flags are called fshow, fshow_signal.

- For gencgc_verbose, support a flag of the same name, since it is
conditional on QSHOW (inspite of not being implemented on top of
FSHOW).

- Does not yet support odxprint features specific to Windows debugger
integration; output is currently directed to stderr unconditionally.

This commit backports Anton Kovalenko's Windows-specific odxprint to
POSIX and integrates it with FSHOW.

2012-09-11 10:14:50 Tree
[0285aa] by David Lichteblau David Lichteblau

win32-os.c: Split up handle_exception

In preparation for various changes to exception handling, split up
handle_exception into separate functions for each kind of exception.

This change is entirely cosmetic in nature.

2012-09-11 09:21:22 Tree
[31a554] by Nikodemus Siivola Nikodemus Siivola

fix bug in SYMBOL-VALUE CAS expansion for constant arguments

2012-09-10 22:52:16 Tree
[8cef5f] by David Lichteblau David Lichteblau

Mention sb-safepoint, sb-thruption in base-target-features.lisp-expr

2012-09-10 16:32:02 Tree
[137710] by David Lichteblau David Lichteblau

Fix a corner case in RUN-INTERRUPTION

Loop in C, not Lisp, if only to appease the test suite.

2012-09-07 18:24:08 Tree
Older >