Call graph for news.arc

I’ve started my exploration of visualising software with a call chart for news.arc (pdf). The whole thing is derived from static analysis of news.arc, and furthermore I only work on the arc source code, not taking any information from the arc-to-scheme compiler. This makes it a heuristic rather than a real transform of the source code, which in a Lisp is particularly fragile as code and data are pretty blurred.

The whole program is no more than 100 lines of arc (to be posted?) and generates a dot file for consumption in graphviz. I currently use the original “dot”, but have experimented a bit with the other algorithms (e.g. neato). If I get better results from these I will post them too. My next steps will be to encode the size of the functions (node size?), and add dynamic information (how often are these actually called)?

The colors correspond to the type of function definition: black: def, red: newsop, orange: newscache, green: adop, blue: defmemo. And oh yeah, I left macros out for now šŸ™‚

Leave a comment