<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<font face="Helvetica, Arial, sans-serif">It produces a result which
contains the class definition where the string ' linkSends' (note the
space at: 1) is stricken out and all the rest is just regular text.<br>
<br>
Here is the code:<br>
<br>
base := &lt;class definition one&gt;.<br>
base := &lt;class definition two&gt;.<br>
diff := DifferenceFinder base: base case: case.<br>
text := diff sourceCodeDifferences anyOne asText.<br>
<br>
/Leandro<br>
</font><br>
Eliot Miranda wrote:
<blockquote
 cite="mid:3ac5ce8a1002121426rd126a70pcfb6dfb22cd79cc@mail.gmail.com"
 type="cite"><br>
  <br>
  <div class="gmail_quote">On Fri, Feb 12, 2010 at 12:53 PM, Leandro <span
 dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:caniglia@dm.uba.ar">caniglia@dm.uba.ar</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; 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'&nbsp;</div>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; 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>
  <pre wrap="">
<hr size="4" width="90%">

  </pre>
</blockquote>
</body>
</html>