Number: 

Date: 19-Aug-84 11':24':29

Submitter: Roach

Source: Roach

Subject: running create with undefined field turns ← into SETQ

Assigned To: 

Attn: Masinter

Status: Open

In/By: 

Problem Type: Bug

Impact: Annoying

Difficulty: 

Frequency: Everytime

Priority: Perhaps

System: Programming Environment

Subsystem: Record Package

Machine: 1132

Disk: 

Lisp Version: 17-Aug-84 17':18':00

Source Files: 

Microcode Version: 5124

Memory Size: 4096

File Server: 

Server Software Version: 

Disposition: '
["Masinter" "21-Aug-84 14':38':15" Subject':]

Description: Say you have a record'
     (RECORD FOO (A B C D))'
and a function'
     (DEFINEQ (BAR (LAMBDA (A E C D)'
       (CREATE FOO'
               A ← A'
               E ← E'
               C ← C'
               D ← D))))'
Now if you EVAL (BAR), you get "{in BAR} undefined field name/at ... (SETQ E E) (SETQ C C) (SETQ D D))/'
in (create FOO A ← --)".  BAR is munged into'
     (DEFINEQ (BAR (LAMBDA (A E C D)'
       (CREATE FOO'
               A ← A'
               (SETQ E E)'
               (SETQ C C)'
               (SETQ D D)))))'
which means you have to not only correct the inclusion of E''s in BAR, you have to clean up the SETQ mess DWIM left behind for you.  In general, I''m rather against DWIM making ANY changes in my code--e.g., uppercase CLISP should work without being coerced into lower case and changing my code.'


Workaround: 

Test Case: 

Edit-By: Masinter

Edit-Date: 21-Aug-84 14':38':16