Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
July 03, 2019 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 John Colvin <john.loughran.colvin@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|enhancement |critical -- |
July 03, 2019 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 John Colvin <john.loughran.colvin@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |accepts-invalid, safe -- |
March 14, 2020 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla@digitalmars.com Resolution|--- |WONTFIX --- Comment #1 from Walter Bright <bugzilla@digitalmars.com> --- This is explained because some of the checks are only done for modules that are present on the command line. You can see this in the line: if (sc._module && sc._module.isRoot() && https://github.com/dlang/dmd/blob/master/src/dmd/escape.d#L1205 You can find the isRoot() check in several places. This is done to ease the transition to dip1000 by not checking code that is only imported, presumably from 3rd party libraries which would be impractical for the user to change himself. Once dip1000 becomes thoroughly propagated to old libraries, this can be tightened up, but not now. -- |
March 14, 2020 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 John Colvin <john.loughran.colvin@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |industry --- Comment #2 from John Colvin <john.loughran.colvin@gmail.com> --- (In reply to Walter Bright from comment #1) > This is explained because some of the checks are only done for modules that are present on the command line. You can see this in the line: > > if (sc._module && sc._module.isRoot() && > > https://github.com/dlang/dmd/blob/master/src/dmd/escape.d#L1205 > > You can find the isRoot() check in several places. > > This is done to ease the transition to dip1000 by not checking code that is only imported, presumably from 3rd party libraries which would be impractical for the user to change himself. > > Once dip1000 becomes thoroughly propagated to old libraries, this can be tightened up, but not now. Wow, I did not realise that was the case. Does this mean that many things I think are really safe aren't at all? Depending on exactly how I compile my code? That sounds like a nightmare. Unless I'm misunderstanding you, I desperately want to be able to turn this transition aid off immediately and go fix the problems it has been hiding. Also, should this really be closed as wontfix? Presumably it will be fixed, just not yet? Adding industry. -- |
March 16, 2020 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 John Colvin <john.loughran.colvin@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|WONTFIX |--- --- Comment #3 from John Colvin <john.loughran.colvin@gmail.com> --- I'm going to reopen as this is presumably going to be fixed, either as a switch or the eventual "tightening up" and in the meantime it's a really nasty thing to trip over. -- |
June 26, 2020 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 --- Comment #4 from John Colvin <john.loughran.colvin@gmail.com> --- Discussed on a call with Walter, seems like he misunderstood the original example. To be clear: putting -dip1000 -dip1008 -dip25 on all the modules does not mean all the code is actually checked by those dips. -- |
October 09, 2020 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 --- Comment #5 from Walter Bright <bugzilla@digitalmars.com> --- Probably the way to fix this is to add a switch which says make these checks transitive. -- |
November 23, 2021 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 Dlang Bot <dlang-bot@dlang.rocks> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |pull --- Comment #6 from Dlang Bot <dlang-bot@dlang.rocks> --- @dkorpel created dlang/dmd pull request #13350 "Fix issue 20023 - Separate compilation breaks dip1000 / dip1008 @safety" fixing this issue: - Fix issue 20023 - Separate compilation breaks dip1000 / dip1008 @safety https://github.com/dlang/dmd/pull/13350 -- |
November 30, 2021 [Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=20023 Dlang Bot <dlang-bot@dlang.rocks> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED --- Comment #7 from Dlang Bot <dlang-bot@dlang.rocks> --- dlang/dmd pull request #13350 "Fix issue 20023 - Separate compilation breaks dip1000 / dip1008 @safety" was merged into master: - f3c7b8f9b21ebd6b903ae5270ff04d3bf743ea1e by dkorpel: Fix issue 20023 - Separate compilation breaks dip1000 / dip1008 @safety https://github.com/dlang/dmd/pull/13350 -- |
Copyright © 1999-2021 by the D Language Foundation