vcg(1)

NAME

VCG tool - visualization of compiler graphs

SYNOPSIS

vcg [options] [filename]
xvcg [options] [filename]

SYNOPSIS FOR SEQUENCES OF GRAPH SPECIFICATIONS

vcg -multi [options] [filename] [options] [filename] ...
xvcg -multi [options] [filename] [options] [filename] ...

DESCRIPTION

The VCG tool reads a VCG specification and visualizes the
graph. If not all positions of nodes are fixed, the tool lays
the graph out using several heuristics as reducing the number of
crossings, minimizing the size of edges, centering of nodes. The
specification language of the VCG tool is nearly compatible to
GRL, the language of the Edge tool, but contains many extensions.
The VCG tool allows folding of dynamically or statically speci
fied regions of the graph. It uses colors and runs on X11. (An
older version runs on Sunview.)

GENERAL OPTIONS

- The input is stdin instead of a file.

-h | -? Print a help message about the usage of the
tool.
-v | -version Print a version and copyright message.
-silent Be silent during the layout. No messages
or warnings are produced.
-nocolors | -blackwhite
Do not use colors on a color screen. On a
monochrom screen the graph is drawn in black & white even if it
is specified with colors. On a color screen, this mode is simu
lated, if this option is selected. The option is useful, if the
VCG tool conflicts with other programs that need colors.
-e <num> | -error <num>
Stop after <num> errors during parsing of
the specification (default: 16).
-a <num> | -animation <num>
Start the tool as animation handler. This
implies that the tool is controlled by signals (USRSIG1, USRSIG2)
from an external program. The signal USRSIG1 causes the VCG tool
to open the display window and reload its input file. The signal
USRSIG2 causes the VCG tool to close the display window. The
tool processes the input and indicates the completion of the pro
cessing to the controlling program. If <num> is greater 0, this
indication is done by sleeping <num> seconds and touching the in
put file afterwards such that its time stamp is refreshed. If
<num> is less than 0, this indication is done by sleeping - <num>
seconds and sending signal USRSIG1 to the caller process after
wards.
-m | -multi Read multiple files one after another to
display a sequence of graphs. Instead of an exit of the tool,
the next file is read. The option -multi must be specified be
fore the first input file.
-bary Use bary centering to reduce the number of
edge crossings (default).
-median Use median centering instead of bary cen
tering to reduce the number of crossings. On graphs with large
average degree of edges, bary centering might be faster.
-barymedian Use a hybrid method to reduce the number of
edge crossings. Bary centering is used for all nodes with dif
ferent bary values. For nodes with same bary values, the cross
ing reduction heuristics normally has a random effect. With this
hybrid method, the crossing reduction of nodes with same bary
values is done by median centering.
-medianbary Use a hybrid method to reduce the number of
edge crossings. Median centering is used for all nodes with dif
ferent median values. For nodes with same median values, the
crossing reduction heuristics normally has a random effect. With
this hybrid method, the crossing reduction of nodes with same me
dian values is done by bary centering.
-notune | -nofinetune
Switch the fine tuning layout phase off.
Fine tuning is a postprocessing phase after partitioning of nodes
into layers. Fine tuning changes the layers of nodes to minimize
the length of edges. If this phase is switched off, it yield a
less compact distribution of nodes in the levels.
-manhattan | -orthogonal
Switch the orthogonal manhattan layout on.
This forces edges of gradient 0 or 90 degree. The result of this
layout might be more aesthetical, if additionally the priority
layout phase with straight line tuning is used. Thus, these
phases are switched on, too, unless priority layout and straight
line tuning is switched explicitly off.
-nomanhattan | -noorthogonal
Switch the orthogonal manhattan layout ex
plicitly off.
-smanhattan Use the orthogonal manhattan layout without
separation of horizontal line segments. Horizontal line segments
are shared between different edges. This looks nice for trees
but might be confusing in general, because the location of an
edge might be ambiguously.
-nosmanhattan Switch the orthogonal manhattan layout
without separation explicitly off.
-prio Switch the priority layout on. This forces
straight long edges with gradient 90 degree during the node
placement phase. The straight line tuning phase can be used to
improve the priority layout. Thus, this phase is switched on,
too, unless straight line tuning is switched explicitly off.
-noprio Switch the priority layout explicitly off.
-straight Switch the straight line tuning phase on.
This phase forces straight long edges with gradient 90 degree. It
can be used to improve the priority layout.
-nostraight Switch the straight line tuning phase ex
plicitly off.
-nonearedge Do not allow near edges in the layout.
-l | -latelabels
Create the labels after the partitioning of
edges. This has only an effect if labels are shown in a nondirty
way. If labels are created after the partitioning of edges, the
layout will be a little bit wider and may have less crossings.
But note that sometimes this layout may also be worser than the
normal layout.
-hidesingles | -ignoresingles
Ignore single nodes (nodes without visible
edges) that are not connected with the remaining graph. These
nodes are sometimes not of interest, but would spread the layout
if they were visible.
-s | -summarize
Switch edge summary layout on. Multiple
edges between the same source and target node are summarized if
they have the same visible appearance. This reduces the number
of visible edges.

OPTIONS FOR THE LAYOUT SPEED

The speed of the layout process can be influenced by se
lecting time limits and iteration bounds of the different layout
phases. Optional layout phases can completely be skipped. But
note that we need a minimal time for each graph, in order to ini
tialize the internal data structures. Furthermore, a fast layout
is probably also an ugly layout.
-t <num> | -timelimit <num>
Set the time limit to <num> seconds of real
time. If the time limit is exceeded, the fastest possible layout
mode is switched on. This may yield a very ugly layout. Of
course, a time limit does not mean that the layout really needs
so much time: The layout may be faster, because the graph struc
ture is very simple, or it may be slower, because even the
fastest possible layout already exceeds the time limit. Further
note, that the layout depends on the real time, i.e. on the load
of the computer. Thus, given a time limit, two identical trys
need not to give identical results.
-f | -fast Switch the fast and dirty and ugly mode on.
The layout phase will be very fast, but the layout will be ugly.
This is helpful on very large graphs where aesthetic visibility
is of minor importance. The option -fast implies -bmax 2 -cmax 2
-pmax 2 -rmax 2 -smax 2.
-b <num> | -bmax <num> | -bending <num>
Set the maximal number of iterations used
for the reduction of edge bendings to <num>. Edge bendings are
used to avoid that edges are drawn across nodes. Reducing the
number of iterations results in a faster but ugly layout, i.e. to
much bendings occur. The default value is 100.
-c <num> | -cmax <num> | -crossing <num>
Set the maximal number of iterations used
for the reduction of edge crossings to <num>. The edge crossing
reduction method is called bary centering or median centering.
These may be very time consuming on large graphs. Reducing the
number of iterations results in a faster but ugly layout. As de
fault, the method is iterated as long as improvements are possi
ble.
-cmin <num> Set the minimal number of iterations used
for the reduction of edge crossings to <num>. The crossing re
duction method tries to detect improvements of the layout. If an
iteration of that method does not yield an improvment, the method
normally stops. But this situation might be a local minimum of
the quality of the layout, i.e. further iterations might find a
better layout. Thus, the minimal number of iterations can be
specified. The default value is 0.
-p <num> | -pmax <num> | -pendulum <num>
Set the maximal number of iterations used
for the balancing by the pendulum method to <num>. The pendulum
method calculates the x co-ordinates of nodes such that the lay
out is medium dense and balanced. It tries to avoid extreme gra
dients of edges. It works like a pendulum where the nodes are
the balls, the edges are the strings and uppermost nodes are
fixed on the ceiling. Reducing the number of iterations results
in a faster but ugly layout. The default value is 100.
-pmin <num> Set the minimal number of iterations used
for the balancing by the pendulum method to <num>. If an itera
tion of that method does not yield an improvment, the method nor
mally stops. But this situation might be a local minimum of the
quality of the layout, i.e. further iterations might find a bet
ter layout. Thus, the minimal number of iterations can be speci
fied. The default value is 0.
-r <num> | -rmax <num> | -rubberband <num>
Set the maximal number of iterations used
for the balancing by the rubberband method to <num>. The rub
berband method calculates the x co-ordinates of nodes such that
the nodes are centered relatively to their incoming and outgoing
edges. It works like a network where the edges pull on the nodes
like rubberbands. Reducing the number of iterations results in a
faster but ugly layout. The default value is 100.
-rmin <num> Set the minimal number of iterations used
for the balancing by the rubberband method to <num>. If an it
eration of that method does not yield an improvment, the method
normally stops. But this situation might be a local minimum of
the quality of the layout, i.e. further iterations might find a
better layout. Thus, the minimal number of iterations can be
specified. The default value is 0.
-smax <num> Set the maximal number of iterations used
for the straight line tuning phase to <num>. This phase forces
straight long edges with gradient 90 degree. It can be used to
improve the priority layout or the manhattan layout.
-nocopt | -nocopt2
Skip the optimization phase 2 during the
crossing reduction. This phase takes very long time on very
large graphs. Before reducing the number of iterations of the
crossing reduction phase (see option -cmax <num> ) you should
first try to skip this optimization phase 2.
-nocoptl | -nocoptlocal
Switch a local crossing optimization off.
This phase additionally examines pairs of edge polygons and tries
to unwind them. It slows down if the degree of the nodes is
large.

OPTIONS FOR THE DISTRIBUTION OF NODES

The quality of the layout is mainly influenced by the dis
tribution of the nodes into the hierarchy levels. Nodes of the
same level will appear in the same row. Since it depends on the
application which hierarchy is the best, there are different al
gorithms for this phase.
-d normal Normal distribution of nodes into the
levels (default). This algorithm is based on the calculation
of the strongly connected components.
-d dfs Depth first search distribution of nodes
into the levels. This is the fastest method.
-d 0 | -d minbackward
Reduce the number of backward edges heuris
tically. If the graph is acyclic, no backward edges will occur,
i.e. all edges point into the same direction.
-d + | -d maxdepth
Maximize the depth of the layout heuristi
cally. It should be used if the layout is too wide in x direc
tion. This algorithm is very fast.
-d - | -d mindepth
Minimize the depth of the layout heuristi
cally. It should be used if the layout is too wide in y direc
tion. This algorithm is very fast.
-d ++ | -d maxdepthslow
Maximize the depth of the layout heuristi
cally. See above. This algorithm is very slow, but may give bet
ter results.
-d -- | -d mindepthslow
Minimize the depth of the layout heuristi
cally. See above. This algorithm is very slow, but may give bet
ter results.
-d minindeg | -d minindegree
Prepare the nodes by sorting them according
increasing indegree (number of incoming edges). The nodes with
the minimal indegree come first. This may have various effects
on the layout.
-d maxindeg | -d maxindegree
Prepare the nodes by sorting them according
decreasing indegree. The nodes with the maximal indegree come
first. This may have various effects on the layout.
-d minoutdeg | -d minoutdegree
Prepare the nodes by sorting them according
increasing outdegree (number of outgoing edges). The nodes with
the minimal outdegree come first. This may have various effects
on the layout.
-d maxoutdeg | -d maxoutdegree
Prepare the nodes by sorting them according
decreasing outdegree. The nodes with the maximal outdegree come
first. This may have various effects on the layout.
-d mindeg | -d mindegree
Prepare the nodes by sorting them according
increasing degree (number of incoming and outgoing edges). The
nodes with the minimal degree come first. This may have various
effects on the layout.
-d maxdeg | -D maxdeg
Prepare the nodes by sorting them according
decreasing degree. The nodes with the maximal degree come first.
This may have various effects on the layout.
-d tree Use a specialized layout for trees. It does
not work with non-trees.

OPTIONS FOR THE VIEW

The view of a graph is the method of the visual appearance
of the graph in the window after the layout. Changing the view
does not require a relayout of the graph. Views are transforma
tions that are done during the drawing.
-view normal Normal view onto the graph. No distortion.
-view cfish Cartesian fisheye view. The graph is dis
torted such that the whole graph is visible. Horizontal and
vertical lines don't change their direction.
-view fcfish Cartesian fisheye view with fixed size fo
cus. The graph is distorted, but not necessarily the whole graph
is visible.
-view pfish Polar fisheye view. The graph is distort
ed such that the whole graph is visible. Even horizontal and
vertical lines might be distorted.
-view fpfish Polar fisheye view with fixed size fo
cus. The graph is distorted, but not necessarily the whole
graph is visible.
-spline Use splines instead of polygons to draw
edges. This is mainly useful if you want to export the graph into
a high quality PostScript picture. WARNING: Drawing splines is
very slow.
-nonodes Suppress drawing of nodes.
-noedges Suppress drawing of edges.
-xpos <num> Set the x-coordinate of the initial point
of the graph that appears at the window origin or of the initial
focus point to <num>.
-ypos <num> Set the y-coordinate of the initial point
of the graph that appears at the window origin or of the initial
focus point to <num>.

PRINTER DRIVER INTERFACE

The printer driver interface allows to produce an output
file of the visualized graph without the need of interaction.
The VCG tool acts as a kind of converter program in this case: it
converts a VCG file into a PostScript or bitmap file. It is rec
ommended to use the option -silent in combination to one of the
options -vcgoutput, -psoutput, -pbmoutput, or -ppmoutput. Exam
ple:
xvcg -silent -color -scale 75 -psoutput test.ps test.vcg
converts the VCG file test.vcg into a PostScript file that
contains a color picture of the graph scaled by 75 %. In this
case the interactive display is suppressed. If the graph does
not fit on the page, the output might be nonsense.

PRINTER DRIVER OPTIONS

-vcgoutput <filename>
Produce a VCG file named <filename> that
contains the graph laid out, i.e. including information about the
co-ordinates of the visible nodes. The most of the following
format options have no effect for the VCG file format.
-psoutput <filename>
Produce a PostScript file named <filename>
that contains the graph.
-pbmoutput <filename>
Produce a bitmap file named <filename> in
PBM format that contains the graph in black and white.
-ppmoutput <filename>
Produce a bitmap file named <filename> in
PPM format that contains the graph in colors.
-paper <papertype>
Select the paper type. Default is a4.
<papertype> is one of:
a4 din A4 (21 x 30 cm)
A4 din A4 (21 x 30 cm)
b5 din B5 (18.5 x 27 cm)
B5 din B5 (18.5 x 27 cm)
a5 din A5 (15 x 21 cm)
A5 din A5 (15 x 21 cm)
11x17 tabloid (11 x 17 in)
tabloid tabloid (11 x 17 in)
8x11 letter (8.5 x 11 in)
letter letter (8.5 x 11 in)
8x14 legal (8.5 x 14 in)
legal legal (8.5 x 14 in)
-noBoundingBox Suppress the calculation of a BoundingBox
(PostScript format).
-color Select a color file output. This option
works only with the PostScript format.
-grey Select a greyscaled file output. This op
tion works only with the PostScript format.
-blackwhite Select a monochromatic file output. This
is the default color. This option works only with the PostScript
format.
-portrait Select the paper orientation `Portrait'
(default).
-landscape Select the paper orientation `Landscape'.
-split <num> Split the graph into <num> pages. This op
tion works only with the PostScript format. The number of pages
must be one of 1, 4, 9, 16, or 25.
-xdpi <num> Set the horizontal resolution for the PPM
and PBM format. This allows to adapt the bitmap formats to the
resolutions of the printer.
-ydpi <num> Set the vertical resolution for the PPM and
PBM format. This allows to adapt the bitmap formats to the reso
lutions of the printer.
-scale <num> Scale the graph to <num> percent for the
file output. The default scaling fits the graph with maximal as
pect ratio to the paper size.
-width <float> <units>
Fit the graph such that its width is small
er than <float> <units>. This works only if no scaling is speci
fied. <units> are:
in Inches
inch Inches
ft Foot
foot Foot
feet Foot
mm Millimeter
cm Centimeter
dm Decimeter
m Meter
-height <float> <units>
Fit the graph such that its height is
smaller than <float> <units>. This works only if no scaling is
specified.
-lm <float> <units>
Set the left margin of the output to
<float> <units>. This works only if no right margin is speci
fied. The default position is centered on the page. In some
cases the BoundingBox of the PostScript output meight be wrong.
If a BoundingBox is needed then we recommend the options -lm 0
cm -bm 0 cm.
-rm <float> <units>
Set the right margin of the output to
<float> <units>. This works only if no left margin is specified.
The default position is centered on the page.
-tm <float> <units>
Set the top margin of the output to <float>
<units>. This works only if no bottom margin is specified. The
default position is centered on the page.
-bm <float> <units>
Set the bottom margin of the output to
<float> <units>. This works only if no top margin is specified.
The default position is centered on the page.

X11 OPTIONS

-display <host:dpy>
Set the remote X11 server to host:dpy.
This is analogous to xterm(1l).
-geometry <geom>
Specify the hint of size and location of
the X11 window. This is analogous to xterm(1l).
-bw <num> Set the border width of the X11 window to
<num> pixels. This is analogous to xterm(1l).
-font <xfont> Set the font used for messages and menu
items in the X11 window. This is analogous to xterm(1l).
-grabinputfocus
Switch setting of InputFocus on or off (de
pending on the default). Cause the VCG tool to execute a XSet
InputFocus, or to avoid to execute a XSetInputFocus on initial
ization.

GRAMMAR

The grammar of the specification language is the follow
ing:
graph
::= "graph:" '{' graph_entry_list '}'
;
graph_entry_list
::= graph_entry_list graph_entry
| graph_entry
;
graph_entry
::= graph_attribute
| node_defaults
| edge_defaults
| foldnode_defaults
| foldedge_defaults
| graph
| node
| edge
| nearedge
| bentnearedge
| backedge
;
graph_attribute
::= "title" ':' string
| "label" ':' string
| "info1" ':' string
| "info2" ':' string
| "info3" ':' string
| "color" ':' enum_color
| "textcolor" ':'enum_color
| "bordercolor" ':'enum_color
| "width" ':' integer
| "height" ':' integer
| "borderwidth" ':' integer
| 'x' ':' integer
| 'y' ':' integer
| "loc:" '{' 'x' ':' integer 'y' ':' integer '}'
| "folding" ':' integer
| "scaling" ':' float
| "shrink" ':' integer
| "stretch" ':' integer
| "textmode" ':' enum_textmode
| "shape" ':' enum_shape
| "level" ':' integer
| "vertical_order" ':' integer
| "horizontal_order" ':' integer
| "status" ':' enum_status
| "xmax" ':' integer
| "ymax" ':' integer
| "xbase" ':' integer
| "ybase" ':' integer
| "xspace" ':' integer
| "xlspace" ':' integer
| "yspace" ':' integer
| "xraster" ':' integer
| "xlraster" ':' integer
| "yraster" ':' integer
| "invisible" ':' integer
| "hidden" ':' integer
| "classname" integer ':' string
| "infoname" integer ':' string
| "colorentry" integer ':' integer integer integer
| "layoutalgorithm" ':' enum_layoutalgorithm
| "layout_downfactor" ':' integer
| "layout_upfactor" ':' integer
| "layout_nearfactor" ':' integer
| "splinefactor" ':' integer
| "late_edge_labels" ':' enum_yes_no
| "display_edge_labels" ':' enum_yes_no
| "dirty_edge_labels" ':' enum_yes_no
| "finetuning" ':' enum_yes_no
| "ignoresingles" ':' enum_yes_no
| "straight_phase" ':' enum_yes_no
| "priority_phase" ':' enum_yes_no
| "manhattan_edges" ':' enum_yes_no
| "smanhattan_edges" ':' enum_yes_no
| "nearedges" ':' enum_yes_no
| "orientation" ':' enum_orientation
| "node_alignment" ':' enum_node_align
| "port_sharing" ':' enum_yes_no
| "arrowmode" ':' enum_arrow_mode
| "spreadlevel" ':' integer
| "treefactor" ':' float
| "crossingphase2" ':' enum_yes_no
| "crossingoptimization" ':' enum_yes_no
| "crossingweight" ':' enum_cross_weight
| "view" ':' enum_view
| "edges" ':' enum_yes_no
| "nodes" ':' enum_yes_no
| "splines" ':' enum_yes_no
| "bmax" ':' integer
| "cmax" ':' integer
| "cmin" ':' integer
| "pmax" ':' integer
| "pmin" ':' integer
| "rmax" ':' integer
| "rmin" ':' integer
| "smax" ':' integer
;
enum_color
::= "aquamarine"
| "black"
| "blue"
| "cyan"
| "darkblue"
| "darkcyan"
| "darkgreen"
| "darkgrey"
| "darkmagenta"
| "darkred"
| "darkyellow"
| "gold"
| "green"
| "khaki"
| "lightblue"
| "lightcyan"
| "lightgreen"
| "lightgrey"
| "lightmagenta"
| "lightred"
| "lightyellow"
| "lilac"
| "magenta"
| "orange"
| "orchid"
| "pink"
| "purple"
| "red"
| "turquoise"
| "white"
| "yellow"
| "yellowgreen"
| integer
;
enum_orientation
::= "top_to_bottom"
| "bottom_to_top"
| "left_to_right"
| "right_to_left"
;
enum_layoutalgorithm
::=
| "tree"
| "maxdepth"
| "mindepth"
| "maxdepthslow"
| "mindepthslow"
| "maxdegree"
| "mindegree"
| "maxindegree"
| "minindegree"
| "maxoutdegree"
| "minoutdegree"
| "minbackward"
| "dfs"
;
enum_status
::= "black"
| "grey"
| "white"
;
enum_yes_no
::= "yes"
| "no"
;
enum_cross_weight
::= "bary"
| "median"
| "barymedian"
| "medianbary"
;
enum_view
::= "cfish"
| "fcfish"
| "pfish"
| "fpfish"
;
enum_arrow_mode
::= "fixed"
| "free"
;
foldnode_defaults
::= "foldnode." node_attribute
;
foldedge_defaults
::= "foldedge." edge_attribute
;
node_defaults
::= "node." node_attribute
;
edge_defaults
::= "edge." edge_attribute
;
node ::= "node:" '{' node_attribute_list '}'
;
node_attribute_list
::= node_attribute_list node_attribute
| node_attribute
;
edge ::= "edge:" '{' edge_attribute_list '}'
;
nearedge
::= "nearedge:" '{' edge_attribute_list '}'
;
bentnearedge
::= "bentnearedge:" '{' edge_attribute_list '}'
;
backedge
::= "backedge:" '{' edge_attribute_list '}'
;
edge_attribute_list
::= edge_attribute_list edge_attribute
| edge_attribute
;
node_attribute
::= "title" ':' string
| "label" ':' string
| "info1" ':' string
| "info2" ':' string
| "info3" ':' string
| "color" ':' enum_color
| "textcolor" ':'enum_color
| "bordercolor" ':'enum_color
| "width" ':' integer
| "height" ':' integer
| "borderwidth" ':' integer
| "loc:" '{' 'x' ':' integer 'y' ':' integer '}'
| "folding" ':' integer
| "scaling" ':' float
| "shrink" ':' integer
| "stretch" ':' integer
| "textmode" ':' enum_textmode
| "shape" ':' enum_shape
| "level" ':' integer
| "vertical_order" ':' integer
| "horizontal_order" ':' integer
;
enum_textmode
::= "center"
| "left_justify"
| "right_justify"
;
enum_shape
::= "box"
| "rhomb"
| "ellipse"
| "triangle"
;
enum_node_align
::= "bottom"
| "top"
| "center"
;
edge_attribute
::= "sourcename" ':' string
| "targetname" ':' string
| "label" ':' string
| "textcolor" ':'enum_color
| "color" ':' enum_color
| "thickness" ':' integer
| "class" ':' integer
| "priority" ':' integer
| "arrowcolor" ':' enum_color
| "backarrowcolor" ':' enum_color
| "arrowsize" ':' integer
| "backarrowsize" ':' integer
| "arrowstyle" ':' enum_arrowstyle
| "backarrowstyle" ':' enum_arrowstyle
| "linestyle" ':' enum_linestyle
| "anchor" ':' integer
| "horizontal_order" ':' integer
;
enum_linestyle
::= "continuous"
| "solid"
| "dotted"
| "dashed"
| "invisible"
;
enum_arrowstyle
::= none
| line
| solid
;

WARNINGS

The VCG tool needs about 200 bytes per edge and node. De
pending on the layout, it will produce a lot of additional dummy
nodes and dummy edges, such that it may run out of memory. The
layout algorithm needs exponentially time in the worst case.

ACKNOWLEDGEMENTS

The Edge tool was developed at the University of Karl
sruhe. GRL was described by S. Manke and F.N. Paulisch.
Our colleagues M. Alt and C. Ferdinand found the most bugs
and gave many proposals for improvements.
The Institute of Compiler Construction at the University
of Saarland, Germany, and the COMPARE Consortium were the first
and most important users of the VCG tool and gave us the motiva
tion, the time and many hints during the development of the tool.

SEE ALSO

Sunview(1) X11(1l) edge(l)
vcgdemomaker(l) pbmshift(l) pbmrot90(l) pbm2hp(l)
VCG - Visualization of Compiler Graphs, Design Report and
User Documentation, Ref. Compare, USAAR-1049-visual, January
1994, updated January 1995

BUGS

The X11 version has the `InputFocus' problem. This prob
lem is solved for 99 % of all cases, but may still occur.
If a graph is written to a file and reload from this file,
the layout may be different and may be ugly.
The attribute horizontal_order does only works for con
nected graphs, but not for unconnected graphs.
For some parameters, negative values are inappropriate
even if the tool does not crashes in such situations. However
the result will be very ugly. For instance, the values of xbase
and ybase should always be greater than zero.
The spline routine is still too slow and has some bugs
when exporting to a multi page PostScript file.
Currently, no further bugs are known.

AUTHORS

Georg Sander, University of Saarland, Germany.
Iris Lemke, University of Saarland, Germany.
Release 1.3 1995/01/05
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout