On Thursday, 14 August 2014 at 20:50:37 UTC, Dicebot wrote:
Oh crap I had std.array.Array in mind which does have `length`
exposes. And Appender seems to indeed clear / shrink data in a
horrible way:
https://github.com/D-Programming-Language/phobos/blob/master/std/array.d#L2597
https://github.com/D-Programming-Language/phobos/blob/master/std/array.d#L2611
Wow, this thing is real garbage!
OK, looks like Appender is written to be fully GC-compatible and
usable with immutable data which kind of explain such
implementation. But that makes it inherently slow compared to
plain `Array` which owns its memory and gets it via malloc.