sbcl Log

Commit Date  
[a7afb6] (sbcl_1_0_43) by Juho Snellman Juho Snellman

1.0.43: will be tagged as sbcl_1_0_43

2010-09-30 01:07:36 Tree
[f66034] by Juho Snellman Juho Snellman #!+darwin the nanosleep hack

* At least on linux the the output value of nanosleep can drift
up a little bit compared to the input. Combined with the hack
for the darwin nanosleep problems, this caused early exits
from SLEEP.

2010-09-27 23:42:11 Tree
[cfb2c3] by Nikodemus Siivola Nikodemus Siivola *TTY* stream needs to serve events as well

Regression from

2010-09-27 15:17:08 Tree
[dc3a8b] by Nikodemus Siivola Nikodemus Siivola fix Windows build

Kludge around FD_SETSIZE on Windows.

2010-09-21 16:47:21 Tree
[f13a53] by Nikodemus Siivola Nikodemus Siivola disable split html manual building

Makeinfo tries to generate an overly long filename for one of the
split parts (SB-BSD-SOCKETS:SOCKET-MAKE-STREAM, to be exact),
breaking the documentation build.

Fixes lp#643636. Regression since 1.0.42.

2010-09-21 15:29:10 Tree
[2d266d] by Nikodemus Siivola Nikodemus Siivola workaround a Darwin nanosleep() bug

Fixes lp#640516.

It turns out that on Darwin, if a nanosleep() call is interrupted,
and the signal handler takes longer than the requested sleep time
was, then the call will return with EINTR and (unsigned)-1 in the
remaining seconds.

Since we call nanosleep() again when it returns with EINTR with the
remaining time, this would cause us to sleep ~136 years...

So, check that the remainder is not increasing before calling
nanosleep() again.

Many, many thanks to Joe Lobraco who reported and diagnosed the

2010-09-21 13:10:37 Tree
[5951ca] by Nikodemus Siivola Nikodemus Siivola fix (SETF DOCUMENTATION) for macros

Fixes lp#643958.

Patch Stas Boukarev, test-case by yours truly.

Nice and simple, so going in mid-freeze.

2010-09-21 11:23:32 Tree
[a339d8] by Nikodemus Siivola Nikodemus Siivola more contextual CAREFUL-EXPAND-MACRO messages

Differentiate between compiler-macroexpansion and macroexpansion in
the warning messages.

2010-09-20 08:24:50 Tree
[9cfc5c] by Nikodemus Siivola Nikodemus Siivola fix regressions from

...need to learn read the test suite output properly...

2010-09-20 08:23:52 Tree
[518598] by Nikodemus Siivola Nikodemus Siivola style-warn users about READ-FROM-STRING &optional gotcha

Check -- at runtime if need be! -- if the EOF-ERROR-P argument to
READ-FROM-STRING is one of its keyword arguments, and signal a
style-warning explaining the issue if so,

Since the runtime check surprisingly has a measurable cost, add a
compiler-macro that

* signals the style-warning at compile-time.

* rewrites the call into required-args-only form.

Which actually nets us a 2% speedup... perhaps we should consider
more widespread rewriting of &KEY calls into required-args-only form.

2010-09-20 07:33:24 Tree
[fcdd5b] by Nikodemus Siivola Nikodemus Siivola more descriptive errors for exceeding FD_SETSIZE

Instead of a type-error whose meaning is pretty opaque to an average
user, signal an error with a descriptive message.

Add bug numbers to the previous select()/poll() changes in NEWS.

2010-09-19 21:33:31 Tree
[179d37] by Nikodemus Siivola Nikodemus Siivola oops, this bit was not supposed to go in...

2010-09-19 20:11:58 Tree
[6e02a5] by Nikodemus Siivola Nikodemus Siivola FD-STREAMS no longer hook into SERVE-EVENT by default

* SOCKET-MAKE-STREAM, and MAKE-FD-STREAM have new keyword
argument :SERVE-EVENTS which requests that blocking IO on the
stream should dispatch to SERVE-EVENT. For SOCKET-MAKE-STREAM the
default is T, for MAKE-FD-STREAM the default it NIL.

* Don't call SYSREAD-MAY-BLOCK-P at all unless we need to to handle
events or check for timeout.

* Make WAIT-UNTIL-FD-USABLE use UNIX-SIMPLE-POLL instead of going
into SUB-SERVE-EVENT when appropriate:

** Explicit requests to not serve events.

** Timeout 0.

** No other handlers and no periodic polling function.

* When FD-STREAM-SERVE-EVENTS is false but write returns EWOULDBLOCK,
don't queue output but wait till poll(2) says we can go.

* UNIX-SIMPLE-POLL uses poll() only on platforms where a build-time
test shows it to exist and work as expected. Elsewhere it is built
on top of good 'ol select().

2010-09-19 20:08:47 Tree
[809bab] by Nikodemus Siivola Nikodemus Siivola hack around *AUTO-EVAL-IN-FRAME* issues

When frame doesn't have sufficient debug information and
*AUTO-EVAL-IN-FRAME* is true -- the default -- the debugger REPL
becomes useless in the frame. Oops.

So, in those cases punt to regular EVAL instead -- which is the right
thing most of the time. To avoid confusion by DWIM, tell the user
when punting to global context.

2010-09-19 19:09:21 Tree
[0301f6] by Nikodemus Siivola Nikodemus Siivola use poll(2) instead of select(2) in SYSREAD-MAY-BLOCK-P

Calling select() with a single FD is just waste.

This also means that we don't use select() outside of serve-event,
paving way to having more fds open than FD_SETSIZE allows.

2010-09-19 14:14:15 Tree
[ff257d] by Nikodemus Siivola Nikodemus Siivola replace hardcoded FD-SETSIZE with a groveled one

2010-09-19 13:36:30 Tree
[178f27] by Nikodemus Siivola Nikodemus Siivola workaround for lp#308914

Detect and escape from endless loops in ORDER-UVL-SETS.

2010-09-19 13:07:37 Tree
[0623c5] by Nikodemus Siivola Nikodemus Siivola fix SB-INTROSPECT:VALID-FUNCTION-NAME-P docstring


2010-09-19 12:41:58 Tree
[6a5462] by Nikodemus Siivola Nikodemus Siivola use more NAMED-LAMBDAs in PCL generated code

Previously backtraces and profiles showed eg.

(LAMBDA (.ARG0. .ARG1. .ARG2.))

for effective method functions, and


for slot typechecking functions.

Use NAMED-LAMBDA to name these sensibly:

(DFUN <generic-function-name>)

(SLOT-TYPECHECK <class-name> <slot-name>)

2010-09-13 11:04:00 Tree
[f42c13] by Nathan Froyd Nathan Froyd micro-optimize x86 assembly comparison VOPs

No need to load the address of the assembly routine into a temporary
register, as we do on x86-64. We can jump to the address directly
with CALL.

2010-09-10 23:06:09 Tree
[2e511b] by Alastair Bridgewater Alastair Bridgewater tests: Update :fails-on clause for a test

* Test dynamic-extent.impure.lisp / BUG-586105 expects that both
lists and vectors can be stack-allocated, but not all platforms
support this. Fortunately, the platforms that do support it also
have a feature conditional for it. Added a :fails-on clause to
the test.

2010-09-08 01:12:16 Tree
[46c787] by Alastair Bridgewater Alastair Bridgewater threads: Consolidate thread-specific static symbols

* The x86, x86-64 and ppc backends all had the same three static
symbols used for threading. Rather than having each backend add
the same symbols to the static symbol list, add them to the list
of common static symbols. In the unlikely(?) event that we commit
a threaded port to mainline that doesn't use these symbols, we can
revisit this change.

2010-09-08 01:04:41 Tree
[b119de] by Alastair Bridgewater Alastair Bridgewater ppc: Improve pseudo-atomic implementation

* The runtime (ppc-assem.S) used a shorter, more concise
sequence of instructions for testing pseudo-atomic than the
compiler (ppc/macros.lisp) did. Altered the compiler to use
the same sequence as the runtime.

* Both the compiler and the runtime used magic numbers in the
pseudo-atomic sequence instead of using named constants.
Fixed, using the existing named constants.

2010-09-05 17:01:01 Tree
[b5cb7e] by Christophe Rhodes Christophe Rhodes fix for lp#611361

Only omit IGNORE declarations for required method parameters, not all

2010-09-04 08:01:27 Tree
[267724] by Nikodemus Siivola Nikodemus Siivola fix build with clisp 2.49

Patch by Josh Elsasser, lp#629144.

Previously, if a clisp 2.49 host was used, the build failed during
make-host-1 in src/code/cross-sap.lisp with several "redefining SETF
expander" errors. The same *suppress-check-redefinition* fix used in
make-host-2 is enough to placate clisp and allow the build to finish

2010-09-03 13:28:34 Tree
Older >