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