redefining macro as a function?



--- C Y  wrote:

> Is there anything special I need to do to redefine
> toplevel-macsyma-eval as a function rather than a macro?  Apparantly
> once it is/was compiled in, redefining it in a lisp file doesn't do
> what I would expect.  The obvious thing to do is change the general
> definiton from a macro to a function in the main tree (which seems to
> cause no ill effects).  Is there any objection to this?  It would be
> nice to have at least the toplevel-macsyma-eval change committed for
> 5.9.2, as that would make future unit package work easier for me, 
> but I know that by itself is not a compelling argument.

I have mixed feelings about this. On the one hand, 
so far as I can tell there aren't any harmful side effects.
On the other hand, I don't think we want package maintainers
to make modifications to the core code solely for the benefit
of the add-on package. In particular, I really don't see the
need for a units package to replace core functions.

For the record, here is the definition of toplevel-macsyma-eval
and the one place it is called:

  (defmacro toplevel-macsyma-eval (x) `(meval* ,x))

  (setq $% (toplevel-macsyma-eval $__))

These are both in src/macsys.lisp.

For what it's worth,
Robert Dodier

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com