Deprecating Allocating Functions In std.string

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Fri Nov 13 19:12:18 PST 2015


On Friday, 13 November 2015 at 21:48:58 UTC, Rory McGuire wrote:
> On Thu, Nov 5, 2015 at 2:02 AM, Jonathan M Davis via 
> Digitalmars-d < digitalmars-d at puremagic.com> wrote:
>
>>
>> We've been adding lazy versions of functions for years now, 
>> and we've never removed the eager versions. And I'm pretty 
>> sure that Walter and Andrei have generally been opposed to the 
>> idea of doing so precisely because of the code breakage that 
>> it causes. We have been moving towards using lazy range-based 
>> functions as much as possible and avoiding adding new eager 
>> functions, but that doesn't mean that removing the eager 
>> functions is worth the pain that that causes or even that the 
>> eager functions aren't worth having.
>>
> Surely the eager functions should at least be using the lazy 
> version internally? "more code, more bugs" is often a true 
> statement (not always, but often).

If it doesn't harm the efficiency of the function, then yes, 
changing an eager function to call the lazy one internally makes 
sense. If it does harm efficiency, then it's a more debatable 
question. But the big issue here is simply that we don't want to 
break existing code just for the sake of moving to lazy 
range-based functions as the norm in Phobos. I understand the 
sentiment, but I really don't think that it's worth the code 
breakage, and I recall Walter and Andrei saying the same.

- Jonathan M Davis


More information about the Digitalmars-d mailing list