Skip to content
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

Warn when ana.opt.hashcons is off, but witness.graphml.enabled or exp.arg.enabled are on or an Apron domain is on #1657

Open
michael-schwarz opened this issue Jan 16, 2025 · 1 comment

Comments

@michael-schwarz
Copy link
Member

In theses cases, counterintuitively, --disable ana.opt.hashcons doesn't completely disable hashconsing, as observed by @sim642

let arg_enabled = get_bool "witness.graphml.enabled" || get_bool "exp.arg.enabled" in

(* hashcons before witness to reduce duplicates, because witness re-uses contexts in domain and requires tag for PathSensitive3 *)
|> lift (get_bool "ana.opt.hashcons" || arg_enabled) (module HashconsContextLifter)
|> lift arg_enabled (module HashconsLifter)

@sim642
Copy link
Member

sim642 commented Jan 16, 2025

As to the Apron domain use case (getting a totally-ordered compare for a type with just equal and hash), a thing to explore could also be wrapping hashconsing directly around that domain, instead of relying on some very outermost hashconsing to implement compare such that Goblint wouldn't crash outright.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants