Sysrama, a documentation tool for Interlisp
I'm writing another Interlisp program, Sysrama, an Interlisp documentation tool for presenting information on the Lisp objects of a program. It produces reports that list the types and signatures of functions, the fields of records, global variables, property lists, Executive commands, and more.
The way I reference the details of Lisp objects when coding gave me the idea for Sysrama.
I often forget the names and signatures of the functions or the names of the record fields I need. Browsing or looking up the code for referencing them is a source of friction.
Interlisp comes with the powerful program analysys tool Masterscope that gives its best with answering specific questions on the internals of programs. But it has a steep learning curve and it doesn't provide the kind of big picture view I seek. Instead, I wanted a simple tool for producing an overview of the main Lisp objects in a program.
This is a sample report Sysrama prints on another of my Interlisp programs, Stringscope:
The main sections group objects under the same File Manager types, such as FNS
or RECORDS
. This is because Sysrama can extract information only from programs under File Manager control.
Suppose you want to analyze the Lisp program MYPROG
. Once Sysrama is in memory, load MYPROG
:
(LOAD 'MYPROG)
To have Sysrama print a report with information on MYPROG
evaluate:
(SUMMARIZE 'MYPROG)
You can narrow down the information to specific File Manager types such as FNS
and RECORDS
:
(SUMMARIZE 'MYPROG '(FNS RECORDS))
or to specific objects like the function MYFUN
:
(SUMMARIZE 'MYPROG 'FNS 'MYFUN)
More documentation is available at the project repo.
Sysrama already does most of what I had in mind but I'll implement a few more features.
I'll tweak the reports to show more information on some Lisp objects. And I'll add the ability to redirect the output to a scrollable window rather than to the primary output stream. By default Interlisp windows don't save the output history and can't be scrolled back, so such a feature will help review reports that don't fit in a window.
Discuss...
Email | Reply @amoroso@fosstodon.org