release, tagged as sbcl_0_8_13
Really return the host-ent's address in sb-bsd-sockets::make-host-ent
Various rather urgent sb-grovel and sb-bsd-sockets fixes. * sb-grovel uses WITH-ALIEN now for the WITH-* macros, to allow use of SB-ALIEN:ADDR on variables allocated that way. * sb-bsd-sockets: name-service code now return addresses as vectors again. * sb-bsd-sockets: fix socket-receive into relative workingness again: use (deref (deref array) i) instead of (deref array i); type-convert the results
signature (change happened with package-locks).
reduced (ROOM T) functionality down to just (ROOM), since (ROOM T) is flaky on my machine again and I don't know how to fix it logged the problem in BUGS
Make socket-receive allocate a buffer if it's passed a length arg. Reported on CLL by Miguel Arroz; I removed that bit of code in .10 and forgot to put it back in.
Various fixes from Vincent Arkesteijn ... just text fixes for now
* Fix a trivaial typo. * Grammar fix grammar.
Update NEWS to note threading stability improvement
Really fix the sb-posix opendir test case this time. I swear, this is my last SBCL commit tonight.
Fix a file descriptor leak in sb-posix's opendir test
Fix sb-posix:readdir for the new sb-grovel types * readdir now returns a (* dirent), as reflected by reality * Add test cases for readdir and opendir, too
Make SBCL build on x86/BSD again.
Fixed build on unithread ... someone had better check that I haven't broken it on threads now...
Fix the threading problems revealed by Edi's CL-PPCRE tests ... If target-arch.h is included before genesis/config.h, some runtime files with inline expansion of get_spinlock get the wrong version Significantly change handling of thread exit: the SIG_THREAD_EXIT handler just makes th->state=STATE_DEAD, does not do all_threads surgery, does not call Lisp code and is no longer deferrable, eliminating a problem where threads die at the start of GC and become zombified so cannot be stopped for GC Instead we call thread exit handlers from reap_dead_threads(), necessitating further changes in HANDLE-THREAD-EXIT, as it can now be called from threads other than the parent of the dead one stop_the_world doesn't actually need to hold all_threads_lock(), as it doesn't modify the all_threads list. Likewise sig_stop_for_gc_handler(), which means the sched_yield() kludge can go away
Update asdf from the cclan upstream ... also adjust the up target, since SF changed their nameserver such that the old version didn't work.
Fix SB-GROVEL to make less catastrophic types Thanks to Christophe for most (in fact, all except 2) of these fixes. * Make sb-grovel's compile failures a bit clearer: There are now separate conditions for c-compile-failed, a-dot-out-failed, and the normal lisp compile/load failures. * don't use gensym for structure member names; This confused the environment horribly. * make identity-1 a macro so that its uses get optimized away. As a result, * sb-bsd-sockets::make-host-ent doesn't throw a compiler optimization note on run time any more. * sb-grovel doesn't lie about vector types on array structure fields' SETF accessor any more. As a result, no more type error warnings on constants.lisp-temp compilation any more! * sb-bsd-sockets' getprotobyname alien function accepts a (* protoent) structure now. * export error-component and error-operation from asdf.lisp
Add a FATAL-COMPILER-ERROR to indicate fatal file compiler errors. This is a change to make SLIME handle READ errors on file compilation better. * export a FATAL-COMPILER-ERROR * Make input-error-in-compile-file inherit from that. * re-signal the FATAL-COMPILER-ERROR condition from sub-compile-file so that SLIME has a remote chance of noticing what is going on
Deprecate LOAD-FOREIGN and LOAD-1-FOREIGN for good. Couldn't think of a witty tagline for that change, sorry. * Deprecate LOAD-FOREIGN and LOAD-1-FOREIGN * Add LOAD-SHARED-OBJECT as a LOAD-1-FOREIGN replacement * Fix the test cases to use LOAD-SHARED-OBJECT * Fix the manual * Grovel dlopen constants via grovel-headers.c * In the process, delete quite a number of TODO:s and FIXME:s Yay!
Fix for Fedora Core 2 from Juho Snellman ... <linux/unistd.h>, not <asm/unistd.h> ... also include test for bad scaling in threads/GC
Commit patch from Juho Snellman (sbcl-devel 2004-07-16) for poor performance characteristics in sig_stop_for_gc_handler. ... maybe a spinlock isn't right? Maybe we should have a yielding_spinlock? Maybe we should have a different spinlock implementation for SMP? ... in any case, performance now should be better for GCing when more than two threads are around.
Possibly pointless micro-optimization for SXHASH ... type tests for CONS are more expensive than type tests for LIST. Distinguish between CONS and LIST manually, then, so that we can return the right answer more quickly for NIL. ... exposes a bug in the cross-compiler: SXHASH is most definitely not constant-foldable there. ... be even more paranoid about SXHASH/PSXHASH testing
Make more types known to the cross-compiler at birth ... mostly s/defstruct/def!struct/ and s/deftype/def!type/ on a few choice-chosen forms (revealed by sprof) ... maybe the compiler is slightly faster now
Minor adjustment to BIT, SBIT source transforms ... assert the dimensionality of the bit array based on the number of arguments in the call; ... note potential for further optimization in OPTIMIZATIONS
by package locks. * While at it, correct WITHOUT-PACKAGE-LOCKS to have identical semantics both with and without :SB-PACKAGE-LOCKS in features. * Yay for Boinkmarks for catching this.
Fix bug 269 (also rediscovered by Peter Seibel on comp.lang.lisp) ... SCALE-FLOAT scales floats by integers, not just float-exponents; ... write code to minimize generic calls, not that I think SCALE-FLOAT is likely to be on many critical paths; ... tests
Build with :sb-package-locks by default ... explain potential workaround for unexpected problems in NEWS, and also trail the likely removal of workaround possibilities in the near future.
Fixes for the CTOR optimization in the presence of: ... non-standard :allocation in effective slots: disable the optimization; ... extra possibly-applicable methods on slot-boundp-using-class or slot-value-using-class: disable the optimization, and reset for every add or remove method on those two gfs ... tests
Better error messages for when the MOP instance structure protocol is violated (e.g. by the user defining a class with slots with non-standard :allocation, but no methods to go with it) ... new :amop reference source; ... new instance-structure-protocol-error condition. Should probably eventually become a subclass of MOP-ERROR, once we start accumulating those; ... move implementation of slot-valueish logic around a little to support these better error messages. (the ctor.lisp optimization is broken in the presence of non-standard slot allocation, and also in the presence of auxiliary methods on slot-value-using-classish generic functions. Working on it...)
I WIN! ... fix for multiple bugs with SLOT-DEFINITION-ALLOCATION not being :INSTANCE or :CLASS: ... step 1: don't assert that it must be; ... step 2: handle a NULL location when generating optimized accessors, returning a function that calls ERROR. ... add a slightly-reworked test from AMOP (mostly the rework is because at that stage in AMOP we're still in closette, not the full MOP)
* Fixed #167: illegal syntax in method bodies now signals a more informative error. * No test, tough, since it would be horribly brittle for very little actual gain.
* Initialization of condition class metaobjects no longer creates an instance of the condition. (reported by Marco Baringer on sbcl-devel 2004-07-05) * Test for the same.
to lastest-first order, and moved planned changes bit to TODO.
package locks enabled.