<commit_before><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Software visualization demo: About</title>
</head>
<body>
  <H1>Block Layout software visualizer</H1>

<P>This is an <em>experimental</em> call graph visualiser. Calls are extracted at compile time. For this demonstration, the call graph is generated by passing "-fdump-rtl-expand" to GCC, and the subsequent RTL files generated are imported into a graph database, currently <a href="https://neo4j.com">Neo4J</a>. Importing calls to the database from other sources is possible.

<P>The aims of this project are to make it easier to understand which functions and groups of functions are heavily used and the extent to which one piece of code depends on another. The first demonstration we have here does this by representing functions as blocks on the screen, with arrowed lines connecting them and external packages. The intial graph may look too dense to be readable, but you can highlight smaller parts of the call chain by clicking on function boxes. In all, you can interact with the graph in three ways:

<ul>
<li>Clicking on a node (function) will highlight just the calls which affect that function. Functions which can be called by the selected function are highlighted in yellow, and functions which can call the selected node are highlighted in cyan, up to a call depth of 10 (which can be configured).</li>
<li>Clicking on a package from the left or right sidebars will move to that package.</li>
<li>Hovering the mouse over a function shows its full name.</li>
</ul>

<P>Our next tool will be one that shows the dependency chains between two objects. The use of a graph database makes this easy to do.

<P>We group functions in two ways: function are members of objects, which in most projects will mean a single source file. Objects are then members of packages. 'Package' is an arbitrary grouping, but we expect this to be analogous to the packages used by most Linux-based operating systems. In the example here, we've created artificial packages using the first letter of each object's name, so all objects beginning with 'a' are in one package.

<P>The test data presented here is generated from <a href="http://nethack.org">NetHack 3.60</a>.

 <P>Further details, including instructions on how to set up your own copy, can be found on Github: <a href="https://github.com/CodethinkLabs/software-dependency-visualizer">https://github.com/CodethinkLabs/software-dependency-visualizer</a>. Please note that all of the project, including the documnetation, is a work in progress and there are likely to be important steps missing.

<a href="index.html">Return to the package index</a>
</html><commit_msg>Add paragraph break to about page<commit_after><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Software visualization demo: About</title>
</head>
<body>
  <H1>Block Layout software visualizer</H1>

<P>This is an <em>experimental</em> call graph visualiser. Calls are extracted at compile time. For this demonstration, the call graph is generated by passing "-fdump-rtl-expand" to GCC, and the subsequent RTL files generated are imported into a graph database, currently <a href="https://neo4j.com">Neo4J</a>. Importing calls to the database from other sources is possible.

<P>The aims of this project are to make it easier to understand which functions and groups of functions are heavily used and the extent to which one piece of code depends on another. The first demonstration we have here does this by representing functions as blocks on the screen, with arrowed lines connecting them and external packages. The intial graph may look too dense to be readable, but you can highlight smaller parts of the call chain by clicking on function boxes. In all, you can interact with the graph in three ways:

<ul>
<li>Clicking on a node (function) will highlight just the calls which affect that function. Functions which can be called by the selected function are highlighted in yellow, and functions which can call the selected node are highlighted in cyan, up to a call depth of 10 (which can be configured).</li>
<li>Clicking on a package from the left or right sidebars will move to that package.</li>
<li>Hovering the mouse over a function shows its full name.</li>
</ul>

<P>Our next tool will be one that shows the dependency chains between two objects. The use of a graph database makes this easy to do.

<P>We group functions in two ways: function are members of objects, which in most projects will mean a single source file. Objects are then members of packages. 'Package' is an arbitrary grouping, but we expect this to be analogous to the packages used by most Linux-based operating systems. In the example here, we've created artificial packages using the first letter of each object's name, so all objects beginning with 'a' are in one package.

<P>The test data presented here is generated from <a href="http://nethack.org">NetHack 3.60</a>.

 <P>Further details, including instructions on how to set up your own copy, can be found on Github: <a href="https://github.com/CodethinkLabs/software-dependency-visualizer">https://github.com/CodethinkLabs/software-dependency-visualizer</a>. Please note that all of the project, including the documnetation, is a work in progress and there are likely to be important steps missing.

<P><a href="index.html">Return to the package index</a>
</html>
{'fraction_non_alphanumeric': 0.06942148760330578, 'fraction_numerical': 0.0036730945821854912, 'mean_word_length': 4.684759916492693, 'pattern_counts': {'":': 0, '<': 74, '<?xml version=': 0, '>': 74, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2740726', 'n_tokens_mistral': 1417, 'n_tokens_neox': 1358, 'n_words': 800}