<br><br><div class="gmail_quote">On Tue, Oct 5, 2010 at 12:23 PM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Thank you both, it worked in my Linux test!  And Levente tested it in<br>
Windows.  Does that mean only Mac needs tested and clean up the<br>
stream-usage to be able to include this into 4.2?  Bert, I was not<br>
clear if that what you meant in your reference to work needed by<br>
platform maintainers..?<br></blockquote><div><br></div><div>I wrote it on Mac and use it regularly on Mac.  It works on Mac.  Mac == unix at this level.</div><div><br></div><div>But the VM support needs to get merged into the trunk before we an add it to 4.2.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5"><br>
<br>
On Mon, Oct 4, 2010 at 10:26 PM, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; wrote:<br>
&gt; Hi Both,<br>
&gt;<br>
&gt; 2010/10/3 Levente Uzonyi &lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Sun, 3 Oct 2010, Chris Muller wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Thanks for the code Eliot.  Can you give me a hint about proper usage.<br>
&gt;&gt;&gt; In the current trunk I tried<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  CrLfFileStream newForStdio<br>
&gt;<br>
&gt; Levente, as usual, is exactly right.  use e.g. StandardFileStream stdout.<br>
&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; but I was not able to nextPutAll: a String onto that (rwmode was not<br>
&gt;&gt;&gt; set).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I also found StandardFileStream<br>
&gt;&gt;&gt; class&gt;&gt;#standardIOStreamNamed:forWrite: but it has undeclared<br>
&gt;&gt;&gt; variable, &quot;stdioFiles&quot;.  Is that supposed to be a class-inst var<br>
&gt;&gt;&gt; defined at the StandardFileStream level?  Senders did not help me<br>
&gt;&gt;&gt; understand what arguments I should pass...<br>
&gt;&gt;<br>
&gt;&gt; That class instance variable is missing, but the code still works. Try<br>
&gt;&gt; this:<br>
&gt;&gt;<br>
&gt;&gt; CrLfFileStream stdout nextPutAll: &#39;Hello World!&#39;.<br>
&gt;<br>
&gt; That&#39;s right.  This is missing:<br>
&gt; StandardFileStream class<br>
&gt; instanceVariableNames: &#39;stdioFiles&#39;<br>
&gt; best<br>
&gt; Eliot<br>
&gt;&gt;<br>
&gt;&gt; Levente<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Sorry for my confusion..<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; - Chris<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Mon, Sep 27, 2010 at 1:09 PM, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Sun, Sep 26, 2010 at 10:18 PM, Eliot Miranda<br>
&gt;&gt;&gt;&gt; &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Hi Levente,<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Sun, Sep 26, 2010 at 7:13 PM, Levente Uzonyi &lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Sun, 26 Sep 2010, Eliot Miranda wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi Chris,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   I have code for this, but right now I need to crack some crabs, so<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; I<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; don&#39;t have time to verify this code in 4.1 :)  Use at your own risk<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; ;)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;  The<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; most important thing is the StandardFileStream&gt;&gt;stdioHandles<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; primitive<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; for<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; accessing the streams.  N.B. some work needs to be done on the win32<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; FilePlugin support code before this will work on Windows.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; All three streams seem to be working on Windows Vista with the latest<br>
&gt;&gt;&gt;&gt;&gt;&gt; CogVM.<br>
&gt;&gt;&gt;&gt;&gt;&gt; This seems to be a really cool feature, though I think CrLfFileStream<br>
&gt;&gt;&gt;&gt;&gt;&gt; should be deprecated, so MultiByteFileStream support would be better<br>
&gt;&gt;&gt;&gt;&gt;&gt; IMO.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; The streams work if directed to files.  But they will /not/ work if<br>
&gt;&gt;&gt;&gt;&gt; directed to input or output in a console window.  I should have been<br>
&gt;&gt;&gt;&gt;&gt; clearer, sorry.  The work needed is in<br>
&gt;&gt;&gt;&gt;&gt; platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c where if input<br>
&gt;&gt;&gt;&gt;&gt; and/or<br>
&gt;&gt;&gt;&gt;&gt; output is the console we need to use ReadConsole &amp; WriteConsole in<br>
&gt;&gt;&gt;&gt;&gt; place of<br>
&gt;&gt;&gt;&gt;&gt; ReadFile &amp; WriteFile.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hmmm.  Turns out I was confused about this.  One doesn&#39;t need<br>
&gt;&gt;&gt;&gt; ReadConsole &amp;<br>
&gt;&gt;&gt;&gt; WriteConsole; ReadFile &amp; WriteFile should do just fine.  But the Cog<br>
&gt;&gt;&gt;&gt; code<br>
&gt;&gt;&gt;&gt; doesnt work in either an MS-DOS console window or a cygwin console<br>
&gt;&gt;&gt;&gt; window.<br>
&gt;&gt;&gt;&gt;  If anyone&#39;s familiar with this area of Windows please feel free to take<br>
&gt;&gt;&gt;&gt; a<br>
&gt;&gt;&gt;&gt; look...<br>
&gt;&gt;&gt;&gt; TIA<br>
&gt;&gt;&gt;&gt; Eliot<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; cheers<br>
&gt;&gt;&gt;&gt;&gt; Eliot<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Levente<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; On Sun, Sep 26, 2010 at 2:46 PM, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I am developing a simple &quot;CommandLineProcessor&quot; facade for easily<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; transferring command-line arguments simply as block-arguments, so<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; you<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; can write smalltalk scripts in vi:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;  CommandLineProcessor do: [ : arg1 : arg2 : arg3 | &quot;args come in as<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Strings&quot; ... ]<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; and also for directing Notifications and Warnings messages to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; stdOut,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; and Errors to stdErr.  It relies on OSProcess to write to stdOut and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; stdErr for this.  However, ever since switching to Cog, writing to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; these streams does not seem to redirect out to Linux..<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I don&#39;t know whether writing to these streams makes me<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Linux-dependent, but it really is nice to be able to write Linux<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; scripts that employ Squeak in the back-end, but operate normally<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; like<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; other shell programs in the terminal window and with redirecting<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; output, etc.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;  - Chris<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br>