[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: email@example.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
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.