[Newbies] halt method not halting execution...?

Nicola Mingotti nmingotti at gmail.com
Wed Feb 5 17:05:29 UTC 2020



Hi Robert,

I will inline comments:


> Thank-you for the response.  The script you provided did not work 
> exactly as you gave it to me, but I was able to create a similar one.  
> I will tinker a bit more with it.

Tinkering is the master way to learning: great. But, I usually copy and 
paste my examples, so, it should just work. You should definitely check 
examples in the last stable release of Squeak which at the moment is 5.2.

 From Amazon i see the 'Robot book' is old, 2006. It is a geological era 
in computer science. So, be ready to do a lot of tweaking.

I would reccomend against learning on an older version of Squeak. 
Because when you will ask for help you will be in double-troubles.

> As you said, it can be instructive.  The one thing that did not happen 
> as you described though was the slow down of execution.  It just kept 
> speeding on.  It did pop up the window as expected, but as you pointed 
> out, the UI was unresponsive until I did the Ctrl-. which was very handy!
>

Umm, consider a modern computer runs on the order of Ghz, that is, can 
do some 1,000,000,000 simple calculations per seconds. That program is 
counting to ~2,000 and you can see it! You shouldn't be able to see it 
progressing. The take home lesson here is 'if you want to be fast, don't 
print stuff, just compute' ;)

Since you are preparing a lesson, you may compare the speed of printing 
and the speed of the program printing only even lines, then printing 
only 1/5 of the lines and so on.

This knowledge is valid for all programming languages.

> I will continue to tinker with this and perhaps construct my lesson 
> based on your example here instead of what is in the book.

Great! Also, to the best understanding of your students, I would 
recommend not to use the local variables, but Workspace variables. They 
greatly increase the tinkerability of the snippets. See my notes here:
https://wiki.squeak.org/squeak/6629

I have made a few videos for beginners in the last months which may be 
of help, see the list here:
https://wiki.squeak.org/squeak/6624

bye
Nicola






>
> Robert Kuropkat
>
> P.S.  Chris Game also replied that he hit the same snag and reported 
> it awhile back.  I missed his original post, so will go back and look 
> at it also.  I may also tinker with other versions of Squeak to see if 
> any of them behave as described in the book.
>
>
> On Tue, 4 Feb 2020 19:07:59 -0800
> Nicola Mingotti <nmingotti at gmail.com> wrote:
> >
> > Hi,
> >
> > I never red the book of Robots, but I see a lot of
> >people name it.
> >
> > Anyhow, here is a simple script that loops over integers
> >and stops
> > when it reaches the arbitrary number "1567". It stops by
> >opening
> > a debugger.
> >
> > In the debugger look for UndefinedObject>>doIt to see
> >your code.
> >
> > This script is an example of bad code. Indeed it will
> >lock your interface until it finishes its jobs. And, if
> >you look in the Transcript window you will see the
> >counting is going on very very slowly.
> >
> > But, being so bed is instructive, because you can try to
> >call the debugger with Alt+. (try also Ctrl+. or Cmd+. it
> >depends on the  OS) in cases like this, when the
> >interface gets stuck. Many times you are going to save
> >your session ;)
> >
> > |i|
> > i := 0.
> > [true] whileTrue: [
> >     i := i + 1.
> >     (i = 1567) ifTrue: [self halt].
> >     Transcript ensureCr; show: ('number: {1}' format:
> >{i.}).
> >     ].
> >
> >
> > bye
> > Nicola
> >
> >
> >
> >
> >
> >
> > On 2/4/20 10:16 AM, Robert Kuropkat wrote:
> >> All,
> >>
> >> I am working my way through the Squeak: Learn
> >>Programming with Robots and I hit some unexpected
> >>behavior with the halt method in Chapter 15. I am not at
> >>that computer at the moment so cannot say exactly which
> >>3.x version of the VM I am using.  It is using the
> >>Ready.image and the V3.sources files.
> >>
> >> According to the book, the halt method should cause
> >>execution to stop and invoke the debugger.  It does in
> >>fact invoke the debugger, however, it also skips past and
> >>keeps executing.  Is there by chance some setting
> >>somewhere telling the program to skip that method and
> >>keep executing?
> >>
> >> I can follow-up later tonight with better details, but
> >>thought I'd through the question out in case there was in
> >>fact an easy answer...
> >>
> >> Robert Kuropkat
> >>
> >>
> >>
> >> _______________________________________________
> >> Beginners mailing list
> >> Beginners at lists.squeakfoundation.org
> >> http://lists.squeakfoundation.org/mailman/listinfo/beginners
> >
> >
> > --
> > This email was Anti Virus checked by Astaro Security
> >Gateway. http://www.sophos.com
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/beginners/attachments/20200205/1b35ba7e/attachment.html>


More information about the Beginners mailing list