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

[WIP] Reify cowns and add taint for visual story telling #27

Closed
wants to merge 8 commits into from

Conversation

xFrednet
Copy link
Collaborator

This PR reifies cowns. These are objects, which are opaque by default, meaning that the linked region can't be accessed unless they're acquired. Currently, there is no mechanism to acquire a cown, but I already added checks for it in the required places.

Mermaid is aware of cowns and draws the node with two lines on the side and dotted outgoing edges. This is meant to show that they're not directly accessible. I'm open to any suggestions how to make this clearer or what to try out.

The taint instruction colors everything purple that can be reached from a given set of root nodes. For now only one root can be defined at a time. Cowns stop the propagation of taint.


Here is a taint example from valid_cowns.vpy

image

There is a taint example from three_regions.vpy, when the regions are still separate

image

There is a taint example from three_regions.vpy, after they have been connected

image


cc: @TobiasWrigstad in case you have some ideas how the visualization could be improved

@xFrednet
Copy link
Collaborator Author

I would also like to support a hide command, which can be used to hide nodes from mermaid. I think it would make sense to implement builtin functions first. Then we can make such additions, without the need to touch the parser anytime.

For this PR, I'll leave taint as a keyword, but I'll consider making it a buildin function instead soon.

@xFrednet xFrednet changed the title Reify cowns and add taint for visual story telling [WIP] Reify cowns and add taint for visual story telling Oct 22, 2024
@xFrednet
Copy link
Collaborator Author

Thinking about it a bit more, I think that built-in functions would make this whole PR a lot better. I could remove all the parser changes and have the cown creation done with a built-in function as well

@xFrednet xFrednet removed the request for review from mjp41 October 22, 2024 11:46
@xFrednet
Copy link
Collaborator Author

I'll reimplement this on top of my changes in the 16-build-out-buildin-funcs branch. That should be cleaner and more flexible.

@xFrednet xFrednet closed this Oct 23, 2024
@xFrednet xFrednet deleted the 0-reify-cowns branch October 31, 2024 15:01
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