Skip to content

pamoroso/sysrama

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sysrama

Sysrama is an Interlisp documentation tool for presenting information on the Lisp objects of a program. It produces reports listing the types and signatures of functions, the fields of records, global variables, property lists, Exec commands, and more.

Sysrama lets you see the big picture of a system, a panorama. Hence the name.

Sample output of the Sysrama Interlisp documentation tool.

Installation

Download the file SYSRAMA from the project repo, copy it to a file system location your Medley Interlisp installation has access to, and optionally compile the source by evaluating the following expression at the Lisp Executive:

(TCOMPL 'SYSRAMA)

Provide these answers to the questions the compiler asks:

  • listing? no
  • redefine? yes
  • save exprs? no

Finally, load Sysrama by evaluating:

(FILESLOAD SYSRAMA)

Usage

Suppose you want to analyze the Lisp program MYPROG, which must be under File Manager control. First 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 such as the function MYFUN:

(SUMMARIZE 'MYPROG 'FNS 'MYFUN)

Reference

The entry point to Sysrama is this function:

(SUMMARIZE FILE TYPE NAME) [function]: prints a report describing the Lisp objects in symbolic FILE. The report goes to the primary output and contains information only for the File Manager type designated by the TYPE argument if a symbol, a list of types if the argument is as such, or all registered types if NIL. Prints the information only for the symbol or list of symbols NAME if not NIL.

Release history

See the list of releases for notes on the changes in each version.

Learn more

Author

Sysrama is developed by Paolo Amoroso.

License

This code is distributed under the MIT license, see the LICENSE file.