[squeak-dev] Where does the compiler handle the "local bindings" of workspaces?

Eduardo Ochs eduardoochs at gmail.com
Wed Mar 1 03:39:10 UTC 2023


Hi Karl,
solved! See:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2023-March/223594.html
  [[]], E.


On Tue, 28 Feb 2023 at 15:29, Eduardo Ochs <eduardoochs at gmail.com> wrote:

> Hi!
> Thanks, your fix for nil bindings is better than mine! =)
> I am trying to convert your code into a subclass of HelpBrowser
> called HelpBrowserB, that has bindings and that in the future
> may have other hacks too. My code is attached, but when I
> run this
>
>   hb := HelpBrowserB openOn: TerseGuideHelp.
>   hb model.
>
> I see that its model is a HelpBrowser, not a HelpBrowserB...
> Any idea of how to fix that?
>   Cheers & thanks in advance,
>     Eduardo
>
>
>
>
>
> On Tue, 28 Feb 2023 at 15:06, karl ramberg <karlramberg at gmail.com> wrote:
>
>> Hi,
>> I sent the wrong version.
>> This should work
>>
>> Best,
>> Karl
>>
>> On Tue, Feb 28, 2023 at 12:40 PM karl ramberg <karlramberg at gmail.com>
>> wrote:
>>
>>> Hi,
>>> Try executing this:
>>> HelpBrowser initialize
>>>
>>> Best,
>>> Karl
>>>
>>>
>>>
>>> On Tue, Feb 28, 2023 at 8:18 AM Eduardo Ochs <eduardoochs at gmail.com>
>>> wrote:
>>>
>>>> Wow! Thanks!!! =) =) =)
>>>> But I've tried to put these five lines
>>>>
>>>>   sm := SimpleSwitchMorph new.
>>>>   sm openInWorld.
>>>>   bm := SimpleButtonMorph new.
>>>>   bm openInWorld.
>>>>   bm position: bm position + (0 at 32).
>>>>
>>>> in a topic window, and then execute the first four lines in a "do it",
>>>> then the fifth line in another "do it"... when I tried that I got an
>>>> error in this method,
>>>>
>>>>   HelpBrowser >> bindingOf:
>>>>
>>>> because it tried to execute
>>>>
>>>>   bindings includesKey: aString
>>>>
>>>> with bindings being nil... can you fix that?
>>>>
>>>>   Thanks in advance! =)
>>>>     Eduardo Ochs
>>>>
>>>>
>>>> On Tue, 28 Feb 2023 at 03:27, karl ramberg <karlramberg at gmail.com>
>>>> wrote:
>>>>
>>>>> See change set in attachment for adding dynamic bindings to
>>>>> HelpBrowser.
>>>>> It's a proof of concept :-)
>>>>>
>>>>> Best,
>>>>> Karl
>>>>>
>>>>> On Mon, Feb 27, 2023 at 9:42 AM Eduardo Ochs <eduardoochs at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Karl,
>>>>>>
>>>>>> > In HelpBrowser you must declare the variables before using them.
>>>>>> > (...)
>>>>>> > HelpBrowser does not implement dynamic binding of variables.
>>>>>>
>>>>>> Yes - my first idea was to ask here what I needed to change in my
>>>>>> class TerseGuideHelp to make the "workspace" of its help browser use
>>>>>> dynamic biding of variables... but then I spent some hours trying to
>>>>>> find the answer myself, and I stumbled on a more low-level question
>>>>>> that I found much more askworthy...
>>>>>>
>>>>>> > You can right click on a Workspace window and a HelpBrowser window
>>>>>> > and inspect the model and see the differences.
>>>>>>
>>>>>> I did that. Are these differences obvious to a trained eye? They
>>>>>> weren't to me.
>>>>>>
>>>>>> > Also browse class Workspace and look at access to variable
>>>>>> > 'bindings'.
>>>>>>
>>>>>> This may be a pointer to searching tools that I need to learn. I saw
>>>>>> that if I click on "variables" and then on "bindings" I get a list of
>>>>>> the methods in Workspace that access the variable "bindings"... I also
>>>>>> tried to fileOut the class Workspace and to read it in Emacs, and I
>>>>>> found the same occurrences.
>>>>>>
>>>>>> Here is an educated guess. Is the method "hasBindingOf:" the main
>>>>>> piece needed to make a mini-workspace support dynamic variables? If
>>>>>> so, how, exactly? Is there a part of the compiler that calls
>>>>>> "hasBindingOf:" when it sees an unknown variable? I couldn't find
>>>>>> it...
>>>>>>
>>>>>>   Cheers,
>>>>>>     Eduardo Ochs
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20230301/da7a7f37/attachment.html>


More information about the Squeak-dev mailing list