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

karl ramberg karlramberg at gmail.com
Wed Mar 1 05:42:26 UTC 2023


It is also possible to add extension methods to the existing HelpBrowser
with Monticello instead of subclassing.
It depends on what modifications you would like to implement.

Best,
Karl

On Tue, Feb 28, 2023 at 7:29 PM 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/efc0a77b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: HelpBrowserB-kfr.1.mcz
Type: application/octet-stream
Size: 1787 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20230301/efc0a77b/attachment.obj>


More information about the Squeak-dev mailing list