<commit_before><!doctype html>
<!--
This is a webpage for visualizing event traces.
It's especially useful for debugging non-deterministic replays by comparing the
timings of different replay runs.

A common workflow:
  - Run ./simulator.py -c experiments/experiment_name/mcs_config.py
  - Discover that the final MCS does not trigger the bug.
  - Open visualize_trace_timings.html in a web browser.
  - Load the original trace, experiments/experiment_name/events.trace,
    as the first timeline.
  - Load the MCS trace, experiments/experiment_name_mcs/mcs.trace,
    as the second timeline.
  - Hover over events to see functional equivalence across the traces.
  - Load intermediate replay trace timelines if needed. Intermediate replay
    traces from delta debugging runs can be found in
    experiments/experiment_name_mcs/interreplay_*

TODO(cs): integrate our current hacked version of d3-timeline.js into the
public version so we can pull down updates.

TODO(cs): figure out how to dynamically change the scale of the x-axis.
-->
<html>
<head>
  <link rel="stylesheet" href="./d3-timeline/css/style.css">
  <!--<script src="http://code.jquery.com/jquery-latest.min.js"></script>-->
  <script src="./d3-timeline/lib/jquery-1.7.2.min.js"></script>
  <script src="./d3-timeline/lib/d3.v3.min.js"></script>
  <script src="./d3-timeline/src/d3-timeline.js"></script>
  <script src="./d3-timeline/lib/Tooltip.js"></script>
  <script src="./visualize_trace_timings_lib.js"></script>
  <script type="text/javascript">

    var primaryChartLoaded = false;
    var invariantViolations = {"InvariantViolation":true};
    var internalEvents = {"ControlMessageReceive":true,
                          "ControlMessageSend":true,
                          "ConnectToControllers":true,
                          "ControllerStateChange":true,
                          "DeterministicValue":true,
                          "DataplanePermit":true};

    // determines the number of toggle buttons at the top
    const numTimelines = 4;

    // The key is the timeline index, and the value
    var data_timeline = {};<commit_msg>Add TODOs<commit_after><!doctype html>
<!--
This is a webpage for visualizing event traces.
It's especially useful for debugging non-deterministic replays by comparing the
timings of different replay runs.

A common workflow:
  - Run ./simulator.py -c experiments/experiment_name/mcs_config.py
  - Discover that the final MCS does not trigger the bug.
  - Open visualize_trace_timings.html in a web browser.
  - Load the original trace, experiments/experiment_name/events.trace,
    as the first timeline.
  - Load the MCS trace, experiments/experiment_name_mcs/mcs.trace,
    as the second timeline.
  - Hover over events to see functional equivalence across the traces.
  - Load intermediate replay trace timelines if needed. Intermediate replay
    traces from delta debugging runs can be found in
    experiments/experiment_name_mcs/interreplay_*

TODO(cs): integrate our current hacked version of d3-timeline.js into the
public version so we can pull down updates.

TODO(cs): dynamically change the scale of the x-axis. Should just involve
changing the width parameter in visualize_trace_timings_lib.js (perhaps with a
jquery [slider](http://jqueryui.com/slider/) and redrawing the chart.

TODO(cs): allow the user filter out certain event types.
-->
<html>
<head>
  <link rel="stylesheet" href="./d3-timeline/css/style.css">
  <!--<script src="http://code.jquery.com/jquery-latest.min.js"></script>-->
  <script src="./d3-timeline/lib/jquery-1.7.2.min.js"></script>
  <script src="./d3-timeline/lib/d3.v3.min.js"></script>
  <script src="./d3-timeline/src/d3-timeline.js"></script>
  <script src="./d3-timeline/lib/Tooltip.js"></script>
  <script src="./visualize_trace_timings_lib.js"></script>
  <script type="text/javascript">

    var primaryChartLoaded = false;
    var invariantViolations = {"InvariantViolation":true};
    var internalEvents = {"ControlMessageReceive":true,
                          "ControlMessageSend":true,
                          "ConnectToControllers":true,
                          "ControllerStateChange":true,
                          "DeterministicValue":true,
                          "DataplanePermit":true};

    // determines the number of toggle buttons at the top
    const numTimelines = 4;

    // The key is the timeline index, and the value
    var data_timeline = {};
{'fraction_non_alphanumeric': 0.10830893942805675, 'fraction_numerical': 0.0058545372663814455, 'mean_word_length': 3.206439393939394, 'pattern_counts': {'":': 14, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, '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': '1990077', 'n_tokens_mistral': 1325, 'n_tokens_neox': 1280, 'n_words': 386}