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

Improving IntrBy comments and surfacing differences between TO invariant miners #353

Open
GoogleCodeExporter opened this issue May 4, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

Code review comments focusing on comments in the IntrBy code added in Issue351.

In CountingInvariantMiner:

- method-level comment of extractPathInvariantsFromWalkCounts : needs
details of how IntrBy are mined. This is the most important method to
change, probably.

-  protected boolean interrupts : to someone who hears "interrupts"
for the first time it's not clear what it means. Unlike "never
followed by". I would add something here to explain when this returns
true/false. Also, maybe changing this to "interruptedBy" would be
better -- fits the current code style.



In ChainWalkingTOInvMiner:

- computeInvariants : lists all invariants and details how they are
mined across traces, except the interruptedBy. Needs that paragraph.

- class-level comment : would be nice to list invariants it mines
here, and _emphasize_ that unlike the transitive closure miner it
mines an extra invariant.


In ConstrainedInvMiner:

- computeInvariants X 2 (two methods with same name): seem to
constrain IntrBy as well, no? Update comments.

- class-level : same -- "The only two invariants that can be
constrained are AlwaysFollowedInvariant and AlwaysPrecedesInvariant."
= inaccurate.

- computeConstraints : I really don't like the look of "TODO: document
me!". This seems like an important method that is central to
constraint mining and I have no idea what it does.


In TransitiveClosureInvMiner:

- class-level : I would add a comment to say that it does _not_ mine
the interrupted by invariant and say that the ChainWalkingTOInvMiner
does mine this invariant.



SynopticMain.mineTOInvariants : in the "useTransitiveClosureMining"
condition there needs to be a "WARNING: " print out that says that the
interrupted by invariant is not mined by the
TransitiveClosureInvMiner. Probably nice to also list all of the
invariant types mined by the particular miner in both branches of the
conditional there. So it is extra clear what is/isn't mined.


I think that the "useTransitiveClosureMining" option in
SynopticOptions can also be expanded to include the explanation.
Someone somewhere will hate us for not having sufficient
documentation. At least we can change the @Option print-out to state
what the ChainWalkingTOInvMiner and the TransitiveClosureInvMiner mine
and what they do not mine.

Original issue reported on code.google.com by bestchai on 21 Jan 2014 at 3:06

@GoogleCodeExporter
Copy link
Author

Original comment by [email protected] on 21 Jan 2014 at 8:44

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant