www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - DIP 1003 (Remove body as a Keyword) Accepted!

reply Mike Parker <aldacron gmail.com> writes:
Congratulations are in order for Jared Hanson. Walter and Andrei 
have approved his proposal to remove body as a keyword. I've 
added a summary of their decision to the end of the DIP for 
anyone who cares to read it. In short:

* body temporarily becomes a contextual keyword and is deprecated
* do is immediately allowed in its place
* body is removed and do replaces it fully

Congratulations, Jared!

https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
Jun 02 2017
next sibling parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Friday, 2 June 2017 at 14:17:10 UTC, Mike Parker wrote:
 Congratulations, Jared!

 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
Congratulations. I recommend a longer deprecation cycle than usual for this, as this will break many legacy libraries that don't get maintained often. A period of two years sounds about right.
Jun 02 2017
parent reply Jonathan M Davis via Digitalmars-d-announce writes:
On Saturday, June 03, 2017 02:00:13 Jack Stouffer via Digitalmars-d-announce 
wrote:
 I recommend a longer deprecation cycle than usual for this, as
 this will break many legacy libraries that don't get maintained
 often. A period of two years sounds about right.
For Phobos, that _is_ the normal length of the deprecation cycle. For the language itself, I don't think that it's anywhere near as consistent, but I've gotten the impression that deprecations in the language usually stick around for quite awhile, but I haven't exactly tracked it closely, so I don't know. - Jonathan M Davis
Jun 02 2017
parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Saturday, 3 June 2017 at 06:09:21 UTC, Jonathan M Davis wrote:
 On Saturday, June 03, 2017 02:00:13 Jack Stouffer via 
 Digitalmars-d-announce wrote:
 I recommend a longer deprecation cycle than usual for this, as 
 this will break many legacy libraries that don't get 
 maintained often. A period of two years sounds about right.
For Phobos, that _is_ the normal length of the deprecation cycle. For the language itself, I don't think that it's anywhere near as consistent, but I've gotten the impression that deprecations in the language usually stick around for quite awhile, but I haven't exactly tracked it closely, so I don't know. - Jonathan M Davis
All of the recent Phobos deprecations have been a year. 18 months at most.
Jun 03 2017
parent Jonathan M Davis via Digitalmars-d-announce writes:
On Sunday, June 04, 2017 05:56:15 Jack Stouffer via Digitalmars-d-announce 
wrote:
 On Saturday, 3 June 2017 at 06:09:21 UTC, Jonathan M Davis wrote:
 On Saturday, June 03, 2017 02:00:13 Jack Stouffer via

 Digitalmars-d-announce wrote:
 I recommend a longer deprecation cycle than usual for this, as
 this will break many legacy libraries that don't get
 maintained often. A period of two years sounds about right.
For Phobos, that _is_ the normal length of the deprecation cycle. For the language itself, I don't think that it's anywhere near as consistent, but I've gotten the impression that deprecations in the language usually stick around for quite awhile, but I haven't exactly tracked it closely, so I don't know. - Jonathan M Davis
All of the recent Phobos deprecations have been a year. 18 months at most.
If you think that, I think that you misunderstand how the Phobos deprecation process works. When a symbol is deprecated, it's marked in the documentation with the year-month that it will be removed from the documentation (usually about one year from the point that it's deprecated). Once that year has passed, the documentation is removed from Phobos, and instead, it's marked with a non-ddoc comment stating that the symbol is explicitly undocumented and that it will be removed at year-month where that's usually a year from when the symbol is removed from the documentation. Once that second date arrives, the symbol is completely removed. So, the whole deprecation cycle is approximately two years, and if anything, it sometimes takes a bit longer, because I'm sometimes slow to move the symbol along to the next stage. I suspect that what's confused you is that when the symbol is deprecated, it states in the documentation that the symbol will be removed at year-month and does not say anything about the fact that that removal date is when it will be removed from the documentation, not when it will be fully removed from the library. - Jonathan M Davis
Jun 04 2017
prev sibling next sibling parent reply MysticZach <reachzach ggmail.com> writes:
On Friday, 2 June 2017 at 14:17:10 UTC, Mike Parker wrote:
 Congratulations are in order for Jared Hanson. Walter and 
 Andrei have approved his proposal to remove body as a keyword. 
 I've added a summary of their decision to the end of the DIP 
 for anyone who cares to read it. In short:

 * body temporarily becomes a contextual keyword and is 
 deprecated
 * do is immediately allowed in its place
 * body is removed and do replaces it fully

 Congratulations, Jared!

 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
Yes, congratulations are in order. Although those of us who were questioning the need for any keyword at all in `body`s place may be a little disappointed that it has merely been replaced with `do`, I think no one can doubt the main thrust of the DIP, which is that `body` is an incredibly useful identifier, and that having it newly available makes D a better language. Also, I've been following the forums for several years now, and this is the first DIP that I know of that was not written by the language authors, and yet was still accepted into the language. Correct me if I'm wrong, but that seems like a real landmark! Also Mike Parker seems to be doing a very good job in his appointed position as DIP manager.
Jun 02 2017
next sibling parent reply "H. S. Teoh via Digitalmars-d-announce" writes:
On Sat, Jun 03, 2017 at 04:56:40AM +0000, MysticZach via Digitalmars-d-announce
wrote:
[...]
 Yes, congratulations are in order. Although those of us who were
 questioning the need for any keyword at all in `body`s place may be a
 little disappointed that it has merely been replaced with `do`, I
 think no one can doubt the main thrust of the DIP, which is that
 `body` is an incredibly useful identifier, and that having it newly
 available makes D a better language.
[...] Yes, count me somewhat disappointed at merely changing `body` to `do`. But at least it's better than nothing, and frees as `body` as an identifier instead of a keyword that's only ever used in a single context. And it's marginally shorter to type. :-D T -- This sentence is false.
Jun 02 2017
parent reply =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
On 06/02/2017 11:44 PM, H. S. Teoh via Digitalmars-d-announce wrote:

 Yes, count me somewhat disappointed at merely changing `body` to `do`.
If that's the only change, then we have a serious issue with the text of this DIP. I think the DIP must be corrected with the following change. Please review and then change the DIP accordingly: from: "Add do as an optional keyword in the place of body." to: "Add do as an alternative keyword in place of body." (Unimportantly, I removed a "the" as well.) Ali
Jun 03 2017
parent Mike Parker <aldacron gmail.com> writes:
On Saturday, 3 June 2017 at 23:43:10 UTC, Ali Çehreli wrote:

 If that's the only change, then we have a serious issue with 
 the text of this DIP. I think the DIP must be corrected with 
 the following change. Please review and then change the DIP 
 accordingly:

 from: "Add do as an optional keyword in the place of body."

   to: "Add do as an alternative keyword in place of body."

 (Unimportantly, I removed a "the" as well.)

 Ali
I think the two words are fairly close in meaning in this context. Changed it anyway (and caught a typo, too). Thanks!
Jun 03 2017
prev sibling next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 6/2/2017 9:56 PM, MysticZach wrote:
 Also Mike Parker seems to be doing a very good job in his appointed position
as 
 DIP manager.
Yes, I am very happy with Mike's contributions on this, as well as on his blog work. We are very fortunate to have Mike with us.
Jun 03 2017
parent Mike Parker <aldacron gmail.com> writes:
On Saturday, 3 June 2017 at 07:01:48 UTC, Walter Bright wrote:
 On 6/2/2017 9:56 PM, MysticZach wrote:
 Also Mike Parker seems to be doing a very good job in his 
 appointed position as DIP manager.
Yes, I am very happy with Mike's contributions on this, as well as on his blog work. We are very fortunate to have Mike with us.
Thanks!
Jun 03 2017
prev sibling next sibling parent reply Petar Kirov [ZombineDev] <petar.p.kirov gmail.com> writes:
On Saturday, 3 June 2017 at 04:56:40 UTC, MysticZach wrote:
 On Friday, 2 June 2017 at 14:17:10 UTC, Mike Parker wrote:
 Congratulations are in order for Jared Hanson. Walter and 
 Andrei have approved his proposal to remove body as a keyword. 
 I've added a summary of their decision to the end of the DIP 
 for anyone who cares to read it. In short:

 * body temporarily becomes a contextual keyword and is 
 deprecated
 * do is immediately allowed in its place
 * body is removed and do replaces it fully

 Congratulations, Jared!

 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
Yes, congratulations are in order. Although those of us who were questioning the need for any keyword at all in `body`s place may be a little disappointed that it has merely been replaced with `do`, I think no one can doubt the main thrust of the DIP, which is that `body` is an incredibly useful identifier, and that having it newly available makes D a better language.
Personally, making contracts less verbose and more powerful is much higher on my list (I don't remember ever needing to use 'body' as an identifier, but I see why is it important for many domains), so I'm also disappointed that we replaced one keyword with another. At least 'body' will be a contextual keyword, so it won't cause a massive breakage.
 Also, I've been following the forums for several years now, and 
 this is the first DIP that I know of that was not written by 
 the language authors, and yet was still accepted into the 
 language. Correct me if I'm wrong, but that seems like a real 
 landmark!
Yes, it's the first approved DIP after DIP1000, but there are quite a few approved DIPs not coming Walter and Andrei before that: https://wiki.dlang.org/DIPs - DIP2, DIP3, DIP6, DIP9 (it seems it got traction, even though it doesn't say approved) DIP12, DIP18 (it looks like it was the first nogc proposal) DIP20, DIP37, DIP42, DIP43 (it's partially implemented), and so on. Actually most language enhancements happened without going through the DIP process. These are that went through bugzilla: https://issues.dlang.org/buglist.cgi?bug_severity=enhancement&bug_status=RESOLVED&component=dmd&list_id=215170&order=bug_id&product=D&query_based_on=&query_format=advanced&resolut on=FIXED&version=D2 and many other exist only as pull requests on GitHub - a very incomplete list: https://github.com/dlang/dmd/pulls?utf8=✓&q=is%3Apr%20is%3Ac osed%20enhancement. If you look carefully at the history in bugzilla and github, even though probably most of the enhancements were little, you'll see there many huge changes to the language that should have gone through the DIP process, but have not.
 Also Mike Parker seems to be doing a very good job in his 
 appointed position as DIP manager.
Agreed, I'm optimistic about the DIP process under his lead.
Jun 03 2017
next sibling parent ketmar <ketmar ketmar.no-ip.org> writes:
Petar Kirov [ZombineDev] wrote:

 Personally, making contracts less verbose and more powerful is much 
 higher on my list (I don't remember ever needing to use 'body' as an 
 identifier, but I see why is it important for many domains)
yeah. i'm really tired to use `flesh` instead of it. and i have bodies literally everywhere: active, sleeping, dead, broken... several of my game engines has more-or-less physics-based simulations, so i need `body`! ;-)
Jun 03 2017
prev sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 6/3/2017 12:28 AM, Petar Kirov [ZombineDev] wrote:
 Personally, making contracts less verbose and more powerful is much higher on
my 
 list 
We did discuss bouncing the DIP back with a request to revamp it as a complete overhaul of the contract syntax, but decided that this DIP was about resolving a simple and immediate problem, and it shouldn't be held up on that basis.
Jun 03 2017
next sibling parent reply Mike Parker <aldacron gmail.com> writes:
On Saturday, 3 June 2017 at 20:06:05 UTC, Walter Bright wrote:
 On 6/3/2017 12:28 AM, Petar Kirov [ZombineDev] wrote:
 Personally, making contracts less verbose and more powerful is 
 much higher on my list
We did discuss bouncing the DIP back with a request to revamp it as a complete overhaul of the contract syntax, but decided that this DIP was about resolving a simple and immediate problem, and it shouldn't be held up on that basis.
There's currently a proposal in the PR queue to enhance the contract syntax. https://github.com/dlang/DIPs/pull/66
Jun 03 2017
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 6/3/2017 5:20 PM, Mike Parker wrote:
 On Saturday, 3 June 2017 at 20:06:05 UTC, Walter Bright wrote:
 On 6/3/2017 12:28 AM, Petar Kirov [ZombineDev] wrote:
 Personally, making contracts less verbose and more powerful is much higher on 
 my list
We did discuss bouncing the DIP back with a request to revamp it as a complete overhaul of the contract syntax, but decided that this DIP was about resolving a simple and immediate problem, and it shouldn't be held up on that basis.
There's currently a proposal in the PR queue to enhance the contract syntax. https://github.com/dlang/DIPs/pull/66
I know. That's as it should be!
Jun 03 2017
parent MysticZach <reachzach ggmail.com> writes:
On Sunday, 4 June 2017 at 03:01:41 UTC, Walter Bright wrote:
 On 6/3/2017 5:20 PM, Mike Parker wrote:
 There's currently a proposal in the PR queue to enhance the 
 contract syntax.
 
 https://github.com/dlang/DIPs/pull/66
I know. That's as it should be!
Well that's encouraging! Thanks!
Jun 04 2017
prev sibling parent Petar Kirov [ZombineDev] <petar.p.kirov gmail.com> writes:
On Saturday, 3 June 2017 at 20:06:05 UTC, Walter Bright wrote:
 On 6/3/2017 12:28 AM, Petar Kirov [ZombineDev] wrote:
 Personally, making contracts less verbose and more powerful is 
 much higher on my list
We did discuss bouncing the DIP back with a request to revamp it as a complete overhaul of the contract syntax, but decided that this DIP was about resolving a simple and immediate problem, and it shouldn't be held up on that basis.
Yes, keeping scope of DIP1003 was the right call. In order to for the process to be effective, we need to have good turnaround time. That said, I'm glad to hear that the idea of an overhaul the contract syntax is on your radar. Related to that, is the need to formally specify what exactly is the compiler allowed to assume via asserts. Currently the answer is offensive​ programming [0] which doesn't play well with domains that require defensive​ programming. But that's a topic for another day and another DIP. [0]: https://en.wikipedia.org/wiki/Defensive_programming#Offensive_programming
Jun 05 2017
prev sibling parent Jonathan M Davis via Digitalmars-d-announce writes:
On Friday, June 02, 2017 23:44:21 H. S. Teoh via Digitalmars-d-announce 
wrote:
 On Sat, Jun 03, 2017 at 04:56:40AM +0000, MysticZach via
 Digitalmars-d-announce wrote: [...]

 Yes, congratulations are in order. Although those of us who were
 questioning the need for any keyword at all in `body`s place may be a
 little disappointed that it has merely been replaced with `do`, I
 think no one can doubt the main thrust of the DIP, which is that
 `body` is an incredibly useful identifier, and that having it newly
 available makes D a better language.
[...] Yes, count me somewhat disappointed at merely changing `body` to `do`. But at least it's better than nothing, and frees as `body` as an identifier instead of a keyword that's only ever used in a single context. And it's marginally shorter to type. :-D
I cared far more about getting rid of the need for a keyword there than freeing up body, so I'm not sure that I care much about this change (particularly since I rarely deal with cases where I'd use body as a variable name), but it's still good that body was freed up. - Jonathan M Davis
Jun 03 2017
prev sibling next sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 6/2/17 10:17 AM, Mike Parker wrote:
 Congratulations are in order for Jared Hanson. Walter and Andrei have 
 approved his proposal to remove body as a keyword. I've added a summary 
 of their decision to the end of the DIP for anyone who cares to read it. 
 In short:
 
 * body temporarily becomes a contextual keyword and is deprecated
 * do is immediately allowed in its place
 * body is removed and do replaces it fully
 
 Congratulations, Jared!
 
 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
Congrats to all who worked on this. Next step is to revise the DIP that puts the approved option to the fore and mentions the others only as other options that have been analyzed. This is because we have an "Approved" status but not "Approved Option X". Thanks! -- Andrei
Jun 03 2017
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 06/03/2017 11:08 AM, Andrei Alexandrescu wrote:
 On 6/2/17 10:17 AM, Mike Parker wrote:
 Congratulations are in order for Jared Hanson. Walter and Andrei have 
 approved his proposal to remove body as a keyword. I've added a 
 summary of their decision to the end of the DIP for anyone who cares 
 to read it. In short:

 * body temporarily becomes a contextual keyword and is deprecated
 * do is immediately allowed in its place
 * body is removed and do replaces it fully

 Congratulations, Jared!

 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
Congrats to all who worked on this. Next step is to revise the DIP that puts the approved option to the fore and mentions the others only as other options that have been analyzed. This is because we have an "Approved" status but not "Approved Option X". Thanks! -- Andrei
Sorry, was looking at a stale copy. I think the DIP is fine as is. The previously discussed options are available as earlier revisions of the DIP. -- Andrei
Jun 03 2017
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2017-06-02 16:17, Mike Parker wrote:
 Congratulations are in order for Jared Hanson. Walter and Andrei have
 approved his proposal to remove body as a keyword. I've added a summary
 of their decision to the end of the DIP for anyone who cares to read it.
 In short:

 * body temporarily becomes a contextual keyword and is deprecated
 * do is immediately allowed in its place
 * body is removed and do replaces it fully

 Congratulations, Jared!

 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
That's great. BTW, didn't we use to vote on the DIPs, or was that only for new Phobos modules? -- /Jacob Carlborg
Jun 03 2017
parent reply Jonathan M Davis via Digitalmars-d-announce writes:
On Saturday, June 03, 2017 17:16:52 Jacob Carlborg via Digitalmars-d-
announce wrote:
 On 2017-06-02 16:17, Mike Parker wrote:
 Congratulations are in order for Jared Hanson. Walter and Andrei have
 approved his proposal to remove body as a keyword. I've added a summary
 of their decision to the end of the DIP for anyone who cares to read it.
 In short:

 * body temporarily becomes a contextual keyword and is deprecated
 * do is immediately allowed in its place
 * body is removed and do replaces it fully

 Congratulations, Jared!

 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
That's great. BTW, didn't we use to vote on the DIPs, or was that only for new Phobos modules?
Only new Phobos modules. DIPs have been discussed quite a bit in the newsgroup, but their decision process has never been democratic. It's always been a matter of talking Walter into it, which has usually led to stuff never going anywhere when we haven't had a process for it with someone organizing it. Previously, I think that most DIPs that got implemented were something that Walter was personally interested in, or you managed to convince him in person. What Dicebot and Mike have done with DIPs has changed things drastically, but it's still completely up to Walter and Andrei. - Jonathan M Davis
Jun 03 2017
parent Jacob Carlborg <doob me.com> writes:
On 2017-06-04 01:10, Jonathan M Davis via Digitalmars-d-announce wrote:

 Only new Phobos modules. DIPs have been discussed quite a bit in the
 newsgroup, but their decision process has never been democratic. It's always
 been a matter of talking Walter into it, which has usually led to stuff
 never going anywhere when we haven't had a process for it with someone
 organizing it. Previously, I think that most DIPs that got implemented were
 something that Walter was personally interested in, or you managed to
 convince him in person. What Dicebot and Mike have done with DIPs has
 changed things drastically, but it's still completely up to Walter and
 Andrei.
Right. -- /Jacob Carlborg
Jun 04 2017
prev sibling next sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 6/2/2017 7:17 AM, Mike Parker wrote:
 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
https://github.com/dlang/dmd/pull/6855
Jun 03 2017
prev sibling next sibling parent Olivier FAURE <olivier.faure epitech.eu> writes:
On Friday, 2 June 2017 at 14:17:10 UTC, Mike Parker wrote:
 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
The "See the previous version" link at the end of the document is currently broken and leads to a 404. Thank you for your efforts and congratulations to Jared Hanson!
Jun 05 2017
prev sibling parent Meta <jared771 gmail.com> writes:
On Friday, 2 June 2017 at 14:17:10 UTC, Mike Parker wrote:
 Congratulations are in order for Jared Hanson. Walter and 
 Andrei have approved his proposal to remove body as a keyword. 
 I've added a summary of their decision to the end of the DIP 
 for anyone who cares to read it. In short:

 * body temporarily becomes a contextual keyword and is 
 deprecated
 * do is immediately allowed in its place
 * body is removed and do replaces it fully

 Congratulations, Jared!

 https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
Well, guess I'm a bit late to the party but I just wanted to echo the sentiment that Mike has done a great job stepping up to oversee the DIP process. All I had to do was write it, and he did the rest. I'm very pleased with how smoothly things went and how easy Mike made the whole process. Thanks Mike!
Jun 07 2017