February 24, 2018
i don't understand whole theread.
why all import must be written on one line?
curent syntax very handy and readable.
February 24, 2018
On Saturday, 24 February 2018 at 07:09:05 UTC, zabruk70 wrote:
> i don't understand whole theread.
> why all import must be written on one line?
> curent syntax very handy and readable.

you must have understood the thread, cause you summarised it pretty well ;-)
February 24, 2018
On Friday, 23 February 2018 at 11:57:05 UTC, Martin Nowak wrote:
> Furthermore there remain various ideas that would avoid the original ambiguity. Whether such changes are worthwhile is up for discussion and would benefit from someone taking the lead.

I really like psychoRabbit's array syntax suggestion.  I see no reason the old syntax can't be kept around only for trailing symbols, while requiring the array syntax for selective import chains.

> I still think that local imports are nice for being explicit and toolable but have the downside of being brittle.
> Something like bash style expansion could help to hit a sweet spot IMHO.
>
>     import std.{algorithm : {find, findSplit}, stdio : writeln};
>     import std.experimental.allocator.building_blocks.{free_list, region};
>
> But certainly anything in that direction requires time and research, which I don't have for that topic.

Sure, it will require someone willing to implement it, not you.

> In hindsight the voting experiment on https://github.com/dlang/dmd/pull/6589 might have prevented useful early feedback and thinking.
>
> Given the effort required for a language change, it's seductive to streamline seemingly small changes, but it certainly increases the risk of design mistakes, thanks for appealing against this one.

Reflecting further on your pull during this debate, my initial suggestion that it would cause a bunch of errors was probably overblown, readability is the main issue.  The ambiguity you expanded on was fine if only limited to one set of trailing symbols, it became too hard to parse when a bunch of selective imports were chained.

I hope someone steps us to implement this feature with better syntax, though it will require more effort than your simple patch, as I do see the need for it.
February 24, 2018
On Monday, 19 February 2018 at 10:49:03 UTC, Martin Nowak wrote:
> http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.079.0.html

Second beta is published now. The website build server has some issues, so the website update is still stuck for a while.

You can see a changelog preview here
  http://dtest.dlang.io/artifact/website-e5f8ee1211cb48bf97e0502f958179f8c82c9b35-ea6717f0f487cd7258756895d14da33f/web/changelog/2.079.0.html
until it will be updated on
  http://dlang.org/changelog/2.079.0.html
.

Downloads can be found under
  http://downloads.dlang.org/pre-releases/2.x/2.079.0/
until they are linked on
  http://dlang.org/download.html#dmd_beta
.

Changes:

https://github.com/dlang/dmd/compare/v2.079.0-beta.1...v2.079.0-beta.2
https://github.com/dlang/druntime/compare/v2.079.0-beta.1...v2.079.0-beta.2
https://github.com/dlang/phobos/compare/v2.079.0-beta.1...v2.079.0-beta.2
https://github.com/dlang/installer/compare/v2.079.0-beta.1...v2.079.0-beta.2
https://github.com/dlang/tools/compare/v2.079.0-beta.1...v2.079.0-beta.2
https://github.com/dlang/dlang.org/compare/v2.079.0-beta.1...v2.079.0-beta.2
https://github.com/dlang/dub/compare/v1.8.0-beta.1...v1.8.0-beta.2

February 27, 2018
Release candidate available now.

http://dlang.org/changelog/2.079.0.html http://dlang.org/download.html#dmd_beta

- -Martin
February 28, 2018
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.
>
> [...]

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

Just for information. DWT doesn't build with 2.079 because of overloads not allowed . I'm not good enough to do something about it but only wanted to make people aware of it. I also opened an issue at the dwt project.
March 03, 2018
On 02/28/2018 11:48 AM, Patrick Schluter wrote:
> Just for information. DWT doesn't build with 2.079 because of overloads not allowed . I'm not good enough to do something about it but only wanted to make people aware of it. I also opened an issue at the dwt project.

https://issues.dlang.org/show_bug.cgi?id=18385
March 31, 2018
On Tuesday, 20 February 2018 at 08:43:50 UTC, Martin Nowak wrote:
> On Monday, 19 February 2018 at 15:58:57 UTC, Joakim wrote:
>> 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.
>
> No need to use it if you don't like it. It's particularly useful for small examples, localized imports and hacking.
> It's mainly a generalisation of the existing possibility to mix module imports and one selective import at the end.
> If you prefer java-like 50 lines import manifests, then by all means keep using those.
> How would that feature cause bugs though?

AFAICT Rust now has introduced the exactly same feature. It's quite interesting to see that there was no outcry by the community and it was universally liked:

https://blog.rust-lang.org/2018/03/29/Rust-1.25.html
https://github.com/rust-lang/rust/issues/44494


March 31, 2018
On Saturday, 31 March 2018 at 00:25:47 UTC, Seb wrote:
> On Tuesday, 20 February 2018 at 08:43:50 UTC, Martin Nowak wrote:
>> On Monday, 19 February 2018 at 15:58:57 UTC, Joakim wrote:
>>> [...]
>>
>> No need to use it if you don't like it. It's particularly useful for small examples, localized imports and hacking.
>> It's mainly a generalisation of the existing possibility to mix module imports and one selective import at the end.
>> If you prefer java-like 50 lines import manifests, then by all means keep using those.
>> How would that feature cause bugs though?
>
> AFAICT Rust now has introduced the exactly same feature. It's quite interesting to see that there was no outcry by the community and it was universally liked:
>
> https://blog.rust-lang.org/2018/03/29/Rust-1.25.html
> https://github.com/rust-lang/rust/issues/44494

the curly brackets make the rust implementation more readable. The dmd implementation didn't use brackets. I believe that's a main reason for the resistance from the people
March 31, 2018
On Saturday, 31 March 2018 at 00:25:47 UTC, Seb wrote:
> On Tuesday, 20 February 2018 at 08:43:50 UTC, Martin Nowak wrote:
>> On Monday, 19 February 2018 at 15:58:57 UTC, Joakim wrote:
>>> 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.
>>
>> No need to use it if you don't like it. It's particularly useful for small examples, localized imports and hacking.
>> It's mainly a generalisation of the existing possibility to mix module imports and one selective import at the end.
>> If you prefer java-like 50 lines import manifests, then by all means keep using those.
>> How would that feature cause bugs though?
>
> AFAICT Rust now has introduced the exactly same feature. It's quite interesting to see that there was no outcry by the community and it was universally liked:
>
> https://blog.rust-lang.org/2018/03/29/Rust-1.25.html
> https://github.com/rust-lang/rust/issues/44494

As meppl says, they require braces, which the D version didn't, so not "exactly same." Besides look at that horrid syntax even before this addition, drowning in colons, they seem to carry over some of the worst punctuation style from C++. About the only good thing I can say about it is that 'use' is a better, shorter keyword than 'import.'