struct Location size
Adam D Ruppe
destructionator at gmail.com
Tue May 9 00:32:33 UTC 2023
On Tuesday, 9 May 2023 at 00:24:44 UTC, Walter Bright wrote:
> 6 bits for column - 1..64
> 15 bits for line - 1..32768
> 11 bits for file - 2047
>
> So, for great glory, can anyone come up with a clever scheme
> that uses only 32 bits?
I wouldn't separate out column/line/file at all. Concatenate all
the files together in memory and store only an offset into that
gigantic array. If an error happens, then and only then go back
to extract the details by slicing the filename out of a listing
and rescanning it to determine line and column. (You'd probably
have an index that does a bit of both, like every new file or
every 5000 lines, add an entry to the lookup table. Then when you
do hit an error, you just need to scan from the closest point
forward instead of the whole thing.)
If there's no errors, it uses little memory and is fast. If there
is an error, the rescanning time is not significant anyway
relative to the time to fix the error.
More information about the Digitalmars-d
mailing list