Martin, do you want me to send you what I've got? I'm not likely to be
able to do much with it in the near future, and Dan did some really
nice work. I'll try to organize it and label it a bit.
Oddly enough, I think there were a couple names in the list that were
cuss words :-). We should probably change that someday, but it was
rather funny when I saw the list.
I'll try to organize what I have. I should probably load it into the
doc cvs directory somewhere, so we have a long term record of it.
While I'm at it, I guess I'll upload the extra share packags I've got
into that contrib directory. Housecleaning time :-).
CY
--- Dan Stanger <dan.stanger@ieee.org> wrote:
> CY did some work on that last year. I also sent him a list of all
> the public symbols
> in maxima, as a documentation start. I also created a list of short
> functions,
> to try to start the documentation effort on those.
> Dan Stanger
>
>
> Martin RUBEY wrote:
>
> > > Yes. I think that's also a good idea, if someone wants to take
> the
> > > time to figure out which routines are really separate or not. (I
> > > didn't look.)
> >
> > Here is a first attempt to do so, using
> >
> >
>
http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/tools/xref/
> >
> > To get a picture what functions of combin.lisp are used outside,
> do:
> >
> > (load "/net/t1/rubey/.maxima/xref/xref.o")
> > (xref:DEFINE-CALLER-PATTERN-SYNONYMS defun (defmfun))
> >
> > ; find all functions in combin.lisp
> > (xref:xref-files "combin.lisp")
> > (setq lst nil)
> > (maphash #'(lambda (key value) (push key lst)) xref:*source-file*)
> >
> > ; xref doesn't like the following files. might be interesting to
> find out
> > ; why
> > (xref:xref-files
> > (remove-if #'(lambda (f)
> > (member f
> '(#p"/net/t1/rubey/maxima/src/SYS-DECLAIM.lisp"
> >
> #p"/net/t1/rubey/maxima/src/SYS-PROCLAIM.lisp"
> >
> #p"/net/t1/rubey/maxima/src/acall.lisp"
> >
> #p"/net/t1/rubey/maxima/src/bessel.lisp"
> >
> #p"/net/t1/rubey/maxima/src/cl-info.lisp"
> >
> #p"/net/t1/rubey/maxima/src/csimp2.lisp"
> >
> #p"/net/t1/rubey/maxima/src/displa.lisp"
> >
> #p"/net/t1/rubey/maxima/src/float.lisp"
> >
> #p"/net/t1/rubey/maxima/src/fortra.lisp"
> >
> #p"/net/t1/rubey/maxima/src/grind.lisp"
> >
> #p"/net/t1/rubey/maxima/src/init-cl.lisp"
> >
> #p"/net/t1/rubey/maxima/src/ldisp.lisp"
> >
> #p"/net/t1/rubey/maxima/src/macsys.lisp"
> >
> #p"/net/t1/rubey/maxima/src/maxima-package.lisp"
> >
> #p"/net/t1/rubey/maxima/src/misc.lisp"
> >
> #p"/net/t1/rubey/maxima/src/mlisp.lisp"
> >
> #p"/net/t1/rubey/maxima/src/mload.lisp"
> >
> #p"/net/t1/rubey/maxima/src/nparse.lisp"
> >
> #p"/net/t1/rubey/maxima/src/simp.lisp"
> >
> #p"/net/t1/rubey/maxima/src/suprv1.lisp"
> >
> #p"/net/t1/rubey/maxima/src/trigi.lisp")
> > :test #'equal))
> > (directory "/net/t1/rubey/maxima/src/*.lisp")))
> >
> > ; find out which functions are called outside
> > (mapcan #'(lambda (symb)
> > (let ((flist (remove "combin.lisp"
> > (delete-duplicates
> > (mapcar #'file-namestring
> > (xref:what-files-call
> symb))
> > :test #'equal)
> > :test #'equal)))
> > (when flist (list (cons symb flist)))))
> > lst)
> >
> > result:
> >
> > ((POLYDECOMP "solve.lisp")
> > ($CFEXPAND "option.lisp")
> > ($CFDISREP "option.lisp")
> > (CF "residu.lisp" "hypgeo.lisp")
> > ($FIB "option.lisp")
> > ($ZETA "specfn.lisp" "option.lisp" "mactex.lisp")
> > ($BERNPOLY "option.lisp")
> > ($BERN "option.lisp" "hayat.lisp")
> > ($FACTCOMB "option.lisp")
> > (SUM "trans1.lisp" "sumcon.lisp" "spgcd.lisp" "specfn.lisp"
> > "solve.lisp" "sloop.lisp" "risch.lisp" "rat3a.lisp"
> "pois3.lisp"
> > "pois2.lisp" "plot.lisp" "numth.lisp" "nrat4.lisp"
> "newinv.lisp"
> > "mat.lisp" "linnew.lisp" "limit.lisp" "homog.lisp"
> "hayat.lisp"
> > "asum.lisp")
> > (SIMPSUM2 "asum.lisp")
> > ($QUNIT "option.lisp")
> > ($EULER "option.lisp" "hayat.lisp")
> > ($MINFACTORIAL "option.lisp" "limit.lisp")
> > ($MAKEGAMMA "defint.lisp")
> > ($MAKEFACT "limit.lisp" "comm.lisp")
> > ($TAYTORAT "ratout.lisp" "rat3e.lisp" "nisimp.lisp" "inmis.lisp"))
> >
> > well, this is only half of the story: it *seems* that some
> functions are
> > not called at all:
> >
> > (mapcan #'(lambda (symb)
> > (let ((flist (delete-duplicates
> > (mapcar #'file-namestring
> > (xref:what-files-call symb))
> > :test #'equal)))
> > (unless flist (list (cons symb flist)))))
> > lst)
> >
> > ((SRRAT) (CF-CONVERGENTS-P-Q) (CFQUOT) (CFMIN) (CFDIFF) (CFPLUS)
> > (SIMPPROD) (SIMPBERN) (SIMPEULER) ($POLYDECOMP))
> >
> > but:
> > grep -i srrat *
> >
> > shows that this is not quite so:
> >
> > combin.lisp: ((catch 'srrat (srrat e)))
> >
> > or:
> > grep -i cfquot *
> > combin.lisp: ((setq temp (assq (caar a) '((mplus . cfplus)
> > (mtimes . cftimes)
> > (mquotient . cfquot)
> >
> > I don't really understand why what-files-call doesn't find these.
> Of
> > course it doesn't find the stuff in simp.lisp, because xref cannot
> process
> > simp.lisp at all...
> >
> > OK, (setq MACHINE-MANTISSA-PRECISION nil) lets xref process
> simp.lisp,
> > still it doesn't get SIMPPROD:
> >
> > grep -i SIMPPROD *
> > simp.lisp: (%PLOG SIMPPLOG) (%PRODUCT SIMPPROD) (%GENFACT
> SIMPGFACT)
> >
> > which is part of the statement
> > (PROG1 '(OPERATORS properties)
> > (MAPC #'(LAMBDA (X) (PUTPROP (CAR X) (CADR X) 'OPERATORS))
> > ...
> >
> > But its a start, I think
> >
> > Martin
> >
> > _______________________________________________
> > Maxima mailing list
> > Maxima@www.math.utexas.edu
> > http://www.math.utexas.edu/mailman/listinfo/maxima
>
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/