-
Notifications
You must be signed in to change notification settings - Fork 39
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 DrNim #130
Remove DrNim #130
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right now I disagree with removing Dr. Nim, its code could be useful when we want to make nimskull provable.
I disagree with your disagreement. |
I've looked at drnim code and I see the promise... and the problems. We do need something to head in the proving direction, so the real question is are we getting rid of dead code or do a few of the tests run and anchor one or two guarantees. Why even one or two guarantees? Because even something small can anchor the idea and fundamental concepts of the proving direction. |
There are also some error message diagnostics that were added with drnim https://github.com/nim-lang/Nim/blob/7a5314c571ec2c370f63d5fab0afd336e04ec161/compiler/sempass2.nim#L759 and other changes to sempass nim-lang/Nim@3a2697d also need to be accounted for. |
But it is empty promises and problems for no real concrete practical reason. It would be better to just have a proper DbC module in StdLib without hacks in the compiler like D lang has. |
For commit message, you can use your explanation from the nim-lang/RFCs#431 It can be added that correctness prover is an important tool, but preferably it should be implemented as an external application that uses stabilized compiler API rather than hacked-in support into the main compiler. Right now we don't have necessary resources to support development or maintain drnim, so I also think this removal is justified. |
a676e60
to
5bc2419
Compare
While I have no objections to the PR itself, commit messages must conform to the minimal requirements as explained in the contribution guidelines. In this specific instance, "why" part of the commit message is unclear - as indicated above, this can be solved by simply reusing the explanation from the RFC. |
initStrTables(g, m) | ||
|
||
proc registerModuleById*(g: ModuleGraph; m: FileIndex) = | ||
registerModule(g, g.packed[int m].module) | ||
|
||
proc initOperators*(g: ModuleGraph): Operators = | ||
# These are safe for IC. | ||
# Public because it's used by DrNim. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when DrNim is removed that means this can become private again?
- Removes main drnim directory along with all the hacks added into `sem*` implementation - special keywords for `ensures/requires/assume/invariant`, more logic built into sempass and so on. Sem reports that were added in the main compilation. - External tooling for code analysis should better be implemented via completely external modifications, instead of clobbering the main compiler codebase with logic for barely functioning tooling. With dod refactor this task becomes much easier, since extra metada can be attached to any symbol. - We definitely want to move in the direction of automatic code correctness and static analysis, but right now this is not a priority, and considering dubious implementation of the tool it would be easier to remove it for now and come up with a proper implementation later on, or wen can turn all hacks back into sem. - Not testsed as a part of CI so right now it can't even be built, due to file reorganization nim-works#177. - Adds reports for `--staticBounds:on|off` that were mistakenly assumed to be drnim-only during earlier refactor nim-works#94 for structured reports. Closes nim-works#130 as this pull removes `drnim` as well, and the author of that PR is no longer responsive. Due to multiple merge conflicts it is highly unlikely the old PR will be revived.
- Removes main drnim directory along with all the hacks added into `sem*` implementation - special keywords for `ensures/requires/assume/invariant`, more logic built into sempass and so on. Sem reports that were added in the main compilation. - External tooling for code analysis should better be implemented via completely external modifications, instead of clobbering the main compiler codebase with logic for barely functioning tooling. With DOD refactor this task becomes much easier, since extra metadata can be attached to any symbol. - We definitely want to move in the direction of automatic code correctness and static analysis, but right now this is not a priority, and considering dubious implementation of the tool, it would be easier to remove it for now and come up with a proper implementation later on, or when can turn all hacks back into sem. - drnim itself not tested as a part of CI so right now it can't even be built, due to file reorganization nim-works#177. - Adds reports for `--staticBounds:on|off` that were mistakenly assumed to be drnim-only during earlier refactor nim-works#94 for structured reports. Closes nim-works#130 as this pull removes `drnim` as well, and the author of that PR is no longer responsive. Due to multiple merge conflicts it is highly unlikely the old PR will be revived.
- Removes main drnim directory along with all the hacks added into `sem*` implementation - special keywords for `ensures/requires/assume/invariant`, more logic built into sempass and so on. Sem reports that were added in the main compilation. - External tooling for code analysis should better be implemented via completely external modifications, instead of clobbering the main compiler codebase with logic for barely functioning tooling. With DOD refactor this task becomes much easier, since extra metadata can be attached to any symbol. - We definitely want to move in the direction of automatic code correctness and static analysis, but right now this is not a priority, and considering dubious implementation of the tool, it would be easier to remove it for now and come up with a proper implementation later on, or when can turn all hacks back into sem. - drnim itself not tested as a part of CI so right now it can't even be built, due to file reorganization nim-works#177. - Adds reports for `--staticBounds:on|off` that were mistakenly assumed to be drnim-only during earlier refactor nim-works#94 for structured reports. Closes nim-works#130 as this pull removes `drnim` as well, and the author of that PR is no longer responsive. Due to multiple merge conflicts it is highly unlikely the old PR will be revived.
- Removes main drnim directory along with all the hacks added into `sem*` implementation - special keywords for `ensures/requires/assume/invariant`, more logic built into sempass and so on. Sem reports that were added in the main compilation. - External tooling for code analysis should better be implemented via completely external modifications, instead of clobbering the main compiler codebase with logic for barely functioning tooling. With DOD refactor this task becomes much easier, since extra metadata can be attached to any symbol. - We definitely want to move in the direction of automatic code correctness and static analysis, but right now this is not a priority, and considering dubious implementation of the tool, it would be easier to remove it for now and come up with a proper implementation later on, or when can turn all hacks back into sem. - drnim itself not tested as a part of CI so right now it can't even be built, due to file reorganization nim-works#177. - Adds reports for `--staticBounds:on|off` that were mistakenly assumed to be drnim-only during earlier refactor nim-works#94 for structured reports. Closes nim-works#130 as this pull removes `drnim` as well, and the author of that PR is no longer responsive. Due to multiple merge conflicts it is highly unlikely the old PR will be revived.
- Removes main drnim directory along with all the hacks added into `sem*` implementation - special keywords for `ensures/requires/assume/invariant`, more logic built into sempass and so on. Sem reports that were added in the main compilation. - External tooling for code analysis should better be implemented via completely external modifications, instead of clobbering the main compiler codebase with logic for barely functioning tooling. With DOD refactor this task becomes much easier, since extra metadata can be attached to any symbol. - We definitely want to move in the direction of automatic code correctness and static analysis, but right now this is not a priority, and considering dubious implementation of the tool, it would be easier to remove it for now and come up with a proper implementation later on, or when can turn all hacks back into sem. - drnim itself not tested as a part of CI so right now it can't even be built, due to file reorganization nim-works#177. - Adds reports for `--staticBounds:on|off` that were mistakenly assumed to be drnim-only during earlier refactor nim-works#94 for structured reports. Closes nim-works#130 as this pull removes `drnim` as well, and the author of that PR is no longer responsive. Due to multiple merge conflicts it is highly unlikely the old PR will be revived.
207: Unbundle drnim r=saem a=haxscramper - Removes main drnim directory along with all the hacks added into `sem*` implementation - special keywords for `ensures/requires/assume/invariant`, more logic built into sempass and so on. Sem reports that were added in the main compilation. - External tooling for code analysis should better be implemented via completely external modifications, instead of clobbering the main compiler codebase with logic for barely functioning tooling. With DOD refactor this task becomes much easier, since extra metadata can be attached to any symbol. - We definitely want to move in the direction of automatic code correctness and static analysis, but right now this is not a priority, and considering dubious implementation of the tool, it would be easier to remove it for now and come up with a proper implementation later on, or when can turn all hacks back into sem. - drnim itself Not tested as a part of CI so right now it can't even be built, due to file reorganization #177. - Adds reports for `--staticBounds:on|off` that were mistakenly assumed to be drnim-only during earlier refactor #94 for structured reports. Closes #130 as this pull removes `drnim` as well, and the author of that PR is no longer responsive. Due to multiple merge conflicts it is highly unlikely the old PR will be revived. Co-authored-by: haxscramper <[email protected]>
Remove DrNim