Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!jarthur!brutus.cs.uiuc.edu!apple!cambridge.apple.com!alms From: alms@cambridge.apple.com (Andrew L. M. Shalit) Newsgroups: comp.lang.lisp Subject: Re: DEFVAR is forever Message-ID: Date: 31 Jan 90 19:28:23 GMT References: <3277@accuvax.nwu.edu> <1990Jan28.175437.19293@hellgate.utah.edu> <1990Jan29.224305.20803@hellgate.utah.edu> <385@forsight.Jpl.Nasa.Gov> <1652@skye.ed.ac.uk> Sender: news@cambridge.apple.com Organization: Apple Computer Inc, Cambridge, MA Lines: 15 In-reply-to: jeff@aiai.ed.ac.uk's message of 31 Jan 90 16:13:52 GMT In article <1652@skye.ed.ac.uk> jeff@aiai.ed.ac.uk (Jeff Dalton) writes: However, nothing says an implementation can't provide some way to turn off a SPECIAL proclamation (which is how DEFVAR makes the variable special). There just isn't a standard way to do it. Turning off a special proclamation would involve going through all the compiled functions in the world which reference the variable, and changing them to treat the variable as lexical. Some implementations might be able to backpatch the functions, but others would probably need to recompile them. Needless to say, this could be a *very* expensive operation. (Don't forget to include the time needed to walk all the functions in the world looking for the references.) -andrew