michaelm@bcsaic.UUCP (michael maxwell) (08/20/86)
This is BSD (not Franz Inc.) Franz Lisp, opus 38.91. I have a large corpus of test data (English sentences) that I let our parser, written in Franz Lisp, crunch through in batch mode. Yesterday something strange happened: it died in the middle with the error message "Attempt to allocate beyond static structures", i.e. it ran out of memory. It appears that the problem lies in 'gcafter': each time Frantz does garbage collection, it allocates more memory for the type that caused the garbage collection. Now this makes sense as long as there's lots of memory left, but it seems like it should give up at some point--before running out of memory and dying! Or at least there ought to be a switch. (I can see that some programs might keep using up space and not create garbage that can be reclaimed; our program uses lots of list space, but it can always be reclaimed after each parse is completed.) I can prevent Lisp from dying by calling 'gc' after it parses each sentence, but that makes it slower than molasses. It looks like my best option at this point is to rewrite 'gcafter'. Any comments? -- Mike Maxwell Boeing Artificial Intelligence Center ...uw-beaver!uw-june!bcsaic!michaelm