Skip to content

Action items for compatibility-breaking release #1148

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

Closed
5 tasks
tautschnig opened this issue Jul 18, 2017 · 8 comments
Closed
5 tasks

Action items for compatibility-breaking release #1148

tautschnig opened this issue Jul 18, 2017 · 8 comments
Labels

Comments

@tautschnig
Copy link
Collaborator

tautschnig commented Jul 18, 2017

We should consider dropping some cruft; doing so will break compatibility and thus must happen in one major release (and only one). Requires an increment of the goto binary format version.

  • Drop symbol_typet and ns.follow (and use tag types instead)
  • Restrict gotos to a single target
  • Add a width to pointers (and remove all config references from solvers)
  • Clean up the interface between cbmc and others (e.g., hw-cbmc, 2ls, ebmc, cegis)
  • Replace owning raw pointers #835
@reuk
Copy link
Contributor

reuk commented Jul 18, 2017

#905?

@thk123
Copy link
Contributor

thk123 commented Jul 19, 2017

The variable sensitivity domain stuff would be potentially good to get in. The main problem I see is the current interface is crude (binary on/off switches for the different modes) but with a more sophisticated system planned. I had therefore hoped to use a major version release to change this so we could get in what we have so far without feeling tied to it.

Depending on when the major version release is planned, either the PR should be reconfigured to not turn anything on until the better interface is developed, or the better interface should be got in before the release.

@tautschnig
Copy link
Collaborator Author

As much as I agree that variable sensitivity is interesting, I don't think it fits this particular bill of compatibility-breaking changes?

@thk123
Copy link
Contributor

thk123 commented Jul 19, 2017

@tautschnig I was more thinking about the change in interface, but since the old style isn't going to get in for the maintenance release it won't break compatibility.

It would be nice to get the variable-sensitivity-domain with new interface in before the major release so that the old interface can go in and then be improved without having to worry about breaking compatibility.

@tautschnig
Copy link
Collaborator Author

Point taken, and I think my subject line has been to unclear: the items that I listed in the initial comment are about changes that break compatibility at goto-program level, i.e., goto binaries compiled with an earlier version would need to be recompiled. Such isn't the case with internal APIs.

@reuk
Copy link
Contributor

reuk commented Jul 21, 2017

I don't think #835 falls into this category. It just improves the memory safety of the program, it doesn't affect the goto binary format or any other user-facing interfaces.

@smowton
Copy link
Contributor

smowton commented Aug 4, 2017

De-overload (and perhaps entirely rethink) the CATCH GOTO instruction. This currently serves three purposes:

  1. Push an exception handler
  2. Pop an exception handler
  3. Catch an exception
    We should split it into an instruction per action (a la DECL and DEAD), as the overloading (and misleading naming) invites mistakes from analysis authors.

@TGWDB
Copy link
Contributor

TGWDB commented May 20, 2021

Closing as an old feature request.

@TGWDB TGWDB closed this as completed May 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants