Skip to content

Simple conflict-resolution for JSON symbol tables #4613

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 3 commits into from
May 15, 2019

Conversation

xbauch
Copy link
Contributor

@xbauch xbauch commented May 3, 2019

Link JSON symbol tables via linking(old_symtab, new_symtab, message_handler).

Instead of trying to merge them and throwing exception for every symbol
conflict.

  • Each commit message has a non-empty body, explaining why the change was made.
  • Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • White-space or formatting changes outside the feature-related changed lines are in commits of their own.

@smowton
Copy link
Contributor

smowton commented May 3, 2019

You might want to look at whether the linker used for combining multiple C symbol tables suits your needs

@xbauch xbauch force-pushed the feature/json-conflict-resolution branch from 6a4adbb to fdf48b3 Compare May 3, 2019 12:12
@xbauch
Copy link
Contributor Author

xbauch commented May 3, 2019

@smowton Is this what you had in mind?

@xbauch xbauch force-pushed the feature/json-conflict-resolution branch from fdf48b3 to bcec958 Compare May 3, 2019 12:17
@smowton
Copy link
Contributor

smowton commented May 3, 2019

If it suits your needs, yes

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.

Is there a chance to have this tested in some way? Though what I'm more worried about: the linker currently applies conflict resolution rules that seem acceptable with C code. Other languages might be more strict about those conflicts.

Instead of trying to merge them and throwing exception for every symbol
conflict.
generated from Ada files. These are included as a documentation.
@xbauch xbauch force-pushed the feature/json-conflict-resolution branch 2 times, most recently from 25e2eaf to e2880da Compare May 14, 2019 09:58
@xbauch xbauch requested a review from pkesseli as a code owner May 14, 2019 09:58
@xbauch
Copy link
Contributor Author

xbauch commented May 14, 2019

@tautschnig I've added a regression test here: a88a188. And then found out that there is a discrepancy between the condition in remove_returns and its validation check. The last commit (16e2a14) unifies them but I can also make it into a separate PR if that would be more appropriate.

@xbauch xbauch force-pushed the feature/json-conflict-resolution branch from e2880da to b3b5ea4 Compare May 14, 2019 10:05
between goto-program/remove-return and the respective validation check. Update
the unit-test accordingly.
@xbauch xbauch force-pushed the feature/json-conflict-resolution branch from b3b5ea4 to 16e2a14 Compare May 14, 2019 10:26
Copy link
Contributor

@allredj allredj left a comment

Choose a reason for hiding this comment

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

✔️
Passed Diffblue compatibility checks (cbmc commit: 16e2a14).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/111724200

@tautschnig tautschnig merged commit 133a6f4 into diffblue:develop May 15, 2019
@xbauch xbauch deleted the feature/json-conflict-resolution branch June 10, 2019 12:30
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.

5 participants