Possible change to array runtime?

Steven Schveighoffer schveiguy at yahoo.com
Fri Mar 14 08:00:19 PDT 2014


On Fri, 14 Mar 2014 10:50:43 -0400, Dicebot <public at dicebot.lv> wrote:

> On Thursday, 13 March 2014 at 17:18:05 UTC, Steven Schveighoffer wrote:
>>> I think there's a much simpler approach that could help. Define and  
>>> document a function clearForAppend that resets the length to 0 and  
>>> puts the array in gear for appending. Maybe an optional parameter  
>>> indicates a minimum desired capacity.
>>>
>>> Then people who want to migrate from D1 to D2 or generally consider  
>>> using this idiom can grep their source code for "length *= *0" and  
>>> make the change on their own pace and with appropriate testing.
>>
>> Arguably this is already possible within a project, such as  
>> Sociomantic's. They haven't done it yet. I don't know why.
>>
>> -Steve
>
> It has not been mentioned as example of blocker but example of most  
> horrible breaking change that can happen if dmd user is not aware of it  
> before upgrade.

I think that is very much a matter of your coding style. Many people  
wouldn't notice any changes, and might even notice an improvement.

> I think only practical thing that blocks D2 transition right now is that  
> no one can afford to work on it full-time and amount of changes needed  
> is too big to be done as a side work - array stomping is not only  
> problematic area, I personally think const will cause much more problems.
>
> Really hope that with recent hires doing a focused porting effort will  
> soon become a real option. D1 is so D1 :P

I think with the example Don showed, the above fix is not going to catch  
all the problems. There is no easy grep fix.

I totally get that the effort is not worth the benefit currently. Just let  
us know if we can help in any way when it becomes more of a realistic  
priority. I would love to see the most obvious commercial D success story  
on D2 :)

-Steve


More information about the Digitalmars-d mailing list