[Bese-devel] Problems compiling 0.2.0 with CMUCL
Jan Rychter
jan at rychter.com
Fri Mar 26 01:12:43 UTC 2004
[...]
>> I've gotten past the problems with acl-compat on CMUCL (notably it
>> having a strange way of loading gray-streams which fails and it
>> redefining without-package-locks).
Marco> i think rudi fixed that in a recent enough acl-compat, i seem to
Marco> recall talking to him about that exact issue.
Seems it isn't fixed in the asdf-installable acl-compat that I use.
>> I am now at a stage when yaclml and ucw compile and load fine.
Marco> yippy! were there any specific changes you needed to make to
Marco> yoclml or ucw? are there some hints i should put into the docs?
Well, I still get this:
SWANK-BACKEND:SET-DEFAULT-DIRECTORY already names an ordinary function or a
macro. If you want to replace it with a generic function, you should remove
the existing definition beforehand.
Otherwise, things look fine.
>> ucw.mod-lisp also compiles fine, but when I try to load it, I get:
>>
>> Attempt to modify the locked package COMMON-LISP, by redefining
>> function STREAM [Condition of type LISP::PACKAGE-LOCKED-ERROR]
Marco> ok, this is a mistake. the class mod-lisp-message has a slot
Marco> named stream (the stream connected to apache) with an accessor
Marco> named stream. we don't use that accessor, so it could just as
Marco> well be removed.
Ahem, actually, we do -- in make-mod-lisp-response. I've removed the
accessor and replaced this access with (slot-value).
>> Attempting to continue unlocking the package (option [1]) results
>> in:
>>
>>
>> Execution of a form compiled with errors:
Marco> this is, afaict, a cmucl odity. basically this is the same
Marco> problem we had with the standard-whatever classes. the other
Marco> thing to note is that when you get an "Execution of a form
Marco> compiled with errors" it's the compiliation pass which has
Marco> failed, you need to retry compiling that file to see what the
Marco> real error is.
Marco> Anyway, sometimes (i can't seem to understand when) CMUCL wants
Marco> class definitions to be loaded before it can compile code which
Marco> uses the accessor defined in the defclass form. In this
Marco> particular case we have the method print-object which uses the
Marco> raw-url accessor defined in a defclass in that same
Marco> file. attempting to compile the file without loading it first
Marco> gives this error. you have two (or three) options: 1) move the
Marco> defclass form into an eval-when or another file, 2) use
Marco> (slot-value object 'raw-url) as opposed to (raw-url object) and
Marco> 3) talk to some people who know cmucl better than I and see
Marco> whats really going on.
I've chosen option (2). I'd also like to understand why this happens
some day.
Hmm, trying to run UCW feels like walking a minefield. I hit one other
problem about CMUCL complaining about function "package" being
redefined. Seems this is because of the admin-repl component. Renaming
the "package" slot (and the accessor) to "ucw-package" fixed this
problem. And hey, I was ready to run the example! Lo and behold, it all
worked, and the example presented me with a nice login screen, where I
entered "admin/admin". And... *** BOOM! ***
[3289250968] Recursive request error #<TYPE-ERROR {580C2A3D}>.
Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
134249192 is not of type (UNSIGNED-BYTE 27)
[Condition of type TYPE-ERROR]
Restarts:
0: [ABORT ] Abort this request
1: [RETRY ] Retry rendering ucw/admin/admin-repl.tal.
2: Retry rendering the component.
3: Retry rendering ucw/tabbed-pane.tal.
4: Retry rendering the component.
5: Retry rendering ucw/admin/server-admin-interface.tal.
6: Retry rendering the component.
7: Clearout the response and retry calling the action.
8: [SERVER-ERROR] Send the client an internal server error page.
9: [DESTROY ] Destroy the process
Debug (type H for help)
(DEBUG::DEBUG-LOOP)
Source:
; File: target:code/debug.lisp
(DEBUG-INTERNALS:TOP-FRAME)
0] 8
Ok, 8 seems like a good choice. But...
[3289251043] Reaping dead sessions.
; [GC threshold exceeded with 49,911,368 bytes in use. Commencing GC.]
; [GC completed with 48,886,432 bytes retained and 1,024,936 bytes freed.]
; [GC will next occur when at least 60,886,432 bytes are in use.]
; [GC threshold exceeded with 60,894,696 bytes in use. Commencing GC.]
; [GC completed with 60,894,704 bytes retained and -8 bytes freed.]
; [GC will next occur when at least 72,894,704 bytes are in use.]
; [GC threshold exceeded with 72,904,568 bytes in use. Commencing GC.]
; [GC completed with 72,906,440 bytes retained and -1,872 bytes freed.]
; [GC will next occur when at least 84,906,440 bytes are in use.]
; [GC threshold exceeded with 84,920,416 bytes in use. Commencing GC.]
; [GC completed with 81,347,584 bytes retained and 3,572,832 bytes freed.]
; [GC will next occur when at least 93,347,584 bytes are in use.]
; [GC threshold exceeded with 93,356,768 bytes in use. Commencing GC.]
; [GC completed with 93,358,640 bytes retained and -1,872 bytes freed.]
; [GC will next occur when at least 105,358,640 bytes are in use.]
; [GC threshold exceeded with 105,372,680 bytes in use. Commencing GC.]
; [GC completed with 105,372,688 bytes retained and -8 bytes freed.]
; [GC will next occur when at least 117,372,688 bytes are in use.]
; [GC threshold exceeded with 117,382,592 bytes in use. Commencing GC.]
; [GC completed with 117,384,464 bytes retained and -1,872 bytes freed.]
; [GC will next occur when at least 129,384,464 bytes are in use.]
; [GC threshold exceeded with 129,398,496 bytes in use. Commencing GC.]
; [GC completed with 129,395,232 bytes retained and 3,264 bytes freed.]
; [GC will next occur when at least 141,395,232 bytes are in use.]
; [GC threshold exceeded with 141,405,024 bytes in use. Commencing GC.]
; [GC completed with 141,406,896 bytes retained and -1,872 bytes freed.]
; [GC will next occur when at least 153,406,896 bytes are in use.]
; [GC threshold exceeded with 153,420,992 bytes in use. Commencing GC.]
; [GC completed with 153,421,040 bytes retained and -48 bytes freed.]
; [GC will next occur when at least 165,421,040 bytes are in use.]
; [GC threshold exceeded with 165,430,976 bytes in use. Commencing GC.]
[...snipped...]
; [GC completed with 463,511,624 bytes retained and -80 bytes freed.]
; [GC will next occur when at least 475,511,624 bytes are in use.]
; [GC threshold exceeded with 475,521,480 bytes in use. Commencing GC.]
; [GC completed with 475,523,352 bytes retained and -1,872 bytes freed.]
; [GC will next occur when at least 487,523,352 bytes are in use.]
; [GC threshold exceeded with 487,537,384 bytes in use. Commencing GC.]
Process inferior-lisp terminated
This is when I finally managed to kill the lisp process after a lengthy
swap session.
I'm scared now. GC showing negative numbers of bytes freed?
For the reference, this is CMUCL snapshot 2003-12, mod-lisp 2.33.
thanks,
--J.
More information about the bese-devel
mailing list