[squeak-dev] how to write to stdOut and stdErr under Cog

Eliot Miranda eliot.miranda at gmail.com
Mon Sep 27 18:09:59 UTC 2010


On Sun, Sep 26, 2010 at 10:18 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

> Hi Levente,
>
> On Sun, Sep 26, 2010 at 7:13 PM, Levente Uzonyi <leves at elte.hu> wrote:
>
>> On Sun, 26 Sep 2010, Eliot Miranda wrote:
>>
>>  Hi Chris,
>>>
>>>   I have code for this, but right now I need to crack some crabs, so I
>>> don't have time to verify this code in 4.1 :)  Use at your own risk ;)
>>>  The
>>> most important thing is the StandardFileStream>>stdioHandles primitive
>>> for
>>> accessing the streams.  N.B. some work needs to be done on the win32
>>> FilePlugin support code before this will work on Windows.
>>>
>>
>> All three streams seem to be working on Windows Vista with the latest
>> CogVM.
>> This seems to be a really cool feature, though I think CrLfFileStream
>> should be deprecated, so MultiByteFileStream support would be better IMO.
>>
>
> The streams work if directed to files.  But they will /not/ work if
> directed to input or output in a console window.  I should have been
> clearer, sorry.  The work needed is in
> platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c where if input and/or
> output is the console we need to use ReadConsole & WriteConsole in place of
> ReadFile & WriteFile.
>

Hmmm.  Turns out I was confused about this.  One doesn't need ReadConsole &
WriteConsole; ReadFile & WriteFile should do just fine.  But the Cog code
doesnt work in either an MS-DOS console window or a cygwin console window.
 If anyone's familiar with this area of Windows please feel free to take a
look...

TIA
Eliot


> cheers
> Eliot
>
>
>>
>> Levente
>>
>>
>>
>>>
>>> On Sun, Sep 26, 2010 at 2:46 PM, Chris Muller <asqueaker at gmail.com>
>>> wrote:
>>>
>>>  I am developing a simple "CommandLineProcessor" facade for easily
>>>> transferring command-line arguments simply as block-arguments, so you
>>>> can write smalltalk scripts in vi:
>>>>
>>>>  CommandLineProcessor do: [ : arg1 : arg2 : arg3 | "args come in as
>>>> Strings" ... ]
>>>>
>>>> and also for directing Notifications and Warnings messages to stdOut,
>>>> and Errors to stdErr.  It relies on OSProcess to write to stdOut and
>>>> stdErr for this.  However, ever since switching to Cog, writing to
>>>> these streams does not seem to redirect out to Linux..
>>>>
>>>> I don't know whether writing to these streams makes me
>>>> Linux-dependent, but it really is nice to be able to write Linux
>>>> scripts that employ Squeak in the back-end, but operate normally like
>>>> other shell programs in the terminal window and with redirecting
>>>> output, etc.
>>>>
>>>>  - Chris
>>>>
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100927/42ad7f7a/attachment.htm


More information about the Squeak-dev mailing list