Next in Review Queue: The New std.path
Steven Schveighoffer
schveiguy at yahoo.com
Mon Jul 18 07:04:26 PDT 2011
On Mon, 18 Jul 2011 09:16:35 -0400, Lars T. Kyllingstad
<public at 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
More information about the Digitalmars-d
mailing list