Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When generating .dot files, rmem should not use ':' in PORT values. #19

Open
fshaked opened this issue Oct 5, 2022 · 0 comments
Open

Comments

@fshaked
Copy link
Contributor

fshaked commented Oct 5, 2022

If you run in the web-interface the MP litmus test from the library (rmem link), you can see in the Graph pane, that the 'co' edge from the initial value of 'x' to the first store of 'x' is coming out of what looks like the initial value of 'y'.

The root of the problem is that the .dot file rmem generates includes HTML-like labels with PORT attribute that includes ':'. For example: <TD PORT="w(1000:1:0)">.
neato silently ignores those ports when placing edges. So, for example this:

/* coherence */
"i1000:0":"w(1000:1:0)" -> "i0:1":"w(0:1:0)" [...]

is actually seen by neato as this:

/* coherence */
"i1000:0" -> "i0:1" [...]

Hence, the 'co' edge goes out from the big node that is wrapped around both values of 'x' and 'y', instead of going out of 'x'.

The tikz backend (src_top/tikz.ml) had a similar problem. This is why it uses pp_tikz_pretty_ioid, instead of Pp.pp_prettey_ioid.

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

No branches or pull requests

1 participant