Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #5512
| From | mhx@iae.nl (Marcel Hendrix) |
|---|---|
| Subject | Re: min-max-sum |
| Newsgroups | comp.lang.forth |
| Message-ID | <03979100948436@frunobulax.edu> (permalink) |
| Date | 2011-09-03 12:06 +0200 |
| References | <2011Sep1.175921@mips.complang.tuwien.ac.at> |
| Organization | SunSITE.dk - Supporting Open source |
anton@mips.complang.tuwien.ac.at (Anton Ertl) writes Re: min-max-sum > Andrew Haley <andrew29@littlepinkcloud.invalid> writes: [..] >>I'm not sure that shuffling things between stacks or shuffling the >>data stack is necessarily fast. > Sure, it's not necessarily fast, but it requires much less compiler > smarts to avoid memory stores in the loop than your solution does. > I tried it on VFX, and it produced a lot of memory accesses through > ESP and EBP, so I guess this code exceeded the capacity of its > register allocator. Maybe iForth does better. No, because iForth is very / too careful when writing back data to memory is implied. >>However, obsessing about this kind of thing >>isn't going to make for the most maintainable Forth code. > As mentioned, for the most maintainable code I would compute each > value in a separate loop. I tried a few variants below. FORTH> test \ 100 times sum-min-max1 [5,000,000] : 12499997500000 0 4999999 4.207 seconds elapsed. \ 100 times sum-min-max2 [5,000,000] : 12499997500000 0 4999999 2.988 seconds elapsed. \ 100 times sum-min-max3 [5,000,000] : 12499997500000 0 4999999 2.428 seconds elapsed. \ 100 times sum-min-max4 [5,000,000] : 12499997500000 0 4999999 3.641 seconds elapsed. \ 100 times sum-min-max5 [5,000,000] : 12499997500000 0 4999999 4.689 seconds elapsed. \ 100 times sum-min-max6 [5,000,000] : 12499997500000 0 4999999 1.356 seconds elapsed. ok The spread in run times is about a factor 3.5 (1.356 versus 4.689 seconds). Second fastest and easiest to read solution is sum-min-max3. This word separates the address and computational operations by using the FPU stack explicitly. Unfortunately, it uses the iForth extension FEXCHANGE (swap ftos with n-th value on FPU stack). Note that all the FP solutions are quite a bit faster than the integer ones. The parallel solution sum-min-max6 performs best. It is not as fast as hoped, i.e. it is only about 2.7 times faster than sum-min-max4, not three times, and there is quite a bit of cumbersome setup to prevent memory congestion. As yet iForth has no extensions to pass parameters to parallel processes. -marcel -- -------------------------------------------- ANEW -mappings NEEDS -threads : make-data ( u -- ) DUP , 0 ?DO i , LOOP ; CREATE testdata #5000000 make-data : sum-min-max1 ( addr ucells -- nsum nmax nmin ) 2>r 0 maxint minint 2r> cells bounds 2dup u> IF DO ( nsum' nmax' nmin' ) rot i @ + rot i @ min rot i @ max cell +LOOP ELSE 2drop ENDIF ; : sum-min-max2 ( addr ucells -- nsum nmax nmin ) 0 S>F maxint S>F minint S>F 0 ?DO FROT @+ dup S>F F+ -FROT FSWAP dup S>F FMIN FSWAP S>F FMAX LOOP drop FROT F>S FSWAP F>S F>S ; : sum-min-max3 ( addr ucells -- nsum nmax nmin ) 0 S>F maxint S>F minint S>F 0 ?DO @+ S>F FDUP 4 FEXCHANGE F+ 3 FEXCHANGE FDUP 3 FEXCHANGE FMIN 2 FEXCHANGE FMAX LOOP drop FROT F>S FSWAP F>S F>S ; : sum-min-max4 ( addr ucells -- nsum nmax nmin ) 2>r 0e 2r@ 0 ?DO @+ S>F F+ LOOP drop F>S maxint S>F 2r@ 0 ?DO @+ S>F FMIN LOOP drop F>S minint S>F 2r> 0 ?DO @+ S>F FMAX LOOP drop F>S ; : sum-min-max5 ( addr ucells -- nsum nmax nmin ) 2>r 0 2r@ 0 ?DO @+ rot + swap LOOP drop maxint 2r@ 0 ?DO @+ rot min swap LOOP drop minint 2r> 0 ?DO @+ rot max swap LOOP drop ; 0 value sz1 0 value data1 0 value sz2 0 value data2 0 value sz3 0 value data3 ALIGN32 0 value =sum6 ALIGN32 0 value =min6 ALIGN32 0 value =max6 : sum6 ( -- ) 0e data1 sz1 0 ?DO @+ S>F F+ LOOP drop F>S TO =sum6 ; : min6 ( -- ) maxint S>F data2 sz2 0 ?DO @+ S>F FMIN LOOP drop F>S TO =min6 ; : max6 ( -- ) minint S>F data3 sz3 0 ?DO @+ S>F FMAX LOOP drop F>S TO =max6 ; : sum-min-max6 ( -- nsum nmax nmin ) PAR STARTP sum6 ENDP STARTP min6 ENDP STARTP max6 ENDP ENDPAR =sum6 =min6 =max6 ; : test ( -- ) CR ." \ 100 times sum-min-max1 [5,000,000] : " TIMER-RESET 0 0 0 #100 0 DO 3drop testdata @+ sum-min-max1 LOOP rot . swap . . 2 spaces .ELAPSED CR ." \ 100 times sum-min-max2 [5,000,000] : " TIMER-RESET 0 0 0 #100 0 DO 3drop testdata @+ sum-min-max2 LOOP rot . swap . . 2 spaces .ELAPSED CR ." \ 100 times sum-min-max3 [5,000,000] : " TIMER-RESET 0 0 0 #100 0 DO 3drop testdata @+ sum-min-max3 LOOP rot . swap . . 2 spaces .ELAPSED CR ." \ 100 times sum-min-max4 [5,000,000] : " TIMER-RESET 0 0 0 #100 0 DO 3drop testdata @+ sum-min-max4 LOOP rot . swap . . 2 spaces .ELAPSED CR ." \ 100 times sum-min-max5 [5,000,000] : " TIMER-RESET 0 0 0 #100 0 DO 3drop testdata @+ sum-min-max5 LOOP rot . swap . . 2 spaces .ELAPSED testdata @+ dup TO sz1 dup TO sz2 TO sz3 sz1 cells allocate throw TO data1 dup data1 sz1 cells move sz2 cells allocate throw TO data2 dup data2 sz2 cells move sz3 cells allocate throw TO data3 data3 sz3 cells move CR ." \ 100 times sum-min-max6 [5,000,000] : " TIMER-RESET 0 0 0 #100 0 DO 3drop sum-min-max6 LOOP rot . swap . . 2 spaces .ELAPSED data1 free throw data2 free throw data3 free throw ; \ FORTH> test \ 100 times sum-min-max1 [5,000,000] : 12499997500000 0 4999999 4.207 seconds elapsed. \ 100 times sum-min-max2 [5,000,000] : 12499997500000 0 4999999 2.988 seconds elapsed. \ 100 times sum-min-max3 [5,000,000] : 12499997500000 0 4999999 2.428 seconds elapsed. \ 100 times sum-min-max4 [5,000,000] : 12499997500000 0 4999999 3.641 seconds elapsed. \ 100 times sum-min-max5 [5,000,000] : 12499997500000 0 4999999 4.689 seconds elapsed. \ 100 times sum-min-max6 [5,000,000] : 12499997500000 0 4999999 1.356 seconds elapsed. ok DOC (* FORTH> ' sum-min-max1 idis $01247D80 : [trashed] $01247D8A pop rbx $01247D8B pop rdi $01247D8C lea rax, [rdi rbx*8] qword $01247D90 cmp rdi, rax $01247D93 push 0 b# $01247D95 mov r8, $80000000:00000000 q# $01247D9F push r8 $01247DA1 mov r8, $7FFFFFFF:FFFFFFFF q# $01247DAB push r8 $01247DAD push rax $01247DAE mov rcx, rdi $01247DB1 mov rbx, rcx $01247DB4 jae $01247E17 offset NEAR $01247DBA pop rcx $01247DBB call (DO) offset NEAR $01247DC5 mov rax, rax $01247DC8 pop rdi $01247DC9 pop rax $01247DCA mov rdx, [rbp 0 +] qword $01247DCE add rax, [rdx] qword $01247DD1 mov rdx, [rbp 0 +] qword $01247DD5 push rbx $01247DD6 push rax $01247DD7 push rdi $01247DD8 push [rdx] qword $01247DDA pop rbx $01247DDB pop rcx $01247DDC cmp rbx, rcx $01247DDF cmovl rbx, rcx $01247DE3 pop rdi $01247DE4 pop rax $01247DE5 mov rdx, [rbp 0 +] qword $01247DE9 push rdi $01247DEA push rbx $01247DEB push rax $01247DEC push [rdx] qword $01247DEE pop rbx $01247DEF pop rcx $01247DF0 cmp rbx, rcx $01247DF3 cmovg rbx, rcx $01247DF7 push rbx $01247DF8 mov rbx, 8 d# $01247DFF add [rbp 0 +] qword, rbx $01247E03 add [rbp 8 +] qword, rbx $01247E07 pop rbx $01247E08 jno $01247DC8 offset NEAR $01247E0E add rbp, #24 b# $01247E12 jmp $01247E19 offset NEAR $01247E17 pop rdi $01247E18 pop rbx $01247E19 push rbx $01247E1A ; FORTH> ' sum-min-max2 idis $01311100 : [trashed] $0131110A fld $011B9EF0 tbyte-offset $01311110 fld $011B9EE0 tbyte-offset $01311116 fld $011B9ED0 tbyte-offset $0131111C xor rbx, rbx $0131111F pop rcx $01311120 call (?DO) offset NEAR $0131112A nop $0131112B lea rax, [rax 0 +] qword $01311130 fxch ST(1) $01311132 fxch ST(2) $01311134 push [rbx] qword $01311136 fild [rsp] qword $01311139 add rsp, 8 b# $0131113D faddp ST(1), ST $0131113F fxch ST(2) $01311141 fxch ST(1) $01311143 fxch ST(1) $01311145 push [rbx] qword $01311147 fild [rsp] qword $0131114A add rsp, 8 b# $0131114E lea rdi, [rbx 8 +] qword $01311152 push rdi $01311153 push [rbx] qword $01311155 fxch ST(1) $01311157 fcomi ST(1) $01311159 fcmovnb ST(1) $0131115B fstp ST(1) $0131115D fxch ST(1) $0131115F pop rbx $01311160 push rbx $01311161 fild [rsp] qword $01311164 add rsp, 8 b# $01311168 fxch ST(1) $0131116A fcomi ST(1) $0131116C fcmovb ST(1) $0131116E fstp ST(1) $01311170 pop rbx $01311171 add [rbp 0 +] qword, 1 b# $01311176 add [rbp 8 +] qword, 1 b# $0131117B jno $01311130 offset NEAR $01311181 add rbp, #24 b# $01311185 fxch ST(1) $01311187 fxch ST(2) $01311189 sub rsp, 8 b# $0131118D fisttp [rsp] qword $01311190 pop rbx $01311191 fxch ST(1) $01311193 sub rsp, 8 b# $01311197 fisttp [rsp] qword $0131119A pop rdi $0131119B sub rsp, 8 b# $0131119F fisttp [rsp] qword $013111A2 pop rax $013111A3 push rbx $013111A4 push rdi $013111A5 push rax $013111A6 ; FORTH> ' sum-min-max3 idis $01311200 : [trashed] $0131120A fld $011B9F20 tbyte-offset $01311210 fld $011B9F10 tbyte-offset $01311216 fld $011B9F00 tbyte-offset $0131121C xor rbx, rbx $0131121F pop rcx $01311220 call (?DO) offset NEAR $0131122A nop $0131122B lea rax, [rax 0 +] qword $01311230 push [rbx] qword $01311232 fild [rsp] qword $01311235 add rsp, 8 b# $01311239 fld ST(0) $0131123B lea rbx, [rbx 8 +] qword $0131123F push rbx $01311240 fxch ST(4) $01311242 faddp ST(1), ST $01311244 fxch ST(3) $01311246 fld ST(0) $01311248 fxch ST(3) $0131124A fxch ST(1) $0131124C fcomi ST(1) $0131124E fcmovnb ST(1) $01311250 fstp ST(1) $01311252 fxch ST(2) $01311254 fxch ST(1) $01311256 fcomi ST(1) $01311258 fcmovb ST(1) $0131125A fstp ST(1) $0131125C pop rbx $0131125D add [rbp 0 +] qword, 1 b# $01311262 add [rbp 8 +] qword, 1 b# $01311267 jno $01311230 offset NEAR $0131126D add rbp, #24 b# $01311271 fxch ST(1) $01311273 fxch ST(2) $01311275 sub rsp, 8 b# $01311279 fisttp [rsp] qword $0131127C pop rbx $0131127D fxch ST(1) $0131127F sub rsp, 8 b# $01311283 fisttp [rsp] qword $01311286 pop rdi $01311287 sub rsp, 8 b# $0131128B fisttp [rsp] qword $0131128E pop rax $0131128F push rbx $01311290 push rdi $01311291 push rax $01311292 ; FORTH> ' sum-min-max4 idis $01311300 : [trashed] $0131130A pop rbx $0131130B pop rdi $0131130C fld $011B9F50 tbyte-offset $01311312 lea rbp, [rbp -8 +] qword $01311316 mov [rbp 0 +] qword, rdi $0131131A lea rbp, [rbp -8 +] qword $0131131E mov [rbp 0 +] qword, rbx $01311322 push rdi $01311323 push rbx $01311324 xor rbx, rbx $01311327 pop rcx $01311328 call (?DO) offset NEAR $01311332 nop $01311333 lea rax, [rax 0 +] qword $01311338 push [rbx] qword $0131133A fild [rsp] qword $0131133D add rsp, 8 b# $01311341 faddp ST(1), ST $01311343 lea rbx, [rbx 8 +] qword $01311347 add [rbp 0 +] qword, 1 b# $0131134C add [rbp 8 +] qword, 1 b# $01311351 jno $01311338 offset NEAR $01311357 add rbp, #24 b# $0131135B sub rsp, 8 b# $0131135F fisttp [rsp] qword $01311362 pop rbx $01311363 fld $011B9F40 tbyte-offset $01311369 mov rdi, [rbp 8 +] qword $0131136D mov rax, [rbp 0 +] qword $01311371 push rbx $01311372 push rdi $01311373 push rax $01311374 xor rbx, rbx $01311377 pop rcx $01311378 call (?DO) offset NEAR $01311382 nop $01311383 lea rax, [rax 0 +] qword $01311388 push [rbx] qword $0131138A fild [rsp] qword $0131138D add rsp, 8 b# $01311391 lea rbx, [rbx 8 +] qword $01311395 push rbx $01311396 fxch ST(1) $01311398 fcomi ST(1) $0131139A fcmovnb ST(1) $0131139C fstp ST(1) $0131139E pop rbx $0131139F add [rbp 0 +] qword, 1 b# $013113A4 add [rbp 8 +] qword, 1 b# $013113A9 jno $01311388 offset NEAR $013113AF add rbp, #24 b# $013113B3 sub rsp, 8 b# $013113B7 fisttp [rsp] qword $013113BA pop rbx $013113BB fld $011B9F30 tbyte-offset $013113C1 mov rdi, [rbp 0 +] qword $013113C5 lea rbp, [rbp 8 +] qword $013113C9 mov rax, [rbp 0 +] qword $013113CD lea rbp, [rbp 8 +] qword $013113D1 push rbx $013113D2 push rax $013113D3 push rdi $013113D4 xor rbx, rbx $013113D7 pop rcx $013113D8 call (?DO) offset NEAR $013113E2 nop $013113E3 lea rax, [rax 0 +] qword $013113E8 push [rbx] qword $013113EA fild [rsp] qword $013113ED add rsp, 8 b# $013113F1 lea rbx, [rbx 8 +] qword $013113F5 push rbx $013113F6 fxch ST(1) $013113F8 fcomi ST(1) $013113FA fcmovb ST(1) $013113FC fstp ST(1) $013113FE pop rbx $013113FF add [rbp 0 +] qword, 1 b# $01311404 add [rbp 8 +] qword, 1 b# $01311409 jno $013113E8 offset NEAR $0131140F add rbp, #24 b# $01311413 sub rsp, 8 b# $01311417 fisttp [rsp] qword $0131141A mov rbx, [rsp] qword $0131141E ; FORTH> ' sum-min-max5 idis $01311480 : [trashed] $0131148A pop rbx $0131148B pop rdi $0131148C lea rbp, [rbp -8 +] qword $01311490 mov [rbp 0 +] qword, rdi $01311494 lea rbp, [rbp -8 +] qword $01311498 mov [rbp 0 +] qword, rbx $0131149C push 0 b# $0131149E push rdi $0131149F push rbx $013114A0 xor rbx, rbx $013114A3 pop rcx $013114A4 call (?DO) offset NEAR $013114AE nop $013114AF nop $013114B0 pop rdi $013114B1 add rdi, [rbx] qword $013114B4 push rdi $013114B5 lea rbx, [rbx 8 +] qword $013114B9 add [rbp 0 +] qword, 1 b# $013114BE add [rbp 8 +] qword, 1 b# $013114C3 jno $013114B0 offset NEAR $013114C9 add rbp, #24 b# $013114CD mov rbx, [rbp 8 +] qword $013114D1 mov rdi, [rbp 0 +] qword $013114D5 mov r8, $7FFFFFFF:FFFFFFFF q# $013114DF push r8 $013114E1 push rbx $013114E2 push rdi $013114E3 xor rbx, rbx $013114E6 pop rcx $013114E7 call (?DO) offset NEAR $013114F1 lea rax, [rax 0 +] qword $013114F8 pop rdi $013114F9 lea rax, [rbx 8 +] qword $013114FD push rax $013114FE push [rbx] qword $01311500 mov rbx, rdi $01311503 pop rcx $01311504 cmp rbx, rcx $01311507 cmovg rbx, rcx $0131150B pop rdi $0131150C mov rcx, rbx $0131150F mov rbx, rdi $01311512 push rcx $01311513 add [rbp 0 +] qword, 1 b# $01311518 add [rbp 8 +] qword, 1 b# $0131151D jno $013114F8 offset NEAR $01311523 add rbp, #24 b# $01311527 mov rbx, [rbp 0 +] qword $0131152B lea rbp, [rbp 8 +] qword $0131152F mov rdi, [rbp 0 +] qword $01311533 lea rbp, [rbp 8 +] qword $01311537 mov r8, $80000000:00000000 q# $01311541 push r8 $01311543 push rdi $01311544 push rbx $01311545 xor rbx, rbx $01311548 pop rcx $01311549 call (?DO) offset NEAR $01311553 lea rax, [rax 0 +] qword $01311558 pop rdi $01311559 lea rax, [rbx 8 +] qword $0131155D push rax $0131155E push [rbx] qword $01311560 mov rbx, rdi $01311563 pop rcx $01311564 cmp rbx, rcx $01311567 cmovl rbx, rcx $0131156B pop rdi $0131156C mov rcx, rbx $0131156F mov rbx, rdi $01311572 push rcx $01311573 add [rbp 0 +] qword, 1 b# $01311578 add [rbp 8 +] qword, 1 b# $0131157D jno $01311558 offset NEAR $01311583 add rbp, #24 b# $01311587 ; *) ENDDOC
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-24 07:01 -0700
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-24 07:50 -0700
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-08-24 08:04 -0700
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-24 08:59 -0700
Re: A Minimal Extended Control Wordset coos haak <chforth@hccnet.nl> - 2011-08-24 20:00 +0200
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-24 14:03 -0700
Re: A Minimal Extended Control Wordset coos haak <chforth@hccnet.nl> - 2011-08-26 20:36 +0200
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-24 07:54 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-12 09:43 -0700
Re: A Minimal Extended Control Wordset "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-24 18:52 -0400
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-25 06:52 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-26 12:23 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-25 21:03 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-26 20:02 +1000
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-26 04:36 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-26 10:42 -0700
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-27 14:45 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-27 17:13 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-26 10:16 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-25 09:46 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-25 20:54 -0700
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-26 10:24 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-26 11:04 -0700
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-08-31 04:14 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-31 15:25 -0700
Re: A Minimal Extended Control Wordset JennyB <jennybrien@googlemail.com> - 2011-09-01 04:00 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-01 12:47 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-27 13:18 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-27 04:41 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-28 13:28 +1000
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-08-27 18:32 -1000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-29 12:32 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-28 09:22 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-29 12:30 +1000
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-08-28 18:17 -1000
return address manipulation (was: A Minimal Extended Control Wordset) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-08-29 09:14 +0000
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-08-29 05:53 -0500
Re: return address manipulation anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-08-29 11:45 +0000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-30 14:08 +1000
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-08-29 18:28 -1000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-31 13:52 +1000
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-08-30 21:42 -1000
Re: A Minimal Extended Control Wordset Paul Rubin <no.email@nospam.invalid> - 2011-08-31 00:47 -0700
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-08-30 21:55 -1000
Re: A Minimal Extended Control Wordset Paul Rubin <no.email@nospam.invalid> - 2011-09-01 00:44 -0700
Re: A Minimal Extended Control Wordset Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-01 03:37 -0500
Re: A Minimal Extended Control Wordset Paul Rubin <no.email@nospam.invalid> - 2011-09-01 02:19 -0700
Re: A Minimal Extended Control Wordset Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-01 05:05 -0500
min-max-sum (was: A Minimal Extended Control Wordset) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-09-01 14:32 +0000
Re: min-max-sum Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-01 10:43 -0500
Re: min-max-sum anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-09-01 15:59 +0000
Re: min-max-sum BruceMcF <agila61@netscape.net> - 2011-09-01 13:13 -0700
Re: min-max-sum Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-02 04:12 -0500
Re: min-max-sum Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-02 04:31 -0500
Re: min-max-sum anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-09-02 10:41 +0000
Re: min-max-sum Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-02 06:31 -0500
Re: min-max-sum anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-09-04 13:18 +0000
Re: min-max-sum mhx@iae.nl (Marcel Hendrix) - 2011-09-04 22:42 +0200
Re: min-max-sum anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-09-05 08:16 +0000
Re: min-max-sum Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-05 02:58 -0500
Re: min-max-sum BruceMcF <agila61@netscape.net> - 2011-09-02 08:43 -0700
Re: min-max-sum coos haak <chforth@hccnet.nl> - 2011-09-02 20:35 +0200
Re: min-max-sum BruceMcF <agila61@netscape.net> - 2011-09-03 11:48 -0700
Re: min-max-sum BruceMcF <agila61@netscape.net> - 2011-09-04 18:31 -0700
Re: min-max-sum Alex McDonald <blog@rivadpm.com> - 2011-09-02 05:37 -0700
Re: min-max-sum mhx@iae.nl (Marcel Hendrix) - 2011-09-03 12:06 +0200
Re: A Minimal Extended Control Wordset Paul Rubin <no.email@nospam.invalid> - 2011-09-04 22:07 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-04 22:56 -0700
Re: A Minimal Extended Control Wordset C G Montgomery <cgm@physics.utoledo.edu> - 2011-09-05 17:44 -0400
Re: A Minimal Extended Control Wordset Paul Rubin <no.email@nospam.invalid> - 2011-09-05 18:10 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-01 11:01 -0700
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-09-01 09:17 -1000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-01 13:39 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-01 10:21 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-05 12:24 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-04 21:11 -0700
Re: A Minimal Extended Control Wordset Albert van der Horst <albert@spenarnc.xs4all.nl> - 2011-09-06 18:13 +0000
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-06 12:15 -0700
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-09-06 09:53 -1000
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-06 14:18 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-06 17:32 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-07 19:43 +1000
Re: A Minimal Extended Control Wordset Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-07 06:02 -0500
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-07 05:41 -0700
Re: A Minimal Extended Control Wordset anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-09-07 16:00 +0000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-09 08:52 +1000
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-08 16:08 -0700
Re: A Minimal Extended Control Wordset George Hubert <georgeahubert@yahoo.co.uk> - 2011-09-09 04:12 -0700
Re: A Minimal Extended Control Wordset Albert van der Horst <albert@spenarnc.xs4all.nl> - 2011-09-10 09:09 +0000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-11 18:29 +1000
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-11 09:04 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-15 19:25 +1000
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-15 03:30 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-18 15:43 +1000
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-09-17 20:42 -1000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-19 05:14 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-18 19:31 -0700
Re: A Minimal Extended Control Wordset Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-18 01:49 -0500
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-09-08 14:56 -1000
Re: A Minimal Extended Control Wordset anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-09-09 08:20 +0000
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-11 16:22 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-11 03:06 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-08 19:29 -0700
Re: A Minimal Extended Control Wordset Brad <hwfwguy@gmail.com> - 2011-09-08 08:58 -0700
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-08 10:00 -0700
Re: A Minimal Extended Control Wordset coos haak <chforth@hccnet.nl> - 2011-09-08 22:00 +0200
Re: A Minimal Extended Control Wordset Alex McDonald <blog@rivadpm.com> - 2011-09-08 16:02 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-09 09:16 +1000
Re: A Minimal Extended Control Wordset "Elizabeth D. Rather" <erather@forth.com> - 2011-09-08 15:04 -1000
Re: A Minimal Extended Control Wordset Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-09-09 04:13 -0500
Re: A Minimal Extended Control Wordset Brad <hwfwguy@gmail.com> - 2011-08-31 09:20 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-28 21:31 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-08-31 13:53 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-08-31 04:11 -0700
Re: A Minimal Extended Control Wordset "Ed" <nospam@invalid.com> - 2011-09-01 14:47 +1000
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-01 10:32 -0700
Re: A Minimal Extended Control Wordset BruceMcF <agila61@netscape.net> - 2011-09-01 10:33 -0700
csiph-web