Request for comments: std.d.lexer

Dmitry Olshansky dmitry.olsh at gmail.com
Fri Feb 1 03:22:35 PST 2013


01-Feb-2013 15:05, Walter Bright пишет:
> On 1/30/2013 8:44 AM, Dmitry Olshansky wrote:
>> In allocation scheme I proposed that ID could be a 32bit offset into
>> the unique
>> identifiers chunk.
>
> That only works if you know in advance the max size the chunk can ever
> be and preallocate it. Otherwise, you have no guarantee that the next
> allocated chunk will be within 32 bits of address of the previous chunks.
>

Well I supposed it's exactly one reallocatable block. Then token have an 
offset that doesn't care if the block was reallocated.

Or rather the reallocating just RESERVE virtual RAM for it (say 1G), and 
COMMIT it page by page when you need to grow it. Once lexing is done, 
shrink virtual region to the actual used size to free up address space 
(e.g. if we are on 32bits).

AS for 32bit limit that gives 4Gb maximum of the cumulative length of 
all unique identifier names is more then enough by any standard. I 
haven't seen a 4G codebase not to speak of identifiers alone that even 
if we count all the repetitions separately.

-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list