From: Gabor Melis Date: Sat, 15 Oct 2005 08:40:36 +0000 (+0000) Subject: 0.9.5.61: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=d724066ca963f974b47f1a51af13ff9d680392db;hp=d724066ca963f974b47f1a51af13ff9d680392db;p=sbcl.git 0.9.5.61: * threads don't inherit values of specials from their parents anymore because: 1) dynamic-extent Suppose your package has a non-exported special, binds it, promises it's going to be dynamic extent and proceeds to call user code. The user code spawns a thread and the promise is broken. 2) gc It's hard to control giving out references to objects. Yeah, it's similar to 1), but the colour of the smoke is different. 3) scaling When starting up, a thread is given a snapshot of the parent thread's current values for dynamic variables. This means that the minimum memory required by a thread is proportional to the number of specials. 1) and 2) are addressed by this change, 3) is not. * not having lisp objects in unstarted threads allowed undoing thread start vs gc recomplication and un-reinstating STATE_STARTING ---