Number: 30

Date: 16-Mar-84 23':58':47

Submitter: lispar.Auto

Source: MOSTOW@USC-ISIF

Subject: Masterscope parser mistranslates . xxx CALLS SET

Assigned To: 

Attn: Masinter

Status: Open

In/By: 

Problem Type: Bug

Impact: Moderate

Difficulty: Hard

Frequency: Everytime

Priority: Unlikely

System: Programming Environment

Subsystem: Masterscope

Machine: 

Disk: 

Lisp Version: 

Source Files: 

Microcode Version: 

Memory Size: 

File Server: 

Server Software Version: 

Disposition: Subject': Interlisp-D AR#30, Bad Masterscope SET template'
To': MOSTOW@ISIF'
cc': LispSUpport, Jellinek'
'
This AR got entered as the result of your message of 9 Mar 84. I just dug it up in a review of "ancient/unfixed" ARs, and it turns out that the template for SET is OK, but the parser is confused.'
'
If you say'
'
95←. SetEntries CALLS SET'
'
'
it interprets it as '
'
. SetEntries CALLS ANY VAR SET BY ANY'
'
'
which doesn''t make a lot of sense. If you said'
'
. SetEntries CALLS ''SET'
'
it gives a different response.'
'
'


Description: '
Received': from USC-ISIF.ARPA by PARC-MAXC.ARPA;  9 MAR 84 18':38':29 PST'
Date': 9 Mar 84 18':36 PST'
Subject': another MS bug'
From': Jack Mostow <MOSTOW@USC-ISIF.ARPA>'
To': masinter.PA'
'
Larry - MASTERSCOPE seems confused about its template for SET':'
NIL'
92←PP(EntriesOf]'
'
(EntriesOf'
  [LAMBDA (cache)  **COMMENT**  '
    (EVAL cache])'
(EntriesOf)'
93←. EntriesOf CALLS EVAL'
T'
94←PP(SetEntries]'
'
(SetEntries'
  [LAMBDA (cache entries)  **COMMENT**  '
    (SET cache entries])'
(SetEntries)'
95←. SetEntries CALLS SET'
NIL'
96←GETTEMPLATE(SET]'
((IF (EQ (CAR (LISTP EXPR))'
         (QUOTE QUOTE))'
     (NIL SET)'
     EVAL)'
 EVAL . PPE)'
97←GETTEMPLATE(EVAL]'
(EVALQT .. EVAL)'
98←. REANALYZE SetEntries'
.done'
99←. SetEntries CALLS SET'
NIL'
100←dribble]'
NIL'
5←CALLS(SetEntries]'
((SET)'
 (cache entries)'
 NIL)'
6←. DESCRIBE SetEntries'
SetEntries[cache,entries]'
  calls':     SET'
  called by': DeleteEntry,MakeCache,FixAffectedCache,AddEntry'
'
NIL'
7←dribble]'
-------'
'
As you can see, CALLS recognizes that SetEntries calls SET, while MASTERSCOPE'
doesn''t.  If I understand correctly, the template says to ignore cases where'
the first argument is quoted, since those are equivalent to SETQ, but not to'
ignore other cases.  However, it seems to ignore them anyway.  Regards. - Jack'


Workaround: 

Test Case: 

Edit-By: Masinter

Edit-Date: 17-Aug-84 21':25':31