The asdf-viz Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The asdf-viz Reference Manual

This is the asdf-viz Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 03:16:26 2022 GMT+0.

Table of Contents


1 Introduction


* ASDF-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)

** asdf-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]]

** call-graph-viz -- visualizing the call graph

#+begin_src 
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
#+end_src

Example outputs:

[[./symbolicate.png]]

[[./symbolicate2.png]]

[[./alexandria.png]]

** class-viz -- visualizing the class hierarchy

#+begin_src 
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
#+end_src

Example outputs:

[[./asdf.png]]

[[./plump.png]]

** Dependencies

[[https://github.com/snmsts/roswell/][roswell]] and graphviz.

** Installation

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

** Author

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

* Copyright

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

* License

Licensed under the LLGPL License.



2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 asdf-viz

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

Author

Masataro Asai

Contact

guicho2.71828@gmail.com

License

LLGPL

Version

0.1

Dependencies
  • iterate (system).
  • cl-dot (system).
  • trivia (system).
  • swank (system).
  • closer-mop (system).
Source

asdf-viz.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 asdf-viz/src

Source

asdf-viz.asd.

Parent Component

asdf-viz (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

4.1.1 asdf-viz/asdf-viz.asd

Source

asdf-viz.asd.

Parent Component

asdf-viz (system).

ASDF Systems

asdf-viz.


4.1.2 asdf-viz/src/asdf.lisp

Source

asdf-viz.asd.

Parent Component

src (module).

Packages

asdf-viz.

Public Interface

visualize-asdf-hierarchy (function).

Internals

4.1.3 asdf-viz/src/call-graph.lisp

Source

asdf-viz.asd.

Parent Component

src (module).

Packages

asdf-viz.call-graph.

Public Interface
Internals

4.1.4 asdf-viz/src/class-hierarchy.lisp

Source

asdf-viz.asd.

Parent Component

src (module).

Packages

asdf-viz.class-hierarchy.

Public Interface

visualize-class-hierarchy (function).


5 Packages

Packages are listed by definition order.


5.1 asdf-viz

Source

asdf.lisp.

Use List
  • cl-dot.
  • common-lisp.
  • trivia.level2.
Public Interface

visualize-asdf-hierarchy (function).

Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.2 asdf-viz.class-hierarchy

Source

class-hierarchy.lisp.

Use List
  • cl-dot.
  • common-lisp.
  • trivia.level2.
Public Interface

visualize-class-hierarchy (function).


5.3 asdf-viz.call-graph

Source

call-graph.lisp.

Use List
  • cl-dot.
  • common-lisp.
  • trivia.level2.
Public Interface

visualize-callgraph (function).

Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


6.1.1 Ordinary functions

Function: visualize-asdf-hierarchy (target-png &optional seed-systems mode)
Package

asdf-viz.

Source

asdf.lisp.

Function: visualize-callgraph (target-png pkg-designators &key seeds include-outside-calls)
Package

asdf-viz.call-graph.

Source

call-graph.lisp.

Function: visualize-class-hierarchy (target-png &optional base-classes)
Package

asdf-viz.class-hierarchy.

Source

class-hierarchy.lisp.


6.1.2 Standalone methods

Method: graph-object-node ((graph call-graph) (object list))
Package

cl-dot.

Source

call-graph.lisp.

Method: graph-object-node ((graph call-graph) (object symbol))
Package

cl-dot.

Source

call-graph.lisp.

Method: graph-object-node ((graph call-graph) (object package))
Package

cl-dot.

Source

call-graph.lisp.

Method: graph-object-points-to ((graph call-graph) (object list))
Package

cl-dot.

Source

call-graph.lisp.

Method: graph-object-points-to ((graph call-graph) (object symbol))
Package

cl-dot.

Source

call-graph.lisp.

Method: graph-object-points-to ((graph call-graph) (object package))
Package

cl-dot.

Source

call-graph.lisp.


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Special variables

Special Variable: *excluded*
Package

asdf-viz.

Source

asdf.lisp.

Special Variable: *license*
Package

asdf-viz.

Source

asdf.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.2 Ordinary functions

Function: belongs-to-packages (packages fname)
Package

asdf-viz.call-graph.

Source

call-graph.lisp.

Function: callees (symbol)
Package

asdf-viz.call-graph.

Source

call-graph.lisp.

Function: dependency-name (dependency-def)
Package

asdf-viz.

Source

asdf.lisp.


6.2.3 Classes

Class: call-graph
Package

asdf-viz.call-graph.

Source

call-graph.lisp.

Direct methods
Direct slots
Slot: packages

list of packages to limit the visualization of the call graph

Initargs

:packages

Slot: include-outside-calls

If the leaf node contains symbols outside PACKAGES

Initargs

:include-outside-calls


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts