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

Eduardo Ochs eduardoochs at gmail.com
Tue Feb 28 07:17:48 UTC 2023


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/20230228/24a5d3c4/attachment-0001.html>


More information about the Squeak-dev mailing list