https://github.com/D-Programming-Language/phobos/pull/1911
This adds a package std.buffer, and the first entry in that package,
std.buffer.scopebuffer.
ScopeBuffer is an OutputRange that sits on the stack, and overflows to
malloc/free. It's designed to help in eliminating gc allocation by lower level
functions that return buffers, such as std.path.buildPath(). With some judicious
user tuning of the initial stack size, it can virtually eliminate storage
allocation.
Using it is @system, but the user of ScopeBuffer can be @trusted.
An output range like this is a precursor to eliminating the excessive gc use by
functions such as buildPath().