From: Raymond T. <toy...@gm...> - 2023-07-16 14:51:39
|
On 7/15/23 9:09 PM, Eduardo Ochs wrote: > On Sat, 15 Jul 2023 at 21:36, Robert Dodier <rob...@gm...> > wrote: > > Hi Eduardo, > > For the record, Maxima functions defined by DEFMSPEC are so-called > argument quoting functions; these functions work either with > unevaluated symbols (e.g. kill), or manage evaluation by explicit > calls to MEVAL (e.g. makelist) -- this latter approach leads to more > or less unpredictable evaluation behavior. I think the best we can do > is to document any such existing functions, and be very circumspect > about introducing new ones. > > Hope this helps, > > Robert > > > Hi Jeronimo and Robert, > > I grepped the sources and (I think that I) found 153 Maxima functions > that are defined using defmspec... it would be good to have a nice way > to jump to their sources, but I confess that I would be happy with a > non-nice way, too. I just found that if I run this, > > to_lisp()$ > (describe '$changevar) > (describe '$tex) > (symbol-plist '$tex) > (get '$tex 'mfexpr*) > (to-maxima) > > the output of the "(get '$tex 'mfexpr*)" is: > > #<FUNCTION (LAMBDA (L) :IN > "/home/edrx/bigsrc/maxima/src/mactex.lisp") {52FB567B}> > > how do I extract the "/home/edrx/bigsrc/maxima/src/mactex.lisp" from > that? What lisp are you using? Maybe you can do |(describe (get '$tex 'mfexpr*)| to get a description that includes the path? Or maybe use |inspect| instead of |describe|? I’m using maxima with cmucl. It doesn’t have the “:IN” part, but |describe| does give the path where it was compiled from. |