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

Update AGREE to use JKind v4.0 #83

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

Comments

Projects
None yet
3 participants
@kfhoech
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

This comment has been minimized.

Contributor

mwwhalen commented Feb 26, 2018

@lgwagner

This comment has been minimized.

Contributor

lgwagner commented Feb 26, 2018

@kfhoech

This comment has been minimized.

Contributor

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

This comment has been minimized.

Contributor

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

This comment has been minimized.

Contributor

mwwhalen commented Feb 26, 2018

@kfhoech

This comment has been minimized.

Contributor

kfhoech commented Mar 1, 2018

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

@kfhoech

This comment has been minimized.

Contributor

kfhoech commented Mar 20, 2018

Resolved by Pull Request 87.

@kfhoech kfhoech closed this Mar 20, 2018

@kfhoech kfhoech added the v2.3.3 label Jul 11, 2018

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