digitalmars.D - [spec, CC Dibyendu Majumdar] Should static foreach be in under
- Mr. Spec (8/8) May 18 2019 As Dibyendu Majumdar has been working on fixing the spec (BTW
- Mr. Spec (5/13) May 18 2019 Maybe it isn't just that static foreach should be moved, but
- Max Haughton (6/21) May 18 2019 To be rigorous, ideally the spec should abstract the process of
- Dibyendu Majumdar (5/15) May 19 2019 I guess this is a tricky area. Is there any document that covers
- Max Haughton (11/29) May 19 2019 Probably not: The semantic analysis parts of the frontend
- Dibyendu Majumdar (5/15) May 19 2019 I haven't progressed beyond introduction yet so it will take me a
As Dibyendu Majumdar has been working on fixing the spec (BTW thank you so much), I wanted to bring this up: I just realized that static foreach is under the "conditional compilation" section in the spec (https://dlang.org/spec/version.html). It seems like this should be put somewhere else, because static foreach is not related to conditional compilation. Thoughts?
May 18 2019
On Saturday, 18 May 2019 at 23:37:28 UTC, Mr. Spec wrote:As Dibyendu Majumdar has been working on fixing the spec (BTW thank you so much), I wanted to bring this up: I just realized that static foreach is under the "conditional compilation" section in the spec (https://dlang.org/spec/version.html). It seems like this should be put somewhere else, because static foreach is not related to conditional compilation. Thoughts?Maybe it isn't just that static foreach should be moved, but maybe just change the page title from "Conditional Compilation" to something else that could contain compile time features such as version, debug, static assert, etc?
May 18 2019
On Saturday, 18 May 2019 at 23:39:55 UTC, Mr. Spec wrote:On Saturday, 18 May 2019 at 23:37:28 UTC, Mr. Spec wrote:To be rigorous, ideally the spec should abstract the process of execution into discrete steps, one of which would contain the compile time features of D (i.e. Expand all static foreach-s into rigorously defined D, but the actual lowering of this would be handled by a different chapter of the specification.As Dibyendu Majumdar has been working on fixing the spec (BTW thank you so much), I wanted to bring this up: I just realized that static foreach is under the "conditional compilation" section in the spec (https://dlang.org/spec/version.html). It seems like this should be put somewhere else, because static foreach is not related to conditional compilation. Thoughts?Maybe it isn't just that static foreach should be moved, but maybe just change the page title from "Conditional Compilation" to something else that could contain compile time features such as version, debug, static assert, etc?
May 18 2019
On Sunday, 19 May 2019 at 01:27:12 UTC, Max Haughton wrote:On Saturday, 18 May 2019 at 23:39:55 UTC, Mr. Spec wrote:I guess this is a tricky area. Is there any document that covers the steps - i.e. when do the compile time modifications occur in the compilation process? Do they occur repeatedly or only once? RegardsMaybe it isn't just that static foreach should be moved, but maybe just change the page title from "Conditional Compilation" to something else that could contain compile time features such as version, debug, static assert, etc?To be rigorous, ideally the spec should abstract the process of execution into discrete steps, one of which would contain the compile time features of D (i.e. Expand all static foreach-s into rigorously defined D, but the actual lowering of this would be handled by a different chapter of the specification.
May 19 2019
On Sunday, 19 May 2019 at 09:37:17 UTC, Dibyendu Majumdar wrote:On Sunday, 19 May 2019 at 01:27:12 UTC, Max Haughton wrote:Probably not: The semantic analysis parts of the frontend (conceptually) have to jump backwards and forwards because of the string mixins (at the very least). The specification should not make any real preference as to how the language is implemented, only specifying the exact semantics while leaving enough room for libraries to actually be implemented. This is probably too much to ask for at this stage, however the current behaviour of certain constructs (e.g. Structs) are underspecified e.g. moving, which need to be fixed more than the specification as a whole.On Saturday, 18 May 2019 at 23:39:55 UTC, Mr. Spec wrote:I guess this is a tricky area. Is there any document that covers the steps - i.e. when do the compile time modifications occur in the compilation process? Do they occur repeatedly or only once? RegardsMaybe it isn't just that static foreach should be moved, but maybe just change the page title from "Conditional Compilation" to something else that could contain compile time features such as version, debug, static assert, etc?To be rigorous, ideally the spec should abstract the process of execution into discrete steps, one of which would contain the compile time features of D (i.e. Expand all static foreach-s into rigorously defined D, but the actual lowering of this would be handled by a different chapter of the specification.
May 19 2019
On Saturday, 18 May 2019 at 23:39:55 UTC, Mr. Spec wrote:I haven't progressed beyond introduction yet so it will take me a while to get to that section. Perhaps you are right that the title needs to be changed. RegardsI just realized that static foreach is under the "conditional compilation" section in the spec (https://dlang.org/spec/version.html). It seems like this should be put somewhere else, because static foreach is not related to conditional compilation.Maybe it isn't just that static foreach should be moved, but maybe just change the page title from "Conditional Compilation" to something else that could contain compile time features such as version, debug, static assert, etc?
May 19 2019