On Mon, 18 Jul 2011 09:16:35 -0400, Lars T. Kyllingstad <public@kyllingen.nospamnet> wrote:

On Sun, 17 Jul 2011 12:30:39 +0200, torhu wrote:

On 15.07.2011 02:20, dsimcha wrote:
Lars Kyllingstad's new and improved std.path module for Phobos is the
next item up in the review queue.  I've volunteered to be the review
manager.  Barring any objections, the review starts now and ends at the
ends two weeks from now on July 28.  This will be followed by a week of
voting, ending August 4th.

Code:
https://github.com/kyllingstad/phobos/blob/std-path/std/path.d

Docs:
http://www.kyllingen.net/code/new-std-path/phobos-prerelease/
std_path.html


Looks nice and clean, both docs and code!  I like modules that are not
overengineered :)

Thanks!


I noticed a couple of things that I don't think have been mentioned
already:

The docs for defaultExtension say that there's one case where doesn't
allocate.  But the code says that it always does (.idup isn't
conditional, it's just .dup with a different return type).

There is no reason for idup to duplicate an array which is already
immutable.  If it does, I'd say it is a compiler bug.

No, it has to duplicate. Part of idup is saying "I want an immutable return" and the other part is saying "I want a duplicate"

For example:

string x = "hello".idup;
string y = x;

assert(x.capacity > 0); // would fail if idup just returned the same thing
x ~= " world";

assert(y is x); // would fail.

The compiler cannot know whether you care or not.

If you don't care, why are you calling idup on an immutable array? Just use it.

-Steve

Reply via email to