-
Notifications
You must be signed in to change notification settings - Fork 76
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
Remove unmaintained features #460
Comments
So there are some stuff that are more-or-less hopeless, and people will probably not be able to run them in the fat release either... But the OSEK stuff still probably works, but we do not have anyone at the moment to maintain it, so probably we can do this in two steps. We go for a 1.2.0 "semi-fat" release with all the previous stuff that still runs, i.e., we have enabled regressions tests for. Then, for the 1.2 line, we might want have a monthly action that checks whether it still builds, and we could occasionally back-port stuff to. |
I would also like to clean up things such as these strange obfuscated function names: | `Unknown "F59" (* strcpy *)
| `Unknown "F60" (* strncpy *)
| `Unknown "F63" (* memcpy *) If we don't want to remove them altogether, they should at least be in some module where one is able to turn them off. |
Yeah, those appear to be some ARINC obfuscation things that would indeed be nice to get rid of. |
There's some more ARINC deobfuscation here: analyzer/src/util/goblintutil.ml Lines 371 to 385 in 87f42a1
Idk why I didn't use it in |
I think we should also either remove the tests in the folder nestra, or add assertions to them and add them to the regression tests. |
@vogler We were discussing whether we can remove the Arinc-related analyses and domains, or whether we should keep them for now, in case you need them for some benchmarking or for some other reason. |
Keep them for now. I'll have a look at them. |
Do we want to keep If we want to keep it, we should make it usable and otherwise remove it. |
CHANGES: Goblint "lean" release after a lot of cleanup. * Remove unmaintained analyses: OSEK, ARINC, shapes, containment, deadlocksByRaces (goblint/analyzer#460, goblint/analyzer#736, goblint/analyzer#812, goblint/analyzer#474). * Add interactive analysis (goblint/analyzer#391). * Add server mode (goblint/analyzer#522). * Add Compilation Database support (goblint/analyzer#406, goblint/analyzer#448). * Add floating point domain, unrolled array domain and improved struct domains (goblint/analyzer#734, goblint/analyzer#761, goblint/analyzer#577, goblint/analyzer#419). * Add static loop unrolling and heap variable unrolling (goblint/analyzer#563, goblint/analyzer#722). * Improve race detection with may-happen-in-parallel analysis (goblint/analyzer#529, goblint/analyzer#518, goblint/analyzer#595). * Reimplement lockset and deadlock analyses (goblint/analyzer#659, goblint/analyzer#662, goblint/analyzer#650, goblint/analyzer#655). * Add pthread extraction to Promela (goblint/analyzer#220). * Add location spans to output (goblint/analyzer#428, goblint/analyzer#449). * Improve race reporting (goblint/analyzer#550, goblint/analyzer#551). * Improve dead code reporting (goblint/analyzer#94, goblint/analyzer#353, goblint/analyzer#785). * Refactor warnings (goblint/analyzer#55, goblint/analyzer#783). * Add JSON schema for configuration (goblint/analyzer#476, goblint/analyzer#499). * Refactor option names (goblint/analyzer#28, goblint/analyzer#192, goblint/analyzer#516, goblint/analyzer#675). * Add bash completion (goblint/analyzer#669). * Add OCaml 4.13 and 4.14 support, remove OCaml 4.09 support (goblint/analyzer#503, goblint/analyzer#672).
CHANGES: Goblint "lean" release after a lot of cleanup. * Remove unmaintained analyses: OSEK, ARINC, shapes, containment, deadlocksByRaces (goblint/analyzer#460, goblint/analyzer#736, goblint/analyzer#812, goblint/analyzer#474). * Add interactive analysis (goblint/analyzer#391). * Add server mode (goblint/analyzer#522). * Add Compilation Database support (goblint/analyzer#406, goblint/analyzer#448). * Add floating point domain, unrolled array domain and improved struct domains (goblint/analyzer#734, goblint/analyzer#761, goblint/analyzer#577, goblint/analyzer#419). * Add static loop unrolling and heap variable unrolling (goblint/analyzer#563, goblint/analyzer#722). * Improve race detection with may-happen-in-parallel analysis (goblint/analyzer#529, goblint/analyzer#518, goblint/analyzer#595). * Reimplement lockset and deadlock analyses (goblint/analyzer#659, goblint/analyzer#662, goblint/analyzer#650, goblint/analyzer#655). * Add pthread extraction to Promela (goblint/analyzer#220). * Add location spans to output (goblint/analyzer#428, goblint/analyzer#449). * Improve race reporting (goblint/analyzer#550, goblint/analyzer#551). * Improve dead code reporting (goblint/analyzer#94, goblint/analyzer#353, goblint/analyzer#785). * Refactor warnings (goblint/analyzer#55, goblint/analyzer#783). * Add JSON schema for configuration (goblint/analyzer#476, goblint/analyzer#499). * Refactor option names (goblint/analyzer#28, goblint/analyzer#192, goblint/analyzer#516, goblint/analyzer#675). * Add bash completion (goblint/analyzer#669). * Add OCaml 4.13 and 4.14 support, remove OCaml 4.09 support (goblint/analyzer#503, goblint/analyzer#672).
After Goblint 1.1.0 aka "fat" the plan is to release Goblint 2.0.0 aka "lean", where we have the opportunity to remove numerous unmaintained and deprecated features which might hinder refactoring and development. This issue is to collect ideas for such removals and discuss them.
Ideas
Goblintutil
has a bunch of name demangling logic specific to that conversion.presub
andpostsub
. They are part of every analysis specctx
, but only used by some old analyses and mostly replaced with queries. During profiling I have noticed thatfilter_presubs
can take 10% of runtime manipulating the assoc lists used forMCP2
. (Might also be a good idea to rewrite that usingMap
?)postsub
removal is part of Run dead code analysis with reanalyze #737presub
is part of Remove ARINC analyses #812condvars analysis. Unused, not subsumed by var_eq?Now part of Clean up existing must-equality analyses #743.phases
field in the JSON configuration complicates things due to its recursive schema (Replace JSON schema validation and add full options schema #476). Remove phases #820, osek)? Remove ARINC analyses #812The text was updated successfully, but these errors were encountered: