[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