Number: 2018
Date: 29-Aug-84 15':28':37
Submitter: le.pasa
Source: Bird.pasa
Subject: FUNARG stack storage leak
Assigned To:
Attn: Masinter, VanMelle
Status: Open
In/By:
Problem Type: Performance
Impact: Serious
Difficulty:
Frequency: Everytime
Priority: Perhaps
System: Language Support
Subsystem: Stack and Interpreter
Machine: 1108
Disk:
Lisp Version: 21-Jun-84 10':50':28
Source Files:
Microcode Version: 5124
Memory Size: 3071
File Server:
Server Software Version:
Disposition: '
["Sannella.PA" "29-Aug-84 17':24':07" Status':(New->Open) Problem% Type':(->Performance) Priority':(->Perhaps)]
Description: Running the test case shown below causes a stack overflow after a few seconds (I=251 in SO1). I have little experience of reference counting garbage collectors but fail to see any possible circularity if the FUNARG stack frame is built as described in the programmer''s reference manual. If the FUNCTION is changed so as not to construct a FUNARG the stack overflow doesn''t occur
Workaround:
Test Case: {rose}<lispusers>artestcases>SO'
'
Load the file, then execute "(SO1)". For reference, the fns defined in SO are copied below.'
'
SO1[] = (for I from 1 to 500 do (SO2))'
SO2[] = (PROG ((X (CONS)) F)'
(F ← (FUNCTION (LAMBDA (Y) (EQ X Y))'
(X)))'
(SO3 X F))'
SO3[A;B] = (for I from 1 to 5 do (APPLY* B A))'
'
Edit-By: Sannella.PA
Edit-Date: 29-Aug-84 17':24':09