I've uploaded the first version of SBCL with support for Windows threads to http://sites.google.com/site/dmitryvksite/sbcl-distr/sbcl-1.0.36.16-threads.msi. So I would like to ask fellow lispniks who are reading this and are using Windows to test this and report any bugs. In particular, I'm interested in whether it works under different versions of Windows (XP, Vista, 7, 2003, 2008) and with different CPUs (x86 and x86-64).
In the released version, threads and threading primitives should basically work with the exception of the sb-thread:interrupt-thread
and sb-thread:terminate-thread
functions. Note that the performance of this version may be significantly worse than the unithreaded version since a lot of things are made in a quick-and-dirty manner without any regard for performance. As an example, a simple loop such as (loop repeat (expt 10 8))
runs about 10 times longer.
SLIME is working although it sometimes behaves weirdly.
I've tried to run the hunchentoot
web server as a test and it didn't work. It happens due to the lack of non-blocking read in usocket
library, which is predicated on the lack of support for non-blocking socket read and polling in the Windows port of SBCL.
Thanks in advance to whoever will test and report the results!
PS. A couple of words on how to report bugs in a way that would most help debug them. There is a small DebugView utility that shows the debug output coming from the OutputDebugString function. If you attach this output to your bug report it would help enormously.