===== How Can I Tell If Overlays Have Been Integrated Into a New JAS Version? =====

The Method Source Overlay (MSO) browser has two ways to tell if a scenario overlay is actually in the released code -- the first way compares the two source code versions, and the second way compares the compiled code that is actually executed. Both comparisons can be selected from the Filters sub-menu that is activated by right-clicking in the left pane of the MSO browser.

{{:jas:overlay1.jpg|}}

Creating a filter that shows methods with source code (select "Has Different Source Code" from the filter menu) that differs from the released code relies on both sets of code having the same formatting. For example, this source code

<code>
someMethod
    
    someInstanceVariable := true.
    ^someInstanceVariable 
</code>

is not identical to this source code 

<code>
someMethod
    
    someInstanceVariable := true.

    ^someInstanceVariable 
</code>

because of formatting differences, even though the compiled code will be the same.

You can avoid this problem by always using the filter that compares byte codes. Byte codes are the compiled code that is actually executed by the Smalltalk Virtual Machine, and is independent of formatting. Here is how to do it. From the filters sub-menu, select Has Different Compiled Bytecodes

{{:jas:overlay2.jpg|}}

Then select No to show the overlays whose byte codes match the overlaid methods in the released image.

{{:jas:overlay3.jpg|}}

Of the six overlays, these three overlays have already been integrated into the released code.

{{:jas:overlay5.jpg|}}

These overlays may now be safely deleted from your scenario.





