[ENH] EnumerationAdapting

Richard A. O'Keefe ok at cs.otago.ac.nz
Fri Apr 19 02:33:40 UTC 2002


>From the preamble:
Change Set:        EnumerationAdapting
Date:           10 April 2002
Author:         Richard A. O'Keefe

Introduces the class EnumerationAdapter,
which lets you turn any object with a
#do:-like method into something rather like
a Collection, except that it doesn't support
most of the element-wise operations.
Also includes some minor enhancements
and a bug fix.

>From the class comment:

If you have an object which supports a method like #do:  (perhaps with a
different name), but does not support all the iteration methods you
want, you can wrap an EnumerationAdapter around that object and do the
iteration on it instead.

For example, SequenceableCollection has permutationsDo:
but not permutationsCollect:, so you could do

    (EnumerationAdapter on: aSequence selector: #permutationsDo:)
        collect: [:each | each copy]

For another example, with my Dates-raok change set, both Week and Month
support eachDayDo:, so you can ask

    (EnumerationAdapter on: (Date today month) selector: #eachDayDo:)
        select: [:date| date weekday = 'Sunday']

to find which days of the current month are Sundays.  Admittedly the
right way to handle that would be to make a DateInterval subclass of
SequenceableCollection, but still...

More generally, Stream supports #do:, so (EnumerationAdapater on:
aStream) gives you a "single-shot" enumeration.  To iterate again over
the same stream, you will have to send #reset to it (assuming it is some
kind of positionable stream).  Suppose you want to count the number of
lines in some character stream.  You could do

    (EnumerationAdapter on: aStream) occurrencesOf: Character cr

begin 644 EnumerationAdapting.2.cs
M)T9R;VT at 4W%U96%K,RXP(&]F(#0 at 1F5B<G5A<GD@,C`P,2!;;&%T97-T('5P
M9&%T93H@(S,U-3)=(&]N(#$Y($%P<FEL(#(P,#(@870@,CHS-3HP-"!P;2<A
M#2)#:&%N9V4 at 4V5T.@D)16YU;65R871I;VY!9&%P=&EN9PU$871E. at D)"3$P
M($%P<FEL(#(P,#(-075T:&]R. at D)"5)I8VAA<F0 at 02X@3R=+965F90T-26YT
M<F]D=6-E<R!T:&4 at 8VQA<W, at 16YU;65R871I;VY!9&%P=&5R+`UW:&EC:"!L
M971S('EO=2!T=7)N(&%N>2!O8FIE8W0@=VET:"!A#2-D;SHM;&EK92!M971H
M;V0@:6YT;R!S;VUE=&AI;F<@<F%T:&5R(&QI:V4-82!#;VQL96-T:6]N+"!E
M>&-E<'0@=&AA="!I="!D;V5S;B=T('-U<'!O<G0-;6]S="!O9B!T:&4 at 96QE
M;65N="UW:7-E(&]P97)A=&EO;G,N#4%L<V\@:6YC;'5D97,@<V]M92!M:6YO
M<B!E;FAA;F-E;65N=',-86YD(&$@8G5G(&9I>"XB(0T-3V)J96-T('-U8F-L
M87-S.B`C16YU;65R871I;VY!9&%P=&5R#0EI;G-T86YC959A<FEA8FQE3F%M
M97,Z("=C;VQL96-T:6]N('-E;&5C=&]R("<-"6-L87-S5F%R:6%B;&5.86UE
M<SH@)R<-"7!O;VQ$:6-T:6]N87)I97,Z("<G#0EC871E9V]R>3H@)T-O;&QE
M8W1I;VYS+5-E<75E;F-E86)L92<A#0TA16YU;65R871I;VY!9&%P=&5R(&-O
M;6UE;G13=&%M<#H@)W)A;VL at -"\Q.2\R,#`R(#$T.C,P)R!P<FEO<CH@,"$-
M268@>6]U(&AA=F4 at 86X@;V)J96-T('=H:6-H('-U<'!O<G1S(&$@;65T:&]D
M(&QI:V4@(V1O.B`H<&5R:&%P<R!W:71H(&$@9&EF9F5R96YT(&YA;64I+`UB
M=70 at 9&]E<R!N;W0@<W5P<&]R="!A;&P@=&AE(&ET97)A=&EO;B!M971H;V1S
M('EO=2!W86YT+"!Y;W4 at 8V%N('=R87`@86X at 16YU;65R871I;VY!9&%P=&5R
M#6%R;W5N9"!T:&%T(&]B:F5C="!A;F0 at 9&\@=&AE(&ET97)A=&EO;B!O;B!I
M="!I;G-T96%D+ at T-1F]R(&5X86UP;&4L(%-E<75E;F-E86)L94-O;&QE8W1I
M;VX@:&%S('!E<FUU=&%T:6]N<T1O. at UB=70@;F]T('!E<FUU=&%T:6]N<T-O
M;&QE8W0Z+"!S;R!Y;W4 at 8V]U;&0 at 9&\-#0DH16YU;65R871I;VY!9&%P=&5R
M(&]N.B!A4V5Q=65N8V4@<V5L96-T;W(Z("-P97)M=71A=&EO;G-$;SHI#0D)
M8V]L;&5C=#H at 6SIE86-H('P at 96%C:"!C;W!Y70T-1F]R(&%N;W1H97(@97AA
M;7!L92P@=VET:"!M>2!$871E<RUR86]K(&-H86YG92!S970L(&)O=&@@5V5E
M:R!A;F0 at 36]N=&@@<W5P<&]R=`UE86-H1&%Y1&\Z+"!S;R!Y;W4 at 8V%N(&%S
M:PT-"2A%;G5M97)A=&EO;D%D87!T97(@;VXZ("A$871E('1O9&%Y(&UO;G1H
M*2!S96QE8W1O<CH@(V5A8VA$87E$;SHI#0D)<V5L96-T.B!;.F1A=&5\(&1A
M=&4@=V5E:V1A>2`]("=3=6YD87DG70T-=&\@9FEN9"!W:&EC:"!D87ES(&]F
M('1H92!C=7)R96YT(&UO;G1H(&%R92!3=6YD87ES+B`@061M:71T961L>2!T
M:&4@<FEG:'0@=V%Y('1O(&AA;F1L90UT:&%T('=O=6QD(&)E('1O(&UA:V4@
M82!$871E26YT97)V86P@<W5B8VQA<W,@;V8 at 4V5Q=65N8V5A8FQE0V]L;&5C
M=&EO;BP at 8G5T('-T:6QL+BXN#0U-;W)E(&=E;F5R86QL>2P at 4W1R96%M('-U
M<'!O<G1S("-D;SHL('-O("A%;G5M97)A=&EO;D%D87!A=&5R(&]N.B!A4W1R
M96%M*2!G:79E<R!Y;W4 at 80TB<VEN9VQE+7-H;W0B(&5N=6UE<F%T:6]N+B`@
M5&\@:71E<F%T92!A9V%I;B!O=F5R('1H92!S86UE('-T<F5A;2P@>6]U('=I
M;&P@:&%V92!T;R!S96YD#2-R97-E="!T;R!I="`H87-S=6UI;F<@:70@:7,@
M<V]M92!K:6YD(&]F('!O<VET:6]N86)L92!S=')E86TI+B`@4W5P<&]S92!Y
M;W4@=V%N="!T;R!C;W5N=`UT:&4@;G5M8F5R(&]F(&QI;F5S(&EN('-O;64@
M8VAA<F%C=&5R('-T<F5A;2X@(%EO=2!C;W5L9"!D;PT-"2A%;G5M97)A=&EO
M;D%D87!T97(@;VXZ(&%3=')E86TI(&]C8W5R<F5N8V5S3V8Z($-H87)A8W1E
M<B!C<B$-#0TA0V]L;&5C=&EO;B!M971H;V1S1F]R.B`G8V]N=F5R=&EN9R<@
M<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HS,"<A#6%S4V]R=&5D07)R87DZ
M('-O<G1";&]C:PT)(E)E='5R;B!A(&-O<'D@;V8@=&AE(')E8V5I=F5R(&EN
M('-O<G1E9"!O<F1E<B!A8V-O<F1I;F<@=&\@<V]R=$)L;V-K+"!A<R!A;B!!
M<G)A>2(-#0E>*'-E;&8 at 87-3;W)T961#;VQL96-T:6]N.B!S;W)T0FQO8VLI
M(&%S07)R87DA("$-#2%#;VQL96-T:6]N(&UE=&AO9'-&;W(Z("=E;G5M97)A
M=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HR,"<A#6YO;F53871I
M<V9Y.B!A0FQO8VL-"2)%=F%L=6%T92!A0FQO8VL@=VET:"!T:&4 at 96QE;65N
M=',@;V8@=&AE(')E8V5I=F5R+ at T)268 at 84)L;V-K(')E='5R;G, at 9F%L<V4@
M9F]R(&%L;"!E;&5M96YT<R!R971U<FX@=')U92X-"4]T:&5R=VES92!R971U
M<FX at 9F%L<V4B#0T)<V5L9B!D;SH at 6SII=&5M('P@*&%";&]C:R!V86QU93H@
M:71E;2D@:694<G5E.B!;7B!F86QS95U=+ at T)7G1R=64A("$-#2%#;VQL96-T
M:6]N(&UE=&AO9'-&;W(Z("=T97-T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R
M,#`R(#$U.C4S)R$-:61E;G1I='E/8V-U<G)E;F-E<T]F.B!A;D]B:F5C="`-
M"2)!;G-W97(@:&]W(&UA;GD@;V8@=&AE(')E8V5I=F5R)W, at 96QE;65N=',@
M87)E(&ED96YT:6-A;"!T;R!A;D]B:F5C="XB#0T)?"!T86QL>2!\#0ET86QL
M>2!?(#`N#0ES96QF(&1O.B!;.F5A8V@@?"!A;D]B:F5C="`]/2!E86-H(&EF
M5')U93H at 6W1A;&QY(%\@=&%L;'D@*R`Q75TN#0E>=&%L;'DA("$-#0TA16YU
M;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=P<FEV871E)R!S=&%M<#H@
M)W)A;VL at -"\Q,"\R,#`R(#$T.C4R)R$-8V]L;&5C=&EO;CH at 84-O;&QE8W1I
M;VX-"6-O;&QE8W1I;VX at 7R!A0V]L;&5C=&EO;B$@(0T-(45N=6UE<F%T:6]N
M061A<'1E<B!M971H;V1S1F]R.B`G<')I=F%T92<@<W1A;7`Z("=R86]K(#0O
M,3`O,C`P,B`Q-3HS-"<A#65R<F]R16UP='E#;VQL96-T:6]N#0ES96QF(&5R
M<F]R.B`G=&AI<R!C;VQL96-T:6]N(&ES(&5M<'1Y)R$@(0T-(45N=6UE<F%T
M:6]N061A<'1E<B!M971H;V1S1F]R.B`G<')I=F%T92<@<W1A;7`Z("=R86]K
M(#0O,3`O,C`P,B`Q-3HT,B<A#65R<F]R3F]T1F]U;F0Z(&%N3V)J96-T#0ES
M96QF(&5R<F]R.B`G3V)J96-T(&YO="!F;W5N9"`H;W(@;F]T(&EN('5S86)L
M92!P;&%C92DG(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z
M("=A8V-E<W-I;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z-#4G(0UA
M9G1E<CH@=&%R9V5T(`T)7G-E;&8 at 869T97(Z('1A<F=E="!I9D%B<V5N=#H@
M6W-E;&8 at 97)R;W).;W1&;W5N9#H@=&%R9V5T72$@(0T-(45N=6UE<F%T:6]N
M061A<'1E<B!M971H;V1S1F]R.B`G86-C97-S:6YG)R!S=&%M<#H@)W)A;VL@
M-"\Q,"\R,#`R(#$U.C0T)R$-869T97(Z('1A<F=E="!I9D%B<V5N=#H at 97AC
M97!T:6]N0FQO8VL-"7QW86YT961\#0EW86YT960 at 7R!F86QS92X-"7-E;&8@
M9&\Z(%LZ96%C:'P-"0EW86YT960@:694<G5E.B!;7F5A8VA=+ at T)"7=A;G1E
M9"!?(&5A8V@@/2!T87)G971=+ at T)7F5X8V5P=&EO;D)L;V-K('9A;'5E(2`A
M#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=A8V-E<W-I;F<G
M('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z,S0G(0UA;GE/;F4-"7-E;&8@
M9&\Z(%LZ96%C:"!\(%YE86-H72X-"7-E;&8 at 97)R;W)%;7!T>4-O;&QE8W1I
M;VX-(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=A8V-E
M<W-I;F<G('-T86UP.B`G<F%O:R`T+S$Y+S(P,#(@,30Z,3,G(0UA=#H@:6YD
M97 at -"7QN?`T):6YD97@@/CT@,2!I9E1R=64Z(%L-"0EN(%\@,2X-"0ES96QF
M(&1O.B!;.F5A8V@@?`T)"0EN(#T@:6YD97@@:694<G5E.B!;7F5A8VA=+ at T)
M"0EN(%\@;B`K(#%=+ at T)72X-"7-E;&8 at 97)R;W(Z("=A='1E;7!T('1O(&EN
M9&5X(&YO;BUE>&ES=&5N="!E;&5M96YT(&EN(&%N($5N=6UE<F%T:6]N($%D
M87!T97(G(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=A
M8V-E<W-I;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z-#,G(0UB969O
M<F4Z('1A<F=E=`T)7G-E;&8 at 8F5F;W)E.B!T87)G970@:69!8G-E;G0Z(%MS
M96QF(&5R<F]R3F]T1F]U;F0Z('1A<F=E=%TA("$-#2%%;G5M97)A=&EO;D%D
M87!T97(@;65T:&]D<T9O<CH@)V%C8V5S<VEN9R<@<W1A;7`Z("=R86]K(#0O
M,3`O,C`P,B`Q-3HT,2<A#6)E9F]R93H@=&%R9V5T(&EF06)S96YT.B!E>&-E
M<'1I;VY";&]C:PT)?'-T87)T960@;&%S='P-"7-T87)T960 at 7R!F86QS92X-
M"7-E;&8 at 9&\Z(%LZ96%C:'P-"0DH96%C:"`]('1A<F=E="!A;F0Z(%MS=&%R
M=&5D72D@:694<G5E.B!;7FQA<W1=+ at T)"6QA<W0 at 7R!E86-H+ at T)"7-T87)T
M960 at 7R!T<G5E72X-"5YE>&-E<'1I;VY";&]C:R!V86QU92$@(0T-(45N=6UE
M<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G86-C97-S:6YG)R!S=&%M<#H@
M)W)A;VL at -"\Q,"\R,#`R(#$T.C4S)R$-<V5L96-T;W(Z(&%396QE8W1O<@T)
M<V5L96-T;W(@7R!A4V5L96-T;W(A("$-#2%%;G5M97)A=&EO;D%D87!T97(@
M;65T:&]D<T9O<CH@)V%C8V5S<VEN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P
M,B`Q-3HS-B<A#7-I>F4-"2).;W1E('1H870@:68@:71E<F%T:6]N(&AA<R!S
M:61E(&5F9F5C=',L('1H:7,@;6EG:'0@;F]T(&=I=F4@=&AE('-A;64 at 86YS
M=V5R#0D@='=I8V4@<G5N;FEN9RXB#0E\<GP-"7(@7R`P+ at T)<V5L9B!D;SH@
M6SIE86-H('P@<B!?('(@*R`Q72X-"5YR(2`A#0TA16YU;65R871I;VY!9&%P
M=&5R(&UE=&AO9'-&;W(Z("=T97-T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R
M,#`R(#$U.C4Q)R$-:61E;G1I='E);F-L=61E<SH@=&%R9V5T#0ES96QF(&1O
M.B!;.F5A8VA\(&5A8V@@/3T@=&%R9V5T(&EF5')U93H at 6UYT<G5E75TN#0E>
M9F%L<V4A("$-#2%%;G5M97)A=&EO;D%D87!T97(@;65T:&]D<T9O<CH@)W1E
M<W1I;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z-3,G(0UI9&5N=&ET
M>4]C8W5R<F5N8V5S3V8Z('1A<F=E=`T)?')\#0ER(%\@,"X-"7-E;&8 at 9&\Z
M(%LZ96%C:'P at 96%C:"`]/2!T87)G970@:694<G5E.B!;<B!?('(@*R`Q75TN
M#0E><B$@(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G=&5S
M=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HU,2<A#6EN8VQU9&5S
M.B!T87)G970-"7-E;&8 at 9&\Z(%LZ96%C:'P at 96%C:"`]('1A<F=E="!I9E1R
M=64Z(%M>=')U95U=+ at T)7F9A;'-E(2`A#0TA16YU;65R871I;VY!9&%P=&5R
M(&UE=&AO9'-&;W(Z("=T97-T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R
M(#$U.C4P)R$-:7-%;7!T>0T)<V5L9B!D;SH at 6SIE86-H('P at 7F9A;'-E72X-
M"5YT<G5E(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=T
M97-T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R(#$U.C4S)R$-;F]T16UP
M='D-"7-E;&8 at 9&\Z(%LZ96%C:"!\(%YT<G5E72X-"5YF86QS92$@(0T-(45N
M=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G=&5S=&EN9R<@<W1A;7`Z
M("=R86]K(#0O,3`O,C`P,B`Q-3HU,B<A#6]C8W5R<F5N8V5S3V8Z('1A<F=E
M=`T)?')\#0ER(%\@,"X-"7-E;&8 at 9&\Z(%LZ96%C:'P at 96%C:"`]('1A<F=E
M="!I9E1R=64Z(%MR(%\@<B`K(#%=72X-"5YR(2`A#0TA16YU;65R871I;VY!
M9&%P=&5R(&UE=&AO9'-&;W(Z("=T97-T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q
M,"\R,#`R(#$U.C`S)R$-<W!E8VEE<PT)(E1H92!S<&5C:65S(&]F($5N=6UE
M<F%T:6]N061A<'1E<B!C86YN;W0 at 8F4@16YU;65R871I;VY!9&%P=&5R+"!A
M;F0@:70 at 8V%N)W0 at 8F4@07)R87D-("`@("`@8F5C875S92!W92!U<W5A;&QY
M(&1O;B=T(&MN;W<@:&]W(&)I9R!T:&4@<F5S=6QT('=I;&P at 8F4N("!3;R!W
M92!M86ME(&ET#2`@("`@($]R9&5R961#;VQL96-T:6]N+B(-"5Y/<F1E<F5D
M0V]L;&5C=&EO;B$@(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R
M.B`G8V]N=F5R=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HR-"<A
M#6%S07)R87D-"5YS96QF(&%S3W)D97)E9$-O;&QE8W1I;VX at 87-!<G)A>2$@
M(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G8V]N=F5R=&EN
M9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HR-B<A#6%S0F%G#0E><V5L
M9B!A<T]R9&5R961#;VQL96-T:6]N(&%S0F%G(2`A#0TA16YU;65R871I;VY!
M9&%P=&5R(&UE=&AO9'-&;W(Z("=C;VYV97)T:6YG)R!S=&%M<#H@)W)A;VL@
M-"\Q,"\R,#`R(#$U.C(W)R$-87-)9&5N=&ET>5-E=`T)?')\#0ER(%\@261E
M;G1I='E3970@;F5W+ at T)<V5L9B!D;SH at 6SIE86-H?"!R(&%D9#H at 96%C:%TN
M#0E><@TA("$-#2%%;G5M97)A=&EO;D%D87!T97(@;65T:&]D<T9O<CH@)V-O
M;G9E<G1I;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z,C0G(0UA<T]R
M9&5R961#;VQL96-T:6]N#0E\<GP-"7(@7R!/<F1E<F5D0V]L;&5C=&EO;B!N
M97<N#0ES96QF(&1O.B!;.F5A8VA\('(@861D.B!E86-H72X-"5YR(2`A#0TA
M16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=C;VYV97)T:6YG)R!S
M=&%M<#H@)W)A;VL at -"\Q,"\R,#`R(#$U.C(W)R$-87-3970-"7QR?`T)<B!?
M(%-E="!N97<N#0ES96QF(&1O.B!;.F5A8VA\('(@861D.B!E86-H72X-"5YR
M#2$@(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G8V]N=F5R
M=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HR.2<A#6%S4V]R=&5D
M07)R87D-"5YS96QF(&%S3W)D97)E9$-O;&QE8W1I;VX at 87-3;W)T961!<G)A
M>2$@(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G8V]N=F5R
M=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HS,"<A#6%S4V]R=&5D
M07)R87DZ('-O<G1";&]C:PT)7G-E;&8 at 87-/<F1E<F5D0V]L;&5C=&EO;B!A
M<U-O<G1E9$%R<F%Y.B!S;W)T0FQO8VLA("$-#2%%;G5M97)A=&EO;D%D87!T
M97(@;65T:&]D<T9O<CH@)V-O;G9E<G1I;F<G('-T86UP.B`G<F%O:R`T+S$P
M+S(P,#(@,34Z,CDG(0UA<U-O<G1E9$-O;&QE8W1I;VX-"5YS96QF(&%S3W)D
M97)E9$-O;&QE8W1I;VX at 87-3;W)T961#;VQL96-T:6]N(2`A#0TA16YU;65R
M871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=C;VYV97)T:6YG)R!S=&%M<#H@
M)W)A;VL at -"\Q,"\R,#`R(#$U.C,P)R$-87-3;W)T961#;VQL96-T:6]N.B!S
M;W)T0FQO8VL-"5YS96QF(&%S3W)D97)E9$-O;&QE8W1I;VX at 87-3;W)T961#
M;VQL96-T:6]N.B!S;W)T0FQO8VLA("$-#2%%;G5M97)A=&EO;D%D87!T97(@
M;65T:&]D<T9O<CH@)V5N=6UE<F%T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R
M,#`R(#$T.C4X)R$-86QL4V%T:7-F>3H at 84)L;V-K#0ES96QF(&1O.B!;.F5A
M8V@@?"`H84)L;V-K('9A;'5E.B!E86-H*2!I9D9A;'-E.B!;7F9A;'-E75TN
M#0E>=')U92$@(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G
M96YU;65R871I;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,30Z-3DG(0UA
M;GES871I<V9Y.B!A0FQO8VL-"7-E;&8 at 9&\Z(%LZ96%C:"!\("AA0FQO8VL@
M=F%L=64Z(&5A8V at I(&EF5')U93H at 6UYT<G5E75TN#0E>9F%L<V4A("$-#2%%
M;G5M97)A=&EO;D%D87!T97(@;65T:&]D<T9O<CH@)V5N=6UE<F%T:6YG)R!S
M=&%M<#H@)W)A;VL at -"\Q,"\R,#`R(#$U.C`T)R$-8V]L;&5C=#H at 84)L;V-K
M(`T)?')\#0ER(%\@3W)D97)E9$-O;&QE8W1I;VX@;F5W+ at T)<V5L9B!D;SH@
M6SIE86-H('P@<B!A9&0Z("AA0FQO8VL@=F%L=64Z(&5A8V at I72X-"5YR(2`A
M#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=E;G5M97)A=&EN
M9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HP-B<A#6-O;&QE8W0Z(&-O
M;&QE8W1";&]C:R!T:&5N4V5L96-T.B!S96QE8W1";&]C:R`-"7QR(&-\#0ER
M(%\@3W)D97)E9$-O;&QE8W1I;VX@;F5W+ at T)<V5L9B!D;SH at 6SIE86-H('P-
M"0EC(%\@8V]L;&5C=$)L;V-K('9A;'5E.B!E86-H+ at T)"2AS96QE8W1";&]C
M:R!V86QU93H at 8RD@:694<G5E.B!;<B!A9&0Z(&-=72X-"5YR(2`A#0TA16YU
M;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=E;G5M97)A=&EN9R<@<W1A
M;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HP-B<A#6-O=6YT.B!A0FQO8VL@#0E\
M('-U;2!\#0ES=6T at 7R`P+ at T)<V5L9B!D;SH at 6SIE86-H('P@*&%";&]C:R!V
M86QU93H at 96%C:"D@:694<G5E.B!;<W5M(%\@<W5M("L@,5U=+ at T)7G-U;2$@
M(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G96YU;65R871I
M;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z,#<G(0UD971E8W0Z(&%"
M;&]C:R`-"5YS96QF(&1E=&5C=#H at 84)L;V-K(&EF3F]N93H at 6W-E;&8 at 97)R
M;W).;W1&;W5N9#H at 84)L;V-K72$@(0T-(45N=6UE<F%T:6]N061A<'1E<B!M
M971H;V1S1F]R.B`G96YU;65R871I;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P
M,#(@,34Z,#<G(0UD971E8W0Z(&%";&]C:R!I9DYO;F4Z(&5X8V5P=&EO;D)L
M;V-K(`T)<V5L9B!D;SH at 6SIE86-H('P@*&%";&]C:R!V86QU93H at 96%C:"D@
M:694<G5E.B!;7F5A8VA=72X-"5YE>&-E<'1I;VY";&]C:R!V86QU92$@(0T-
M(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S1F]R.B`G96YU;65R871I;F<G
M('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z,S4G(0UD971E8W1-87 at Z(&%"
M;&]C:PT)?'5N8F5G=6X@;6%X16QE;65N="!M87A686QU92!V86QU97P-"75N
M8F5G=6X at 7R!T<G5E+ at T)<V5L9B!D;SH at 6SIE;&5M96YT?`T)"79A;'5E(%\@
M84)L;V-K('9A;'5E.B!E;&5M96YT+ at T)"2AU;F)E9W5N(&]R.B!;;6%X5F%L
M=64@/"!V86QU95TI(&EF5')U93H at 6PT)"0EM87A%;&5M96YT(%\@96QE;65N
M="X-"0D);6%X5F%L=64 at 7R!V86QU92X-"0D)=6YB96=U;B!?(&9A;'-E75TN
M#0EU;F)E9W5N(&EF5')U93H at 6W-E;&8 at 97)R;W)%;7!T>4-O;&QE8W1I;VY=
M+ at T)7FUA>$5L96UE;G0A("$-#2%%;G5M97)A=&EO;D%D87!T97(@;65T:&]D
M<T9O<CH@)V5N=6UE<F%T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R(#$U
M.C,U)R$-9&5T96-T36EN.B!A0FQO8VL-"7QU;F)E9W5N(&UI;D5L96UE;G0@
M;6EN5F%L=64@=F%L=65\#0EU;F)E9W5N(%\@=')U92X-"7-E;&8 at 9&\Z(%LZ
M96QE;65N='P-"0EV86QU92!?(&%";&]C:R!V86QU93H at 96QE;65N="X-"0DH
M=6YB96=U;B!O<CH at 6W9A;'5E(#P@;6EN5F%L=65=*2!I9E1R=64Z(%L-"0D)
M;6EN16QE;65N="!?(&5L96UE;G0N#0D)"6UI;E9A;'5E(%\@=F%L=64N#0D)
M"75N8F5G=6X at 7R!F86QS95U=+ at T)=6YB96=U;B!I9E1R=64Z(%MS96QF(&5R
M<F]R16UP='E#;VQL96-T:6]N72X-"5YM:6Y%;&5M96YT(2`A#0TA16YU;65R
M871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=E;G5M97)A=&EN9R<@<W1A;7`Z
M("=R86]K(#0O,3`O,C`P,B`Q-3HQ-"<A#61E=&5C=%-U;3H at 84)L;V-K#0E\
M<W5M?`T)<W5M(%\@,"X-"7-E;&8 at 9&\Z(%LZ96%C:'P@<W5M(%\@<W5M("L@
M*&%";&]C:R!V86QU93H at 96%C:"E=+ at T)7G-U;2$@(0T-(45N=6UE<F%T:6]N
M061A<'1E<B!M971H;V1S1F]R.B`G96YU;65R871I;F<G('-T86UP.B`G<F%O
M:R`T+S$P+S(P,#(@,34Z,34G(0UD:69F97)E;F-E.B!A0V]L;&5C=&EO;@T)
M7G-E;&8@<F5J96-T.B!;.F5A8V@@?"!A0V]L;&5C=&EO;B!I;F-L=61E<SH@
M96%C:%TA("$-#2%%;G5M97)A=&EO;D%D87!T97(@;65T:&]D<T9O<CH@)V5N
M=6UE<F%T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R(#$T.C4W)R$-9&\Z
M(&%";&]C:PT)8V]L;&5C=&EO;B!P97)F;W)M.B!S96QE8W1O<B!W:71H.B!A
M0FQO8VL@(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=E
M;G5M97)A=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HQ-B<A#61O
M.B!E;&5M96YT0FQO8VL@<V5P87)A=&5D0GDZ('-E<&%R871O<D)L;V-K#0E\
M=6YB96=U;GP-"75N8F5G=6X at 7R!T<G5E+ at T)<V5L9B!D;SH at 6SIE86-H('P-
M"0EU;F)E9W5N(&EF1F%L<V4Z(%MS97!A<F%T;W)";&]C:R!V86QU95T@:694
M<G5E.B!;=6YB96=U;B!?(&9A;'-E72X-"0EE;&5M96YT0FQO8VL@=F%L=64Z
M(&5A8VA=(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=E
M;G5M97)A=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HQ-R<A#61O
M.B!A0FQO8VL@=VET:&]U=#H at 86Y)=&5M(`T)7G-E;&8 at 9&\Z(%LZ96%C:"!\
M(&%N271E;2`](&5A8V@@:69&86QS93H at 6V%";&]C:R!V86QU93H at 96%C:%U=
M(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=E;G5M97)A
M=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O,C`P,B`Q-3HQ."<A#6EN:F5C=#H@
M:6YI=&EA;"!I;G1O.B!B:6YA<GE";&]C:R`-"7QR?`T)<B!?(&EN:71I86PN
M#0ES96QF(&1O.B!;.F5A8V@@?"!R(%\@8FEN87)Y0FQO8VL@=F%L=64Z('(@
M=F%L=64Z(&5A8VA=+ at T)7G(A("$-#2%%;G5M97)A=&EO;D%D87!T97(@;65T
M:&]D<T9O<CH@)V5N=6UE<F%T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R
M(#$U.C$Y)R$-:6YT97)S96-T:6]N.B!A0V]L;&5C=&EO;@T)7G-E;&8@<V5L
M96-T.B!;.F5A8V@@?"!A0V]L;&5C=&EO;B!I;F-L=61E<SH at 96%C:%TA("$-
M#2%%;G5M97)A=&EO;D%D87!T97(@;65T:&]D<T9O<CH@)V5N=6UE<F%T:6YG
M)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R(#$U.C(Q)R$-<F5J96-T.B!A0FQO
M8VL@#0E\<GP-"7(@7R!/<F1E<F5D0V]L;&5C=&EO;B!N97<N#0ES96QF(&1O
M.B!;.F5A8V@@?"`H84)L;V-K('9A;'5E.B!E86-H*2!I9D9A;'-E.B!;<B!A
M9&0Z(&5A8VA=72X-"5YR(2`A#0TA16YU;65R871I;VY!9&%P=&5R(&UE=&AO
M9'-&;W(Z("=E;G5M97)A=&EN9R<@<W1A;7`Z("=R86]K(#0O,3DO,C`P,B`Q
M-#HR,B<A#7)E:F5C=%1H96Y#;W!Y.B!A0FQO8VL@#0DB4V]M92!I=&5R871I
M;VX@;65T:&]D<R`H<W5C:"!A<R!P97)M=71A=&EO;G-$;SHI(&UA:V4 at 82!S
M:6YG;&4@;V)J96-T(&%N9"!R97!E871E9&QY#0EM;V1I9GD@:70N("!4:&ES
M(&ES(&]F=&5N(&$@=F5R>2!G;V]D('1H:6YG('1O(&1O+B`@0G5T(&EF('EO
M=2!W86YT('1H92!R97-U;'1S('1O(&%C=`T);&EK92!V86QU97,L('-O('1H
M870@>6]U(&-A;B!C;VQL96-T("=T:&5M)R`H<F%T:&5R('1H86X@;75L=&EP
M;&4 at 8V]P:65S(&]F("=I="<I+"!Y;W4-"7=A;G0@=&AI<R!M971H;V0@;W(@
M(W-E;&5C=%1H96Y#;W!Y.BXB#0E\<GP-"7(@7R!/<F1E<F5D0V]L;&5C=&EO
M;B!N97<N#0ES96QF(&1O.B!;.F5A8V@@?"`H84)L;V-K('9A;'5E.B!E86-H
M*2!I9D9A;'-E.B!;<B!A9&0Z(&5A8V@@8V]P>5U=+ at T)7G(A("$-#2%%;G5M
M97)A=&EO;D%D87!T97(@;65T:&]D<T9O<CH@)V5N=6UE<F%T:6YG)R!S=&%M
M<#H@)W)A;VL at -"\Q,"\R,#`R(#$U.C(Q)R$-<V5L96-T.B!A0FQO8VL@#0E\
M<GP-"7(@7R!/<F1E<F5D0V]L;&5C=&EO;B!N97<N#0ES96QF(&1O.B!;.F5A
M8V@@?"`H84)L;V-K('9A;'5E.B!E86-H*2!I9E1R=64Z(%MR(&%D9#H at 96%C
M:%U=+ at T)7G(A("$-#2%%;G5M97)A=&EO;D%D87!T97(@;65T:&]D<T9O<CH@
M)V5N=6UE<F%T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R(#$U.C(R)R$-
M<V5L96-T.B!S96QE8W1";&]C:R!T:&5N0V]L;&5C=#H at 8V]L;&5C=$)L;V-K
M#0E\<GP-"7(@7R!/<F1E<F5D0V]L;&5C=&EO;B!N97<N#0ES96QF(&1O.B!;
M.F5A8VA\#0D)*'-E;&5C=$)L;V-K('9A;'5E.B!E86-H*2!I9E1R=64Z(%MR
M(&%D9#H@*&-O;&QE8W1";&]C:R!V86QU93H at 96%C:"E=72X-"5YR(2`A#0TA
M16YU;65R871I;VY!9&%P=&5R(&UE=&AO9'-&;W(Z("=E;G5M97)A=&EN9R<@
M<W1A;7`Z("=R86]K(#0O,3DO,C`P,B`Q-#HR,2<A#7-E;&5C=%1H96Y#;W!Y
M.B!A0FQO8VL@#0DB4V]M92!I=&5R871I;VX@;65T:&]D<R`H<W5C:"!A<R!P
M97)M=71A=&EO;G-$;SHI(&UA:V4 at 82!S:6YG;&4@;V)J96-T(&%N9"!R97!E
M871E9&QY#0EM;V1I9GD@:70N("!4:&ES(&ES(&]F=&5N(&$@=F5R>2!G;V]D
M('1H:6YG('1O(&1O+B`@0G5T(&EF('EO=2!W86YT('1H92!R97-U;'1S('1O
M(&%C=`T);&EK92!V86QU97,L('-O('1H870@>6]U(&-A;B!C;VQL96-T("=T
M:&5M)R`H<F%T:&5R('1H86X@;75L=&EP;&4 at 8V]P:65S(&]F("=I="<I+"!Y
M;W4-"7=A;G0@=&AI<R!M971H;V0@;W(@(W)E:F5C=%1H96Y#;W!Y.BXB#0E\
M<GP-"7(@7R!/<F1E<F5D0V]L;&5C=&EO;B!N97<N#0ES96QF(&1O.B!;.F5A
M8V@@?"`H84)L;V-K('9A;'5E.B!E86-H*2!I9E1R=64Z(%MR(&%D9#H at 96%C
M:"!C;W!Y75TN#0E><B$@(0T-(45N=6UE<F%T:6]N061A<'1E<B!M971H;V1S
M1F]R.B`G96YU;65R871I;F<G('-T86UP.B`G<F%O:R`T+S$P+S(P,#(@,34Z
M,C,G(0UU;FEO;CH at 84-O;&QE8W1I;VX-"5YS96QF(&%S4V5T(&%D9$%L;#H@
M84-O;&QE8W1I;VX[('EO=7)S96QF(2`A#0TA16YU;65R871I;VY!9&%P=&5R
M(&UE=&AO9'-&;W(Z("=E;G5M97)A=&EN9R<@<W1A;7`Z("=R86]K(#0O,3`O
M,C`P,B`Q-3HT.2<A#7=I=&A);F1E>$-O;&QE8W0Z(&%";&]C:PT)?'(@:7P-
M"7(@7R!/<F1E<F5D0V]L;&5C=&EO;B!N97<N#0EI(%\@,"X-"7-E;&8 at 9&\Z
M(%LZ96%C:'P@:2!?(&D@*R`Q+B!R(&%D9#H@*&%";&]C:R!V86QU93H at 96%C
M:"!V86QU93H@:2E=+ at T)7G(A("$-#2%%;G5M97)A=&EO;D%D87!T97(@;65T
M:&]D<T9O<CH@)V5N=6UE<F%T:6YG)R!S=&%M<#H@)W)A;VL at -"\Q,"\R,#`R
M(#$U.C0Y)R$-=VET:$EN9&5X1&\Z(&%";&]C:PT)?&E\#0EI(%\@,"X-"7-E
M;&8 at 9&\Z(%LZ96%C:'P@:2!?(&D@*R`Q+B!A0FQO8VL@=F%L=64Z(&5A8V@@
M=F%L=64Z(&E=(2`A#0T-(45N=6UE<F%T:6]N061A<'1E<B!C;&%S<R!M971H
M;V1S1F]R.B`G:6YS=&%N8V4 at 8W)E871I;VXG('-T86UP.B`G<F%O:R`T+S$P
M+S(P,#(@,30Z-34G(0UO;CH at 84-O;&QE8W1I;VX-"5YS96QF(&]N.B!A0V]L
M;&5C=&EO;B!S96QE8W1O<CH@(V1O.B$@(0T-(45N=6UE<F%T:6]N061A<'1E
M<B!C;&%S<R!M971H;V1S1F]R.B`G:6YS=&%N8V4 at 8W)E871I;VXG('-T86UP
M.B`G<F%O:R`T+S$P+S(P,#(@,30Z-30G(0UO;CH at 84-O;&QE8W1I;VX@<V5L
M96-T;W(Z(&%396QE8W1O<@T)7G-E;&8@;F5W(&-O;&QE8W1I;VXZ(&%#;VQL
M96-T:6]N.R!S96QE8W1O<CH at 85-E;&5C=&]R(2`A#0T-(5-E<75E;F-E86)L
M94-O;&QE8W1I;VX@;65T:&]D<T9O<CH@)V5N=6UE<F%T:6YG)R!S=&%M<#H@
M)W)A;VL@,3`O,C8O,C`P,2`Q-3HS."<A#7=I=&@Z(&]T:&5R0V]L;&5C=&EO
M;B!I;FIE8W0Z('1H:7-686QU92!I;G1O.B!T97)N87)Y0FQO8VL-"2)#;VUB
M:6YE<R!W:71H.F1O.B!A;F0@:6YJ96-T.FEN=&\Z(@T)?&YE>'1686QU97P-
M"6YE>'1686QU92!?('1H:7-686QU92X-"3$@=&\Z('-E;&8@<VEZ92!D;SH@
M6SII;F1E>'P-"0EN97AT5F%L=64 at 7R!T97)N87)Y0FQO8VL@=F%L=64Z(&YE
M>'1686QU90T)"0D)"79A;'5E.B`H<V5L9B!A=#H@:6YD97 at I('9A;'5E.B`H
M;W1H97)#;VQL96-T:6]N(&%T.B!I;F1E>"E=+ at T)7FYE>'1686QU90TA("$-
!#71H
`
end



More information about the Squeak-dev mailing list