pallas@Shasta.ARPA (05/24/85)
A rather serious bug in XLISP causes it to get scrambled if a garbage collection occurs at the wrong time. The following fix, provided by the author, cures the problem. From decvax!sii!has70!betz@decwrl.ARPA Fri May 17 03:08:00 1985 Received: by decwrl.ARPA (4.22.01/4.7.34) id AA12347; Fri, 17 May 85 03:06:46 pdt From: decvax!sii!has70!betz@decwrl.ARPA Message-Id: <8505171006.AA12347@decwrl.ARPA> Date: Fri, 17 May 85 02:36:06 edt Apparently-To: decwrl!pallas@su-shasta.arpa Status: RO Try making the following changes to XLEVAL,XLCONT,XLOBJ in every place where the variable 'oldnewenv' is mentioned: /* note that this is a 'NODE' not a 'NODE *' */ NODE ... ,oldnewenv, ...; . . . oldstk = xlsave( ... ,&oldnewenv, ... ,NULL); . . . oldnewenv.n_ptr = xlnewenv; . . . xlnewenv = oldnewenv.n_ptr; I did this change on the version of XLISP that I am running on a VAX-11/750 under VMS version 4.1 and it seems to have fixed the problem that you were refering to. Sorry about this problem, David Betz ------- Note -- there is at least one place where the call to xlsave comes AFTER the saving of xlnewenv. You must reverse this order, as xlsave will wipe out the pointer. joe