Problem with BlockClosure>>decompile

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

Problem with BlockClosure>>decompile

Dennis Schetinin
... because there is no method #who... Can anybody please help to fix it quickly? TIA

--
Dennis Schetinin

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Problem with BlockClosure>>decompile

Nicolas Cellier
This is because #who was deprecated in squeak 3.9 and removed in pharo...
... but the closure work by Eliot is based on a 3.8 image...

Solution is simple: replace:
    (homeClass := home who first) == #unknown ifTrue: [^ nil].
with:
    (homeClass := home methodClass) ifNil: [^ nil].


I note that in 3.8 #who did scan all the methodDictionary
        | sel |
        self systemNavigation allBehaviorsDo:
                        [:class |
                        (sel := class methodDict keyAtIdentityValue: self ifAbsent: [nil])
                                ifNotNil: [^Array with: class with: sel]].
        ^Array with: #unknown with: #unknown
But in 3.9 #who did rely only in hasNewPropertyFormat (a
MethodProperty is put in last but one literal, receiver class is put
in last literal) and would never scan...

Nicolas

2009/4/14 Dennis Schetinin <[hidden email]>:

> ... because there is no method #who... Can anybody please help to fix it
> quickly? TIA
>
> --
> Dennis Schetinin
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Problem with BlockClosure>>decompile

Dennis Schetinin
This is because #who was deprecated in squeak 3.9 and removed in pharo...
... but the closure work by Eliot is based on a 3.8 image...

Solution is simple: replace:
   (homeClass := home who first) == #unknown ifTrue: [^ nil].
with:
   (homeClass := home methodClass) ifNil: [^ nil].

Thank you very much!

--
Dennis Schetinin

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Problem with BlockClosure>>decompile

Nicolas Cellier
Issue http://code.google.com/p/pharo/issues/detail?id=738
and PharoInbox/Compiler-nice.96

Cheers

2009/4/14 Dennis Schetinin <[hidden email]>:

>> This is because #who was deprecated in squeak 3.9 and removed in pharo...
>> ... but the closure work by Eliot is based on a 3.8 image...
>>
>> Solution is simple: replace:
>>    (homeClass := home who first) == #unknown ifTrue: [^ nil].
>> with:
>>    (homeClass := home methodClass) ifNil: [^ nil].
>
> Thank you very much!
>
> --
> Dennis Schetinin
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Problem with BlockClosure>>decompile

Stéphane Ducasse
thanks nicolas
I was just doing a release so I will harvest that now.

Stef

On Apr 14, 2009, at 6:31 PM, Nicolas Cellier wrote:

> Issue http://code.google.com/p/pharo/issues/detail?id=738
> and PharoInbox/Compiler-nice.96
>
> Cheers
>
> 2009/4/14 Dennis Schetinin <[hidden email]>:
>>> This is because #who was deprecated in squeak 3.9 and removed in  
>>> pharo...
>>> ... but the closure work by Eliot is based on a 3.8 image...
>>>
>>> Solution is simple: replace:
>>>    (homeClass := home who first) == #unknown ifTrue: [^ nil].
>>> with:
>>>    (homeClass := home methodClass) ifNil: [^ nil].
>>
>> Thank you very much!
>>
>> --
>> Dennis Schetinin
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project