Number: 2026 Date: 30-Aug-84 10':17':58 Submitter: Sannella.PA Source: Sannella.PA Subject: RESETFORM now compiles differently ': binds U V W Assigned To: Attn: Status: Fixed In/By: Problem Type: Bug Impact: Moderate Difficulty: Frequency: Priority: Perhaps System: Language Support Subsystem: Compiler, Code Format Machine: Disk: Lisp Version: 29-Aug-84 20':58':02 Source Files: Microcode Version: Memory Size: File Server: Server Software Version: Disposition: [was temporary mistake in compiler. Needs no release note]' ["Masinter" " 1-Sep-84 11':52':09" Attn': Status':(Open->Fixed) Machine':(1132->) Microcode% Version': Memory% Size': Disposition':] Description: ' Today I did a total compilation of AREDIT, and some things stopped working. I finally found the problem --- it looks like the compiler is compiling RESETFORM wrong, or at least differently than it used to. The problem appeared to be in the code for AR.REPLACE.FIELD.VAL, as follows':' ' (DEFINEQ' (AR.REPLACE.FIELD.VAL' (LAMBDA (OBJ CH# W NEWVAL)' (DECLARE (SPECVARS OBJ CH# W NEWVAL))' (RESETFORM (RADIX 10)' (PROG ((STREAM (TEXTSTREAM W))' (NEWVAL.NCHARS (NCHARS NEWVAL))' INSERT.CH# SEL)' .' .' .' ' TEXTSTREAM broke with bad argument - NIL.' ' Using PRINTCODE, I discovered that AR.REPLACE.FIELD.VALA0001 (the function generated by RESETFORM) contained the lines' ' Local args':' 100': 117 110': 2 IVAR 2': W' 102': 116 112': 1 IVAR 1': V' 104': 115 114': 0 IVAR 0': W' ' It appears that W was being bound as a localvar inside AR.REPLACE.FIELD.VALA0001.' ' I got around the problem by renaming W -> WINDOW, but I think that this is a bug. This function used to compile without this problem.' Workaround: Test Case: ' {eris}<sannella>Lisp>AREDIT;37' {eris}<sannella>Lisp>AREDIT.DCOM;32 Edit-By: Masinter Edit-Date: 1-Sep-84 11':52':11