I have no idea what went wrong here. The ancestry looks correct to me. Here is the correct diff generated with Squeak Inbox Talk:<br>
<br>
<b>==================== Summary ====================</b><br>
<br>
Name: Compiler-ct.480<br>
Author: ct<br>
Time: 9 September 2022, 2:48:27.444614 pm<br>
UUID: 03d9ed0c-8807-be4a-89bf-891d9f639f09<br>
Ancestors: Compiler-eem.479<br>
<br>
Attempts to fix a GC issue while creating an Undeclared variable. Hold a strong reference on the newly created association until it has been stored as a global.<br>
<br>
Note: This change makes the assumption that undeclared is not a SystemDictionary, which overrides #at:put:. However, I cannot explain why AttemptToWriteReadOnlyGlobal is handled in this place, no idea how this code could touch any ClassBindings ...<br>
<br>
Please review.<br>
<br>
<b>=============== Diff against Compiler-eem.479 ===============</b><br>
<br>
<b>Encoder>>undeclared: {encoding} · ct 9/9/2022 14:35 (changed)</b><br>
undeclared: name <br>
| sym |<br>
(requestor notNil and: [requestor interactive]) ifTrue:<br>
[ requestor requestor == #error: ifTrue: [ requestor error: 'Undeclared' ].<br>
^ self notify: 'Undeclared' ].<br>
"Allow knowlegeable clients to squash the undeclared warning if they want (e.g.<br>
Diffing pretty printers that are simply formatting text). As this breaks<br>
compilation it should only be used by clients that want to discard the result<br>
of the compilation. To squash the warning use e.g.<br>
[Compiler format: code in: class notifying: nil decorated: false]<br>
on: UndeclaredVariableNotification<br>
do: [:ex| ex resume: false]"<br>
sym := name asSymbol.<br>
^ (UndeclaredVariableNotification new<br>
name: name<br>
selector: selector<br>
class: cue getClass) signal<br>
ifTrue:<br>
<s><font color="#0000FF">- [ | undeclared |<br>
</font></s><font color="#FF0000">+ [ | undeclared assoc |<br>
</font> undeclared := cue environment undeclared.<br>
<s><font color="#0000FF">- [ undeclared<br>
- at: sym<br>
- put: nil ]<br>
</font></s><font color="#FF0000">+ assoc := [ undeclared add: (undeclared associationClass key: sym value: nil) ]<br>
</font> on: AttemptToWriteReadOnlyGlobal<br>
do: [ : noti | noti resume: true ].<br>
self<br>
<s><font color="#0000FF">- global: (undeclared associationAt: sym)<br>
</font></s><font color="#FF0000">+ global: assoc<br>
</font> name: sym ]<br>
ifFalse:<br>
[ self<br>
global: (Association key: sym)<br>
name: sym ]<br>
<br>
Best,<br>
Christoph<br>
<br>
<font color="#808080">---<br>
</font><font color="#808080"><i>Sent from </i></font><font color="#808080"><i><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk"><u><font color="#808080">Squeak Inbox Talk</font></u></a></i></font><br>
<br>
On 2022-09-13T07:34:25-07:00, eliot.miranda@gmail.com wrote:<br>
<br>
> The below shows that code diffing is broken for Inbox. Instead of showing the difference in the commit the below appears to list the entire Compiler package starting with AssignmentNode.<br>
> <br>
> _,,,^..^,,,_ (phone)