DCT: D compiler as a collection of libraries

deadalnix deadalnix at gmail.com
Fri May 11 06:28:21 PDT 2012


Le 11/05/2012 15:01, Roman D. Boiko a écrit :
> On Friday, 11 May 2012 at 12:55:58 UTC, Jacob Carlborg wrote:
>> On 2012-05-11 14:07, Roman D. Boiko wrote:
>>> On Friday, 11 May 2012 at 11:49:23 UTC, Jacob Carlborg wrote:
>>
>>>> Found it now, "calculateFor". It not sure if it's the most intuitive
>>>> name though. I get the feeling: "calculate what?".
>>
>>> calculateLocation was original name, but I don't like repeating return
>>> type in method names, I decided to change it so that it is clear that
>>> another renaming is needed ;) Any suggestions?
>>>
>>
>> My original suggestion was to have the functionality in Token, which
>> would have made for intuitive names: line, column and file. But since
>> you didn't like that I have to give it some thought.
>
> What about the following signature: Location locate(size_t index)?
> Or even better:
> alias size_t CodeUnitIndex;
> Location locateFor(CodeUnitIndex position);
>
> The problem with placing it in Token is that Token should not know
> anything about source as a whole.

I don't really see the benefit of this. You are trading a O(1) operation 
to an O(log(n)) . It can only be faster in specific cases, which should 
be measured.

It is likely to be slower on compiling erroneous code or used for 
something else than compiling, and likely to be insignificant to compile 
correct code (I suspect the performance win is negligible compared to 
the time required to build a fully operational executable).

You are overcomplicating things for no to little benefice.


More information about the Digitalmars-d-announce mailing list