Skip to content

Conversation

@stringhandler
Copy link

@stringhandler stringhandler commented Feb 11, 2026

Add a CLI command for outputting a binary program to .dot language, AKA graphviz.

The main reason is to easily compare programs created from SimplicityHL.

For example:
cargo run -- graph 4Am0vN8zP3zuXdYq0DFK50OFg4FN/m2W5xRsrPlArYt8C8wCEChBieAgWBxRsYCAawA=

will output

digraph G {
ordering="out";
  node0[label="unit"];
  node1[label="word(0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)"];
  node2[label="comp"];
  node2->node0;
  node2->node1;
  node3[label="iden"];
  node4[label="pair"];
  node4->node2;
  node4->node3;
  node5[label="iden"];
  node6[label="take"];
  node6->node5;
  node7[label="unit"];
  node8[label="jet(sig_all_hash)"];
  node9[label="comp"];
  node9->node7;
  node9->node8;
  node10[label="pair"];
  node10->node6;
  node10->node9;
  node11[label="witness"];
  node12[label="pair"];
  node12->node10;
  node12->node11;
  node13[label="jet(bip_0340_verify)"];
  node14[label="comp"];
  node14->node12;
  node14->node13;
  node15[label="comp"];
  node15->node4;
  node15->node14;
}

@stringhandler stringhandler force-pushed the feat/add-graphviz-output branch from 98e05a7 to cac856d Compare February 11, 2026 15:23
@stringhandler
Copy link
Author

It seems that Github has built in support for mermaid diagrams, so I might add an option to export to .dot or .mermaid

flowchart TD
    node0["unit"]
    node1["word(0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)"]
    node2["comp"]
    node3["iden"]
    node4["pair"]
    node5["iden"]
    node6["take"]
    node7["unit"]
    node8["jet(sig_all_hash)"]
    node9["comp"]
    node10["pair"]
    node11["witness"]
    node12["pair"]
    node13["jet(bip_0340_verify)"]
    node14["comp"]
    node15["comp"]

    node2 --> node0
    node2 --> node1

    node4 --> node2
    node4 --> node3

    node6 --> node5

    node9 --> node7
    node9 --> node8

    node10 --> node6
    node10 --> node9

    node12 --> node10
    node12 --> node11

    node14 --> node12
    node14 --> node13

    node15 --> node4
    node15 --> node14

Loading

@stringhandler
Copy link
Author

The actual command also might be better suited for hal-simplicity. Happy to move it there if need be.

@stringhandler stringhandler marked this pull request as ready for review February 11, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant