DIP 1003 (Remove body as a Keyword) Accepted!

via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Jun 3 00:28:06 PDT 2017


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&resolution=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%3Aclosed%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.



More information about the Digitalmars-d-announce mailing list