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

Eliot Miranda eliot.miranda at gmail.com
Tue Oct 5 03:26:30 UTC 2010


Hi Both,

2010/10/3 Levente Uzonyi <leves at elte.hu>

> On Sun, 3 Oct 2010, Chris Muller wrote:
>
>  Thanks for the code Eliot.  Can you give me a hint about proper usage.
>> In the current trunk I tried
>>
>>  CrLfFileStream newForStdio
>>
>
Levente, as usual, is exactly right.  use e.g. StandardFileStream stdout.


>
>> but I was not able to nextPutAll: a String onto that (rwmode was not set).
>>
>> I also found StandardFileStream
>> class>>#standardIOStreamNamed:forWrite: but it has undeclared
>> variable, "stdioFiles".  Is that supposed to be a class-inst var
>> defined at the StandardFileStream level?  Senders did not help me
>> understand what arguments I should pass...
>>
>
> That class instance variable is missing, but the code still works. Try
> this:
>
> CrLfFileStream stdout nextPutAll: 'Hello World!'.
>

That's right.  This is missing:

StandardFileStream class
instanceVariableNames: 'stdioFiles'

best
Eliot

>
>
> Levente
>
>
>
>> Sorry for my confusion..
>>
>> - Chris
>>
>>
>> On Mon, Sep 27, 2010 at 1:09 PM, Eliot Miranda <eliot.miranda at gmail.com>
>> wrote:
>>
>>>
>>>
>>> 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/20101004/e57995c6/attachment.htm


More information about the Squeak-dev mailing list