You're right. I was thinking of the stdout verb. Sorry!

Louis

> On 18 Dec 2016, at 01:05, bill lam <[email protected]> wrote:
> 
> No, echo and smoutput are synonyms. There are verbs stdout and stderr for
> stdio.
> 
> 
> 
> On 18 Dec, 2016 6:19 am, "Louis de Forcrand" <[email protected]> wrote:
> 
> I believe echo is slightly different from smoutput: smoutput outputs to the
> J session, while echo outputs to stdout. This doesn't make a difference
> when *you*'re using JQt or Jconsole, but if Jconsole is started silently
> (which is possible right?) I think echo will output text while smoutput
> won't.
> 
> Louis
> 
>> On 17 Dec 2016, at 06:07, bill lam <[email protected]> wrote:
>> 
>> Doevents is mainly intended for single-thread applications.
>> For multi-threading application, it is less important.
>> 
>> In single thread event driven applications, msgs/doevents can
>> jump to process any events. Eg, msgs inside a tight loop can
>> interrupt and abort if users press the close button.
>> 
>> That said, msgs is useful since J is single threaded and so
>> it is implemented in J wd.
>> 
>> Пт, 16 дек 2016, Raul Miller написал(а):
>>> Why do you claim wd'msgs' is bad practice in J?
>>> 
>>> The only reasoning I can find would imply that use of J is bad
>>> practice, and I refuse to agree with that kind of thinking.
>>> 
>>> (More specifically, the criticisms of "doevents" which I find seem to
>>> be aimed at using fine grained multi-threading and flow of control.
>>> But that makes it sound using wd'msgs' would be *good practice* in the
>>> context of J. Still, perhaps I have overlooked something?)
>>> 
>>> Thanks,
>>> 
>>> --
>>> Raul
>>> 
>>> 
>>>> On Fri, Dec 16, 2016 at 8:12 PM, bill lam <[email protected]> wrote:
>>>> wd'msgs' is the equivalent of doevents() in visual basic and dotnet
>>>> winform. It is a bad practice and can cause unpredictable behaviors.
>>>> Android does not support it. Try other alternatives first.
>>>> 
>>>> That said, using it in Michael's context should be ok. Writing to file
> as
>>>> suggested by Eric is a more general solution.
>>>> 
>>>> 
>>>> On 17 Dec, 2016 6:07 am, "'Pascal Jasmin' via Programming" <
>>>> [email protected]> wrote:
>>>> 
>>>> a slightly different version of echo (that returns argument instead of
> i.0
>>>> 0)
>>>> 
>>>> pD =: (1!:2&2)`(wd bind 'msgs' ] 1!:2&2)@.IFQT
>>>> echo =: (0 0 $1!:2&2)`(wd bind 'msgs' ] 0 0 $ 1!:2&2)@.IFQT
>>>> 
>>>> works "universally"
>>>> 
>>>> 3 : 'i =. 0 while. i < y do. if. 0 = 1000000 | i do. pD i end. i =. i+1
>>>> end.' 10000000
>>>> 
>>>> 
>>>> ----- Original Message -----
>>>> From: Eric Iverson <[email protected]>
>>>> To: Programming forum <[email protected]>
>>>> Sent: Friday, December 16, 2016 4:40 PM
>>>> Subject: Re: [Jprogramming] How can I echo characters to JQT terminal
>>>> window each time through a loop?
>>>> 
>>>> This is a perennial problem. Jconsole and JHS will show echo output
> before
>>>> execution completes, but Jqt won't. There may be Jqt mechanisms, such as
>>>> other windows, and special wd commands that would work. In my experience
>>>> the best general solution to this problem is to have the loop where you
>>>> currently have the echo, do an fwrite or fappend of status information
> to a
>>>> file. Then, while the big update is running, a completely separate task
> can
>>>> inspect the file contents. This is easy to do, works on all front ends,
>>>> works on all platforms, and supports logging info that wouldn't easily
> fit
>>>> into echo. In your case just replace the echos with an appropriate
> fwrite
>>>> of formated data.
>>>> 
>>>>> On Fri, Dec 16, 2016 at 3:22 PM, Michael Berry <[email protected]>
> wrote:
>>>>> 
>>>>> I am looping through a large database table 1,000 rows at a time and I
>>>>> would like to show some reassuring output.  I tried echo and smoutput
> (are
>>>>> these different?) but both sat there until the whole explicit
> definition
>>>>> ended and then printed out the progress notes all at once.  Do I need
> some
>>>>> sort of flush output command?
>>>>> 
>>>>> Here is the loop I tried:
>>>>> 
>>>>> while. 0 = _1 -: d=. ddfch sh, 1000 NB. ddfet fails unpredictably so
> use
>>>>> ddfch instead
>>>>> 
>>>>> do.
>>>>> 
>>>>> data=. make_cells d NB. put into ddfet format as expected by run_tests
>>>>> 
>>>>> scores=. run_tests data
>>>>> 
>>>>> r=. make_cols data,. <"1 scores
>>>>> 
>>>>> assert. 0 = ch2 ddins~ ('select * from ',y,'_scored where 0=1');r
>>>>> 
>>>>> echo written=. written + 1{. $data
>>>>> 
>>>>> end.
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> 
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> 
>> --
>> regards,
>> ====================================================
>> GPG key 1024D/4434BAB3 2008-08-24
>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to