sbcl Log

Commit Date  
[d1583d] (sbcl_1_0_40) by Christophe Rhodes Christophe Rhodes

1.0.40: will be tagged as sbcl_1_0_40

2010-06-30 21:36:22 Tree
[3397c1] by Alastair Bridgewater Alastair Bridgewater win32: Fix foreign function name conversion.

* In, the win32 case for foreign function names was
accidentally removed when the darwin/dlshim case (the same case)
was removed. Re-added the win32 case.

2010-06-30 16:25:01 Tree
[9c66b1] by Alastair Bridgewater Alastair Bridgewater Fix to use absolute paths when necessary.

* The new ASDF 2 requires absolute paths in places where SBCL
historically used relative paths. The last(?) remaining place
where this happens is the SBCL_HOME environment variable set up
by Fixed by introducing a readlink -f to generate
an absolute path to the base SBCL directory.

2010-06-27 19:41:07 Tree
[37a89c] by Cyrus Harmon Cyrus Harmon "upgrade" to ASDF 2.003

2010-06-26 05:03:58 Tree
[11cdd2] by Cyrus Harmon Cyrus Harmon more ASDF2 cleanup

* update the asdf README and texinfo documentation

* update asdf license

* fix pulling documentation from upstream

2010-06-24 05:08:58 Tree
[d6db46] by Cyrus Harmon Cyrus Harmon more asdf logical pathname cleanup

* use #p"..." for logical pathnames instead of 1) just "" or
#.(logical-pathname "...")

2010-06-23 03:12:35 Tree
[4fd247] by Cyrus Harmon Cyrus Harmon asdf2 merge from upstream

* replaced asdf.lisp with asdf.lisp 2.102

* wrap logical pathname in sb-rotate-byte with #.(logical-pathname ...)

2010-06-22 17:02:25 Tree
[521911] by Tobias C. Rittweiler Tobias C. Rittweiler Use SB-VM:WORD in (DEFSTRUCT HASH-TABLE).

2010-06-20 07:50:14 Tree
[8e3fdb] by Tobias C. Rittweiler Tobias C. Rittweiler Reduce stress level of sb-concurrency tests.

Reduce the stress level of the MAILBOX tests by a factor of 10.


a) As contrib tests are run as part of a normal SBCL build, the
mailbox tests are executed each time SBCL is built. And they
really result in a few minutes of 100% cpu usage and high load
averages because of many simultaneously running threads.

b) On BSD platforms, the tests were reported several times in past
to fail. From what I'm told (and if I remember correctly), the
issue is, however, not necessarily concurrency bugs, but a
coarser SLEEP granularity than on Linux platform.

2010-06-20 07:48:24 Tree
[55f790] by cracauer cracauer tls-slot allocation not thread-safe

Committing James Knight's patch from

Tested on amd64 and x86 with same failures before and after.


It seems as though the ALLOC-TLS-INDEX-IN-* code is not thread-safe. I
cannot figure out how it's not thread-safe, because it looks correct
to me, so far as I can see.

But this test case shows that it's not.

sbcl --eval '(load (compile-file "thread-test.lisp"))' --eval "(run-test)" --eval "(quit)"

It will fail with something like:
The assertion (BOUNDP '*VAR50*) failed.
The variable number will vary randomly, of course.

SBCL Debian Linux 2.6.32-amd64, x86-64.


Okay, turns out to be an utterly trivial problem. This is the
disassembly of SB-VM::ALLOC-TLS-INDEX-IN-RAX. See instructions
0x20000f42 and 0x20000f47. You can't use %rax as the new value and the
compare-to value for cmpxchg! So, the lock was never actually
taken. The variants for allocating in everything else worked
fine. Just RAX is broken.

0x20000f38: mov %rbp,0xb8(%r12)
0x20000f40: push %rcx
0x20000f41: push %rax
0x20000f42: mov $0x1,%eax
0x20000f47: xor %eax,%eax
0x20000f49: lock cmpxchg %rax,0x20100b88
0x20000f53: jne 0x20000f42
0x20000f55: pop %rcx
0x20000f56: mov 0x21(%rcx),%rax
0x20000f5a: or %rax,%rax
0x20000f5d: jne 0x20000f8d
0x20000f5f: mov 0x20100b48,%rax
0x20000f67: cmp $0x8000,%rax
0x20000f6d: jl 0x20000f80
0x20000f6f: movq $0x0,0xb8(%r12)
0x20000f7b: jmpq 0x20001874
0x20000f80: addq $0x8,0x20100b48
0x20000f89: mov %rax,0x21(%rcx)
0x20000f8d: xor %ecx,%ecx
0x20000f8f: xchg %rcx,0x20100b88
0x20000f97: pop %rcx
0x20000f98: xor %rbp,0xb8(%r12)
0x20000fa0: je 0x20000fa4
0x20000fa2: int3
0x20000fa3: 0x09
0x20000fa4: ret

2010-06-14 22:32:05 Tree
[03833f] by Andreas Fuchs Andreas Fuchs

GIT GATEWAY: Remove files that were deleted in 2006.

These file removals were never picked up, probably due to a git bug.
The changes corresponding to these file deletions are:

* b66385e2031fc2cac17dd129df0af400beb48a22 (
- src/compiler/ir1-step.lisp
* 28ed41eb0eed3f0c1baeebf10793a3d21cb0eb9d
- src/runtime/ppc-darwin-{langinfo,dlshim}.[ch]
- src/runtime/x86-darwin-langinfo.c

Thanks to Cyrus Harmon for alerting me to this issue.

2010-06-13 08:01:11 Tree
[b43d36] by Cyrus Harmon Cyrus Harmon delete all traces of the darwin dlshim

* following up on previous commits which still used the shim with the
:dlshim feature, now completely remover all traces of the dlshim.

2010-06-13 04:40:20 Tree
[2ac454] by Cyrus Harmon Cyrus Harmon prepend an underscore to ldso stubs

* a leading underscore keeps the cross-compiling linker happy
and matches the way we do things on x86oid darwins.

2010-06-13 02:39:40 Tree
[55c734] by Cyrus Harmon Cyrus Harmon restore darwin/ppc building

* fix ldso stubs to work without the dlshim

* hack to avoid calling dlclose on the main executable
for darwin/ppc

2010-06-12 22:59:53 Tree
[7c75cd] by Cyrus Harmon Cyrus Harmon remove darwin-langinfo

* remove darwin-langinfo.c/h from Config.*-darwin and

* revert explicit setting of *default-c-string-external-format* to
latin-1 in sb-posix test.

2010-06-12 22:25:31 Tree
[0c4fe8] by Cyrus Harmon Cyrus Harmon fix readdir for :inode64 builds

* readdir now calls readdir$INODE64 when buildling with :inode64
(launchpad bug #592897)

2010-06-12 20:44:42 Tree
[faa1bd] by Cyrus Harmon Cyrus Harmon cleanup sb-posix tests for darwin

* check for the error codes darwin gives back

* use :latin-1 for *default-c-string-external-format* in readdir test

2010-06-11 22:31:49 Tree
[74cfbf] by Christophe Rhodes Christophe Rhodes improvements to the manual

These improvements mainly centre around better indexing, including
some nifty trickery to get suitably collated and aligned index
entries (to cope with issues like *earmuffs* and sb-foo package
prefixes). This patch also incorporates work by Robert Goldman to
document the commands for enabling and disabling the debuggers.

The remainder of this log message is a squashed version of my git
branch's log messages:

improve text relating to my support availability

Remove a stray comma in instructions for signal-related bug reporting

Patch from Robert Goldman for enable/disable-debugger documentation

trick texinfo's collation engine into producing a better index

The issue is that the sort order and what is printed (both in the
index and as the title of a definition entry) are deeply tied together
in texinfo, and there's no obvious way short of rewriting lots of TeX
code to undo that. There is one get-out clause, though: texinfo
macros are replaced by their arguments. So define a number of macros
which hide from the collation engine things that we would rather not
play a part in the sorting (package names, "(setf", *earmuffs*)

In the process, note that @deffoo in texinfo automatically produces an
index entry, so get rid of the apparently redundant extra index
entries produced by docstrings.lisp
Mostly move to using the new indexing helper macros

Only mostly: there are a few remaining issues. The first is
declarations, which are treated as types; I think they might warrant
their own index; similarly, various commands (debugger, inspector)
aren't really functions. Hardest of all is the ffi chapter, which has
handwritten function documentation which is highly similar to but not
exactly the same as the docstrings for those operators; it would be
good to merge the documentation into the docstrings, include the
autogenerated texinfo snippets into the manual, and thereby gain
complete consistency.
add some index entries from the efficiency chapter

... because why not?
manually (!) change the entries for FFI-related functions and macros

Making the docstrings match the text match reality is an exercise for
the future.
make index in info form mostly work

info readers apparently parse the formatted index to work out where to
go. This is hilariously bad if the index entries contain colons, so
define macros conditional on output format to make sure that they
don't in info.
better, more useful indexes

Now that collation is sorted (!), getting the display of index entries
to be useful is important. This not-quite-general trick is to make
the package name as small as possible, have the colon always in the
same horizontal position, and arrange that the package name extends at
most three characters ("sb-") into the left margin. This is the most
tolerable I can find.

Continue not having package information at all in info format; in
other formats, place the package information after the symbol name.
This probably goes wrong in corner cases like
(setf sb-mop:symbol-value-using-class)
deal with remaining manually-documented functions

make documentation for declarations consistent

Arbitrarily decide that declarations belong in the function index
rather than the type index; use the package prefix texinfo macros to
get them properly indented.
One more manually-documented thing which needed a package macro decoration

Fix the nopkg{} macro to align index entries in TeX mode

Use it for debugger commands.

2010-06-06 20:43:57 Tree
[67e68b] by Alastair Bridgewater Alastair Bridgewater Inline-compare more character codes on SB-UNICODE PPC.

* In, I disabled the -c character compare VOPs on SB-UNICODE
because the instruction used (cmplwi) was limited to a 16-bit constant.

* Added a predicate to determine if a character can safely be used in
the -c character compare VOPs.

* Changed the required constant type on the -c character compare VOPs
from CHARACTER to (SATISFIES <the-new-predicate>).

* Back in the commit comment for I said that there was no
good way to conditionally use the VOPs. Looks like I was wrong, unless
you want to argue that SATISFIES types are bad.

2010-06-06 19:53:44 Tree
[485053] by Alastair Bridgewater Alastair Bridgewater Make TRACE :ENCAPSULATE NIL work on PPC.

* SIGNAL-CONTEXT-FRAME (debug-int.lisp) was passing a bogus
parameter to COMPUTE-CALLING-FRAME on non-x86oids, causing an
unknown immediate object to be constructed. Fixed, and KLUDGEd
to still work on x86oids.

* fun_end_breakpoint_guts (ppc-assem.S) wasn't implemented at
all, just stubbed out to provide the symbols that the core looks
for when compiling MAKE-BOGUS-LRA (debug-int.lisp).

* The implementation of fun_end_breakpoint_guts on non-PPC is
sparsely explained at best. Addressed in the new PPC version.

* The usual implementation of fun_end_breakpoint_guts leaves
setting the LRA header data to MAKE-BOGUS-LRA but this is done
after attempting to create the LRA object, which fails on GENCGC
systems due to the sanity checking of the pointer. On PPC, this
is addressed by setting the LRA header data by dead reckoning in

* In MAKE-BOGUS-LRA, don't bother setting the LRA header data
if it is known to already be correct.

2010-06-06 19:51:18 Tree
[ad3ac3] by Alastair Bridgewater Alastair Bridgewater valid_lisp_pointer_p() is gencgc-specific, not x86oid-specific.

* Changed SB-KERNEL:MAKE-LISP-OBJ (src/code/debug-int) to use
valid-lisp-pointer-p on all gencgc targets, not just x86oids.

* Changed valid_lisp_pointer_p() (src/runtime/gencgc.c) to build on
all targets, not just x86oids.

* Added a special-case to looks_like_valid_lisp_pointer_p() to
correctly handle LRA objects (RETURN_PC_HEADER_WIDETAG) on non-x86oid
targets (though, really, we probably should have an :IMPLICIT-LRA
feature for this sort of nonsense).

2010-06-06 19:43:30 Tree
[fca1ff] by Alastair Bridgewater Alastair Bridgewater Initial attempt to make breakpoints work on PPC.

* The actual breakpoint trap instruction was wrong, acting as a
NOP instead of trapping. Fixed.

* A bit of cleanup and fixes surrounding setting up breakpoints
and dealing with after-breakpoints.

* An initial implementation of the clever part of

* Added a couple of new arch-os-specific functions to find the
parts of the context required for arch_do_displaced_inst(). Stubbed
out for darwin and bsd, probably broken on GLIBC231_STYLE_UCONTEXT
linux systems.

* Everything beyond fixing the breakpoint trap instruction not
actually tested, because it turned out that the entire breakpoint
system is broken on all non-x86oid targets, due to something in

2010-06-06 19:41:10 Tree
[743831] by Cyrus Harmon Cyrus Harmon fix build on non-darwin and ppc/darwin platforms

* fix conditional include of langinfo.h

* conditionalize the darwin/ppc Config file for :dlshim

2010-06-03 14:43:15 Tree
[bd2df6] by Cyrus Harmon Cyrus Harmon support building on darwin x86 and x86-64 without the dlshim

* x86 config -mmacosx-version-min cleanup

* remove dlshim feature in

* fix extern-alien-name and ldso naming conventions

* kludge in load-cold-foreign-symbol-table to strip off the leading
#\_ from the nm parsing

* change dependency on ldso stubs for dlopen and friends to be
#!-dlshim instead of #!-darwin

* remove Config.x86-64-darwin9+ and replace with makefile

* add :dlshim feature for darwin in and rework the
darwin9+ stuff

* make grovel-headers.c load genesis/config.h first so that we can
use the LISP_FEATURE_xxx conditionals earlier

2010-06-03 04:39:50 Tree
[46b159] by Alastair Bridgewater Alastair Bridgewater Fix symbol-name-conflict resolution test from

* Before signalling a name-conflict in IMPORT due to a symbol found
previously on the arglist, remove the earlier symbol from the list of
symbols to add to the package (one or the other will be shadowing-imported,
and there's no further check for name collision.

2010-05-30 00:40:34 Tree
Older >

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks