Skip to content

goto-synthesizer: Separate front-end for loop-contracts synthesizer #7415

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 2 commits into from
Dec 9, 2022

Conversation

qinheping
Copy link
Collaborator

This introduces a new binary to handle all steps related to loop-contracts synthesis, which previously was part of goto-instrument. The main reason we want a separate front-end is to let one front-end tool to focus on one specific task. Also, there is no termination guarantee for the synthesizer which is not aligned with other functionality of goto-instrument.

No functionality is included in this PR yet. I will migrate the synthesizer into goto-synthesizer once this PR is merged.

@qinheping qinheping added aws Bugs or features of importance to AWS CBMC users aws-medium Synthesis Invariant synthesis labels Dec 6, 2022
@qinheping qinheping requested a review from a team as a code owner December 6, 2022 23:31
@qinheping qinheping self-assigned this Dec 6, 2022
@codecov
Copy link

codecov bot commented Dec 7, 2022

Codecov Report

Base: 78.41% // Head: 78.39% // Decreases project coverage by -0.02% ⚠️

Coverage data is based on head (b03d870) compared to base (2653d78).
Patch coverage: 96.66% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #7415      +/-   ##
===========================================
- Coverage    78.41%   78.39%   -0.03%     
===========================================
  Files         1655     1655              
  Lines       190264   190281      +17     
===========================================
- Hits        149201   149172      -29     
- Misses       41063    41109      +46     
Impacted Files Coverage Δ
src/ansi-c/ansi_c_internal_additions.cpp 90.12% <ø> (ø)
src/cpp/cpp_internal_additions.cpp 88.09% <ø> (-2.11%) ⬇️
...strument/contracts/dynamic-frames/dfcc_library.cpp 95.54% <ø> (ø)
...cts/dynamic-frames/dfcc_lift_memory_predicates.cpp 89.60% <40.00%> (ø)
src/ansi-c/c_typecheck_expr.cpp 75.68% <100.00%> (ø)
src/ansi-c/cprover_library.cpp 97.91% <100.00%> (ø)
src/cpp/cprover_library.cpp 92.30% <100.00%> (ø)
...ument/contracts/dynamic-frames/dfcc_instrument.cpp 81.44% <100.00%> (ø)
...contracts/dynamic-frames/dfcc_pointer_in_range.cpp 100.00% <100.00%> (ø)
...t/contracts/dynamic-frames/dfcc_pointer_in_range.h 100.00% <100.00%> (ø)
... and 24 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@qinheping qinheping force-pushed the goto-synthesizer branch 2 times, most recently from f64c5a5 to 8cdb2b7 Compare December 7, 2022 06:08
Copy link
Collaborator

@tautschnig tautschnig left a comment

Choose a reason for hiding this comment

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

Can you please also amend CODEOWNERS to include a special rule for this new directory? (I think the rule should be the same as the existing one for the synthesizer.)

@tautschnig
Copy link
Collaborator

@kroening @peterschrammel Would welcome your thoughts here. @qinheping has implemented what I suggested in his other PR, and obviously I'm happy with that :-) Please speak up if you'd prefer not to add a separate binary.

Copy link
Contributor

@TGWDB TGWDB left a comment

Choose a reason for hiding this comment

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

Looks ok with some minor fixes. Also happy to see a modular approach.

I think CODEOWNERS should be updated to reflect who should review PS here in future.

@qinheping
Copy link
Collaborator Author

@NlightNFotis The CI failure is caused by api codes as shown below. Could you please fix it?

/home/runner/work/cbmc/cbmc/src/libcprover-cpp/api.h should remove these lines:
- #include "options.h"  // lines 15-15
Unnecessary includes found. Use '// IWYU pragma: keep' to override this.

@thomasspriggs
Copy link
Contributor

@NlightNFotis The CI failure is caused by api codes as shown below. Could you please fix it?

/home/runner/work/cbmc/cbmc/src/libcprover-cpp/api.h should remove these lines:
- #include "options.h"  // lines 15-15
Unnecessary includes found. Use '// IWYU pragma: keep' to override this.

This issue in develop should now be fixed.

@qinheping qinheping merged commit 4aceefd into diffblue:develop Dec 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aws Bugs or features of importance to AWS CBMC users aws-medium Synthesis Invariant synthesis
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants