Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

sbcl-cvs-import Log


Commit Date  
[65b5ab] by Alastair Bridgewater Alastair Bridgewater

"1.0.41.2": threads: Add memory-barrier framework.

* New file, src/code/barrier.lisp, containing the baseline
implementation.

* Added the barrier functions to the compiler function database.

* Export the interface macro, BARRIER, from SB!THREAD and the
underlying barrier functions from SB!VM.

* Document a new architecture-dependent build-time feature,
MEMORY-BARRIER-VOPS, for controlling the behavior and inlining of
the interpreter stubs for the barrier functions.

2010-08-04 17:58:15 Tree
[6e9a41] by Christophe Rhodes Christophe Rhodes

1.0.41.1: much faster MAKE-INITIAL-DFUN

Don't attempt to precompute any kind of effective methods in
MAKE-INITIAL-DFUN (called from COMPUTE-DISCRIMINATING-FUNCTION, among
other places), because C-D-F is called really quite often.

This allows us to delete FINALIZE-SPECIALIZERS and
PRECOMPUTE-EFFECTIVE-METHODS, respectively responsible for about 3% each of
the time in loading asdf.fasl. We can also delete the INITIAL-DISPATCH
discriminating function kind, which (to my surprise) was already not
mentioned in the internals documentation about the possible dfun
states.

2010-07-30 21:01:12 Tree
[5295cc] (sbcl_1_0_41sbcl.1.0.41) by Christophe Rhodes Christophe Rhodes

1.0.41: will be tagged as sbcl_1_0_41

2010-07-30 12:55:15 Tree
[b4f751] by Christophe Rhodes Christophe Rhodes

1.0.40.8: revert sb-bsd-sockets threadsafety patch

Broke functionality completely on Darwin.

2010-07-30 11:00:24 Tree
[ab3d6a] by cracauer cracauer

1.0.40.7: socket-connect was not thread safe

https://bugs.launchpad.net/sbcl/+bug/505497

Committing diffs as supplied in the bug report after review and
testing.

Credits to Andrew Golding for the diffs and Jaap de Heer for the
initial report and reproducible test case.

2010-07-23 20:55:45 Tree
[cea294] by Christophe Rhodes Christophe Rhodes

1.0.40.6: call an appropriate existing ctor from MAKE-INSTANCE (CLASS)

The intuition here is that searching for a ctor is much cheaper than
the whole of the unoptimized make-instance machinery. If a class has
many, many ctors, this may not be true, but that should be the rare
case.

Only call optimized ctors so that we don't risk endless recursion
through the fallback case.

2010-07-19 07:05:39 Tree
[48f1b4] by Christophe Rhodes Christophe Rhodes

1.0.40.5: comment changes

reflows and typo fixes

2010-07-19 07:02:48 Tree
[2210e1] by Christophe Rhodes Christophe Rhodes

1.0.40.4: slight performance enhancement in gf initialisation

in RAISE-METATYPE, use special variables to access system classes
rather than FIND-CLASS. (LOAD-TIME-VALUE of FIND-CLASS doesn't work
as it is too early in the PCL bootstrap...)

2010-07-19 06:40:24 Tree
[ab7aed] by Christophe Rhodes Christophe Rhodes

1.0.40.3: better non-ctor make-instance

Actually, the really expensive bit is the initarg validity checking.
Use the ctor machinery to cache the results of testing for initarg
validity for make-instance as well as reinitialize-instance. (Why
wasn't this done before?)

With this change, asdf.fasl loads about 10% faster.

2010-07-19 06:34:36 Tree
[57eae6] by Christophe Rhodes Christophe Rhodes

1.0.40.2: ctor machinery bugfixes

One bug was a simple harmless thinko, limiting the cache for validity
checking of reinitialize-instance initargs to only one list of keys.

The other is actually a correctness problem: addition or removal of
methods on MAKE-INSTANCE and ALLOCATE-INSTANCE would invalidate the
wrong set of initarg validity caches and reset the wrong ctors. I
think at the moment this bug is tricky to trigger, because those
methods have no effect on reinitialize-instance initarg checking, and
fallback ctors on non-standard metaclasses are very conservative in
their assumptions.

2010-07-19 06:30:07 Tree
[a7f046] by Gabor Melis Gabor Melis

1.0.40.1: fix return value of WRITE

Used to return NIL when the compiler macro for the constant keyword
argument case triggered.

Add test.

2010-07-16 07:42:22 Tree
[d1583d] (sbcl_1_0_40sbcl.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

1.0.39.24: win32: Fix foreign function name conversion.

* In 1.0.39.15, 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

1.0.39.23: Fix run-sbcl.sh 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 run-sbcl.sh. 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

1.0.39.22: "upgrade" to ASDF 2.003

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

1.0.39.21: 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

1.0.39.20: 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

1.0.39.19: 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

1.0.39.18: Use SB-VM:WORD in (DEFSTRUCT HASH-TABLE).

2010-06-20 07:50:14 Tree
[8e3fdb] by Tobias C. Rittweiler Tobias C. Rittweiler

1.0.39.17: Reduce stress level of sb-concurrency tests.

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

Reasons:

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

1.0.39.16: tls-slot allocation not thread-safe

Committing James Knight's patch from
https://bugs.launchpad.net/sbcl/+bug/589293

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

Quotes:

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 1.0.37.44. 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 (0.9.16.38)
- 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

1.0.39.15: 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

1.0.39.14: 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

1.0.39.13: 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
Older >