[Mono-devel-list] "precise location handling" patch for mcs

Atsushi Eno atsushi at ximian.com
Tue Dec 28 03:27:31 EST 2004


Hello,

I uploaded the updated patch here:
http://www24.brinkster.com/ginga/mcs-location-1228.diff
It includes the implementation of Ben's "checkpoint" idea,
fixed variable namings, and eliminates "location.Row" usage
in report.cs (now uses location.ToString()).

But I think I had better eliminate more "lexer.Location"
for expressions. So lemme make advanced patch for it.

Atsushi Eno

Miguel de Icaza wrote:
> Hello,
> 
> 
>>I put a performance comparison here (I think it is not so bad):
>>http://www24.brinkster.com/ginga/perf-org.txt
>>http://www24.brinkster.com/ginga/perf-loc.txt
>>(In short: 53724KB -> 55684KB)
> 
> 
> This in general looks good, but there are a few variable names that must
> be changed (pascalCased variables should be turned into split_words).
> 
> 
>>It also fills location for SymbolWriter.
>>
>>I have some problems/questions to solve:
>>
>>	- In location.cs, I dare set token field as int. Thus when
>>	  there are many files to compile, it won't provide column
>>	  information nicely (those information are kept compact).
>>
>>	  For example, our mscorlib.dll have nearly 1200 files and
>>	  mcs does not provide column numbers at best 7(!).
>>
>>	  If I modify token field from int to long, it will mostly
>>	  handle precise columns more, but it results in huge memory
>>	  consumption (like from 55k to 72k for building mcs).
>>
>>	  So which is the preferable solution, to use long or not?
> 
> 
> To not use long, that is a price too high to pay.
> 
> 
>>	- In report.cs, there are many places that directly uses
>>	  Location members instead of Location.ToString(). Is there
>>	  any reason to do so?
> 
> 
> Might just be historic.
> 
> Miguel
> 




More information about the Mono-devel-list mailing list