Warn when ana.opt.hashcons is disabled but implicitly overridden#1921
Open
Warn when ana.opt.hashcons is disabled but implicitly overridden#1921
Conversation
Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add warning for conflicting configuration settings
Warn when ana.opt.hashcons is disabled but implicitly overridden
Jan 20, 2026
Member
|
@copilot this should be move to the general place where we check whether configs are compatible. |
Member
|
@copilot tests for this issue are not needed. |
Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
Contributor
Author
Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
Contributor
Author
Co-authored-by: michael-schwarz <13812333+michael-schwarz@users.noreply.github.com>
michael-schwarz
approved these changes
Jan 20, 2026
michael-schwarz
approved these changes
Jan 20, 2026
sim642
requested changes
Jan 21, 2026
| if get_bool "exp.arg.enabled" then | ||
| warn "Disabling ana.opt.hashcons has no effect because hashconsing is implicitly enabled by exp.arg.enabled"; | ||
| if List.mem "apron" (get_string_list "ana.activated") then | ||
| warn "Disabling ana.opt.hashcons has no effect because hashconsing is implicitly enabled by Apron (ana.activated includes 'apron')"; |
Member
There was a problem hiding this comment.
I don't think this is true: the hashconsing functors in Control don't check anything Apron-related, nor is ana.opt.hashcons referenced anywere else that tries to do such implicit enabling.
#1657 (comment) sounds like Apron would just crash in this case.
This should be checked and if I'm correct, then it could be a fail instead of warn.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan: Warn when
ana.opt.hashconsis off but hashconsing is forced onana.opt.hashcons=falseis overridden whenexp.arg.enabled,witness.graphml.enabled, or Apron domain is onChanges made:
Added warnings in
check_arguments()inmaingoblint.ml:ana.opt.hashconsis disabled but:exp.arg.enabledis on (covers witness generation use case)Kept variable refactoring in control.ml for consistency:
hashcons_enabledvariable used throughout spec constructionRemoved test files per @michael-schwarz's feedback that tests are not needed
Removed
_codeql_detected_source_rootfile that was accidentally committedAll changes are minimal and focused on warning users about the counterintuitive behavior.
Original prompt
ana.opt.hashconsis off, butwitness.graphml.enabledorexp.arg.enabledare on or an Apron domain is on #1657💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.