[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Are "destructive" functions really destructive?

    Date: Fri, 1 Dec 89 11:33 PST
    From: TYSON@Warbucks.AI.SRI.COM (Mabry Tyson)

	Date: Fri, 1 Dec 89 01:53:26 EST
	From: barmar@Think.COM

	   From: rshu@ads.com (Richard Shu)
	   Date: 1 Dec 89 02:56:03 GMT

	   Yeah, but don't define DELETEF on a Symbolics or you'll redefine the
	   GLOBAL symbol DELETEF which is used to delete files!  I did this once
	   a couple of years ago and spent several hours trying to figure out
	   why the system was acting so funny.

	The only DELETEF I can find on my machine is ZL:DELETEF, which is only
	inherited by Zetalisp packages, not Common Lisp packages.  If you're still
	programming in Zetalisp you get what you deserve.  But you say that you

    Rather pedantic... I certainly have a lot of ZL code that hasn't needed to be
    modified since before release 7.  I'm certainly not going to go back and
    modify working code unless I have to  (and that includes changing the
    packages that inherit from GLOBAL).

I also have lots of old ZL code.  If you're not modifying it, then you
won't be adding DELETEF to it, so you won't lose.  I imagined that you'd
be defining macros such as DELETEF in new code, which should be in
Common Lisp.

	lost a few years ago; perhaps it was prior to Genera 7.0, which I think is
	when Common Lisp became the default environment.


    I haven't tried redefining DELETEF but it appears it will still cause
    grief.  Symbolics does:
	    (cli::make-cl-function-links zl:deletef cl:delete-file)
    which appears to make DELETE-FILE use the definition of DELETEF (including
    an optimizer to translate DELETE-FILE into DELETEF).  If you redefine
    ZL:DELETEF (or XX:DELETEF where XX inherits from GLOBAL) you will lose.

But you've already admitted that you aren't changing programs that
inherit from GLOBAL, so you aren't redefining ZL:DELETEF.