Thread overview
Binding rvalues to ref parameters
Mar 25, 2018
Rubn
Mar 25, 2018
Rubn
Mar 25, 2018
Dgame
March 24, 2018
Hi Manu and everyone else:


I'm publicly distributing what started as a private email to Manu - I'm trying to get a point across that is important and of general interest.

I've seen in a recent thread (titled "rvalues -> ref (yup... again!)") that Manu brought up the implicit conversion of rvalues to ref parameters. Sadly I don't have the bandwidth to follow that thread, let alone posting in it. However, I do have great news.

Manu has asked for this feature literally for years. He has presented good motivating examples and made reasonable arguments. Sadly, none of his forum discussions or in-person discussions during DConf made an impact - frustratingly, there was no change in the language.

It is likely this forum thread will also end the same. The good news is there is a way to ensure your proposal gets a fair shake of the stick: write a DIP.

Filing a DIP is like filing a police report: once it's in the system, we're obligated to work on it. There's a guarantee of a response. In the case of acceptance, we commit to implementing the proposal. In the case of rejection, we give a clear motivation of the reasons we had. In the case we ask for further review, we provide clear feedback of what would take the DIP through another iteration.

Forum discussions are the equivalent of complaining loudly in a bar to people you know and also to strangers within earshot that your house was broken into. Until you file a report, the police will not look into it.

I repeat: there is a GUARANTEED mechanism to get us to work on binding rvalues to ref parameters. GUARANTEED. This is so powerful, it's disconcerting. You need to get a DIP written in all detail, get it through community review, and then we have no choice but to look into it.


Thanks,

Andrei
March 25, 2018
On Saturday, 24 March 2018 at 12:51:07 UTC, Andrei Alexandrescu wrote:
> Filing a DIP is like filing a police report: once it's in the system, we're obligated to work on it. There's a guarantee of a response.

https://wiki.dlang.org/DIP36

Guess there's no point in writing another one then is there? Or how many "police reports" do you need to file before the "police" change their decision?

> I repeat: there is a GUARANTEED mechanism to get us to work on binding rvalues to ref parameters. GUARANTEED. This is so powerful, it's disconcerting. You need to get a DIP written in all detail, get it through community review, and then we have no choice but to look into it.

https://wiki.dlang.org/DIP66

"Approved conditionally"

https://github.com/dlang/dmd/pull/3998

*crosses fingers* it's been 4 years but maybe this is the year this actually happens.

Anyways there's a whole list of DIPs that didn't get any attention, they were just dumped. I know a new DIP processes was created but not even a quick pass through of the DIPS with some comments of whether it would be worth migrating the DIP to the new process or not. I mean there's one DIP that was accepted but the PR implementing it has been sitting in the queue for 4 years.



March 25, 2018
On 3/25/18 9:40 AM, Rubn wrote:
> On Saturday, 24 March 2018 at 12:51:07 UTC, Andrei Alexandrescu wrote:
>> Filing a DIP is like filing a police report: once it's in the system, we're obligated to work on it. There's a guarantee of a response.
> 
> https://wiki.dlang.org/DIP36

The DIP system has changed extensively since Mike Parker took it over. This "old format" DIP would need to be submitted to https://github.com/dlang/DIPs.

March 25, 2018
On Sunday, 25 March 2018 at 14:28:30 UTC, Andrei Alexandrescu wrote:
> On 3/25/18 9:40 AM, Rubn wrote:
>> On Saturday, 24 March 2018 at 12:51:07 UTC, Andrei Alexandrescu wrote:
>>> Filing a DIP is like filing a police report: once it's in the system, we're obligated to work on it. There's a guarantee of a response.
>> 
>> https://wiki.dlang.org/DIP36
>
> The DIP system has changed extensively since Mike Parker took it over. This "old format" DIP would need to be submitted to https://github.com/dlang/DIPs.

That's not the issue... That DIP was already labelled as rejected. Wasn't able to find an explanation anywhere as to why either. No point changing the format for a DIP that was already rejected.
March 25, 2018
On Sunday, 25 March 2018 at 19:24:00 UTC, Rubn wrote:
> On Sunday, 25 March 2018 at 14:28:30 UTC, Andrei Alexandrescu wrote:
>> On 3/25/18 9:40 AM, Rubn wrote:
>>> On Saturday, 24 March 2018 at 12:51:07 UTC, Andrei Alexandrescu wrote:
>>>> Filing a DIP is like filing a police report: once it's in the system, we're obligated to work on it. There's a guarantee of a response.
>>> 
>>> https://wiki.dlang.org/DIP36
>>
>> The DIP system has changed extensively since Mike Parker took it over. This "old format" DIP would need to be submitted to https://github.com/dlang/DIPs.
>
> That's not the issue... That DIP was already labelled as rejected. Wasn't able to find an explanation anywhere as to why either. No point changing the format for a DIP that was already rejected.

There is one: https://forum.dlang.org/thread/ylebrhjnrrcajnvtthtt@forum.dlang.org?page=9
March 25, 2018
On 03/25/2018 03:24 PM, Rubn wrote:
> On Sunday, 25 March 2018 at 14:28:30 UTC, Andrei Alexandrescu wrote:
>> On 3/25/18 9:40 AM, Rubn wrote:
>>> On Saturday, 24 March 2018 at 12:51:07 UTC, Andrei Alexandrescu wrote:
>>>> Filing a DIP is like filing a police report: once it's in the system, we're obligated to work on it. There's a guarantee of a response.
>>>
>>> https://wiki.dlang.org/DIP36
>>
>> The DIP system has changed extensively since Mike Parker took it over. This "old format" DIP would need to be submitted to https://github.com/dlang/DIPs.
> 
> That's not the issue... That DIP was already labelled as rejected. Wasn't able to find an explanation anywhere as to why either. No point changing the format for a DIP that was already rejected.

The entire procedure and approach has been rebooted. All old DIPs should be moved to the new system if there is one or more champions for them. Thanks! -- Andrei