February 13, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johan Engelen | On Monday, 13 February 2017 at 21:04:05 UTC, Johan Engelen wrote:
> On Monday, 13 February 2017 at 20:09:45 UTC, Daniel Nielsen wrote:
>>
>> I still suspect there will be a difference in real-world applications even with LDC.
>
> Why would you expect there to be a difference?
> Module ctors/dtors are still pulled in, regardless of the import being selective or not.
> What am I missing?
>
> Thanks,
> Johan
Sorry, I misread your post. In Jack Stouffer test, main() was empty!
|
February 13, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On 02/13/2017 06:28 AM, Mike Parker wrote: > https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/ I claimed there is a performance improvement in compilation. Can someone answer kibwen's question on this subthread please: https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/ddp6a4p/ Ali |
February 14, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli | On Monday, 13 February 2017 at 22:40:55 UTC, Ali Çehreli wrote:
> On 02/13/2017 06:28 AM, Mike Parker wrote:
>
>> https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/
>
> I claimed there is a performance improvement in compilation. Can someone answer kibwen's question on this subthread please:
>
>
> https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/ddp6a4p/
>
> Ali
I ran it a couple of times and just doing the following has a faster compile time:
import std.datetime : SysTime;
import std.traits : isIntegral;
No difference in binary size as the article stated either, using dmd.
Anyways yes this is kind of cool and fascinating how it works, but that aside I hope I never see this used in phobos. Does anyone else feel this way?
|
February 14, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jerry | On Tuesday, 14 February 2017 at 02:32:33 UTC, Jerry wrote: > On Monday, 13 February 2017 at 22:40:55 UTC, Ali Çehreli wrote: >> On 02/13/2017 06:28 AM, Mike Parker wrote: >> >>> https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/ >> >> I claimed there is a performance improvement in compilation. Can someone answer kibwen's question on this subthread please: >> >> >> https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/ddp6a4p/ >> >> Ali > > I ran it a couple of times and just doing the following has a faster compile time: > > import std.datetime : SysTime; > import std.traits : isIntegral; > > No difference in binary size as the article stated either, using dmd. > > Anyways yes this is kind of cool and fascinating how it works, but that aside I hope I never see this used in phobos. Does anyone else feel this way? I suspect you test something slightly different, I tested both on linux and windows, with dmd, ldc and gdc(not on windows). time dmd slow.d time dmd fast.d ====== Slow ====== import std.datetime : SysTime; import std.traits : isIntegral; void func(T)(SysTime a, T value) if (isIntegral!T) { import std.stdio : writeln; writeln(a, value); } void main() {} ====== Fast ====== template from(string moduleName) { mixin("import from = " ~ moduleName ~ ";"); } void func(T)(from!"std.datetime".SysTime a, T value) if (from!"std.traits".isIntegral!T) { import std.stdio : writeln; writeln(a, value); } void main() {} |
February 14, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jerry | On Tuesday, 14 February 2017 at 02:32:33 UTC, Jerry wrote:
> Anyways yes this is kind of cool and fascinating how it works, but that aside I hope I never see this used in phobos. Does anyone else feel this way?
Yes. +1
|
February 15, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jerry | On 2/14/17 3:32 AM, Jerry wrote:
> Anyways yes this is kind of cool and fascinating how it works, but that
> aside I hope I never see this used in phobos. Does anyone else feel this
> way?
+1
Let's not make Phobos as scary as C++ STL.
---
Dmitry Olshansky
|
February 14, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dmitry Olshansky | On Wednesday, February 15, 2017 00:01:42 Dmitry Olshansky via Digitalmars-d- announce wrote:
> On 2/14/17 3:32 AM, Jerry wrote:
> > Anyways yes this is kind of cool and fascinating how it works, but that aside I hope I never see this used in phobos. Does anyone else feel this way?
>
> +1
> Let's not make Phobos as scary as C++ STL.
Honestly, as hideous as functions signatures can get - particularly with heavily templated stuff, I think that the result tends to be far more understandable than the likes of the STL of Boost. That being said, I think that D function signaures are certainly pushing it as it is, and I don't think that the benefits of adding imports to them is worth the clutter that they add.
- Jonathan M Davis
|
February 15, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dmitry Olshansky | On Tuesday, 14 February 2017 at 23:01:42 UTC, Dmitry Olshansky wrote:
> On 2/14/17 3:32 AM, Jerry wrote:
>> Anyways yes this is kind of cool and fascinating how it works, but that
>> aside I hope I never see this used in phobos. Does anyone else feel this
>> way?
>
> +1
> Let's not make Phobos as scary as C++ STL.
>
> ---
> Dmitry Olshansky
Honestly, after staring at C++ STL, I never imaged that the standard library of a language can be *readable* and *understandable* until I read phobos. Kudos to Walter, Andrei and contributors. I still believe that templated D code is much more readable and intuitive than templated C++ code.
Arun
|
February 15, 2017 Re: A New Import Idiom` | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Monday, 13 February 2017 at 14:28:20 UTC, Mike Parker wrote:
> Daniel Nielsen put together a post describing the import idiom that came to light in a recent forum discussion regarding DIP 1005 [3]. The relevant links are at [1] and [2].
>
> [1] https://dlang.org/blog/2017/02/13/a-new-import-idiom/
> [2] https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/
> [3] https://forum.dlang.org/thread/tzqzmqhankrkbrfsrmbo@forum.dlang.org?page=1
Thanks for writing this up, Daniel. Has become quite a nice article.
|
Copyright © 1999-2021 by the D Language Foundation