Number: 1673

Date: 18-Jul-84 17':44':47

Submitter: Sannella.PA

Source: masinter.pa

Subject: Compiler change': compiling with mode=ST will redefine, even if DFNFLG=PROP

Assigned To: 

Attn: 

Status: Closed

In/By: Harmony

Problem Type: Design - UI

Impact: Annoying

Difficulty: 

Frequency: Everytime

Priority: Perhaps

System: Language Support

Subsystem: Compiler, Code Format

Machine: 

Disk: 

Lisp Version: 

Source Files: 

Microcode Version: 

Memory Size: 

File Server: 

Server Software Version: 

Disposition: '
["Sannella" "20-Aug-84 18':23':49" Status':(Fixed->Closed) In/By':]

Description: '
Date': 11 Jun 84 14':42 PDT'
From': vanMelle.pa'
Subject': Change to behavior of compiler wrt DFNFLG'
To': LispCore↑'
'
Larry changed this a week or two ago, but I don''t recall seeing an announcement.  It has some impact if you are accustomed to compiling mode ST with DFNFLG=PROP.'
'
The new behavior is that as functions are compiled, they really ARE "stored and redefined"--the new compiled definition is placed in the definition cell, even though DFNFLG=PROP.  The old behavior was that the guy who attempted the "redefine" part respected DFNFLG, and put the new definition on the CODE property instead of in the definition cell.'
'
I think the new behavior is correct and certainly less confusing (in fact, I might have been the one to request the change, back when I was confused by the old behavior).  However, if you were used to the old behavior, watch out.  I for one was accustomed to working on some system code in a mode where I had DFNFLG = PROP, but recompiled ST and then, all at once, after a suitable SAVEVM, did an UNSAVEDEF(x CODE) on all the fns I had changed.  It is now the case that you have to "live dangerously" during the compile, or else compile mode F and then loadfns the new definitions back in if you want to do that kind of testing.'
'
Also note that this means if you are running with DFNFLG=PROP to completely avoid inadvertantly redefining something in your running system, you MUST compile mode F, not ST.  Before this change, it didn''t matter.  (ABC sets CLEANUPOPTIONS to (RC F), so the ABC default is correct.)'
'
	Bill'


Workaround: 

Test Case: 

Edit-By: Sannella

Edit-Date: 20-Aug-84 18':23':50