gospal
gospal copied to clipboard
changes to memory and mutex extraction
There's quite a few things in there, including:
- a (somewhat hacky) way of not printing functions that are part of the go runtime and not the inferred program (in
migoinfer/inferer.goandmigoinfer/internal/migoinfer/migo.go, mainly) -- this is based on filtering out some keywords and probably doesn't contain some other packages, including thenetpackage that I don't use in my examples - adding export for (rw)mutex parameters, as well as slight changes to the way their names (and the shared memory ones) are extracted to unify with channel extracted names
- a (somewhat hacky) way to filter memory accesses that are not done to shared variables of the program (those are extracted by us with the
memkeyword in theiruniqName, so I seach for that to filter out anything not having it) - slight change to the way mutex and shared variables are handled by migo (needs the update to migo that I will PR as well in a minute)
Obviously, anything in there is up for discussion, especially if we want to keep the output as "pure" as possible, the first hack that filters out non-program functions can be easily reverted, and if you find some of the additions are misplaced I'm happy to know where they would have their better place