On Sun, Nov 24, 2002 at 09:23:08AM -0800, Tim Moore wrote:
>
> On Sun, 24 Nov 2002, John Morrison wrote:
>
> > Hi;
> >
> > On Saturday 23 November 2002 12:11 pm, Timothy Moore wrote:
> >
> > > special forms that you can't deal with, though you may encounter magic
> > > functions. One of the harder things to deal with is backquote; an
> >
> > This is (I think) where I'm running into trouble.
> >
> > > implementation has a lot of latitude to return anything it wants as
> > > long as it gives the proper results at run time. Even Common Lisp
> > > compilers like SBCL load their own backquote implementations into the
> > > host Lisp so they know what's going on. As your language departs from
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > CL it gets even harder.
When you write SBCL replaces backquote "so they know what's going on",
it sounds as though this replacement is something that cautious
authors of other programs might reasonably choose to do, also. NotIMO.
While SBCL does have a good reason to do this, it's not (as far as I
can remember anyway:-) just so that we know what's going on, and it
doesn't mean it's a reasonable thing to do in general.
Basically backquote readmacros are supposed to expand into executable
forms, and in general those executable forms use unportable
implementation functions like BACKQ-READMACRO. That is broken behavior
from a cross-compiler's point of view, which is a compelling reason
for SBCL to replace it. But it is a complete nonissue for the 99+% of
programs which do what the ANSI specifiers reasonably expected,
executing the expanded code under the same Lisp implementation which
implements the readmacro. For such code, I think reading the backquote
spec should tell what you need to know about what's going on.
We may do some things that more programs should imitate, but I don't
think redefining backquote is one of them.:-)
--
William Harold Newman <[EMAIL PROTECTED]>
"If you can't remember what mnemonic means, you've got a problem."
-- Wall, Christiansen, and Schwartz, _Programming Perl_, 2d edn., p. 548.
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C