[Newbies] troubleshooting question

Bert Freudenberg bert at impara.de
Thu Jul 20 19:47:42 UTC 2006


Perhaps you could describe what you actually want to achieve.

Squeak is different from other programming environments. Some things  
are much easier, some are much harder than in other systems. In a  
way, Squeak pretends to be its own operation system (it indeed can  
run on bare hardware). That makes it harder to do a "hello world"  
that writes to the "other" operating system's stdout. Other things,  
like animated graphics or sound are much easier in Squeak than  
elsewhere.

The Squeak "hello world" is simple to show that string on the  
Transcript. Or even better

	self inform: 'hello world'

Note that working with Squeak is much more immediate than you might  
be used to. For example, you should just select "OSProcess  
thisOSProcess stdOut" and press Cmd-p to see the result, rather than  
logging it to the Transcript. Or, press Cmd-i to inspect it. You  
should learn to use the debugger - read what it actually says, and  
explore. For example, "UndefinedObject does not understand:  
#nextPutAll:" simply means you sent the message "nextPutAll:" to nil  
(an instance of class UndefinedObject), which cannot understand that  
message, and says so.

Same thing with a "self halt": you do not get an error, the reddish  
window simply is a friendly debugger to examine the code about to be  
executed.

- Bert -

Am 20.07.2006 um 20:03 schrieb Thomas Keller:

> Perhaps this is the problem?
> When I ran this in a worksheet:
> a _ OSProcess thisOSProcess stdOut.
> Transcript show: a
>
> show: returned "nil"
> So nextPutAll: has no where to print to?
>
> So my next question is how do I find the systems STDOUT pid?
>
> Thanks,
> Tom K
>
> On 7/19/06, David T. Lewis <lewis at mail.msen.com> wrote: On Tue, Jul  
> 18, 2006 at 11:19:56AM -0700, Thomas J Keller wrote:
> > Greetings,
> > I copied this simple example from the Beginners page:
> > OSProcess thisOSProcess stdOut nextPutAll: 'Hello World'
> >
> > Before running it, I did install the OSProcess OSProcess Pluggin
> > packages.
> >
> > But I get an MessageNotUnderstood error browser. But I can't seem to
> > figure out why stdOut is not understanding nextPutAll:
>
> Hi Tom,
>
> OSProcess does not work on all platforms. If you are using Linux (or
> Mac OS/X with the less common Unix VM), the example should work. But
> if you are using Windows, it would not work unless you build your own
> custom VM and plugins (not what you had in mind, I'm sure).
>
> Almost everything in Squeak works identically on all platforms, but
> OSProcess is an exception to this rule. It is intended to provide
> platform-specific extensions, and it works differently (or not at
> all) on different platforms.
>
> As for troubleshooting, try playing around with the Squeak debugger.
> When you saw the "MessageNotUnderstood browser", you were seeing
> the debugger. Open in up and explore a little, and you'll be able
> learn a lot about problems like this one. You can also open a debugger
> right away and use it to step slowly through a problem to see where
> it goes wrong. For you example, try evaluating this in your workspace:
>
>   self halt.
>   OSProcess thisOSProcess stdOut nextPutAll: 'hello world'
>
> Hope this helps a little,
> Dave




More information about the Beginners mailing list