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