Beta 2.079.0
Kagamin
spam at here.lot
Fri Feb 23 15:33:44 UTC 2018
On Friday, 23 February 2018 at 00:05:59 UTC, Martin Nowak wrote:
> The main use-case for craming multiple imports into a line is
> not libraries but scripting, examples, and maybe unit tests.
Those are cases when selective imports shouldn't be used.
experimental.scripting was introduced to reduce import length to
absolute minimum - 11 characters.
> That's your opinion, my opinion is that importing 6 symbols
> from 6 different modules for a tiny cli tool sucks and bloats
> code example. So the alternative is to not use selective
> imports, but only those and static imports have a clear path to
> become lazy (https://issues.dlang.org/show_bug.cgi?id=13255).
Are renamed imports already lazy?
Tiny cli tool uses all its imports and doesn't benefit from
laziness, only libraries do.
> - use std.experimental.scripting
>
> Indeed an alternative with a similar goal, reducing the
> amount of typing/noise for hacking. Importing all phobos
> modules will lead to a couple of symbol conflicts (e.g. write),
It's perfectly thinkable to use both `write` functions, and
selective imports won't help you there, but renamed imports will.
Is it just me or people ignore existence of renamed imports?
#RenamedImportsMatter
> and it still increases compile times and binary sizes noteably
> (though compile time is a lot better than it used to be).
Is it because of dead templates? As a temporary solution you can
compile the code to a library, this way the linker will be able
to skip unreferenced code.
> - why hasn't this been a DIP
>
> Because it looked primarily like a minor grammar
> rectification that doesn't break anything and is entirely
> optional.
> Also DIPs are a crucial process for our language, and it
> seems problematic to clog it with trivialities.
Though the feature met skepticism from the start. Maybe voting
can be used as a simplified DIP process, just needs more people.
> - it's useful for talks, posts, code puzzles or on a repl where
> code is size constrained
Non-selective always win in terms of size.
> - we're currently proliferating selective imports which cause a
> lot of D code to become very brittle
>
> (https://github.com/andralex/phobos/blob/cd3152c7bf4466e74b7fb9bd43d47e996caf5918/std/datetime/systime.d#L10076-L10083)
I'd convert those to non-selective imports.
import std.algorithm.iteration, std.ascii, std.exception,
std.format, std.meta, std.range, std.stdio, std.string;
(well, my editor has decent word wrapping)
More information about the Digitalmars-d-announce
mailing list