Skip to content
This repository was archived by the owner on Jun 4, 2019. It is now read-only.

Update AGREE to use JKind v4.0 #83

Closed
kfhoech opened this issue Feb 26, 2018 · 7 comments
Closed

Update AGREE to use JKind v4.0 #83

kfhoech opened this issue Feb 26, 2018 · 7 comments

Comments

@kfhoech
Copy link
Contributor

kfhoech commented Feb 26, 2018

JKind 4.0 is available. When should AGREE update to use this?

Impacts:

  1. The interface to jkind.lustre.Program has changed to accommodate uninterpreted functions. Since AGREE does not yet use these, this should be a low-impact change. Classes affected are LustreAstBuilder, AgreeMakeClockedLustreNodes, LustreCondactNodeVisitor, and LustreContractAstBuilder. Also affected is the TCG in GenerateUfcObligationsVisistor.

  2. The interface to jkind.lustre.visitors.TypeReconstructor has changed to require the JLustre program be supplied at construction. This makes the TCG class GenerateUfcObligationsVisistor have awkward handling of the program state, This will need to be refactored at a low-to-moderate impact.

  3. The interface to jkind.translation.InlineNodeCalls has changed. Rather than producing a top-level node, a program is produced. How does this affect subsequent application of other translation visitors?

  4. The interface to ExprVisitor now adds a FunctionCallExpr. This is due to the addition of uninterpreted functions and is a very low-impact change. Classes affected are AgreeCycleVisitor, IdGatherer, IdRewriteVisitor, NumericEvaluator, SynbolicEvaluator, PrettyPrintVisitor and their subclasses. Also affected is the TCG in GenerateUfcObligationsVisistor.

  5. Interval generalization has been removed. This affects the display of results in the counter example viewers in AgreeMenuListener. Also affected is the TCG in TcgXmlWriter, TestCaseGeneratorMenuListener, and TestSuiteMenuListener. This is likely to be a low-impact change as long as the interval display is no longer required.

@mwwhalen
Copy link
Contributor

mwwhalen commented Feb 26, 2018 via email

@lgwagner
Copy link
Contributor

lgwagner commented Feb 26, 2018 via email

@kfhoech
Copy link
Contributor Author

kfhoech commented Feb 26, 2018

Agreed that we should get the PDR fix. But for sanity in being able to replicate builds, we should have JKind at a release, or at least at some tag we can reproduce.

And, yes most of these changes are removing items from the code base and are low impact. The only one that I'm uncertain about is the change to AgreeNodeToLustreContract due to the change to InlineNodeCalls. The output of the latter changed from a Node to a Program. Given that other visitors in the former depend on its output being a Node, is the right thing to do to iterate over the nodes in the resulting program? It seems that's the right thing to do.

@kfhoech
Copy link
Contributor Author

kfhoech commented Feb 26, 2018

And, there's a couple of changes to the Simulator too... But it looks as if these are only to do with adding the case to visitors for the FunctionCallExpr.

@mwwhalen
Copy link
Contributor

mwwhalen commented Feb 26, 2018 via email

@kfhoech
Copy link
Contributor Author

kfhoech commented Mar 1, 2018

A new branch develop_jkind4 has been created for the upgrade to JKind v4.

@kfhoech
Copy link
Contributor Author

kfhoech commented Mar 20, 2018

Resolved by Pull Request 87.

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

No branches or pull requests

3 participants