Path: utzoo!dciem!nrcaer!scs!spl1!laidbak!att!ihnp4!ucbvax!renoir.Berkeley.EDU!cox From: cox@renoir.Berkeley.EDU (Charles A. Cox) Newsgroups: comp.lang.lisp Subject: Re: What's the value of lexical scoping? Message-ID: <24531@ucbvax.BERKELEY.EDU> Date: 5 Jun 88 00:54:55 GMT Article-I.D.: ucbvax.24531 References: <24508@ucbvax.BERKELEY.EDU> Sender: usenet@ucbvax.BERKELEY.EDU Reply-To: cox@renoir.Berkeley.EDU.UUCP (Charles A. Cox) Organization: University of California, Berkeley Lines: 22 In article <24508@ucbvax.BERKELEY.EDU> mkent@dewey.soe.berkeley.edu (Marty Kent) writes: > [...] In fact, with Allegro Common Lisp the situation >is even worse, because the compiler doesn't save the names of locals in >the stack frames, which makes it pretty much impossible to scan at runtime >to resolve a name-based reference. I am more familiar with Allegro Common Lisp that runs on Unix machines, but I am told that with the MAC-OS Allegro, beginning with version 1.2, setting the *SAVE-DEFINITIONS* compiler flag will cause the parameter names and values to be printed in a backtrace. This will aid in debugging. In the UNIX version of Allegro Common Lisp, there is a variable called COMP:SAVE-LOCAL-NAMES-SWITCH which is bound to a function. When this user redefinable function returns T, the compiler will save the names of all the local variables. These variable are then accessible by name using the `:LOCAL' top level command. Hope this helps. Charley Cox cox@renoir.Berkeley.EDU