[squeak-dev] The Trunk: Compiler-cmm.275.mcz

Bert Freudenberg bert at freudenbergs.de
Fri Oct 4 11:06:20 UTC 2013


On 2013-10-03, at 23:02, Chris Muller <asqueaker at gmail.com> wrote:

> The reformatting caused almost all lines to be dif'd.  The only change
> is handling AttemptToWriteReadOnlyGlobal on the at:put:.

I find the compact form the code had before a lot more readable.

- Bert -

> 
> On Thu, Oct 3, 2013 at 2:35 PM,  <commits at source.squeak.org> wrote:
>> Chris Muller uploaded a new version of Compiler to project The Trunk:
>> http://source.squeak.org/trunk/Compiler-cmm.275.mcz
>> 
>> ==================== Summary ====================
>> 
>> Name: Compiler-cmm.275
>> Author: cmm
>> Time: 3 October 2013, 2:34:56.409 pm
>> UUID: 9d002330-e75e-436f-8699-b29413e98e81
>> Ancestors: Compiler-nice.274
>> 
>> When loading code, don't blow up just because of an undeclared ref.
>> 
>> =============== Diff against Compiler-nice.274 ===============
>> 
>> Item was changed:
>>  ----- Method: Encoder>>undeclared: (in category 'encoding') -----
>> + undeclared: name
>> - undeclared: name
>>        | sym |
>>        requestor interactive ifTrue:
>> +               [ requestor requestor == #error: ifTrue: [ requestor error: 'Undeclared' ].
>> +               ^ self notify: 'Undeclared' ].
>> -               [requestor requestor == #error: ifTrue:
>> -                       [requestor error: 'Undeclared'].
>> -                ^self notify: 'Undeclared'].
>>        "Allow knowlegeable clients to squash the undeclared warning if they want (e.g.
>>         Diffing pretty printers that are simply formatting text).  As this breaks
>>         compilation it should only be used by clients that want to discard the result
>>         of the compilation.  To squash the warning use e.g.
>>                [Compiler format: code in: class notifying: nil decorated: false]
>>                        on: UndeclaredVariableWarning
>>                        do: [:ex| ex resume: false]"
>>        sym := name asSymbol.
>> +       ^ (UndeclaredVariableWarning new
>> +               name: name
>> +               selector: selector
>> +               class: cue getClass) signal
>> -       ^(UndeclaredVariableWarning new name: name selector: selector class: cue getClass) signal
>>                ifTrue:
>> +                       [ | undeclared |
>> -                       [| undeclared |
>>                        undeclared := cue environment undeclared.
>> +                       [ undeclared
>> +                               at: sym
>> +                               put: nil ]
>> +                               on: AttemptToWriteReadOnlyGlobal
>> +                               do: [ : noti | noti resume: true ].
>> +                       self
>> +                               global: (undeclared associationAt: sym)
>> +                               name: sym ]
>> -                       undeclared at: sym put: nil.
>> -                       self global: (undeclared associationAt: sym) name: sym]
>>                ifFalse:
>> +                       [ self
>> +                               global: (Association key: sym)
>> +                               name: sym ]!
>> -                       [self global: (Association key: sym) name: sym]!
>> 
>> 
> 





More information about the Squeak-dev mailing list