Stream: t-compiler

Topic: generating graphs


oli (Apr 19 2019 at 07:48, on Zulip):

there must be an easier way to generate something like this though :P

oli (Apr 19 2019 at 07:49, on Zulip):

@eddyb I can recommend https://dreampuf.github.io/GraphvizOnline/

eddyb (Apr 19 2019 at 08:34, on Zulip):

how would I get graphviz to make anything nearly as pleasant-looking?!

oli (Apr 19 2019 at 08:53, on Zulip):

modulo colors and some label positioning: https://dreampuf.github.io/GraphvizOnline/#digraph%20G%20%7B%0A%20%20compound%3Dtrue%0A%20%20node%20%5B%0A%20%20%20%20%20%20style%3D%22rounded%2Cfilled%22%0A%20%20%20%20%20%20shape%3Dbox%0A%20%20%5D%0A%0A%20%20subgraph%20cluster_0%20%7B%0A%20%20%20%20%20%20style%3D%22rounded%2Cfilled%22%0A%20%20%20%20color%3Dlightgrey%3B%0A%20%20%20%20node%20%5Bcolor%3Dwhite%5D%3B%0A%20%20%20%20label%20%3D%20%22Def%22%3B%0A%20%20%20%20%0A%20%20%20%20%20%20subgraph%20cluster_ast%20%7B%0A%20%20%20%20%20%20style%3D%22rounded%2Cfilled%22%0A%20%20%20%20%20%20%20%20label%20%3D%20%22AST%22%3B%0A%20%20%20%20%20%20%20%20ty_ast%20%5B%20label%20%3D%20%22Ty%22%5D%0A%20%20%20%20%20%20%20%20expr_ast%20%5B%20label%20%3D%20%22Expr%22%5D%0A%20%20%20%20%20%20%20%20pat_ast%20%5B%20label%20%3D%20%22Pat%22%5D%0A%20%20%20%20%20%20%20%20color%20%3D%20green%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ty_ast%20-%3E%20ty%0A%20%20%20%20%20%20expr_ast%20-%3E%20expr%0A%20%20%20%20%20%20pat_ast%20-%3E%20pat%0A%20%20%20%20%20%20subgraph%20cluster_hir%20%7B%0A%20%20%20%20%20%20style%3D%22rounded%2Cfilled%22%0A%20%20%20%20%20%20%20%20label%20%3D%20%22HIR%22%3B%0A%20%20%20%20%20%20%20%20ty%20%5B%20label%20%3D%20%22Ty%22%5D%0A%20%20%20%20%20%20%20%20expr%0A%20%20%20%20%20%20%20%20pat%0A%20%20%20%20%20%20%20%20color%20%3D%20blue%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20subgraph%20cluster_thir%20%7B%0A%20%20%20%20%20%20style%3D%22rounded%2Cfilled%22%0A%20%20%20%20%20%20%20%20label%20%3D%20%22THIR%22%3B%0A%20%20%20%20%20%20%20%20color%20%3D%20red%0A%20%20%20%20%20%20%20%20thir_expr%20%5B%20label%20%3D%20%22Expr%22%5D%0A%20%20%20%20%20%20%20%20thir_pat%20%5B%20label%20%3D%20%22Pat%22%5D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20expr%20-%3E%20thir_expr%0A%20%20%20%20%20%20pat%20-%3E%20thir_pat%0A%20%20%20%20%20%20subgraph%20cluster_ty%20%7B%0A%20%20%20%20%20%20%20%20%20%20color%20%3D%20purple%0A%20%20%20%20%20%20%20%20%20%20label%20%3D%20%22ty%22%0A%20%20%20%20%20%20%20%20%20%20MIR%0A%20%20%20%20%20%20%20%20%20%20ty_ty%20%5B%20label%20%3D%20%22Ty%22%5D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20ty%20-%3E%20ty_ty%0A%20%20%20%20%20%20thir_expr%20-%3E%20MIR%0A%20%20%20%20%20%20thir_pat%20-%3E%20MIR%0A%20%20%7D%0A%0A%20%20subgraph%20cluster_1%20%7B%0A%20%20%20%20label%20%3D%20%22Inputs%22%3B%0A%20%20%20%20color%3Dblue%0A%20%20%20%20source%20-%3E%20expr_ast%20%5Blhead%3Dcluster_0%5D%0A%20%20%20%20tokens%20-%3E%20expr_ast%5Blhead%3Dcluster_0%5D%0A%20%20%20%20rmeta%20-%3E%20expr_ast%5Blhead%3Dcluster_0%5D%0A%20%20%7D%0A%0A%7D

oli (Apr 19 2019 at 08:53, on Zulip):

hm lol, there's no minifier

eddyb (Apr 19 2019 at 09:12, on Zulip):

wait, what the hell, how do you get it to be so regular?!

eddyb (Apr 19 2019 at 09:12, on Zulip):

I've spent years of my life being frustrated that there was nothing intermediate between "let graphviz make a mess of it" and "do manual layout"

eddyb (Apr 19 2019 at 09:15, on Zulip):

@oli https://bit.ly/2Zn6qgA

eddyb (Apr 19 2019 at 09:20, on Zulip):

can you make it flow up instead of down?

eddyb (Apr 19 2019 at 09:21, on Zulip):

(I'm doing something else atm)

eddyb (Apr 19 2019 at 09:21, on Zulip):

@oli oh and if you really have time to waste, I can send you my inkscape SVG :P

eddyb (Apr 19 2019 at 09:23, on Zulip):

(https://usercontent.irccloud-cdn.com/file/whSeTtRk/architecture.svg)

eddyb (Apr 19 2019 at 09:51, on Zulip):

basically, this solves my (common) issue of wanting a graph where the nodes are that of a tree (which I want to represent with nesting)

oli (Apr 20 2019 at 13:03, on Zulip):

wait, what the hell, how do you get it to be so regular?!

how have you ever gotten anything else? :D I mean there are weird edge cases where you need hacks, but most graphs just work

oli (Apr 20 2019 at 13:08, on Zulip):

@eddyb like so? https://bit.ly/2Zpvm72

eddyb (Apr 21 2019 at 11:14, on Zulip):

@oli no, like, most of my stuff is just hundreds/thousands of nodes all over the place, with ugly-looking arrows :P

eddyb (Apr 21 2019 at 11:26, on Zulip):

anyway, thanks for showing me the way! I'll try to adjust this for maximal editability (or make a macro_rules thing that helps with that :P)

eddyb (Apr 21 2019 at 11:30, on Zulip):

@oli does the cluster_ prefix do anything?!

eddyb (Apr 21 2019 at 11:34, on Zulip):

anyway, this is an updated version, with the inputs hooked up better, but I'll try to get the original look I had soon https://bit.ly/2IKL4E3

oli (Apr 21 2019 at 21:00, on Zulip):

yea, the cluster prefix is what makes the actual boxes around groups of nodes

eddyb (Apr 22 2019 at 09:15, on Zulip):

that seems.... very stringly typed? isn't there another way to control that?

oli (Apr 22 2019 at 10:10, on Zulip):

nope

Last update: Nov 20 2019 at 01:20UTC