[Cuis-dev] [] storeString freezes the image

Gerald Klix cuis.01 at klix.ch
Tue Oct 27 05:49:36 PDT 2020


On 2020-10-27 13:04, Gerald Klix via Cuis-dev wrote:
> On 2020-10-27 03:11, Nicolás Papagna Maldonado via Cuis-dev wrote:
>> On Mon, Oct 26, 2020 at 10:58 PM Mariano Montone via Cuis-dev <
>> cuis-dev at lists.cuis.st> wrote:
>>
>>> El 26/10/20 a las 22:41, Nicolás Papagna Maldonado via Cuis-dev 
>>> escribió:
>>>> Hi folks!
>>>> Hope you're doing fine :)
>>>>
>>>> Just found this issue while I was trying to add a new Preference whose
>>>> value is a block.
>>>
>>> I was going to report that same problem. I don't know the solution :)
>>>
>>>> Specifically, I want users to be able to configure the block that 
>>>> should
>>>> be used for opening the class finder (either the default one or
>>>> Cuis-Finder).
>>>
>>> I used a MethodReference as value for the Preference instead of a Block
>>> in my implementation, to get around that. Would that be a good option?
>>>
>>
>> Yep, I think that could make it work too!
>>
>> IMHO if we could make it a block, I think that would be great as it gives
>> users the ultimate flexibility.
>>
>> For this particular scenario, the thing that I have in mind is doing a
>> little refactoring to break up the method that creates the preference +
>> compiles the accessor into two different methods, so we can add the
>> preference without compiling the accessor (we will be providing that
>> anyway).
>>
>> I think the issue is interesting outside Cuis-Finder too, as someone will
>> bump into it eventually.
>>
>>
>>>
>>> Mariano
>>>
>>> -- 
>>> Cuis-dev mailing list
>>> Cuis-dev at lists.cuis.st
>>> https://lists.cuis.st/mailman/listinfo/cuis-dev
>>>
>>
>>
>>
> That's bad, Actually even `[] storeString` does not terminate. As far as 
> I can see, the problem
> is BlockClosure's outerContext which
> causes recursive sends of #storeOn: because
> it first instance variable (`sender`. inherited
> from InstructionStream) points to itself.
> 
> InstructionStream has an interesting class
> comment:
> "...The unclean re-use of sender to hold the method was to avoid a 
> trivial subclass for the stand-alone scanning function."
> 
> Does it make sense to store instruction streams?
> 
> 
> Just my 0.03€
> 
> Gerald
> 
Update: It just took a look at Squeak 5.3 and Pharo 8. They do nothing 
to avoid that infinite recursion, but pressing ALT-. opens a 
PreDebugger, which does not work in Cuis.


Me puzzled,

Gerald


More information about the Cuis-dev mailing list