The Trunk: Tools-topa.562.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tools-topa.562.mcz

commits-2
Tobias Pape uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-topa.562.mcz

==================== Summary ====================

Name: Tools-topa.562
Author: topa
Time: 26 March 2015, 10:34:40.589 pm
UUID: c1e03f1f-b7f2-46a1-b27d-5c2f42e19ef1
Ancestors: Tools-topa.561

Tool icons: See if a method identifies itself as having a breakpoint or a 'reportable slip'

=============== Diff against Tools-topa.561 ===============

Item was changed:
  ----- Method: Behavior>>toolIconSelector: (in category '*Tools-icons') -----
  toolIconSelector: aSymbol
  "Tools can annotate the method identified by aSymbol with an icon identified by the symbol this method returns.
  We customize this for, eg, overriden methods or methods with breaks.
  Defaults to no icon"
 
  self methodDictionary at: aSymbol ifPresent: [ :method |
+ method hasBreakpoint ifTrue: [^ #breakpoint].
+ method literalsDo: [:literal |
+ (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount: break) includes: literal)
- method literalsDo: [ :literal |
- (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount:) includes: literal)
  ifTrue: [^ #breakpoint].
  (#(flag: needsWork notYetImplemented) includes: literal)
  ifTrue: [^ #flag].
  (#(shouldBeImplemented subclassResponsibility) includes: literal)
  ifTrue: [
  (self isSelectorOverridden: aSymbol)
  ifTrue: [^ #abstract]
  ifFalse: [^ #notOverridden]].
  literal == #shouldNotImplement
+ ifTrue: [^ #no]].
+ method hasReportableSlip ifTrue: [^ #breakpoint]].
- ifTrue: [^ #no]]].
 
  (self isSelectorOverride: aSymbol)
  ifTrue: [
  (self isSelectorOverridden: aSymbol)
  ifTrue: [ ^ #arrowUpAndDown ]
  ifFalse: [ ^ #arrowUp ] ]
  ifFalse: [
  (self isSelectorOverridden: aSymbol)
  ifTrue: [^ #arrowDown ]].
 
  self methodDictionary at: aSymbol ifPresent: [ :method |
  (method primitive ~= 0 and: [method isQuick not])
  ifTrue: [^ #primitive]].
 
 
  ^ #blank!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-topa.562.mcz

Chris Muller-3
What's a reportable slip?

On Thu, Mar 26, 2015 at 4:34 PM,  <[hidden email]> wrote:

> Tobias Pape uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-topa.562.mcz
>
> ==================== Summary ====================
>
> Name: Tools-topa.562
> Author: topa
> Time: 26 March 2015, 10:34:40.589 pm
> UUID: c1e03f1f-b7f2-46a1-b27d-5c2f42e19ef1
> Ancestors: Tools-topa.561
>
> Tool icons: See if a method identifies itself as having a breakpoint or a 'reportable slip'
>
> =============== Diff against Tools-topa.561 ===============
>
> Item was changed:
>   ----- Method: Behavior>>toolIconSelector: (in category '*Tools-icons') -----
>   toolIconSelector: aSymbol
>         "Tools can annotate the method identified by aSymbol with an icon identified by the symbol this method returns.
>         We customize this for, eg, overriden methods or methods with breaks.
>         Defaults to no icon"
>
>         self methodDictionary at: aSymbol ifPresent: [ :method |
> +               method hasBreakpoint ifTrue: [^ #breakpoint].
> +               method literalsDo: [:literal |
> +                       (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount: break) includes: literal)
> -               method literalsDo: [ :literal |
> -                       (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount:) includes: literal)
>                                 ifTrue: [^ #breakpoint].
>                         (#(flag: needsWork notYetImplemented) includes: literal)
>                                 ifTrue: [^ #flag].
>                         (#(shouldBeImplemented subclassResponsibility) includes: literal)
>                                 ifTrue: [
>                                         (self isSelectorOverridden: aSymbol)
>                                                 ifTrue: [^ #abstract]
>                                                 ifFalse: [^ #notOverridden]].
>                         literal == #shouldNotImplement
> +                               ifTrue: [^ #no]].
> +               method hasReportableSlip ifTrue: [^ #breakpoint]].
> -                               ifTrue: [^ #no]]].
>
>         (self isSelectorOverride: aSymbol)
>                 ifTrue: [
>                         (self isSelectorOverridden: aSymbol)
>                                 ifTrue: [ ^ #arrowUpAndDown ]
>                                 ifFalse: [ ^ #arrowUp ] ]
>                 ifFalse: [
>                         (self isSelectorOverridden: aSymbol)
>                                 ifTrue: [^ #arrowDown ]].
>
>         self methodDictionary at: aSymbol ifPresent: [ :method |
>                 (method primitive ~= 0 and: [method isQuick not])
>                         ifTrue: [^ #primitive]].
>
>
>         ^ #blank!
>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-topa.562.mcz

Tobias Pape

On 27.03.2015, at 19:25, Chris Muller <[hidden email]> wrote:

> What's a reportable slip?

To quote CompiledMethod>>#hasReportableSlip

        "Answer whether the receiver contains anything that should be brought
        to the attention of the author when filing out. Customize the lists here
        to suit your preferences. If slips do not get reported in spite of your
        best efforts here, make certain that the Preference 'checkForSlips' is set
        to true."

Ie, references any of #doOnlyOnce: #halt #halt: #hottest #printDirectlyToDisplay #toRemove #personal #urgent  #haltOnce #haltOnce: #haltIf:
or Transcript AA BB CC DD EE

Best
        -Tobias

>
> On Thu, Mar 26, 2015 at 4:34 PM,  <[hidden email]> wrote:
>> Tobias Pape uploaded a new version of Tools to project The Trunk:
>> http://source.squeak.org/trunk/Tools-topa.562.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Tools-topa.562
>> Author: topa
>> Time: 26 March 2015, 10:34:40.589 pm
>> UUID: c1e03f1f-b7f2-46a1-b27d-5c2f42e19ef1
>> Ancestors: Tools-topa.561
>>
>> Tool icons: See if a method identifies itself as having a breakpoint or a 'reportable slip'
>>
>> =============== Diff against Tools-topa.561 ===============
>>
>> Item was changed:
>>  ----- Method: Behavior>>toolIconSelector: (in category '*Tools-icons') -----
>>  toolIconSelector: aSymbol
>>        "Tools can annotate the method identified by aSymbol with an icon identified by the symbol this method returns.
>>        We customize this for, eg, overriden methods or methods with breaks.
>>        Defaults to no icon"
>>
>>        self methodDictionary at: aSymbol ifPresent: [ :method |
>> +               method hasBreakpoint ifTrue: [^ #breakpoint].
>> +               method literalsDo: [:literal |
>> +                       (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount: break) includes: literal)
>> -               method literalsDo: [ :literal |
>> -                       (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount:) includes: literal)
>>                                ifTrue: [^ #breakpoint].
>>                        (#(flag: needsWork notYetImplemented) includes: literal)
>>                                ifTrue: [^ #flag].
>>                        (#(shouldBeImplemented subclassResponsibility) includes: literal)
>>                                ifTrue: [
>>                                        (self isSelectorOverridden: aSymbol)
>>                                                ifTrue: [^ #abstract]
>>                                                ifFalse: [^ #notOverridden]].
>>                        literal == #shouldNotImplement
>> +                               ifTrue: [^ #no]].
>> +               method hasReportableSlip ifTrue: [^ #breakpoint]].
>> -                               ifTrue: [^ #no]]].
>>
>>        (self isSelectorOverride: aSymbol)
>>                ifTrue: [
>>                        (self isSelectorOverridden: aSymbol)
>>                                ifTrue: [ ^ #arrowUpAndDown ]
>>                                ifFalse: [ ^ #arrowUp ] ]
>>                ifFalse: [
>>                        (self isSelectorOverridden: aSymbol)
>>                                ifTrue: [^ #arrowDown ]].
>>
>>        self methodDictionary at: aSymbol ifPresent: [ :method |
>>                (method primitive ~= 0 and: [method isQuick not])
>>                        ifTrue: [^ #primitive]].
>>
>>
>>        ^ #blank!



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-topa.562.mcz

Chris Muller-3
Oh I see, at first I thought it might be a new kind of breakpoint but
in fact a breakpoint is a new reportableSlip.  It's for that warning
when one files out.

On Fri, Mar 27, 2015 at 1:36 PM, Tobias Pape <[hidden email]> wrote:

>
> On 27.03.2015, at 19:25, Chris Muller <[hidden email]> wrote:
>
>> What's a reportable slip?
>
> To quote CompiledMethod>>#hasReportableSlip
>
>         "Answer whether the receiver contains anything that should be brought
>         to the attention of the author when filing out. Customize the lists here
>         to suit your preferences. If slips do not get reported in spite of your
>         best efforts here, make certain that the Preference 'checkForSlips' is set
>         to true."
>
> Ie, references any of   #doOnlyOnce: #halt #halt: #hottest #printDirectlyToDisplay #toRemove #personal #urgent  #haltOnce #haltOnce: #haltIf:
> or Transcript AA BB CC DD EE
>
> Best
>         -Tobias
>>
>> On Thu, Mar 26, 2015 at 4:34 PM,  <[hidden email]> wrote:
>>> Tobias Pape uploaded a new version of Tools to project The Trunk:
>>> http://source.squeak.org/trunk/Tools-topa.562.mcz
>>>
>>> ==================== Summary ====================
>>>
>>> Name: Tools-topa.562
>>> Author: topa
>>> Time: 26 March 2015, 10:34:40.589 pm
>>> UUID: c1e03f1f-b7f2-46a1-b27d-5c2f42e19ef1
>>> Ancestors: Tools-topa.561
>>>
>>> Tool icons: See if a method identifies itself as having a breakpoint or a 'reportable slip'
>>>
>>> =============== Diff against Tools-topa.561 ===============
>>>
>>> Item was changed:
>>>  ----- Method: Behavior>>toolIconSelector: (in category '*Tools-icons') -----
>>>  toolIconSelector: aSymbol
>>>        "Tools can annotate the method identified by aSymbol with an icon identified by the symbol this method returns.
>>>        We customize this for, eg, overriden methods or methods with breaks.
>>>        Defaults to no icon"
>>>
>>>        self methodDictionary at: aSymbol ifPresent: [ :method |
>>> +               method hasBreakpoint ifTrue: [^ #breakpoint].
>>> +               method literalsDo: [:literal |
>>> +                       (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount: break) includes: literal)
>>> -               method literalsDo: [ :literal |
>>> -                       (#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount:) includes: literal)
>>>                                ifTrue: [^ #breakpoint].
>>>                        (#(flag: needsWork notYetImplemented) includes: literal)
>>>                                ifTrue: [^ #flag].
>>>                        (#(shouldBeImplemented subclassResponsibility) includes: literal)
>>>                                ifTrue: [
>>>                                        (self isSelectorOverridden: aSymbol)
>>>                                                ifTrue: [^ #abstract]
>>>                                                ifFalse: [^ #notOverridden]].
>>>                        literal == #shouldNotImplement
>>> +                               ifTrue: [^ #no]].
>>> +               method hasReportableSlip ifTrue: [^ #breakpoint]].
>>> -                               ifTrue: [^ #no]]].
>>>
>>>        (self isSelectorOverride: aSymbol)
>>>                ifTrue: [
>>>                        (self isSelectorOverridden: aSymbol)
>>>                                ifTrue: [ ^ #arrowUpAndDown ]
>>>                                ifFalse: [ ^ #arrowUp ] ]
>>>                ifFalse: [
>>>                        (self isSelectorOverridden: aSymbol)
>>>                                ifTrue: [^ #arrowDown ]].
>>>
>>>        self methodDictionary at: aSymbol ifPresent: [ :method |
>>>                (method primitive ~= 0 and: [method isQuick not])
>>>                        ifTrue: [^ #primitive]].
>>>
>>>
>>>        ^ #blank!
>
>
>