From: Nikodemus S. <de...@us...> - 2007-07-11 13:57:00
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv21888 Modified Files: NEWS version.lisp-expr Log Message: 1.0.7.14: thread-safe INTERN, EXPORT, &co * Modifications to packages grab a global lock. INTERN is the only real potential performance bottleneck here, but as long as the symbol already exists it doesn't need to get the lock. We need a global lock instead of a per-package lock because eg. (EXPORT 'FOO::BAR :FOO) and (INTERN "BAR" :ZOT) can conflict, even though they operate on different packages. Since races should be rare we use a spinlock to avoid making a system call for every release. Interrupt safety? Probably no. It's likely that you can wedge the package system into a bad state if you really try. Index: NEWS =================================================================== RCS file: /cvsroot/sbcl/sbcl/NEWS,v retrieving revision 1.1221 retrieving revision 1.1222 diff -u -d -r1.1221 -r1.1222 --- NEWS 2 Jul 2007 16:58:20 -0000 1.1221 +++ NEWS 11 Jul 2007 13:56:49 -0000 1.1222 @@ -17,6 +17,8 @@ objects that can be seen by the GC. * bug fix: defaulting of values in contexts expecting more than 7 variables now works on x86-64. (reported by Christopher Laux) + * bug fix: modifications to packages (INTERN, EXPORT, etc) are now + thread safe. changes in sbcl-1.0.7 relative to sbcl-1.0.6: * MOP improvement: support for user-defined subclasses of Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.3498 retrieving revision 1.3499 diff -u -d -r1.3498 -r1.3499 --- version.lisp-expr 4 Jul 2007 00:15:27 -0000 1.3498 +++ version.lisp-expr 11 Jul 2007 13:56:49 -0000 1.3499 @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.7.13" +"1.0.7.14" |