[q-lang-cvs] qcalc calclib.q,1.39,1.40
Brought to you by:
agraef
From: Albert G. <ag...@us...> - 2007-11-18 04:28:22
|
Update of /cvsroot/q-lang/qcalc In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv9907 Modified Files: calclib.q Log Message: use fully buffered output and explicit flushes to speed up mass cell updates with the matrix function Index: calclib.q =================================================================== RCS file: /cvsroot/q-lang/qcalc/calclib.q,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** calclib.q 18 Nov 2007 03:55:03 -0000 1.39 --- calclib.q 18 Nov 2007 04:28:19 -0000 1.40 *************** *** 123,127 **** message S:String ! = printf "\f+++ Message: %s\n" (str S); /* setval and friends. */ --- 123,127 ---- message S:String ! = printf "\f+++ Message: %s\n" (str S) || flush; /* setval and friends. */ *************** *** 135,148 **** indexarg 'X = (I,J) where (I,J) = cellindex 'X; ! setval KEY X = printf "\f+++ Update: %s %s\n" (str (I,J),str X) || if member (get YYDATA) (I,J) then yyset (I,J) X else X where (I:Int,J:Int) = indexarg KEY; ! clearval KEY X = printf "\f+++ Clear: %s %s\n" (str (I,J),str X) || if member (get YYDATA) (I,J) then yyset (I,J) X else X where (I:Int,J:Int) = indexarg KEY; matrix KEY Xs:List ! = dowith setval Ks (cat Xs) || Xs where Ks = [(I0+I,J0+J) : I in [0..N-1], J in [0..M-1]] if all islist Xs and then all ((=M).(#)) Xs --- 135,154 ---- indexarg 'X = (I,J) where (I,J) = cellindex 'X; ! setval KEY X = printf "\f+++ Update: %s %s\n" (str (I,J),str X) || flush || if member (get YYDATA) (I,J) then yyset (I,J) X else X where (I:Int,J:Int) = indexarg KEY; ! clearval KEY X = printf "\f+++ Clear: %s %s\n" (str (I,J),str X) || flush || ! if member (get YYDATA) (I,J) then yyset (I,J) X else X ! where (I:Int,J:Int) = indexarg KEY; ! ! // setval without flushing the output pipe, to speed up mass updates ! private setvaln KEY X; ! setvaln KEY X = printf "\f+++ Update: %s %s\n" (str (I,J),str X) || if member (get YYDATA) (I,J) then yyset (I,J) X else X where (I:Int,J:Int) = indexarg KEY; matrix KEY Xs:List ! = dowith setvaln Ks (cat Xs) || flush || Xs where Ks = [(I0+I,J0+J) : I in [0..N-1], J in [0..M-1]] if all islist Xs and then all ((=M).(#)) Xs *************** *** 164,168 **** checkbox (S:String,INIT:Bool) = printf "\f+++ Checkbox: %s %s\n" (str (I,J),str (S,INIT)) || ! INIT where (I,J) = get YYKEY; --- 170,174 ---- checkbox (S:String,INIT:Bool) = printf "\f+++ Checkbox: %s %s\n" (str (I,J),str (S,INIT)) || ! flush || INIT where (I,J) = get YYKEY; *************** *** 170,174 **** combobox (L:List,INIT:String) = printf "\f+++ Combobox: %s %s\n" (str (I,J),str (L,INIT)) || ! INIT if all isstr L where (I,J) = get YYKEY; --- 176,180 ---- combobox (L:List,INIT:String) = printf "\f+++ Combobox: %s %s\n" (str (I,J),str (L,INIT)) || ! flush || INIT if all isstr L where (I,J) = get YYKEY; *************** *** 178,182 **** comboedit (L:List,INIT:String) = printf "\f+++ Comboedit: %s %s\n" (str (I,J),str (L,INIT)) || ! INIT if all isstr L where (I,J) = get YYKEY; --- 184,188 ---- comboedit (L:List,INIT:String) = printf "\f+++ Comboedit: %s %s\n" (str (I,J),str (L,INIT)) || ! flush || INIT if all isstr L where (I,J) = get YYKEY; *************** *** 186,190 **** pushbutton (S:String,ICON:String) = printf "\f+++ Pushbutton: %s %s\n" ! (str (I,J),str (S,ICON)) || false where (I,J) = get YYKEY; --- 192,196 ---- pushbutton (S:String,ICON:String) = printf "\f+++ Pushbutton: %s %s\n" ! (str (I,J),str (S,ICON)) || flush || false where (I,J) = get YYKEY; *************** *** 195,199 **** togglebutton (S:String,ICON:String,INIT:Bool) = printf "\f+++ Togglebutton: %s %s\n" ! (str (I,J),str (S,ICON,INIT)) || INIT where (I,J) = get YYKEY; --- 201,205 ---- togglebutton (S:String,ICON:String,INIT:Bool) = printf "\f+++ Togglebutton: %s %s\n" ! (str (I,J),str (S,ICON,INIT)) || flush || INIT where (I,J) = get YYKEY; *************** *** 217,221 **** = printf "\f+++ Slider: %s %s\n" (str (I,J),str (MIN,MAX,STEP,INIT,VERT)) || ! INIT where (I,J) = get YYKEY; --- 223,227 ---- = printf "\f+++ Slider: %s %s\n" (str (I,J),str (MIN,MAX,STEP,INIT,VERT)) || ! flush || INIT where (I,J) = get YYKEY; *************** *** 301,305 **** (str (I,J), str (MIN,MAX,STEP,INIT,SPECIAL,PREF,SUFF,V2T,T2V)) || ! INIT where (I,J) = get YYKEY; --- 307,311 ---- (str (I,J), str (MIN,MAX,STEP,INIT,SPECIAL,PREF,SUFF,V2T,T2V)) || ! flush || INIT where (I,J) = get YYKEY; *************** *** 316,320 **** printf "\f+++ Actionbutton: %s %s\n" (str (I,J),str (S,ICON,str INIT)) || ! yyset (I,J) INIT || INIT where (I,J) = get YYKEY; --- 322,326 ---- printf "\f+++ Actionbutton: %s %s\n" (str (I,J),str (S,ICON,str INIT)) || ! flush || yyset (I,J) INIT || INIT where (I,J) = get YYKEY; *************** *** 356,360 **** H:Thread = printf "\f+++ Taskbutton: %s %s\n" ! (str (I,J),str (S,INIT)) || thread (begin_task (I,J,SEM) || do_task X (I,J,SEM) || end_task (I,J,SEM)); --- 362,366 ---- H:Thread = printf "\f+++ Taskbutton: %s %s\n" ! (str (I,J),str (S,INIT)) || flush || thread (begin_task (I,J,SEM) || do_task X (I,J,SEM) || end_task (I,J,SEM)); *************** *** 396,400 **** /* Internals. */ ! yymain = writes "\f+++ Ready.\n" || flush || yyloop; yyloop where S:String = reads: = yyloop where 'X = valq S, Y = catch yyerror X; --- 402,406 ---- /* Internals. */ ! yymain = setvbuf OUTPUT IOFBF || writes "\f+++ Ready.\n" || flush || yyloop; yyloop where S:String = reads: = yyloop where 'X = valq S, Y = catch yyerror X; |