Number: 245
Date: 22-Mar-84 10':04':50
Submitter: Sannella.PA
Source: Cooper.pa
Subject: Compiler or DWIM introducing free var ref
Assigned To: Masinter
Attn:
Status: Incomplete
In/By:
Problem Type: Bug
Impact: Serious
Difficulty: Hard
Frequency: Once
Priority: Hopefully
System: Language Support
Subsystem: Compiler, Code Format
Machine:
Disk:
Lisp Version:
Source Files:
Microcode Version:
Memory Size:
File Server:
Server Software Version:
Disposition:
Description: '
Date': 21 Mar 84 12':05 PST'
From': Cooper.pa'
Subject': Lisp': Compiler or DWIM bug'
To': LispSupport.pa'
Lisp-System-Date': 15-Mar-84 00':13':18'
Machine-Type': Dolphin'
'
I have a function \TCP.CHECK.INPUT.QUEUE which has two PROG variables RCV.NXT and NEXT. It compiles fine when I do (COMPILE ''\TCP.CHECK.INPUT.QUEUE). But when I (TCOMPL ''{PHYLUM}<COOPER>LISP>TCP;66), I get the output'
=NXT'
=NXT'
(\TCP.CHECK.INPUT.QUEUE (TCB)) (uses': NXT)'
and sure enough, it has compiled in a free variable reference to NXT. This seems pretty serious to me, since it''s turning correct interpreted code into broken compiled code. For now, I''ll try renaming my PROG variables to see if that avoids triggering the bug. I''ll leave TCP;66 around for anyone who wants to try to debug this.'
'
Eric'
Workaround:
Test Case:
Edit-By: masinter
Edit-Date: 28-Jun-84 17':34':19