asdf-viz

2020-06-10

Visualizes the dependencies between asdf systems / Visualize the function call graph.

Upstream URL

github.com/guicho271828/asdf-viz

Author

Masataro Asai

License

LLGPL
README

1ASDF-VIZ

This is a set of command line utilities for visualizing various object hierarchies of a lisp system. They are roswell-compatible command-line utilities distributed by quicklisp. Command installation is done by ros install asdf-viz.

NEWS Oct 20, 2017 We added another utility call-graph-viz which can visualize the call graph of a function.

NEWS Nov 6, 2017 We added another utility class-viz which visualizes the class inheritances.

NEWS Nov 25, 2017 We have a license flag -l / --licence for asdf-viz.

NEWS Sep 19, 2018 System-provided asdf:require-system systems (e.g. sb-introsoect) are plotted in a different shape/color. (See weblocks examples)

1.1asdf-viz -- visualizing the library dependencies of asdf systems.

  • Simple usage: $ asdf-viz [output.png] [system-name]...
  • Complex usage: $ asdf-viz [[-e|--exclude SYSTEM]...] [-l|--license] PNG-PATH [SYSTEM...]

Sample output of asdf-viz -l asdf-viz.png asdf-viz :

./asdf-viz.png

./weblocks.png

./spinneret.png

1.2call-graph-viz -- visualizing the call graph

Usage: call-graph-viz [options...] png-path

source options
  -s / --system SYSTEM : Quickload the system in the beginning. (specified multiple times, accumulates)
  -l / --load FILE     : Load the FILE before the visualization.(specified multiple times, accumulates)
  -r / --ros FILE      : Load a .ros script before the visualization. (specified multiple times, accumulates)
                         This avoids the problem of shebangs in roswell scripts.

filter options
  -p / --package PKG   : Limit the symbols to the package.      (specified multiple times, accumulates)
                         Package names are automatically upcased.
  -f / --function FN   : Specify the root nodes..               (specified multiple times, accumulates)
  -i / --include-outside-calls : Specifies if the leaf node can contain symbols outside the specified packages.

Examples:

call-graph-viz -s alexandria -p alexandria -f alexandria:symbolicate symbolicate.png
call-graph-viz -s alexandria -f alexandria:symbolicate symbolicate.png
 -- Visualize the call graph of alexandria:symbolicate .
    The second example has the same meaning, where -p option is inferred from the symbol package.

call-graph-viz -i -s alexandria -f alexandria:symbolicate symbolicate2.png
 -- Visualize the call graph of alexandria:symbolicate . Leaf nodes include symbols outside alexandria.

call-graph-viz -s alexandria -p alexandria alexandria.png
 -- Visualize the call graph of all external fbound symbols in alexandria

Example outputs:

./symbolicate.png

./symbolicate2.png

./alexandria.png

1.3class-viz -- visualizing the class hierarchy

Usage: class-viz [-s|--system system]* [png-path] [class names...]
Example: class-viz asdf.png asdf:component
Example: class-viz -s plump plump.png plump:node

Example outputs:

./asdf.png

./plump.png

1.4Dependencies

roswell and graphviz.

1.5Installation

  • ros install asdf-viz
  • set up PATH to include .roswell/bin/

1.6Author

  • Masataro Asai (guicho2.71828@gmail.com)

2Copyright

Copyright (c) 2015 Masataro Asai (guicho2.71828@gmail.com)

3License

Licensed under the LLGPL License.

Dependencies (5)

  • cl-dot
  • closer-mop
  • iterate
  • slime
  • trivia

Dependents (0)

    • GitHub
    • Quicklisp