Stack Threads and Exceptions - stackthread.d - qthread.d

mclysenk at mtu.edu mclysenk at mtu.edu
Sun Apr 2 11:34:36 PDT 2006


Yes, I was forgetting to set the stack top and stack bottom in the FS register.
I have a working windows version, but unfortunately I don't have linux so I
haven't made a linux release.  Here is the source for the windows code that I am
currently using.  As soon as I am done with classes I will attempt to create a
full library based on the concept, with support for linux.

I intend on creating some more basic synchronization structures as well as
splitting up the scheduler to allow for multiple thread sets.

Mik


In article <e0minm$f7n$1 at digitaldaemon.com>, Frank Benoit says...
>
>I am very interested in these stackthreads.
>Did you found a solution for the exception problem?
>Does this work on linux also?
>
>Frank


begin 0644 qthread.d
M+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ#0H@*B!15&AR96%D(&ES(&$@=7-E<FQA;F0L(&QI9VAT=V5I
M9VAT+"!C;V]P97)A=&EV96QY#0H@*B!M=6QT:71H<F5A9&5D('-Y<W1E;2!F
M;W(@1&EG:71A;&UA<G, at 1"X at 451H<F5A9',-"B`J(&%R92!V97)Y(&5F9FEC
M:65N="P@<F5Q=6ER:6YG(&QE<W,@=&EM92!P97(@8V]N=&5X=`T*("H@<W=I
M=&-H('1H86X at 9FEB97)S(&]R(')E86P@=&AR96%D<RX at 451H<F5A9', at 8V%N
M#0H@*B!B92!U<V5D(&%S(&%N(&%L=&5R;F%T:79E('1O('1H92!C;VYC=7)R
M96YT('-T871E(`T*("H@;6%C:&EN92!D97-I9VX@<&%T=&5R;B!S:6YC92!T
M:&5Y(&%R92!S;6%L;"!E;F]U9V at -"B`J('1H870@=&AO=7-A;F1S(&-A;B!B
M92!R=6X at 8V]N8W5R<F5N=&QY+ at T*("H-"B`J(%9E<G-I;VXZ(#`N,#$-"B`J
M($1A=&4Z($1E8V5M8F5R(#,L(#(P,#4-"B`J($%U=&AO<G,Z($UI:V]L82!,
M>7-E;FMO+"!M8VQY<V5N:T!M='4N961U#0H@*B!,:6-E;G-E.B!5<V4 at +R!M
M;V1I9GD at 9G)E96QY+"!J=7-T(&=I=F4 at 8W)E9&ET+ at T*("H at 0V]P>7)I9VAT
M.B!0=6)L:6, at 9&]M86EN+ at T*("H-"B`J($)U9W,Z#0H@*@E0<F]B86)L>2!L
M;W1S+ at T*("H-"B`J($AI<W1O<GDZ#0H@*@EV,"XP,2`M($EN:71I86P@=F5R
M<VEO;BX-"B`J#0H@*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHO#0H-"FUO9'5L92!C;W)E+G%T:')E860[
M#0H-"G!R:79A=&4@:6UP;W)T#0H)<W1D+F=C+`T*"7-T9"YS=&1I;SL-"@T*
M+R\O(%-T86-K('-I>F4@<&%R86UE=&5R<PT*<'5B;&EC(&-O;G-T('-I>F5?
M="!$149!54Q47U-404-+7U-)6D4)/2`P>#$P,#`[#0IP=6)L:6, at 8V]N<W0@
M<VEZ95]T($U)3DE-54U?4U1!0TM?4TE:10D](#(U-CL-"@T*+R\O(%1H92!S
M=&%T=7,@;V8@=&AE('1H<F5A9`T*<'5B;&EC(&5N=6T at 451H<F5A9%-T871U
M<PT*>PT*"5%42%)%041?4D5!1%DL"0DO+R\@5V%I=&EN9R!T;R!B92!E>&5C
M=71E9"X-"@E15$A214%$7U)53DY)3D<L"2\O+R!#=7)R96YT;'D@<G5N;FEN
M9RX-"@E15$A214%$7U-54U!%3D1%1"P)+R\O"5-U<W!E;F1E9"X-"@E15$A2
M14%$7U1%4DU)3D%4140L"2\O+R!#86X@;F\@;&]N9V5R(')U;BP at 9&5A9"X-
M"@E15$A214%$7T),3T-+140L"2\O+R!!('%T:')E860@:7, at 8FQO8VME9`T*
M?0T*#0H-"@T*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ#0H@*B!14V5M87!H;W)E(&ES(&$@<V5M87!H
M;W)E(&EM<&QE;65N=&%T:6]N(&9O<B!15&AR96%D<RX-"B`J($ET(&UA>2!O
M;FQY(&)E('5S960@=VAI;&4@=&AE('-C:&5D=6QE<B!I<R!R=6YN:6YG+ at T*
M("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ+PT*<'5B;&EC(&-L87-S(%%396UA<&AO<F4-"GL-"G!U8FQI
M8SH-"@D-"@DO*BH-"@D@*B!);FET:6%L:7IE('1H92!S96UA<&AO<F4@=&\@
M=&AE('-P96-I9FEE9"!C;W5N="X-"@D@*@T*"2`J(%!A<F%M<SH-"@D@*@EC
M;W5N=%\@/2!4:&4@<V5M87!H;W)E)W, at 8V]U;G1E<B!I;FET:6%L('9A;'5E
M#0H)("HO#0H)=&AI<RAI;G0 at 8V]U;G1?(#T@,2D-"@E[#0H)"6%S<V5R="AC
M;W5N="`^(#`I.PT*"0D-"@D)8V]U;G0@/2!C;W5N=%\[#0H)?0T*"0T*"2\J
M*@T*"2`J(%=A:70@=6YT:6P@=&AE('-E;6%P:&]R92!H87, at 8F5C;VUE(&%C
M=&EV92X-"@D@*B\-"@EV;VED('=A:70H*0T*"7L-"@D)87-S97)T*%%4:')E
M860N9V5T0W5R<F5N="@I("%I<R!N=6QL*3L-"@D)#0H)"7=H:6QE*&-O=6YT
M(#P](#`I#0H)"7L-"@D)"5%4:')E860N9V5T0W5R<F5N="@I+G-T871U<R`]
M(`T*"0D)"5%4:')E8613=&%T=7,N451(4D5!1%]"3$]#2T5$.PT*"0D)451H
M<F5A9"YY:65L9"@I.PT*"0E]#0H)"0T*"0DM+6-O=6YT.PT*"7T-"@D-"@DO
M*BH-"@D@*B!3:6=N86P@=&AE('-E;6%P:&]R92!T;R!A;&QO=R!T:&4@;F5X
M="!W86ET:6YG#0H)("H@=&AR96%D('1O(&5X96-U=&4N#0H)("HO#0H)=F]I
M9"!S:6=N86PH*0T*"7L-"@D)87-S97)T*%%4:')E860N9V5T0W5R<F5N="@I
M("%I<R!N=6QL*3L-"@D)*RMC;W5N=#L-"@E]#0H)#0IP<FEV871E. at T*"2\O
M(%-E;6%P:&]R92=S(&-O=6YT97(-"@EI;G0 at 8V]U;G0[#0I]#0H-"@T*#0HO
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BH-"B`J($$@451H<F5A9"!I<R!A('-I;F=L92!U<V5R(&QE=F5L
M('1H<F5A9"X at 451H<F5A9',-"B`J(&-A;B!B92!T:&]U9VAT(&]F(&%S(')U
M;FYI;F<@=VET:&EN('1H92!M86EN#0H@*B!P<F]G<F%M+B!%86-H(%%4:')E
M860@:&%S(&ET<R!O=VX@<W1A8VL at 86YD#0H@*B!R96=I<W1E<G,N#0H@*@T*
M("H at 5VAE;B!A(%%4:')E860@:7, at 8W)E871E9"!I="!I<R!I;6UE9&EA=&5L
M>2!A9&1E9`T*("H@=&\@=&AE('-C:&5D=6QE<BX at 1G)O;2!T:&5R92P@=&AE
M>2!M87D at 8F4@<W5S<&5N9&5D+`T*("H@<F5S=6UE9"!O<B!K:6QL960N#0H@
M*@T*("H at 451H<F5A9', at 87)E('%U975E9"!R;W5N9"UR;V)I;B!S='EL92X@
M($EN(&$@<VEN9VQE(`T*("H@=&EM92US;&EC92!E86-H('1H<F5A9"!I<R!A
M;&QO=V5D('1O(')U;B!U;G1I;"!I=`T*("H@>6EE;&1S+"!T:&5N('1H92!N
M97AT('1H<F5A9"!I<R!R=6X at 86YD('-O(&]N+ at T*("H at 06YY(&YE=VQY(&-R
M96%T960@=&AR96%D<R!A<F4@;F]T(')U;B!U;G1I;"!T:&4@;F5X=`T*("H@
M=&EM92!T:&4@<V-H961U;&5R(&ES(&-A;&QE9"X-"B`J#0H@*B!%>&%M<&QE
M<SH-"B`J("TM+2TM+2TM+2TM+2TM+2TM+2TM+0T*("H)+R]$969I;F4@=&AE
M('1H<F5A9"!F=6YC=&EO;G,-"B`J"79O:60@=&AR96%D,69U;F,H*0T*("H)
M>PT*("H)"7=H:6QE*'1R=64I#0H@*@D)>PT*("H)"0EW<FET969L;B at B5&AR
M96%D(#$@4G5N;FEN9R$B*3L-"B`J"0D)451H<F5A9"YY:65L9"@I.PT*("H)
M"7T-"B`J"7T-"B`J#0H@*@EV;VED('1H<F5A9#)F=6YC*"D-"B`J"7L-"B`J
M"0EW:&EL92AT<G5E*0T*("H)"7L-"B`J"0D)=W)I=&5F;&XH(E1H<F5A9"`R
M(%)U;FYI;F<A(BD[#0H@*@D)"5%4:')E860N>6EE;&0H*3L-"B`J"0E]#0H@
M*@E]#0H@*@T*("H)+R\@0W)E871E('1H92!T:')E861S#0H@*@E15&AR96%D
M('$Q(#T@;F5W(%%4:')E860H)G1H<F5A9#%F=6YC*3L-"B`J"5%4:')E860@
M<3(@/2!N97<@451H<F5A9"@F=&AR96%D,F9U;F,I.PT*("H-"B`J"2\O(%)U
M;B!T:&4@=&AR96%D<PT*("H)=VAI;&4H=')U92D-"B`J"7L-"B`J"0E15&AR
M96%D+G)U;B at I.PT*("H)?0T*("H-"B`J"2\O5VEL;"!P<FEN=#H-"B`J"2\O
M("`@("`@+BXN+ at T*("H)+R\@5&AR96%D(#(@4G5N;FEN9R$-"B`J"2\O(%1H
M<F5A9"`Q(%)U;FYI;F<A#0H@*@DO+R!4:')E860@,B!2=6YN:6YG(0T*("H)
M+R\@5&AR96%D(#$@4G5N;FEN9R$-"B`J"2\O("`@("`@+BXN+ at T*("H-"B`J
M("TM+2TM+2TM+2TM+2TM+2TM+2TM+0T*("HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ+PT*<'5B;&EC(&-L
M87-S(%%4:')E860-"GL-"G!U8FQI8SH-"@D-"B\O+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0T*+R\@4T-(
M14153$52($953D-424].4PT*+R\M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0H)+RHJ#0H)("H at 4G5N<R!A
M('-I;F=L92!15&AR96%D('1I;65S;&EC92X at 06QL('-C:&5D=6QE9`T*"2`J
M('1H<F5A9', at 9V5T(&5X96-U=&5D(')O=6YD(')O8FEN('-T>6QE+ at T*"2`J
M#0H)("H at 5&AR;W=S. at T*"2`J"4%N>2!E>&-E<'1I;VYS(&=E;F5R871E9"!B
M>2!T:&4@=&AR96%D<R!I;B!T:&4-"@D@*@ES;&EC92X-"@D@*B\-"@ES=&%T
M:6,@=F]I9"!R=6XH*0T*"7L-"@D):68H:&5A9"!I<R!N=6QL('Q\(&-U<B`A
M:7,@;G5L;"D-"@D)"7)E='5R;CL-"@D)#0H)"65X8V5P="`](&YU;&P[#0H)
M"6AE860N<V%V94-O;G1E>'0H*3L-"@D)#0H)"6EF*&5X8V5P="`A:7,@;G5L
M;"D-"@D)"71H<F]W(&5X8V5P=#L-"@E]#0H-"@DO*BH-"@D@*B!&:6YI<V@@
M=&AE(&-U<G)E;G1L>2!R=6YN:6YG('1I;65S;&EC92X-"@D@*B\-"@ES=&%T
M:6,@=F]I9"!F:6YI<V at H*0T*"7L-"@D):68H8W5R(&ES(&YU;&PI#0H)"0ER
M971U<FX[#0H)"0T*"0EC=7(N<W1A='5S(#T at 451H<F5A9%-T871U<RY15$A2
M14%$7U)%0419.PT*"0EC=7(N<F5S=&]R94-O;G1E>'0H*3L-"@E]#0H)#0H-
M"@DO*BH-"@D@*B!9:65L9"!T:&4@=&AR96%D('-O('1H870@=&AE('-C:&5D
M=6QE<B!C86X@<G5N#0H)("H@=&AE(&YE>'0@=&AR96%D+ at T*"2`J+PT*"7-T
M871I8R!V;VED('EI96QD*"D-"@E[#0H)"6EF*&-U<B!I<R!N=6QL*0T*"0D)
M<F5T=7)N.PT*"0D-"@D)+R\@1&5M;W1E('-T871U<R!F<F]M(')U;FYI;F<-
M"@D)8W5R+G-T871U<R`](%%4:')E8613=&%T=7,N451(4D5!1%]214%$63L-
M"@D)#0H)"2\O(%1E<W0 at 9F]R(&5N9"!O9B!T:&4@;&ES=`T*"0EI9BAC=7(N
M;F5X="!I<R!N=6QL*0T*"0E[#0H)"0EC=7(N<F5S=&]R94-O;G1E>'0H*3L-
M"@D)?0T*"0EE;'-E#0H)"7L-"@D)"6-U<BYN97AT+G-E=$-O;G1E>'0H*3L-
M"@D)?0T*"7T-"@T*"2\J*@T*"2`J($=R86(@82!R969E<F5N8V4@=&\@=&AE
M(&-U<G)E;G1L>2!R=6YN:6YG('1H<F5A9"X-"@D@*@T*"2`J(%)E='5R;G,Z
M#0H)("H)4F5F97)E;F-E('1O('1H92!C=7)R96YT('1H<F5A9"X@;G5L;"!I
M9B!T:&4-"@D@*@ES8VAE9'5L97(@:7,@;F]T(')U;FYI;F<N#0H)("HO#0H)
M<W1A=&EC(%%4:')E860 at 9V5T0W5R<F5N="@I#0H)>PT*"0ER971U<FX at 8W5R
M.PT*"7T-"@T*#0HO+RTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2T-"B\O(%1(4D5!1"!&54Y#5$E/3E,-"B\O
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+0T*"2\J*@T*"2`J($-R96%T92!A(&YE=R!15&AR96%D('=I=&@@
M82!U<V5R('-P96-I9FEE9"!S=&%C:RX-"@D@*@T*"2`J(%!A<F%M<SH-"@D@
M*@EF;B`](%1H92!P<F]C961U<F4@=&AA="!W:6QL(&)E(')U;BX-"@D@*@ES
M:7IE(#T at 5&AE('-I>F4@;V8@=&AE('-T86-K+ at T*"2`J+PT*"71H:7,H=F]I
M9"!D96QE9V%T92 at I(&9N+"!S:7IE7W0@<VEZ92`]($1%1D%53%1?4U1!0TM?
M4TE:12D-"@EI;@T*"7L-"@D)87-S97)T*&9N*3L-"@D)87-S97)T*'-I>F4@
M/CT at 34E.24U535]35$%#2U]325I%*3L-"@E]#0H)8F]D>0T*"7L-"@D)<')O
M8R`](&9N.PT*"0ES=&%C:RYL96YG=&@@/2!S:7IE.PT*"0ES971U<%-T86-K
M*"D[#0H)"0T*"0DO+R!!9&0@=&\@=&AR96%D(&QI<W0-"@D)<W1A='5S(#T@
M451H<F5A9%-T871U<RY15$A214%$7U)%0419.PT*"0EL:6YK*"D[#0H)?0T*
M#0H)+RHJ#0H)("H at 4W5S<&5N9"!A(%%4:')E860N#0H)("HO#0H)=F]I9"!S
M=7-P96YD*"D-"@E[#0H)"6EF*'-T871U<R`A/2!15&AR96%D4W1A='5S+E%4
M2%)%041?4E5.3DE.1R`F)@T*"0D)<W1A='5S("$](%%4:')E8613=&%T=7,N
M451(4D5!1%]214%$62D-"@D)>PT*"0D)<F5T=7)N.PT*"0E]#0H)"0T*"0ES
M=&%T=7,@/2!15&AR96%D4W1A='5S+E%42%)%041?4U534$5.1$5$.PT*"0ER
M96UO=F4H*3L-"@E]#0H)#0H)+RHJ#0H)("H at 4F5S=6UE(&$@451H<F5A9"X-
M"@D@*B\-"@EV;VED(')E<W5M92 at I#0H)>PT*"0EI9BAS=&%T=7,@(3T at 451H
M<F5A9%-T871U<RY15$A214%$7U-54U!%3D1%1"D-"@D)>PT*"0D)<F5T=7)N
M.PT*"0E]#0H)"0T*"0ES=&%T=7,@/2!15&AR96%D4W1A='5S+E%42%)%041?
M4D5!1%D[#0H)"6QI;FLH*3L-"@E]#0H)#0H)+RHJ#0H)("H at 5V%I="!F;W(@
M=&AI<R!T:')E860@=&\@9&EE+ at T*"2`J+PT*"79O:60@:F]I;B at I#0H)>PT*
M"0EW:&EL92AS=&%T=7,@(3T at 451H<F5A9%-T871U<RY15$A214%$7U1%4DU)
M3D%4140I#0H)"7L-"@D)"6-U<BYS=&%T=7,@/2!15&AR96%D4W1A='5S+E%4
M2%)%041?0DQ/0TM%1#L-"@D)"7EI96QD*"D[#0H)"7T-"@E]#0H)#0H)+RHJ
M#0H)("H at 5&5R;6EN871E('1H92!T:')E860N("!/;F-E(&MI;&QE9"P at 82!T
M:')E860@;6%Y#0H)("H@;F\@;&]N9V5R(&)E(')U;BX-"@D@*B\-"@EV;VED
M(&MI;&PH*0T*"7L-"@D):68H<W1A='5S(#T](%%4:')E8613=&%T=7,N451(
M4D5!1%]415)-24Y!5$5$*0T*"0D)<F5T=7)N.PT*"0D-"@D)9FEN:7-H5&AR
M96%D*"D[#0H)"7)E;6]V92 at I.PT*"7T-"@D-"@DO*BH-"@D@*B!2971R:65V
M97,@=&AE(&-U<G)E;G0@<W1A='5S(&]F('1H92!T:')E860-"@D@*B\-"@E1
M5&AR96%D4W1A='5S(&=E=%-T871U<R at I#0H)>PT*"0ER971U<FX@<W1A='5S
M.PT*"7T-"@D-"G!R:79A=&4Z#0HO+RTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T-"B\O(%-#2$5$54Q%4B!)
M35!,14U%3E1!5$E/3 at T*+R\M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0H)+RH at 4V-H961U;&5R($QI<W0@
M*B\-"@E15&AR96%D(&YE>'0@/2!N=6QL.PDO+R!.97AT('1H<F5A9"!I;B!S
M8VAE9`T*"5%4:')E860@<')E=B`](&YU;&P["2\O(%!R978@("(@("`B#0H)
M<W1A=&EC(%%4:')E860@:&5A9"`](&YU;&P["2\O(%-T87)T(&]F('1H92!L
M:7-T#0H)<W1A=&EC(%%4:')E860@=&%I;"`](&YU;&P["2\O($5N9"!O9B!T
M:&4@;&ES=`T*"7-T871I8R!15&AR96%D(&-U<B`](&YU;&P["2\O($-U<G)E
M;G1L>2!E>&5C=71I;F<@=&AR96%D+ at T*#0H)+R\@3&EN:R!T:&ES('1H<F5A
M9"!I;G1O('1H92!S8VAE9'5L97(@;&ES="X-"@EV;VED(&QI;FLH*0T*"7L-
M"@D)+R],:6YK#0H)"6YE>'0@/2!H96%D.PT*"0EP<F5V(#T@;G5L;#L-"@D)
M#0H)"2\O061J=7-T(&QI<W0 at 96YD<PT*"0EI9BAH96%D("%I<R!N=6QL*0T*
M"0D):&5A9"YP<F5V(#T@=&AI<SL-"@D):68H=&%I;"!I<R!N=6QL*0T*"0D)
M=&%I;"`]('1H:7,[#0H)"0T*"0EH96%D(#T@=&AI<SL-"@E]#0H)#0H)+R\@
M56YL:6YK('1H:7,@=&AR96%D(&9R;VT@=&AE('-C:&5D=6QE<B!L:7-T+ at T*
M"79O:60@=6YL:6YK*"D-"@E[#0H)"2\O56YL:6YK#0H)"6EF*'!R978@(6ES
M(&YU;&PI#0H)"0EP<F5V+FYE>'0@/2!N97AT.PT*"0EI9BAN97AT("%I<R!N
M=6QL*0T*"0D);F5X="YP<F5V(#T@<')E=CL-"@D)#0H)"2\O061J=7-T(&5N
M9"!O9B!L:7-T#0H)"6EF*&AE860@:7,@=&AI<RD-"@D)"6AE860@/2!N97AT
M.PT*"0EI9BAT86EL(&ES('1H:7,I#0H)"0ET86EL(#T@<')E=CL-"@D)#0H)
M"2\O4F5M;W9E(')E9F5R96YC97,-"@D)<')E=B`](&YU;&P[#0H)"6YE>'0@
M/2!N=6QL.PT*"7T-"@D-"@D-"B\O+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0T*+R\@5$A214%$(%-7251#
M2$E.1R!)35!,14U%3E1!5$E/3 at T*+R\M+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"0T*"2\J(%1H<F5A9"!)
M;F9O("HO#0H)451H<F5A9%-T871U<R!S=&%T=7,["2\O5&AR96%D('-T871E
M#0H)=6)Y=&5;72!S=&%C:SL)"0DO+U1H<F5A9"!S=&%C:PT*"75B>71E("H@
M<W`@/2!N=6QL.PD)+R]4:')E860@<W1A8VL@<&]I;G1E<@T*"79O:60 at 9&5L
M96=A=&4H*2!P<F]C.PDO+TEN:71I86P@<')O8V5D=7)E#0H-"@DO*B!/<FEG
M:6YA;"!C;VYT97AT(&EN9F]R;6%T:6]N("HO#0H)<W1A=&EC('5B>71E("H@
M;VQD7W-P(#T@;G5L;#L)+R]/<FEG:6YA;"!S=&%C:R!P;VEN=&5R#0H)<W1A
M=&EC($]B:F5C="!E>&-E<'0@/2!N=6QL.PDO+TQA<W0 at 9V5N97)A=&5D(&5X
M8V5P=&EO;@T*#0H)#0H)+R\@4G5N(&$@=&AR96%D+"!P<F]V:61E<R!A('=A
M>2!T;R!C871C:"!E>&-E<'1I;VYS#0H)+R\@86YD(&-A;&P at 9&5L96=A=&5S
M+ at T*"7-T871I8R!V;VED('-T87)T5&AR96%D*"D-"@E[#0H)"2\O5W)A<"!I
M;B!T<GD at 8FQO8VL@=&\@9W)A8B!S<'5R:6]U<R!E>&-E<'1I;VYS#0H)"71R
M>0T*"0E[#0H)"0EC=7(N<')O8R at I.PD)+R]#86QL('5S97(@9G5N8W1I;VX-
M"@D)"6-U<BYK:6QL*"D["0DO+U=H96X@:70@<F5T=7)N<RP@:VEL;"!I="X-
M"@D)?0T*"0EC871C:"A/8FIE8W0 at 92D-"@D)>PT*"0D)+R]3879E(&5X8V5P
M=&EO;@T*"0D)97AC97!T(#T at 93L-"@D)"0T*"0D)+R\@1FEN86QI>F4O<F5M
M;W9E('1H<F5A9`T*"0D)8W5R+F9I;FES:%1H<F5A9"@I.PT*"0D)8W5R+G5N
M;&EN:R at I.PT*"0D)#0H)"0DO+R!&;W)C92!T:&4 at 96YD(&]F('1H92!T:6UE
M('-L:6-E#0H)"0EC=7(N<F5S=&]R94-O;G1E>'0H*3L-"@D)?0T*"7T-"@D-
M"@DO+R!&:6YI<VAE<R!A;GD@:6YC;VUP;&5T92!T87-K<R!F;W(@=&AE('1H
M<F5A9"P-"@DO+R!R96UO=F5S($=#(')E9F5R96YC97, at 86YD('-E="!S=&%T
M=7,@=&\@9&5A9"X-"@EV;VED(&9I;FES:%1H<F5A9"@I#0H)>PT*"0ES=&0N
M9V,N<F5M;W9E4F%N9V4H)G-T86-K6S!=*3L-"@D)<W1A='5S(#T at 451H<F5A
M9%-T871U<RY15$A214%$7U1%4DU)3D%4140[#0H)?0T*"0T*"2\O(%)E;6]V
M92!T:&ES('1H<F5A9"!F<F]M('1H92!S8VAE9'5L97(L(&]P=&EO;F%L;'D-
M"@DO+R!R=6YN:6YG('1H92!N97AT('1A<VL@:68@;F5C97-S87)Y#0H)=F]I
M9"!R96UO=F4H*0T*"7L-"@D)+R]3879E(&YE>'0@=&AR96%D#0H)"5%4:')E
M860@;B`](&YE>'0[#0H)"0T*"0DO+U5N;&EN:PT*"0EU;FQI;FLH*3L-"@D)
M#0H)"2\O0VAA;F=E(')U;FYI;F<@=&AR96%D(&EF(&YE8V5S<V%R>0T*"0EI
M9BAC=7(@(6ES('1H:7,I#0H)"0ER971U<FX[#0H)"0T*"0EI9BAN(&ES(&YU
M;&PI#0H)"7L-"@D)"7)E<W1O<F5#;VYT97AT*"D[#0H)"7T-"@D)96QS90T*
M"0E[#0H)"0EN+G-E=$-O;G1E>'0H*3L-"@D)?0T*"7T-"@D-"@DO+R!);FET
M:6%L:7IE('1H92!S=&%C:RX@(%1H:7,@:7,@:6UP;&5M96YT871I;VX-"@DO
M+R!S<&5C:69I8RP@<V\@:70@=VEL;"!N965D('1O(&=E="!C:&%N9V5D#0H)
M+R\@86QO;F<@=VET:"!T:&4 at 87-S96UB;&5R+ at T*"79O:60@<V5T=7!3=&%C
M:R at I#0H)>PT*"0DO+R!0=7-H(&$@=F%L=64@;VYT;R!T:&4@<W1A8VL-"@D)
M=F]I9"!P=7-H*'5I;G0@=BD-"@D)>PT*"0D)*BTM<W`@/2`H=CX^/C(T*2`F
M(#!X9F8[#0H)"0DJ+2US<"`]("AV/CX^,38I("8@,'AF9CL-"@D)"2HM+7-P
M(#T@*'8^/CXX*2`F(#!X9F8[#0H)"0DJ+2US<"`]("AV/CX^,"D@)B`P>&9F
M.PT*"0E]#0H)"0T*"0DO+R!);FET:6%L:7IE('-T86-K('!O:6YT97(@)B!R
M86YG97,-"@D)<W`@/2`H)G-T86-K6VQE;F=T:"TQ72D@*R`Q.PT*"0EU:6YT
M('-T86-K7W1O<"`](&-A<W0H=6EN="DH<W`I.PT*"0EU:6YT('-T86-K7V)O
M="`](&-A<W0H=6EN="DH)G-T86-K6S!=*3L-"@D)#0H)"2\O(%-404-+($-/
M3E1%3E13. at T*"0DO+W-T87)T5&AR96%D#0H)"7!U<V at H8V%S="AU:6YT*29S
M=&%R=%1H<F5A9"D[#0H)"2\O4F5G:7-T97)S("AS=&%C:R!F<F]M('!U<VAA
M9"D-"@D)<'5S:"@P*3L)"0D)+R]%05 at -"@D)<'5S:"@P*3L)"0D)+R]%0U at -
M"@D)<'5S:"@P*3L)"0D)+R]%1%@-"@D)<'5S:"@P*3L)"0D)+R]%0E at -"@D)
M<'5S:"@P*3L)"0D)+R]%4U`@*$YO="!U<V5D*0T*"0EP=7-H*#!X1D9&1D9&
M1D8I.PD)+R]%0E`-"@D)<'5S:"@P*3L)"0D)+R]%4TD-"@D)<'5S:"@P*3L)
M"0D)+R]%1$D-"@D)#0H)"2\O06QL;V-A=&4 at 1E!5('-T=69F+ at T*"0ES<"`M
M/2`Q,#@[#0H@("`@("`@('9O:60@*G-P7VP@/2!S<#L-"B`@("`@("`@87-M
M#0H@("`@("`@('L-"B`@("`@("`@("`@("\O4V%V92!%0U at -"B`@("`@("`@
M("`@('!U<V@@14-8.PT*("`@("`@("`@("`@#0H@("`@("`@("`@("`O+U-A
M=F4@=&AE(&9P=2!S=&%T90T*("`@("`@("`@("`@;6]V($5#6"P@<W!?;%M%
M0E!=.PT*("`@("`@("`@("`@9G-A=F4 at 6T5#6%T[#0H@("`@("`@("`@("`-
M"B`@("`@("`@("`@("\O4F5S=&]R92!%0U at -"B`@("`@("`@("`@('!O<"!%
M0U@[#0H@("`@("`@('T-"B`@("`@("`@#0H)"2\O5&AR96%D(&EN9F\-"@D)
M<'5S:"@P>$9&1D9&1D9&*3L)"2\O1E,Z6S!=(%-%2`T*"0EP=7-H*'-T86-K
M7W1O<"D["0DO+T93.ELT72!3=&%C:R!T;W`-"@D)<'5S:"AS=&%C:U]B;W0I
M.PD)+R]&4SI;.%T at 4W1A8VL@8F]T=&]M#0H)"0T*"0DO+R!!9&0@=&\@1T,-
M"@D)<W1D+F=C+F%D9%)A;F=E*`T*"0D)8V%S="AV;VED*BES=&%C:U]T;W`L
M#0H)"0EC87-T*'9O:60J*7-T86-K7V)O="D[#0H)?0T*"0T*"2\O(%-A=F4@
M8V]N=&5X="!O9B!T:&4 at 8V%L;&5R#0H)=F]I9"!S879E0V]N=&5X="@I#0H)
M>PT*"0EA<VT-"@D)>PT*"0D);F%K960[#0H)"0D-"@D)"2\O4V%V92!O<FEG
M:6YA;"!C;VYT97AT#0H)"0EP=7-H860[#0H)"0ES=6(@15-0+"`Q,#@[#0H)
M"0EF<V%V92!;15-073L-"@D)"7!U<V@@:6YT('!T<B!&4SI;,%T[#0H)"0EP
M=7-H(&EN="!P='(@1E,Z6S1=.PT*"0D)<'5S:"!I;G0@<'1R($93.ELX73L-
M"@D)"6UO=B!;451H<F5A9"YO;&1?<W!=+"!%4U`[#0H)"0D-"@D)"2\O4W=I
M=&-H('1O(&AE860-"@D)"6UO=B!;451H<F5A9"YC=7)=+"!%05@[#0H)"0EM
M;W8@<W1A='5S6T5!6%TL(%%4:')E8613=&%T=7,N451(4D5!1%]254Y.24Y'
M.PT*"0D)#0H)"0DO+U)E<W1O<F4@<71H<F5A9"!C;VYT97AT#0H)"0EM;W8@
M15-0+"!S<%M%05A=.PT*"0D)<&]P(&EN="!P='(@1E,Z6SA=.PT*"0D)<&]P
M(&EN="!P='(@1E,Z6S1=.PT*"0D)<&]P(&EN="!P='(@1E,Z6S!=.PT*"0D)
M9G)S=&]R(%M%4U!=.PT*"0D)861D($534"P@,3`X.PT*"0D)<&]P860[#0H)
M"0D-"@D)"7)E=#L-"@D)?0T*"7T-"@D-"@DO+R!297-T;W)E(&-O;G1E>'0@
M;V8 at 8V%L;&5R#0H)=F]I9"!R97-T;W)E0V]N=&5X="@I#0H)>PT*"0EA<VT-
M"@D)>PT*"0D);F%K960[#0H)"0D-"@D)"2\O4V%V92!Q=&AR96%D(&-O;G1E
M>'0-"@D)"7!U<VAA9#L-"@D)"7-U8B!%4U`L(#$P.#L-"@D)"69S879E(%M%
M4U!=.PT*"0D)<'5S:"!I;G0@<'1R($93.ELP73L-"@D)"7!U<V@@:6YT('!T
M<B!&4SI;-%T[#0H)"0EP=7-H(&EN="!P='(@1E,Z6SA=.PT*"0D);6]V('-P
M6T5!6%TL($534#L-"@D)"0T*"0D)+R\@4V5T(&-U<G)E;G0@<71H<F5A9"!T
M;R!N=6QL#0H)"0EM;W8@:6YT('!T<B!;451H<F5A9"YC=7)=+"`P.PT*"0D)
M#0H)"0DO+U)E<W1O<F4@;W)I9VEN86P at 8V]N=&5X=`T*"0D);6]V($534"P@
M6U%4:')E860N;VQD7W-P73L-"@D)"7!O<"!I;G0@<'1R($93.ELX73L-"@D)
M"7!O<"!I;G0@<'1R($93.ELT73L-"@D)"7!O<"!I;G0@<'1R($93.ELP73L-
M"@D)"69R<W1O<B!;15-073L-"@D)"6%D9"!%4U`L(#$P.#L-"@D)"7!O<&%D
M.PT*"0D)#0H)"0ER970[#0H)"7T-"@E]#0H)#0H)+R\@4V5T('1H92!Q=&AR
M96%D(&-O;G1E>'0@=VAI;&4@<G5N;FEN9PT*"79O:60@<V5T0V]N=&5X="@I
M#0H)>PT*"0EA<VT-"@D)>PT*"0D);F%K960[#0H)"0D-"@D)"2\O4V%V92!C
M=7)R96YT('%T:')E860 at 8V]N=&5X=`T*"0D)<'5S:&%D.PT*"0D)<W5B($53
M4"P@,3`X.PT*"0D)9G-A=F4 at 6T534%T[#0H)"0EP=7-H(&EN="!P='(@1E,Z
M6S!=.PT*"0D)<'5S:"!I;G0@<'1R($93.ELT73L-"@D)"7!U<V@@:6YT('!T
M<B!&4SI;.%T[#0H)"0D-"@D)"2\O(%-E="!C=7)R96YT(&-O;G1E>'0-"@D)
M"6UO=B!%0E at L(%MC=7)=.PT*"0D);6]V('-P6T5"6%TL($534#L-"@D)"0T*
M"0D)+R]3970@;F5W(&-U<G)E;G0@=&AR96%D#0H)"0EM;W8 at 6U%4:')E860N
M8W5R72P at 14%8.PT*"0D);6]V('-T871U<UM%05A=+"!15&AR96%D4W1A='5S
M+E%42%)%041?4E5.3DE.1SL-"@D)"0T*"0D)+R]297-T;W)E('%T:')E860@
M8V]N=&5X=`T*"0D);6]V($534"P@<W!;14%873L-"@D)"7!O<"!I;G0@<'1R
M($93.ELX73L-"@D)"7!O<"!I;G0@<'1R($93.ELT73L-"@D)"7!O<"!I;G0@
M<'1R($93.ELP73L-"@D)"69R<W1O<B!;15-073L-"@D)"6%D9"!%4U`L(#$P
M.#L-"@D)"7!O<&%D.PT*"0D)#0H)"0ER970[#0H)"7T-"@E]#0I]#0H-"B\O
M(%5N:71T97-T(&9O<B!15&AR96%D#0IU;FET=&5S=`T*>PT*"2\O($)A<VEC
M('1E<W0L(&IU<W0@<G5N(&$@9F5W('1H<F5A9',-"@EI;G0 at 82P@8BP at 8SL-
M"@D-"@EA(#T@,#L-"@EB(#T@,#L-"@EC(#T@,#L-"@D-"@EV;VED(&9N,2 at I
M#0H)>PT*"0EF;W(H:6YT(&D],#L@:3PR.R!I*RLI#0H)"7L-"@D)"2LK83L-
M"@D)"5%4:')E860N>6EE;&0H*3L-"@D)?0T*"7T-"@D-"@EV;VED(&9N,B at I
M#0H)>PT*"0EF;W(H:6YT(&D],#L@:3PS.R!I*RLI#0H)"7L-"@D)"2LK8CL-
M"@D)"5%4:')E860N>6EE;&0H*3L-"@D)?0T*"7T-"@D-"@EV;VED(&9N,R at I
M#0H)>PT*"0EF;W(H:6YT(&D],#L@:3PT.R!I*RLI#0H)"7L-"@D)"2LK8SL-
M"@D)"5%4:')E860N>6EE;&0H*3L-"@D)?0T*"7T-"@D-"@E15&AR96%D('0Q
M(#T@;F5W(%%4:')E860H)F9N,2D[#0H)451H<F5A9"!T,B`](&YE=R!15&AR
M96%D*"9F;C(I.PT*"5%4:')E860@=#,@/2!N97<@451H<F5A9"@F9FXS*3L-
M"@D-"@EA<W-E<G0H82`]/2`P("8F(&(@/3T@,"`F)B!C(#T](#`I.PT*"5%4
M:')E860N<G5N*"D[#0H)87-S97)T*&$@/3T@,2`F)B!B(#T](#$@)B8 at 8R`]
M/2`Q*3L-"@E15&AR96%D+G)U;B at I.PT*"6%S<V5R="AA(#T](#(@)B8 at 8B`]
M/2`R("8F(&,@/3T@,BD[#0H)451H<F5A9"YR=6XH*3L-"@EA<W-E<G0H82`]
M/2`R("8F(&(@/3T@,R`F)B!C(#T](#,I.PT*"5%4:')E860N<G5N*"D[#0H)
M87-S97)T*&$@/3T@,B`F)B!B(#T](#,@)B8 at 8R`]/2`T*3L-"@D-"@EW<FET
M969L;B at B0F%S:6,@=&5S="!P87-S960B*3L-"GT-"@T*=6YI='1E<W0-"GL-
M"@DO+R!497-T(')E<W5M92`O('-U<W!E;F0)#0H):6YT(&$@/2`P.PT*"6EN
M="!B(#T@,#L-"@D-"@E15&AR96%D('4P(#T@;F5W(%%4:')E860H9&5L96=A
M=&4@=F]I9"@I#0H)>PT*"0EW:&EL92 at Q*0T*"0E[#0H)"0DK*V$[#0H)"0E1
M5&AR96%D+GEI96QD*"D[#0H)"7T-"@E]*3L-"@D-"@E15&AR96%D('4Q(#T@
M;F5W(%%4:')E860H9&5L96=A=&4@=F]I9"@I#0H)>PT*"0EW:&EL92 at Q*0T*
M"0E[#0H)"0DK*V([#0H)"0E15&AR96%D+GEI96QD*"D[#0H)"7T-"@E]+"`Q
M,#(T*3L-"@D-"@D-"@E15&AR96%D+G)U;B at I.PT*"6%S<V5R="AA(#T](#$@
M)B8 at 8B`]/2`Q*3L-"@D-"@EU,"YS=7-P96YD*"D[#0H)451H<F5A9"YR=6XH
M*3L-"@EA<W-E<G0H82`]/2`Q("8F(&(@/3T@,BD[#0H)#0H)=3$N:VEL;"@I
M.PT*"5%4:')E860N<G5N*"D[#0H)87-S97)T*&$@/3T@,2`F)B!B(#T](#(I
M.PT*"0T*"74P+G)E<W5M92 at I.PT*"5%4:')E860N<G5N*"D[#0H)87-S97)T
M*&$@/3T@,B`F)B!B(#T](#(I.PT*"0T*"5%4:')E860N<G5N*"D[#0H)87-S
M97)T*&$@/3T@,R`F)B!B(#T](#(I.PT*"0T*"74P+FMI;&PH*3L-"@E15&AR
M96%D+G)U;B at I.PT*"6%S<V5R="AA(#T](#,@)B8 at 8B`]/2`R*3L-"@D-"@EW
M<FET969L;B at B4W5S<&5N9"]R97-U;64@<&%S<V5D(BD[#0I]#0H-"G5N:71T
M97-T#0I[#0H)+R\@5&5S="!E>&-E<'1I;VYS#0H):6YT(&$@/2`P.PT*"0T*
M"71R>0T*"7L-"@D)451H<F5A9"!V,"`](&YE=R!15&AR96%D*&1E;&5G871E
M('9O:60H*0T*"0E[#0H)"0ET:')O=R!N97<@17AC97!T:6]N*")497-T(BD[
M#0H)"0D-"@D)"2\O(%-H;W5L9"!N;W0 at 9V5T(&AE<F4-"@D)"6$@/2`Q,#`[
M#0H)"7TI.PT*"0D-"@D)451H<F5A9"YR=6XH*3L-"@E]#0H)8V%T8V at H17AC
M97!T:6]N(&4I#0H)>PT*"0EA<W-E<G0H92YT;U-T<FEN9R at I(#T](")497-T
M(BD[#0H)?0T*"0T*"5%4:')E860N<G5N*"D[#0H)87-S97)T*&$@/3T@,"D[
M#0H)#0H)=W)I=&5F;&XH(D5X8V5P=&EO;G, at 4&%S<V5D(BD[#0I]#0H-"G5N
M:71T97-T#0I[#0H)+R\@5&5S="!F;&]A=&EN9R!P;VEN=`T*"5%4:')E860@
M=#$@/2!N97<@451H<F5A9"AD96QE9V%T90T*("`@('L-"B`@("`@("`@<F5A
M;"!F,2`](#$P,"XP.PT*("`@("`@("`-"B`@("`@("`@=W)I=&5F;&XH(F8Q
M(#T@(BP at 9C$I.PT*("`@("`@("!A<W-E<G0H9C$@/3T@,3`P+C`I.PT*("`@
M("`@("`-"B`@("`@("`@451H<F5A9"YY:65L9"@I.PT*("`@("`@("`-"B`@
M("`@("`@9C$@*ST at -3`N,#L-"B`@("`@("`@=W)I=&5F;&XH(F8Q(#T@(BP@
M9C$I.PT*("`@("`@("!A<W-E<G0H9C$@/3T@,34P+C`I.PT*("`@("`@("`-
M"B`@("`@("`@451H<F5A9"YY:65L9"@I.PT*("`@('TI.PT*("`@(`T*("`@
M(%%4:')E860@=#(@/2!N97<@451H<F5A9"AD96QE9V%T90T*("`@('L-"B`@
M("`@("`@<F5A;"!F,B`](#(P,#L-"B`@("`@("`@#0H@("`@("`@('=R:71E
M9FQN*")F,B`]("(L(&8R*3L-"B`@("`@("`@87-S97)T*&8R(#T](#(P,"XP
M*3L-"B`@("`@("`@#0H@("`@("`@(%%4:')E860N>6EE;&0H*3L-"B`@("`@
M("`@#0H@("`@("`@(&8R("T](#$P,#`N,#L-"B`@("`@("`@=W)I=&5F;&XH
M(F8R(#T@(BP at 9C(I.PT*("`@("`@("!A<W-E<G0H9C(@/3T at +3@P,"XP*3L-
M"B`@("`@("`@#0H@("`@("`@(%%4:')E860N>6EE;&0H*3L-"B`@("`@("`@
M#0H@("`@?2D[#0H@("`@#0H@("`@+R]2=6X@<V]M92!S;&EC97,-"B`@("!R
M96%L(&8S(#T@,3([#0H@("`@=W)I=&5F;&XH(F8S(#T@(BP at 9C,I.PT*("`@
M(&%S<V5R="AF,R`]/2`Q,BD[#0H@("`@#0H@("`@451H<F5A9"YR=6XH*3L-
M"B`@("!A<W-E<G0H9C,@/3T@,3(I.PT*("`@(`T*("`@(&8S("L](#4N,#L-
M"B`@("!W<FET969L;B at B9C,@/2`B+"!F,RD[#0H@("`@87-S97)T*&8S(#T]
M(#$W+C`I.PT*("`@(`T*("`@(%%4:')E860N<G5N*"D[#0H@("`@#0H@("`@
M87-S97)T*&8S(#T](#$W+C`I.PT*("`@(&8S("T](#$P,"XP.PT*("`@('=R
M:71E9FQN*")F,R`]("(L(&8S*3L-"B`@("!A<W-E<G0H9C,@/3T at +3@S+C`I
M.PT*("`@(`T*("`@(%%4:')E860N<G5N*"D[#0H@("`@#0H@("`@87-S97)T
M*&8S(#T]("TX,RXP*3L-"B`@("!F,R`J/2`R.PT*("`@('=R:71E9FQN*")F
M,R`]("(L(&8S*3L-"B`@("!A<W-E<G0H9C,@/3T at +3$V-BXP*3L-"GT-"@T*
M=6YI='1E<W0-"GL-"@DO+R!497-T(&IO:6XO<W5S<&5N9"]R97-U;64-"GT-
H"@T*=6YI='1E<W0-"GL-"@DO+R!497-T('-E;6%P:&]R97,-"GT-"F4-
`
end



More information about the Digitalmars-d mailing list