February 22, 2018
On Thursday, 22 February 2018 at 10:07:40 UTC, Jonathan M Davis wrote:
> On Thursday, February 22, 2018 09:54:17 Uknown via Digitalmars-d-announce wrote:
>> On Thursday, 22 February 2018 at 09:48:20 UTC, Jonathan M Davis
>>
>> wrote:
>> > [...]
>>
>> Which is why we should not let it pass. Why didn't this feature go through the usual DIP process?
>
> All I can say for sure is what was said in the PR linked in another post:
>
> https://github.com/dlang/dmd/pull/6589
>
> Based on the comments in the PR, Walter initially opposed it because he didn't like how it looked, but he said nothing after that. However, later, Andrei comments on the PR and thought that it was simply a fix for the current syntax and that it didn't need a DIP and thus approved it. I have no idea if he talked to Walter about it or not, but there is nothing in the PR to indicate that Walter ever changed his mind.

Heh, I just looked at who voted for and against in the first comment, by pressing and holding each icon, and it shows Walter voting both for and against it! :D
February 22, 2018
On Thursday, 22 February 2018 at 10:42:46 UTC, Daniel Kozak wrote:
> I still believe it should be something more readable:
>
> import std.stdio, std.conv : [ to, from ], std.algorithm : doSomething, std.whatever;

yeah.. nice.. though we can make that even easier by dropping ":"

i.e.

import std.rabbit [food, water], std.house, std.family [carer];

February 22, 2018
On Monday, 19 February 2018 at 10:49:03 UTC, Martin Nowak wrote:

> Windows got a new experimental toolchain based on the lld linker and
> MinGW import libraries. This will hopefully replace OMF in the
> long-term without requiring heavy VC installations. Of course VC will
> remain the primary toolchain on Windows. (still missing changelog)

I've been waiting years for this day. One more friction point is removed for my use of D. Thanks!


February 22, 2018
On Thursday, 22 February 2018 at 08:52:21 UTC, Timothee Cour wrote:
> you should also mention an important point:
> current syntax disallows importing a simple module foo (with no package), eg:
>
> import std.stdio:write,foo; // there's no way to specify a module `foo` import std.stdio:write & foo; // ok
>
> I don't care whether it's `|` or `&` but `,` as a module separator is 100% broken (and illegible, as you mentioned).
>

Given that comma is implemented already, and barring a revert, can we maybe somewhat unbreak it by allowing:

import mod1: write, .mod2;

So leading dot to say it's a module (if not fully qualified)
February 22, 2018
On Thursday, 22 February 2018 at 13:35:00 UTC, aliak wrote:
>
> barring a revert,

Who says we can't revert it?

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

On the contrary, imho if it's so controversial it should be reverted now, s.t. it doesn't accidentally end up in 2.079 and we would be stuck with it for a long time.
February 22, 2018
On Monday, 19 February 2018 at 15:58:57 UTC, Joakim wrote:
> On Monday, 19 February 2018 at 15:45:30 UTC, bachmeier wrote:
>> On Monday, 19 February 2018 at 10:49:03 UTC, Martin Nowak wrote:
>>> Glad to announce the first beta for the 2.079.0 release, ♥ to the 77 contributors for this release.
>>>
>>> http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.079.0.html
>>>
>>> As usual please report any bugs at https://issues.dlang.org
>>>
>>> - ----
>>>
>>> This is probably the most feature-laden 2 month release ever.
>>> ...
>>
>> This looks good, but I'm not sure the many new features go well with the "2 month release" thing. I hope there are plans for a longer than usual testing period. Your announcement reads to me like it's going to be a regression bug release.
>
> 17. Allow multiple selective imports from different modules in a single import statement
>
> I have a bad feeling that that one is going to be a source of a raft of bugs for years to come.

Indeed, I had a bad feeling about it when reading the change log, didn't made sense first time I read it, and had to parse the line 2 times to understand what's up with it.

In the light of pretty much heated arguments following your post I think it should be wise to deffer releasing this feature for a future time, maybe drag it through a DIP?

This should also serve as a lesson to Walter and Andrei on how to handle this kind of changes, now that the community is a bit larger simple changes (at surface) have a bigger ripple effect.

Thanks.



February 22, 2018
On Thursday, 22 February 2018 at 13:51:18 UTC, Seb wrote:
> On Thursday, 22 February 2018 at 13:35:00 UTC, aliak wrote:
>>
>> barring a revert,
>
> Who says we can't revert it?
>
> https://github.com/dlang/dmd/pull/7939
>
> On the contrary, imho if it's so controversial it should be reverted now, s.t. it doesn't accidentally end up in 2.079 and we would be stuck with it for a long time.

Touche :)

Though personally I'm actually not against the existence of the syntax. I think it does improve signal to noise ration if (like many language features) used correctly. And that it feels natural to expect it to work.
February 22, 2018
On Thursday, 22 February 2018 at 13:35:00 UTC, aliak wrote:
>
> Given that comma is implemented already, and barring a revert, can we maybe somewhat unbreak it by allowing:
>
> import mod1: write, .mod2;
>
> So leading dot to say it's a module (if not fully qualified)

leading dots?? grr!!

I doubt change can be easier, clearer, or nicer to look at, than:

import std.rabbit [food, water], std.house, std.family [carer];

I would support that syntax 100%. Nothing else I've seen would get that level of support from me.

February 22, 2018
On 2/22/18 3:30 AM, psychoticRabboit wrote:
> On Thursday, 22 February 2018 at 09:42:47 UTC, Atila Neves wrote:
>>
>> I'm going to a) never write these imports and b) pretend this feature doesn't exist.
>>
>> Atila
> 
> what about something like this then?
> 
> import std.stdio; std.conv: to, from; std.algorithm: doSomething; std.whatever;
> 
> just one simple rule; multiple imports on a line are seperated with ;
> 
> surely the parser or whatever it's called, could work with that clean and simple solution.

Using a semicolon occurred to me too. If the feature is to be kept, this is the syntax that is easiest to read and remember for me.
February 22, 2018
On Thursday, 22 February 2018 at 08:52:21 UTC, Timothee Cour wrote:
> you should also mention an important point:
> current syntax disallows importing a simple module foo (with no package), eg:
>
> import std.stdio:write,foo; // there's no way to specify a module `foo` import std.stdio:write & foo; // ok
>
> I don't care whether it's `|` or `&` but `,` as a module separator is 100% broken (and illegible, as you mentioned).
>
There is a better one ; . It forces to repeat import but one can not have everything :-)