Why do you prefer to work with Maxima?



Rupert Swarbrick <rswarbrick at gmail.com> wrote:

   If you're happy to actually run the program, you can do even better
   using SLIME. ... This is somewhat more robust than using a tags file.

I dispute your conclusion.  Tags files and in-lisp source-file recording
both work, but have different strengths and weaknesses.

For swank to work, the particular Lisp must be capable of recording
source-file locations, and that feature might need to be enabled as an
option.  (One might not _always_ want the data to clutter up the heap.)
As is so often the case with Maxima users, you give careful instructions
how to do something using _your_ chosen Lisp implementation without even
identifying which one it is!

For tags file to work, the code must conform to reasonable formattig
conventions, but those are the ones programmers normally use.  Tags
files support very efficient traversal of entire source trees, finding
all references to something, even a regexp.  Merely finding the source
for a function doesn't show all the calls, or all the references to
slots of a structure.  Tags files also work across systems implemented
in multiple languages.

As for TAGS files becoming out of date, the etags parser is very fast
and largse systes can be reindexed in just a few seconds.

Both kinds of recording have to deal with entities having distributed
implementation, e.g. generic functions or operators that have both a
function/macro definition and a compiler macro.  Tags files probably
deal much better for definitions that have #+foolisp conditionalizations
for different platforms.

As I said, both kinds of indexing have their uses.