sbcl: heap exhausted

"Paavo Parkkinen" <[email protected]> Thu, 11 Jan 2007 12:45:42 +0200
Newsgroups gmane.lisp.movitz.devel
Message-ID <[email protected]>
I was trying to compile the los0 image on my own computer this morning
and after taking a while, and printing a bunch of messages, "(load
"load.lisp")" came up with a "Heap exhausted, game over." -message.

I have 512M memory (~500M swap); is that not enough, or did I do
something wrong?


p


ps. I'm attaching the last few lines of output from sbcl.
gameover.txt (text/plain, 5.5 KB)
; in: DEFUN MAKE-RESULT-AND-RETURNS-GLUE
;     (DEFUN MOVITZ::MAKE-RESULT-AND-RETURNS-GLUE
;          (MOVITZ::DESIRED-RESULT MOVITZ::RETURNS-PROVIDED
;           &OPTIONAL MOVITZ::CODE
;           &KEY (TYPE T) MOVITZ::PROVIDER MOVITZ::REALLY-DESIRED)
;     "Returns new-code and new-returns-provided, and glue-side-effects-p."
;     (DECLARE (OPTIMIZE (DEBUG 3)))
;     (CASE MOVITZ::RETURNS-PROVIDED
;       (:NON-LOCAL-EXIT
;        (RETURN-FROM MOVITZ::MAKE-RESULT-AND-RETURNS-GLUE
;          (VALUES MOVITZ::CODE :NON-LOCAL-EXIT))))
;     (MULTIPLE-VALUE-BIND
;         (MOVITZ::NEW-CODE MOVITZ::NEW-RETURNS-PROVIDED
;          MOVITZ::GLUE-SIDE-EFFECTS-P)
;         (CASE (MOVITZ::RESULT-MODE-TYPE MOVITZ::DESIRED-RESULT)
;           ((:LEXICAL-BINDING) (CASE # # # #))
;           (:IGNORE (VALUES MOVITZ::CODE :NOTHING))
;           ((:BOOLEAN-ECX)
;            (LET #
;              #))
;           (:BOOLEAN-BRANCH-ON-TRUE (ETYPECASE # # # # # # # #))
;           (:BOOLEAN-BRANCH-ON-FALSE (ETYPECASE # # # # # # # #))
;           (:UNTAGGED-FIXNUM-ECX (CASE # # # # # #))
;           ((:SINGLE-VALUE :EAX) (COND # # #))
;           ((:EBX :ECX :EDX :ESP :ESI) (COND # # #))
;           (:PUSH (TYPECASE MOVITZ::RETURNS-PROVIDED # # # # #))
;           (:VALUES (CASE # # # #))
;           ...)
;       (UNLESS MOVITZ::NEW-RETURNS-PROVIDED
;         (MULTIPLE-VALUE-SETQ
;             (MOVITZ::NEW-CODE MOVITZ::NEW-RETURNS-PROVIDED
;              MOVITZ::GLUE-SIDE-EFFECTS-P)
;           (ECASE # # # #)))
;       (ASSERT MOVITZ::NEW-RETURNS-PROVIDED NIL
;               "Don't know how to match desired-result ~S with returns-provided ~S~@[ from ~S~]."
;               (OR MOVITZ::REALLY-DESIRED MOVITZ::DESIRED-RESULT)
;               MOVITZ::RETURNS-PROVIDED MOVITZ::PROVIDER)
;       (VALUES MOVITZ::NEW-CODE MOVITZ::NEW-RETURNS-PROVIDED
;               MOVITZ::GLUE-SIDE-EFFECTS-P)))
; --> PROGN EVAL-WHEN SB-IMPL::%DEFUN SB-INT:NAMED-LAMBDA 
; ==>
;   #'(SB-INT:NAMED-LAMBDA MOVITZ::MAKE-RESULT-AND-RETURNS-GLUE
;                          (MOVITZ::DESIRED-RESULT MOVITZ::RETURNS-PROVIDED
;                           &OPTIONAL MOVITZ::CODE &KEY (TYPE T) MOVITZ::PROVIDER
;                           MOVITZ::REALLY-DESIRED)
;                          (DECLARE (OPTIMIZE (DEBUG 3)))
;                          (BLOCK MOVITZ::MAKE-RESULT-AND-RETURNS-GLUE
;                            (CASE MOVITZ::RETURNS-PROVIDED
;                              (:NON-LOCAL-EXIT
;                               (RETURN-FROM MOVITZ::MAKE-RESULT-AND-RETURNS-GLUE
;                                 #)))
;                            (MULTIPLE-VALUE-BIND
;                                (MOVITZ::NEW-CODE MOVITZ::NEW-RETURNS-PROVIDED
;                                 MOVITZ::GLUE-SIDE-EFFECTS-P)
;                                (CASE
;                                    (MOVITZ::RESULT-MODE-TYPE
;                                     MOVITZ::DESIRED-RESULT)
;                                  (# #)
;                                  (:IGNORE #)
;                                  (# #)
;                                  (:BOOLEAN-BRANCH-ON-TRUE #)
;                                  (:BOOLEAN-BRANCH-ON-FALSE #)
;                                  (:UNTAGGED-FIXNUM-ECX #)
;                                  (# #)
;                                  (# #)
;                                  (:PUSH #)
;                                  (:VALUES #)
;                                  ...)
;                              (UNLESS MOVITZ::NEW-RETURNS-PROVIDED
;                                (MULTIPLE-VALUE-SETQ # #))
;                              (ASSERT MOVITZ::NEW-RETURNS-PROVIDED NIL
;                                      "Don't know how to match desired-result ~S with returns-provided ~S~@[ from ~S~]."
;                                      (OR MOVITZ::REALLY-DESIRED
;                                          MOVITZ::DESIRED-RESULT)
;                                      MOVITZ::RETURNS-PROVIDED MOVITZ::PROVIDER)
;                              (VALUES MOVITZ::NEW-CODE
;                                      MOVITZ::NEW-RETURNS-PROVIDED
;                                      MOVITZ::GLUE-SIDE-EFFECTS-P))))
; 
; caught STYLE-WARNING:
;   &OPTIONAL and &KEY found in the same lambda list: (DESIRED-RESULT
;                                                      RETURNS-PROVIDED &OPTIONAL
;                                                      CODE &KEY (TYPE T) PROVIDER
;                                                      REALLY-DESIRED)


Heap exhausted during garbage collection: 0 bytes available, 40 requested.
 Gen StaPg UbSta LaSta LUbSt Boxed Unboxed LB   LUB  !move  Alloc  Waste   Trig    WP  GCs Mem-age
   0:     0     0     0     0     0     0     0     0     0        0     0  2000000    0   0  0.0000
   1:     0     0     0     0     0     0     0     0     0        0     0  2000000    0   0  0.0000
   2: 119904 119906     0     0 63284 18167    56     0     0 333053168 799504 65182768    0   1  1.0910
   3: 131071 131064  8510     0 33940  9326   183    37   167 177591288 527368  2000000 1046   0  0.0296
   4:     0     0     0     0     0     0     0     0     0        0     0  2000000    0   0  0.0000
   5:     0     0     0     0     0     0     0     0     0        0     0  2000000    0   0  0.0000
   6:     0     0     0     0  6077     0     0     0     0 24891392     0  2000000 5912   0  0.0000
   Total bytes allocated=535535848
fatal error encountered in SBCL pid 5407(tid 3085334208):
Heap exhausted, game over.
LDB monitor
ldb> ldb>