Skip to content

Nondet model #346

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

Merged
merged 6 commits into from
Jun 4, 2020
Merged

Nondet model #346

merged 6 commits into from
Jun 4, 2020

Conversation

tjj2017
Copy link
Collaborator

@tjj2017 tjj2017 commented May 26, 2020

Provide of specifying ASVAT models via an annotation.

Current models are Nondet_Function and In_Type_Function.
See header of ASVAT.Modelling (asvat-modelling.ads).

Copy link
Collaborator

@martin-cs martin-cs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, particularly the incidental support of Pragma Assume

Copy link
Collaborator

@martin-cs martin-cs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

@martin-cs
Copy link
Collaborator

A build failure which is probably due to the attempt I made at resolving the merge. A rebase will probably fix this.

@martin-cs
Copy link
Collaborator

@chrisr-diffblue CI seems to have jammed, please can you kick it?

@chrisr-diffblue
Copy link
Contributor

@martin-cs I tried applying the appropriate Size 9 steel toecap, but it looks like the build will (a) need a rebase + force push, and (b) there's an actual compile failure: https://travis-ci.org/github/diffblue/gnat2goto/builds/693545193

@martin-cs
Copy link
Collaborator

Thanks for the percussive maintenance. @tjj2017 has rebased and forced push it still appears jammed. Any chance of @chrisr-diffblue 's boot vs. CI system round 2?

@chrisr-diffblue
Copy link
Contributor

I've tried kicking it again, but it still seems to fail https://travis-ci.org/github/diffblue/gnat2goto/builds/693545193 and I also note that this PR currently has conflicts. Does the rebased code still build locally for you?

tjj2017 added 6 commits June 4, 2020 09:00
Intrinsic - A unsupported report is generated for importing a foreign
language entity rather than a warning message.

No_Corresponding_Spec - pragma Global no longer generates an unsuported
report.  The pragma has no effect for ASVAT analysis unless it is an
ASVAT model when it is used to define the global variables of an interface
model.
In the CI tests there are many eaxmples of pragma Import with convention
Ada which are not ASVAT models.  It might be possible to resolve such
instances but since Annotate ASVAT is now the preferred way to specify
ASVAT models, it seemed better remove support for specifying via Import.

Also this branch included code to check whether an Intrinsic program had
a body known to gnat2goto.  If this check was to comprehensive it should
also check if an Imported subprogram with convention Ada has body known
to gnat2goto.  After some consideration, it was decided that this
should not be checked by gnat2goto but at the link phase. So the
Intrinsic check has been removed.

Gnat2goto still checks and reports an unsupported node if a called
subprogram is not in the symbol table.
Main differences are due to:
Now reporting an unsupported node for multi-language imports/exports
rather than a warning message.

Pragma/aspect Global now acceptrd as a no-op for ASVAT analysis but
meaningful for ASVAT modelling.

In StratoX a failed precondition in arrays.ads seems to be replaced by
an assertion failure in atree.adb.  The precondition in arrays.ads is
not changed by this mod, so the changes made to the code must now avoid
this particular precondition failure but the code then fails later
in atree.adb.
@martin-cs
Copy link
Collaborator

@chrisr-diffblue I think everything is now working (and building and CIing and mergeable-ing) so I think we are going to declare victory at this point.

@martin-cs martin-cs merged commit 04b84bf into diffblue:master Jun 4, 2020
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.

3 participants