From 8b88c2076197247908a5035df1ebbf833c554383 Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Tue, 25 Oct 2011 18:43:36 -0400 Subject: [PATCH] room: KLUDGE-reduction. * Now that the thread structure doesn't have a lowtag, we can remove the KLUDGE that prevented even FIXNUMs from being treated as though they were thread-object-sized instead of a single word. --- src/code/room.lisp | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/src/code/room.lisp b/src/code/room.lisp index 3ddbfc6..4f81df1 100644 --- a/src/code/room.lisp +++ b/src/code/room.lisp @@ -39,28 +39,6 @@ (size (primitive-object-size obj))) (cond ((not lowtag)) - (;; KLUDGE described in dan_b message "Another one for the - ;; collection [bug 108]" (sbcl-devel 2004-01-22) - ;; - ;; In a freshly started SBCL 0.8.7.20ish, (TIME (ROOM T)) causes - ;; debugger invoked on a SB-INT:BUG in thread 5911: - ;; failed AVER: "(SAP= CURRENT END)" - ;; [WHN: Similar things happened on one but not the other of my - ;; machines when I just run ROOM a lot in a loop.] - ;; - ;; This appears to be due to my [DB] abuse of the primitive - ;; object macros to define a thread object that shares a lowtag - ;; with fixnums and has no widetag: it looks like the code that - ;; generates *META-ROOM-INFO* infers from this that even fixnums - ;; are thread-sized - probably undesirable. - ;; - ;; This [the fix; the EQL NAME 'THREAD clause here] is more in the - ;; nature of a workaround than a really good fix. I'm not sure - ;; what a really good fix is: I /think/ it's probably to remove - ;; the :LOWTAG option in DEFINE-PRIMITIVE-OBJECT THREAD, then teach - ;; genesis to generate the necessary OBJECT_SLOT_OFFSET macros - ;; for assembly source in the runtime/genesis/*.h files. - (eql name 'thread)) ((not widetag) (let ((info (make-room-info :name name :kind :lowtag)) -- 1.7.10.4