<br><br><div class="gmail_quote">On Fri, Feb 12, 2010 at 12:53 PM, Leandro <span dir="ltr"><<a href="mailto:caniglia@dm.uba.ar">caniglia@dm.uba.ar</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div bgcolor="#ffffff" text="#000000">
<br>
Levente Uzonyi wrote:
<blockquote type="cite"><br>
You can also get the word based diff using TextDiffBuilder by
subclassing it and overriding #split:. Actually ClassDiffBuilder does
exactly this, so using ClassDiffBuilder instead of TextDiffBuilder will
give you the expected result.
<br>
<br>
</blockquote>
<br>
<font face="Helvetica, Arial, sans-serif">I think that the difference
with the implementation Valeria and I did is that ours switches from
lines to words automatically. It also defines "words" as Smalltalk
words, meaning that it understands keyword limits, which gives better
results. The differentiator starts comparing lines, and if the
proportion of line differences isn't too high, then it reutilizes the
work already done (with lines) and refines it to get differences in
between keywords. The refining strategy was crucial for achieving good
performance.<br></font></div></blockquote><div><br></div><div>What does it do with inst var names within strings as they appear in class definitions, e.g. can they pick out the one work difference between these two?</div>
<div><br></div><div>StackInterpreter subclass: #CoInterpreter</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>instanceVariableNames: 'cogit cogMethodZone inFullGC cogCodeSize desiredCogCodeSize heapBase linkSends lastCoggableInterpretedBlockMethod reenterInterpreter deferSmash deferredSmash traceLog traceLogIndex traceSources cogCompiledCodeCompactionCalledFor statCodeCompactionCount statCodeCompactionUsecs lastUncoggableInterpretedBlockMethod processHasThreadId flagInterpretedMethods maxLiteralCountForCompile'</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>classVariableNames: 'CSCallbackEnter CSCallbackLeave CSCheckEvents CSEnterCriticalSection CSExitCriticalSection CSOwnVM CSResume CSSignal CSSuspend CSThreadSchedulingLoop CSWait CSYield HasBeenReturnedFromMCPC TraceBlockActivation TraceBlockCreation TraceBufferSize TraceCodeCompaction TraceContextSwitch TraceFullGC TraceIncrementalGC TraceIsFromInterpreter TraceIsFromMachineCode TraceSources'</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>poolDictionaries: 'VMStackFrameOffsets CogMethodConstants'</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>category: 'VMMaker-JIT'</div>
<div><br></div><div>StackInterpreter subclass: #CoInterpreter</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>instanceVariableNames: 'cogit cogMethodZone inFullGC cogCodeSize desiredCogCodeSize heapBase lastCoggableInterpretedBlockMethod reenterInterpreter deferSmash deferredSmash traceLog traceLogIndex traceSources cogCompiledCodeCompactionCalledFor statCodeCompactionCount statCodeCompactionUsecs lastUncoggableInterpretedBlockMethod processHasThreadId flagInterpretedMethods maxLiteralCountForCompile'</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>classVariableNames: 'CSCallbackEnter CSCallbackLeave CSCheckEvents CSEnterCriticalSection CSExitCriticalSection CSOwnVM CSResume CSSignal CSSuspend CSThreadSchedulingLoop CSWait CSYield HasBeenReturnedFromMCPC TraceBlockActivation TraceBlockCreation TraceBufferSize TraceCodeCompaction TraceContextSwitch TraceFullGC TraceIncrementalGC TraceIsFromInterpreter TraceIsFromMachineCode TraceSources'</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>poolDictionaries: 'VMStackFrameOffsets CogMethodConstants'</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>category: 'VMMaker-JIT' </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div bgcolor="#ffffff" text="#000000"><font face="Helvetica, Arial, sans-serif">
<br>
Not sure if the full functionality I'm describing here is in the last
Cuis version though.<br>
<br>
/Leandro<br>
</font>
</div>
<br><br>
<br></blockquote></div><br>