Number: 658 Date: 11-Apr-84 18':05':27 Submitter: masinter.PA Source: JonL Subject: COPYWHEN fails to compile FNS underneath Assigned To: Attn: Masinter Status: Open In/By: Problem Type: Bug Impact: Annoying Difficulty: Moderate Frequency: Everytime Priority: Hopefully System: Programming Environment Subsystem: File Package Machine: Disk: Lisp Version: 11-Apr-84 Source Files: Microcode Version: Memory Size: File Server: Server Software Version: Disposition: ' ["Masinter.pa" "26-Aug-84 16':38':15" Impact':(Serious->Annoying) Machine':(1100->) Microcode% Version': Memory% Size': Workaround':] Description: Date': 11 Apr 84 17':14 PST' From': JonL.pa' Subject': Lisp': DECLARE': COPYWHEN fails to compile FNS underneath' To': LispSupport.pa' cc': JonL.pa' ' Lisp System Date': 11-Apr-84 00':53':49' Machine': Dolphin (R0D0)' Microcode version': 24,1' Memory size': 6000' Frequency': Always' Impact': Serious' ' In a filepkg com like' (DECLARE': COPYWHEN (NEQ COMPILEMODE ''D) (FNS \REMINDER.PROCESS))' the function will be an expr in the compiled file rather than a subr.' ' A work-around is to flush the DECLARE': and simply put the body of the function underneath some compile-time conditional; but the fool litatom (and definition cell!) are still consumed.' ' -----' ' Date': 13 Apr 84 00':48 PST' From': JonL.pa' ...' ' AR 658': -- the Type of this AR should be Bug. The manual clearly implies similar behaviour for the COPY,DOCOPY,COPYWHEN forms, and uses similar language for DONTCOPY. Also the Impact is indeed Serious for the luser who encounters it, since there are situations where (1) you can''t run the code interpretively, and (2) you can''t load it in the non-WHEN environment.' ' Workaround: another workaround is to leave it as FNS but conditionally add the function to DONTCOMPILEFNS. Unsatisfactory, I agree. Test Case: Edit-By: Masinter.pa Edit-Date: 26-Aug-84 16':38':24