Thank you, this works great: Progressively=: 1 :0
wd bind 'msgs'@smoutput@u"_1 y ) Much more concise, also. Thanks again, -- Raul On Fri, Apr 11, 2014 at 9:57 PM, bill lam <[email protected]> wrote: > You may try (untested) > > wd'msgs' > > Пт, 11 апр 2014, Raul Miller писал(а): > > I managed to find another way to crash J. I'm not sure whether the fault > > lies in J itself or in Qt, but... here's the story: > > > > When J is running on something that takes a long time (for example, > > fetching hundreds of files, each fetched file requiring its own shell > > command), it would be nice to let the user know that J is doing what it > is > > supposed to. Users know that computers sometimes have problems, and they > > like having a mechanism to distinguish between failure and functioning > > modes of operation. And while jconsole has a nice mechanism for this > > (smoutput), jqt does not share this behavior. > > > > So, I thought, let's introduce a small delay between statements, so that > > the display can update and the user can see something happening. > > > > Thus: > > > > Progressively=:1 :0 > > 0 u Progressively y > > : > > wd 'timer 0' > > smoutput u x{y > > next=.x+1 > > if. next<#y do. > > sys_timer_z_=: next u Progressively y"_ > > wd 'timer 1' > > end. > > ) > > > > But when I go to try it out, I got a syntax error while trying to update > > sys_timer_z_ when it is on the stack. (Shouldn't that be a stack error, > if > > it needs to be an error at all?) > > > > And when I tried to reproduce that syntax error with debugging enabled, > so > > I could see what was going on, I crashed J. > > > > Here's my test case: > > *: Progressively 2 3 5 7 11 > > > > My suspicion is that I've violated some assumptions made during memory > > management. And, indeed, a rewritten version of the code seems to work > fine: > > > > Progressively=:1 :0 > > sys_timer_z_=: do_base_ bind 'N U Progressively Y' > > N=:0 > > U=:u > > Y=:y > > 0 u Progressively y > > wd 'timer 1' > > : > > wd 'timer 0' > > smoutput u x{y > > if. (x+1)<#y do. > > N=:x+1 > > wd 'timer 1' > > else. > > smoutput ' ' NB. re-issue prompt > > end. > > ) > > > > But I thought I should report the bug, in case someone else can get > around > > to isolating and fixing it before me. (I'm playing with the source > version > > of J but proceeding very slowly.) > > > > (Also, of course, feel free to use the working version of > 'Progressively', > > if you have need of something like that.) > > > > Thanks, > > > > -- > > Raul > > ---------------------------------------------------------------------- > > 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
