Vote for std.process
Martin Nowak
code at dawg.eu
Sat Apr 13 12:24:39 PDT 2013
On 04/12/2013 10:14 AM, Manu wrote:
> String concatenation is rampant! Look at this code to parse the env
> variables (which are already an AA):
>
> foreach (var, val; childEnv)
> envz[pos++] = (var~'='~val~'\0').ptr;
>
>
> This could be improved. It could also be optimized into a single
> allocation automatically by the compiler (it might already be). The
> API would not be affected by this improvement, though.
>
>
> I've never seem the compiler apply that optimisation, although I often
> wish it would.
> I saw an appender appear a few pages below, that would be an improvement
> here too I guess.
It is only a single runtime call to _d_arraycatnT which precomputes the
resulting length.
https://github.com/D-Programming-Language/druntime/blob/e5415ed4f0638fcd1d0f8e06aec4197ad108449f/src/rt/lifetime.d#L2031
More information about the Digitalmars-d
mailing list