Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: pws-18: 64-bit integer support



If you had followed back the trail of blood across the the physics research
machines of Europe, you would have found me writing this.

It is supposed to make use of 64-bit integers on 32-bit architectures more
useful and reliable.  The propagation and I/O for 64-bit file sizes is now
supposed to be consistent.

To make this work in shell functions etc., integer parameters and shell
arithmetic is now also done in 64-bit precision.  The last part just
requires --enable-lfs and a 64-bit type; it does not require that large
file support actually be enabled, which is mostly associated with the size
of off_t and is tested separately by configure.  There is a new type,
zlong, which will be long long or equivalent in these circumstances,
otherwise it is just long.

If you do not explicitly --enable-lfs, or if your architecture is 64-bit
anyway, zlong is always a long and no special handling is performed,
everything should work wonderfully, and zsh generates pictures of fluffy
bunnies gambolling in a field.  Not.

The memory management is the hairiest part of the story.  I eventually
found out that the problem in glob.c on SunOS 5.6 with gcc which I reported
was because, although the alignments within structs were correctly handled,
the compiler was quite reasonably assuming that the pointer to the struct
had the correct alignment for the largest member.

This was not necessarily true :

(1) if the memory came off the heap.  I've done my best to make sure that
halloc produces zlong-aligned memory chunks, including padding out struct
heap to four elements (which are presumably 32-bit, but as two are pointers
and two size_t it seems a good bet the alignment is now OK anyway); this
seems to have fixed the problem.  However, I may have missed something, and
the alignment also depends on what the underlying malloc() is producing.
It may also be more wasteful on 32-bit architectures.

(2) using zsh's own malloc as the underlying memory manager.  I've simply
changed long's to zlong's and padded structures out so that they look like
multiple's of 8 bytes, and eventually it seemed to work.  It could be
suboptimal or even just plain wrong in places.  It will certainly be less
efficient.  (Again, this only applies if you are using 64-bit integer
support on 32-bit architectures.)

Some changes in glob.c are aesthetic.  I changed it to investigate the
alignment problem, and it seemed neater the new way, so I left it.  Numbers
used by glob qualifiers are passed around as off_t in case this is larger
than the other types.

The existing routines zstrtol() and convbase() are promoted to reading and
printing 64-bit types where necessary; they didn't otherwise need changing,
but more use of convbase() is made than before to avoid having to work out
a printf() format.

Integer internal variables attached to parameters have been promoted to
zlong as well, although in some special cases where I don't expect them to
overflow such as mypid and lineno I have cravenly cast them to long for
output and kept the %ld.

I have tested the following architectures with --enable-lfs.
            LFS?   off_t ino_t Compilers LFS Flags(1)
Sunos 5.6   yes    64b   64b   gcc, cc   auto
HPUX 10.20  yes    64b   32b   cc -Ae(2) -D_LARGE_FILE_SOURCE -D_FILE64
AIX 3.2     no(3)  32b   32b   gcc
Irix 6.2(4) no(3)  32b   32b   gcc

(1) On SunOS, getconf generates these automatically; for HPUX I had to
    guess them.  There's a note in INSTALL about this.
(2) gcc failed on a header file with the large file definitions; this could
    be just a local problem, or not.
(3) On these I just tested that 64-bit parameters and arithmetic were
    working.
(4) This is where I tested zsh's malloc.  It's still running at the
    moment, no funny messages.

This will be in pws-19 for testing, maybe tomorrow.

begin 644 z64_try1.dif.gz
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
MG@xxx<'SQQKCOC.?4]>\I*P+'Q(U?)FLU]?]0:^SJJ_E64LSS,-!=[_L7<S6
M`?7\X,$*B]U"E/NN/0E1/Y48#1#DR%#:"HJPF!/8A-56'UJ0%M&91:&T`U3:
M<L,25\5>B2BOR36$7CGAE=LE=-1$[NYN1J;YI+T6:S9KKFZV^-YNBE\."M3L
M5%FA&HH][B?T-K03N&D$*)`61W&NQZJH^@KEU-JW"_TZ5_>)\56WV)R$DR+"
M8(\/<_;VGVU@2YL6>RG;<1)E7OU>R^J`>?'S43+#+)"QYVRB<_7U"J&+`+.-
M8_'UZ#FT+"^\0@PM^ZPE(?=+PVCSBOC>AUJUR!-40K;>F`\'O6[5F'/P-:`E
M*^[VN5.KGLA^+.(QVQM!R*_4X/GMA^F=_A+-$]5)AC1YJ=&(!R-%^;FHCHF5
MTNX.E8_?TYTU/(NG<4CS"RY@/,V/U_D@,A90)9@=/%ZW#JM,T-#+!^N]@=4K
M\:#3:W6!!?"PS#P=UGH*>0?>X,6FM04U8-O$(M`""G0U]`VOE$%BCZ=#;Z-[
MS-VIBL)"C>X:EF]CZHMW7H(=4VRY@&\W(%&&T(D<2F@9O.[#\W0W&D(%W[["
MPHSN#.(E'F%8-/,><[3,=^F,R<-[@;2,VIJ2`;Z42&=8KQ!=_'_3-1-^RQ*N
M-_-Z,Q<AV-M?+-7RO1C?QZ;%F\L+W;10DL_/TPF`#LS4,7J)S?0.AK[EN!%W
M,6%=0H\*A%P;0K=TU>)<CO%0&B2\5Z17A2X@[+(U=`;=\I4B+HRZ>7/Y6S7;
M50EIO;@M4MB$,@3P%84QJYLJ6%%AIP/>_5&HLOPJ'7TUJG(?W3H86&85>8:M
MP)D#:R\_J2=GW>_SP30_\WZ$XT>)#$!32CJ;)XLS4-AM\7ET,OQT?:J.VK`Q
M-/=<'3(;`KY0C"N]6)3>J$.P(@5\\9]H#%7@;WB$`A__V$W2]&$$'D6&=UA=
MAU$H@WGZ8#B!2_E=HM-#;`5(.W9F5)4,;V\_'>_N[O*12TTYBW6S52BQB`'J
M24?SP#>Z26N<!JZ`"<NRD4?/]%A\I@GAQOCW[8>3T[-&@^Y[<=LD25T9QRVQ
M]4-B&%``SF-P0&D/W(;^I*Y!:1W`8DSIP'GLT?6X;H=<U,&@MU1.,.R2#NP=
M#,R**VO!.+BR%C@X9,!+\!Y^YDJQM4AFNX$[VRJ/T9*`VA;^H@"\@>`&J6LL
M]:$:*#7];C2ZN/YX.AJ!%WBI!L7)U>7%-;B;T<A.T]@;9ZD<0=YC^Y2\&@>0
M^^1-JN5)>5^I2?4IMN1(^J?#MUCU7%S=O%9EI[[<H9K?4RKKQ,X%/8]$Z1Z'
M>E41-0:Q2L.4CNS*O5%LF2BD5&9/@.#B`ED>")8'G.4!"-U?DO)FHY7=1INV
M&ZWL-UK9<*1V1)D?[N.%)TC$\XM/NL]]>SOZ]1+8]^GV;"BLROB[LXL3'N^N
MWK:YA?KE'3+P'*,Z)K"*K>CN\?8,I\`KUVV^.X\H;U1NW/R9@8']53G4H*&=
M4'Y-N3EX#9]H$$\@P;J"+$D%"WCI3_<**PM%,2]SXM.UVA1_18!U5#0I%J53
MWGQ)O4R%'DIQ>"7\JB_%8@,/G_2CD!6D]`4=$AH>:L`"A$L\S?#7+OJJ#2PP
MT8NND%12&EPBUYGGK\0>+,2C6B@E%2[_FDD\DA4X/Z9373"^4$[Y]LRF%>S`
M4?//M<'R5654S)PA>)L2\G!0AN7YL1U.ES'0L_[1$C\A$A!G[$3,\08_^!$(
MK/J8SNIQZWTO;Y;0A9'):!+AQ7,.)MI;OQB"([NZ_M7`GRTU\``!U1$OR^-=
M>0/B]C;D'A;F).C+:X$,G/F#H0:W*6?1W4Z\BW"D6KVX"EZH/A:6;O?JH;]I
MC%'`70$&5\.+`OB52[P<:6Q#H2'1X08B^^;R`R.K+Q!8_0/U4X!>?L<8UR8F
MPN)_ANV?F*'J!4A'#:.<U&`6>FFBANFSIH3:-CA*:@'Y@$4.7U/SXA@'_E(T
M;@!^86AP'"G"^27^(B*';$&J^F.,_6R4DZ<]I0KP%6FIBQ5/%!IQ^@F"JRU)
MK;9.9/I>SWB.*KA$Z\^\,T3R;4I9=6-??)#_D0[W[.DNHS=1O\I0ULB9+FR%
M%R'$CHK7%D9J"-@'+4N=CZPC5-U)+F&O>T_?V,'0#T]*\J)##-`MJ,%3/."Z
M&(ZN+J]_/7M#HFGFME&1VN.36%\5_`83>Y[0OB\PL),BK7QT,6U^:P#XJO>2
MH)6<26_0:\_3F`XZT)Q">:^#=_&.PC79<7'?9PF$`G<!H^+X$E!0!0K6`CE5
M(&<M$)M.#A3B]Q6@48&WM1'Q40ES:S/JHV`);#WR(V<);#WZHQ+^5HF`7#D+
MU339_3PNC/+[]9(H0ZP70QEBO0S*$.L%T&356D.&M4S&>N%4(#9(I@*S02P5
MF`TRJ<`\)I`E6VDV*Q51LTDOL)EYS#!X^*QOOX&3,SMX_0U_NM#)#Z(D5<MC
M3#TF>+$NS\8JITSK&FF4#-7%G[`$K*"+\&2Y`;5R^^%_K3UI5]M(MI_)KU"8
M3)"Q3;QC3*`/;9R$,RQI##V92>=X!!:@B;>Q9`+TY/WV=[<J56FQ2=[+Z4:R
MZE;5K5O;K5MWN4\=Y5X&K)Z*N7E-@]5Y[JX+8LIJ:EWICE;D\@':LB.-PC.7
MU2C:\5'Y^8?;)=(%;!?96$,9>8U[]$.^"9A,^4EBE;$7?BTYD76"70%)I.!*
M<+O;A'7SNN3<3;^54#/?(I:+3,7FC.YV-_8V<(&_QO<>MC#4/S>*<=)&&=^%
M9*VZF`8T]!T7"?PWHHT.';1A;:Y4*Y7*KJ-%X0)1`0A^J^JWFGZK;W1BT(;^
MW-1O+?VVO=%1ZL0H"'9%Q''ME+&26(68$Y^2J>H&CI&-G/\Z+O"K;YUZ0;^V
M8K"X%7+1W5'ZH"S9K^YLV[=]4.S;MWM.G=6+XXLE04G2RC$TWE%0)L$@KSF9
ML%FM^TX7$S2]3=WF6I45>FLU98G%1^SK\<SE\[<#K+Z\7=D7:4$)1I5Y&":%
MHV-K9JI/CJ'L$>`UXLU@0NP(<`;\$W\AQ[SK!/!?N0P)2A$D_!9@]>XF,B__
M`]S+8:_?U<M0O=+B@S+J)"D3(<V[`6&,T^`-^C00N9-J!O.`N("0^4H0.17"
MD]OL5@IO6`U6?E?QS,-\[9K*4*4,S/P*Y^O6M'4`%,':#YI0=-Q3-1Y,'AVY
MB0!D/77N$YOKH</_=`%\)+]1)_$^K#"D`Z_/[H:"RL_54UQ:CWG6%^YL_CD<
ME:M?E-(-%0.=9_Y6%P*DA?/R>@K8PDHH@DFL!$<Q5YG5K`*IB2P%%+P*%6UH
MH+8`+8640=&/4$]-2!$3`KO07M(YAU2*2:16MBLB9;X^KE>;L/FQ4$X?_C9G
M'NV81Q,/)^*?\8`\E5I10G<%YR0:BTL$]LK.04X9H:S]+/7GO$KL=GYP^KXW
MZ![T+]R"]"$#1U78$(!?CNJ[:6&=F<M)V*7I\Z7Q,5F:(7>6S08[8S/T[FE[
MFL4_<1<"NL0#Q]JG9V1!(J1M55G<6=W>P1=92#>A;N3B>0M'0^Q1X`\[#@N.
MV,XY0#$0:98OR-`%<VG\8]\+6YR$<VJ-"DVT7%N7$/JOZ:\R1"%XBVRYT+CD
MLE(E*^72@A'5X#<L%-"&43`.(N.0K(GAP4C6VUEM"7Y>E$1/9\E&,9$!*A:3
MH#@CL!*"-/76F@QI^/12;?PHK8_JB!=\_HQ3?\\Y6T0>S56]-/H/WK5:-U'V
M!)TRFR6:3;5B23BF:-I0Y46TL:IK_)AP")8HH6R4D$<C*JZ*S<;&6W2JY](I
M(Q/@PGJ8-+U?JA:7G/5?+]]WM&$L&_F+#&>&9X3Y9%T&@Q?Q#KPFAG;UZDX5
MG1+5:Q5M&&:8'\F\FDZB8+)`KOXOL'W!0A&C+(L.JN)%TZ_NB1]Y!3178UD$
M4IA1IE0:5PI=ZA:4U$"*CTYPAC2!H<?\^;IPP_5&G=27ZHW&3K:N`FF&X](X
M].]MJ3"=^GFWNX?U*!]&MJK[U%VYLHJ%;#B^AO>[RC`-\-IAO)KM%7C162</
ML^M(,,N#$AW[*(6;R]W[%GB%7S2B5`I\@S(ZEB1O/P-LG\&X.4TA<VL5F1?!
M,*\QD"2MR0;BMA!4#J$7`1EQ+>CR3U&Z*93>7D7IVWS4;C5JV4",VNT2U&X9
MM5L+-=;GKS?:VRM0"\(EP_/?B\E7P2X/CO%CP`2"*"'[]9@D9(2H%I%A0O?#
MN9U@(+^]S<CO+#,J8J2N1KDCV$(^&^Y'D3=PY.-,O5EIKL3Q^F[^+!RSX5;@
MN(R.;+5=;U8;JP=!\#P<L^%6X(C"_1P<FY4&XZ@/6?DXW@0WTV<AF0.X`LMW
M1^_.<M%D1Q3UIN5[)1O-4?ZB:F&9#;<"29$X9^)88ZZ[V5AF)\AUS_W;9^&8
M#;<"Q_/>^UP<ZZQMTFPN,Z?BND.T%WL.DCF`*[#LGW7S2=FH")JK-ATZ]N1A
MB<<X1C(/C'$DN`2*B-$@F@ZFUY$W2BRAKS'5Q);WH69KU3Z$V9^)\3+0#*RU
M]'$)WB7GD0&@`95M^%=R)O)A?]^IXA6%-*@EY-]>17Y8-*?CU8W)`\LG?^8X
MILLB\PLT!``_7;X_,P</<"H[B'V[7:HVEZ*/PN\\[,D1`*.?`Q:K<,2"4OM`
M&EY[([HZ,[VH[-IZ+\=GI^]-M1>T-LM1B3'.QK_UB<<FNV<\4\>"E=PZ$Z=K
MNX34^;JXI#4)V%1%?/`6O0@1D-'M;T&KQZ!@].)B\/&L?_1I\.LQK`5]83BI
MV_#<T4+1_;;M5D?.'DSK+'Y7<'R;Q)$U;3HBJ#)97\FQOSR':GNJ\=S_MF9A
M-D8)@DOQQ7R$EF6(\<F`*L3',3-5ZQ:RPD0PB05L5/\OYF5!:JY@GMQCE/<8
MRES)`5-"O\<PGNH("A\G*/>'$7-CFA.@,K*E<OLH:I;U1J>:4+EEV#2<I:G8
M;O--0%O[]1+3B6@\P[OSDK.)!M+XRF(@^8YF(.A:\-H=^1,\=U?P#UWLAZ*"
MITM8_VNX]=<1WMS<3$K.^'$&IP:Z!UX.R`)T!6XXK7"F,W\2YSH;G!_^_?R_
M9X/N>>_@`IZ]3UV\'VHU&H6"L[_G5&)Y'MOOHZ7W>H5,*FO:()24,R')T`D,
M8')F:GE76YU*0B^483,,-5HQM9M`Y+93Y(?2;GZ:SB)O?AO;U<3>V3`)=8A9
MQX!G]PS5/F.%T%L_PB]N05WJ/EKZHIC,J44K\U,J=]'*_93,SB/3GX^=)*+:
M<!T=2,;:),JJ#9698%U`>2W:6*(S0_2\2*X\[KQ[GTV0-S7-4>,\@^:M3K.J
MU>45S1DV"5?O5(P1SC)?;3#D)#P(LI3/]D[X^'COC9*N">6CRGW\.WP9\2=S
M47#&(__>'\6&&XW*#@J;B_+D;5<6`L2??>C*U(=2N4Q+$S:I!;NK?#])M:G2
M-D,TB-_-L=^8H<VO*JNDZH1UBA*>,E)BXQ3'#6>XNO8O#F!K^J=3ACFO;VJI
M5F=Z[\]O8!"D+FH;M39W1<P./L]$XQK&D@O(A$F5X4@*!K88IA4_\@M&PQ55
MDBS0*.:RJBM:,$\*R"*`>,U!G1I<74;WU^9U]8B[0&TA:2HTZ83.CSPF;#*-
M4!S(O>0!DNK#D_IB8N0A1A43B6%P'X3D'?61Y(II+'88"RW*H*$!"RM=U'R[
M$P\.\3#T2LY5"0WQC*&HO\5CU[JDAJ'REO&BQ0_XSSHPH/),\2_$^QSW^BB'
MFTUG-5K2UG!,WLM=*C3TK7/%-V;R_2F1D%GD;\N+W,LM<R^WT/?GO:6%[N>5
MN9]?Y`H\]W/QW,_'\W!%H7NYA>[E%WJZHM"7N86^7(+IP>GATE+AD)-3JDK)
M*O7L?&FA,(ES"E4I685^6EHJ8_3RBLXL[DN%7T8M^9`9M?YVV>M?2+5U5^9Q
MJTF'N:(\LR<5DC;NLM$]XXR&$QG$I<_/).V*0F/BVH6N(.W24I<1UZSEATC;
M/3LY.3![E-S=UIITI2G/9V]8RF1.622%RE&._U4;[ODS6R\C,IW2/*!Q#YII
ME9R'R=2GK?AA@29G\(3=QE(4>DCXGGE0S$N\3*M/:I5^T(Q+7,SF`WX*#?<S
MA$DXV[74^`T6XR%43G<L?1+?UG@2MU=4AFX76GURP_"-6H8OT#1\$+;\,I(W
MY#DT8@]\T\EF^-11[1U2R9:GW5&6K9BV9I2>2?(3*)2SB&G3T:3,.)IBX_%A
M:[%AJ8A5N[)-6FGR?`96<`B(AXS2-4LJF_T@2@^&#><(%7$/SM]_/.]U2PZ4
M'!]TQOXXP_Z-;)H:B7,.@5I@363-S;`MS%L8MR1:]%%6=B\?!D?D944I&8MP
M)2_Y290;='KOX",[C6I7=VK`A4J&!,C@X+QW>L!.\%R=IZQ*E4%]YWNS0B+G
MN_,>9*FVZNV&63KQ,17B-O&Q([J&1.M??50E(B?U84"A*T+_EM14IO,`'OX0
MU>*G,-;IW.Q%I'\TUX[Q,2B-XXCI!GNSO_*C2+EUCSW*HWO$B;_EG'!I`(?A
M."8HN"!G9B$-%S'XPH.6-]'Q-=`Z.D#<IC<6Z1VW`;QBY).C?_2'#Z,&[YJ5
MVQ!TZ-J.(<AAO><,4;%R-+OS"EM.ST-U,^5)&./"D$$M,*">N#&C@?MLM)Y6
MXE5<C1?%Q%"!2!0<6^ERA(X`YZ&:6_@'B3MWD'F'&0.]]KR6Q1V'-_]>,&%'
M0E#`;72GXC^0:A=%`W"QJQ`7*/UHHL:#/Z1RN`_9?2YYOKP)_-%0%<)C%OUD
MC@=W0_)S2]IP-XL1E84N/<QB*(^/1K)2CHO67`4>IX9;883#%"I`C5SAVZNE
M6@WY]EJIUDH<8`<A(O&GO4GP1S$;>[/)Y5*@#\;/0:7!I5I46!ID)+=.;`_V
M5=R`JI@L,HR435:B:LIHR%S5<5F`&.=X485^$ONGN,=DKG*_JVJ>G@UN$\2@
MA_A@0CIT%&5BJK`B#N\E7!;.B#%:MG&'=F)J4KP?!6__,W-0"6A-@1,KA1G3
M"^O?%<QRJK4Z+B8=!KD18BQ!F?6_X#N"FZ3\F>S93<[Z)P2(G663E)?&CM8?
M-#M.A:I0.\')@`S\[$`RQC:53!>')%)/:G#P8E$R$FZ">1C%$]R"H]A;V(IQ
M,`F`'BSHIJ!)3*>1?R/3U94E3=81O<^@`S*<.9Y('SDXQHZZXX1_9!:E>K8@
M@NZX>1]XZ[3W2QK.J.P6PQU9<&DRV>F:3#'`R=$I8./6G$T%K:B86J60BV2<
MB0RE-$0\5%W\*9LB'9=JY`.O55,N\&(,^J>7)S1HFA7K\W'OU#TI`&[PM[R/
MPNXW`FTUH/\K`O9AP\(_FZK`HI.D'4^X`J0X?RA=.&LG3F?A'`6E`F=OD/G@
M!G:_]C5V^#?)`<58E0VL;+32>:0>@QY%.^/3\W,:N)[V3PZ.CYUVAH"3,P*V
MN#Q\5J!?E!W(3IO<(-4J=>7@$#GR,1G"W&B7B(N;SQ54?-[XH[*!IT%MU,:`
M84%=;<GM!-W3L!=&_G^]I'JW#.#E?5R42O&;(A^ZZ\/ADME\H_%R;U)<6:F<
M@%-U%TJ*\')CHC&Q/O\@/HXBC;HZT88`E9)SQ?>H)><Z=BY5>(W^"7&/<P+G
M+09:@2,WOG&]N\IZH2)>H^/C0>SJ<OA'1/^/])\P?J%`.$%)T"$*2]<ZO\`:
M"N>3CK.`1TDZ,"9(27"(HX#$*?(BZ9EEK^."L@ZENWJ,X%<:A?AY':F]7LC)
M[=XXQ3U!`)VJNPOCMY$'[2P5D>KB6KN^K3QZ(83A$?2/2`^(P%@S8TUM[BWI
M+G11IV9-\&77&>_R)^XO4>E7I;M0_!OXO^!8`UV/<QET[&HK*T]JG":':4Q^
M798R.7;=8C$(4)5D.[8FCD,D0;/U?=WW^/1*05&R+^JV]06</L`*=,95G>&^
MHUJK-7@UH2</5$*&>DY?\>AOBRTQW6!/*")&R/-B9KM+PSPA2DITGBQG:<IW
M&4+?:CG+JAJ>$E44LZIXRJTC;M^$/*QE58%Q-2@'P6C9@]SZ5V(Q0ZX3/+JU
M2SIMU,[O3&%#I5.K6[&8R(*MJ.W8Z-_F4W@W("<CQ%F^PO/%Z<%)C]*2;C.1
MGT`9&X/^8K"/R/4_K8;A%[HZ%8!760#BLD=`7F:!7$]'B_$D%)#NV?'ER6E?
M@5!CQ7!*GMA@ZS9S\]:;SW=SKK^@/V,1$X948\'D9C"Y+SF_DU1/G'I[-17\
MXEOJ@NS'2GG2Q5BNTQ>X_%1+Z#EKR$O4W+_G%[[O)O_3WR;\-BJAX5H0WGGA
MG2'PNO)O.1V^R[LETPS)AI*-6<B41=QUHR<O#W#<'*+OQ\C#OS/\'J4LXVQ9
MIE%#=SJ>T<V7H$.XT=PH[\_&N/-]/*&S+'\H[Y/.6D$<@7XXZ'_H'<IJW^81
MW#9,,>.98QG>>.1+`/`DJX[2!MF;;'[3M_UN"*MMA`Q7E59G3GI*IZE2E5Z.
MA^[40MB;AK3Y(^2N;?#_$IH1A.@`%:7JV&WJ6F]GFTX5_(CM)^=B-1%S#;MH
ME+E'3M$PO_MZB-Z'9X4"-PJXAF)1+_E49[D\E[UI;1XW,D(.!O!DK,D)7+4@
MGE+G1H/SX/#XF$-.Y66<"(?6)!)O+O)@VT2RU#B[T&TNVW6ER3HT_"0:`+F0
M1Z)8+6LA;OC:TX$.5L?.1K_Y,MQ%9"%>1Q.?L<=P<Y'9]QI=*M",@_\`ZO4W
M4A-5+%9;6"QUT6YZ@)4IFO*,5B)ILXI<8"PJR##;D50WG3:>.QK*K5P>]%,*
MW!24DY=!Y6/QFG6)E$?W:KW*9KEUS2;F^7\SO>"FVL85X160&K\JL`"'K)2G
ML8[R/7B8)I@2R2N%B+*FW6H"_1AES!7#H85$!3XRK_@Q"D"9A(1*TP:#/@+[
M)=G)4[BVD6\(/1O551Y,D\0L:344]NV93C><$5IC*N6#4,9G0[A;?JI-6RE$
M9JZ;MH(D@/2[!\<'>`EK?CPX/S_X1\?00-.GJ'4RM:=%0OM`M#T@.FMFG]]K
MC^':^TGJTM#TC<L>6N5HT]2AM\B<.9H'/D;+CJ7=<>RY)#-BC6KV8YZZJA*Z
M2\>V1'^OU4X:*A!SQEUJE93JT$1J1G?J*HT%`]=R,:RM;O.-CSREY:9K+O3%
MP/>&*+]:18DEEZN0D9SVYKMK95Z<[C=9P;'"N/$S=^1#P:%5L.'1-B,MY<Y6
M5^LHE[8<H+!19]\4\B*1^>26@&SY[GQ-#B+1EI/Q+W>@T'2<9]#$5`6.?8W'
M)Y6$;J[A8]R"T;JQ9G>&9G?>^A.RCU8Q!E5C-E6(QB8%W.*G27]->'0<N83V
M&<DF^:FAF2WDKBA*>D;S',O]<'X3,<+Y/X][Y;D_\E0<:;.)K18WL=7*;.(3
MQC3/;V)V<JJ)C/Y,GPC-EEA\*L.DFZLW&0+05\<8;P/YTM?HY)A<A_!/.8R(
M0\]*FY@*>:Z:XJEXD\Z__K)!\NA_'9R_[V[DC^<9NGM8,<5A&T>N;,8'1.6#
MOK+#<6XJVI-'+H9T[9I&\?S@]/#L9`ER<VC!=+P".P1R48)1>=B^0>UMCAA<
M8>SXF1XC7'3F&$$EQ>SDE'YB2)6[IJOZPGUL`U*K5MDM*S]_AD;]7O?L]+"_
MA$A\VQBNH!+IP^.!C.3#=_ASOA7=#R"WHIBXD*W6DJ:,BE>A>G*G54YZ:N6V
M*T>S=A,U-4T,J`6#512>+<&S];,TO3PZ7$+/1;!J/D#R@K6T&:&V(-3^681Z
MRS'RGX62;^)4JS!.M<K/XO1^*4JWS\'HUD1(1E>M]M-$6HZ1_RR4?`NG!H<5
MY^>R0T\4/0;#D9]7OFEG`J#XU!$T)!A8XV<7R0]'_0ODYY<T'0U/\*"SHOD"
MIC!K"F;-[`52%9J[1.8!9"IQNP(-\_B^@(J^-3R-QA]K"JN68-7Z67KUSL]/
MSY:-D_E\,EU!*8)101IJXH!47K)C03#-]%DGP?JS?`Y3@&X$6DR#/J5A31G>
M,+@-#>T_VR1.:ZDMM)J:<;Y5\2W$X]!&>:-$-IIE.=34MK>)9Z>G<K*Z]/S%
M[C045[9$L62-0\)I1_JS6`[NS@H%(Q:<&`9:<=C0C[B=(2OF>\:1E/`#MH4=
M`&EQ^'P:3<G=[-9=2OFNT:E5.]6$\IV9(PU=,Z))-.F,W50G;&W>^/?SHXL>
MH/5^4!M<R%'.4M`S3#`'@[O9XL'V./[AX^6G0?_L\KS;*]@&FZN@27*H4SY]
M?-\8]#Y=]$X/>X<%`\%^[[C7O=`8DFP9$:3.R(.Z&0XH"+LF;;BXRC*4JU8Z
M]7:GGKAH$.!D:`K;IW]KFRC*#R.*8GP:QF`BL/*B?&XS5+>H,<B,Q,[/599E
M7=+(D)&A+)'UDOG&HV9>><BL-<7<X2S^:2,R]\>+40PXFX:1_6'NHWZ1!1!_
ML,K":'9AK(^+PQP_>=<^*=A`$D4/A*7QS70>W+[!1%N!""KCZP#T8005R0^+
M,+DP>C6ZGLX"LL$U/^*$"V\3'WT=1H"(R=8XV]H:QQ1Z;Y*ISX9+[I/XQ]%D
MYLUC<T+I?.G9V$%=).$,#0=R@+.ZY'^*/\19_/#:F_E*`UM__DI7YUH]XO+T
MXNQO;A?U4<@_4!=OF)_('U#X&7^5G8]X@OJ"%\U=\<Y%PB'RMR<OJ7NC%^QH
MBR:"[`">UD&^(M]3JK_#*"'^Y'L6!D)2I,1^!JCH#5CV;::,U"XK*3TU2BT9
M99G&<7K^H&8G-,=][:E9>&^H0KN>LI?,%!4JV4A"5BB20OP7*3P-_8>)"+'E
MTH"2"_$E`L54U[^(D.8B$97+\B:.]]S-8I&J0:>*AJXV*P'+CH&Q5FC)JM$=
M=K-32:YM`IVX[:Y5K/B$]1T2TN!#A%2QM3I,:4UX5!NU%5L][(,;7[F<O_:`
MKYN../!EF6SX3PX^E:L.!^5QT3<]1L),1I(9>X]7*D.<BWW5V_\VE0#MWI]'
MK$A,74BVID-@OU!5#A:<L<.Q-92,#=D3UHB#'W%!:-(:3-C!_F2!H5F51ZTM
MT>BN;-4KU4K=V7=&MTXM0SJ'RYF:G_$0A0[$T[?K9EP-H-4DO$G).`SJAKK<
MDC*>5A7"_75TXSQ.%W,^`(R]Z_DT)'WGJSDN%.CYG96BF03_1E]\9!:/M0-Y
MQIDB2)-S643!*#2BI=#`:E#HI^U.):%P(<")$5BO66$7JQS"EQ]Q`-^Q>%_[
M'N^*I&3@]C\<G?8O#H].B:]`T=5DBO>AJ?@OSF>8U%](>4B@=HD-S`?CGM+`
M5+'B!2EF\!\3#AH,.55Z'$F7/_*]X$Z+C+/4BVS6*LX2*I&(]+$,G=;E(:WV
M3!C7B(>*4J5]U[LX?S">%8[CIP+R/-"'&+^69<HD]:'$@]/^$0Z!R=";#YTN
M-/]J3D9$5Q0-:S2-)#.KEH^=T(<_9)@M(R5['!CCH9B)MVB30'%HZKUU5WA&
M(XH_WP@+?2[I^8U8VKSL$YMR.`BXPL1)6NQ$B0.3Q>ZE=0K\*,&?3/Q;O8G)
M3A!,KD;>Y"NY1=53D"C+IX:[!<^K.LXK8%L;#7L"$F@RLE6K4S>T:.IM\FG8
M5F'7T/FL<^-_PT`_Y'Q65A$DBEJG2"]Y,7:]TA7IQWH%]"]R13IO'FFZ79$N
MM(K(=@8K$C8:XXJHLQJ>93J.-M'0,=K\@,*02"@VQQOA=2?:NI2HJ.E<K#C(
M.S`',/;,H#(+]((<QF8=%&W-Z7+DVM$C9J6[4[WH!:$,&L)0;&X\+@"J*I?]
M">XPY=$-QX7[YHG9#8UM6&8Y/8R]2:*G`QB:8K#`445\LM.YH1(F4P?V&8R+
M@Y9?$JD"7:1.YY$8FH2`K(H3EW>B57%_DCLJC2\C+I`^H*<`%P(IGG!4!FIZ
M;BF<&F<UPD:Q5P8:*F90HN/?U0UPNUTAEPAM9#?$#R_IE&U*7!XH!/4"T<0F
M+5%1BTBH)NF:COPFX858'D-'TVN@+;F1Q:.W0[?+="0OV'EA1N=EE66-LO*M
M<\$Q(F/C16-.3C7&72/T+SMK?OK9K'IQ^N"%=Q?$\I!25%ZST0>9-%MTCF)M
ML^_.0B\TD-O0H;_)NP>C:6+?V>*_Q02!_U2]Z&Y>WTS,.*W"'Y,IKT`$-@3K
M*.+&G)W^I`!T%5Y6%52'II%`WMF0FG(:]CNI>X@R%OLFW*D:-A)+J'/[0]1A
M)!/D8;*(_F603%%C)2-)C_L$,2P:Q.,D00BC];>Z]=7Z3@/W@2HZ*]F)53-B
M.TG3BDD;(CUK*Z6"@(M%AZ9L](.>V,D@C^;ZS7PZIAV?JLDO(L:%#9`WP]FN
MN6"@A3VFN@4:ONAA!DOE7B*@589G@B5K7A&:)VA$$Z+1G?#A9#+*-G2FZ6*;
MRY:CD]HG82I.//=384U%TRXX\"MEN*',4,E2"7=Y[QHXC)O@-F.;KW;J<-0S
MO.'$L-8^WP)FW-*6K=7K&&`5']J6#P]XL@xxxxxx('!X@`T.Y1CDE-L9/DZ\
M,;(!L&..IAY:/[(6-1E=HI`/_3\1;\#NM?#3X3].#TZ.NAR2U:CA7]8>LH'U
MO853ZAL1:^X[PZE/(5F9?.)NG<L-)M-!9`1YI5(#W@VH;[_=^?&V#?N_'X:\
ME?O![5U$XZU$9D)SM"ND,F;SZ7V`84*0B5#[+TJLXBSH<&KN436T'5.^TVF$
M0PNV_L0H*CD)!W4EY^CTS/P`382)-(TH2`D5)G)1S?#@T!*>ASFB4(6?);X8
M*B4),_`0:H.$1@Y';,Y*G+1R0!/'F4WVLJI(*C#I;#O?2W6A9\6SY>A:,#D"
M,DQFUEP5'MX!.950G@M/3;HLY-@QFL;.<;%'THQ2P2PX0?;L@FD(_6#!B>Z3
MV8G&=J.M<2-#R%RK=1HM<W8JV"1<H],TC`YJVRB%@;_5FDCMZ4XAE+')AN(;
MRCX0T87Q"%`'1Y_6UM;*_X%3PNWH?K3GP0S#[Y<C8%X>2.IQUG_WIKI6A@-J
M]47Y+S!!RY>4Y\!SRH>FG!Y=(<:IL+@#>9P,,"B^__MY`Z$^7;\H(Q6]ZP$Z
M,H,1NK[NV-@X5+.SGBX(("$_5.J\@R*H9A)0X`S%^LE$<E<X=(JG`!2D4R&=
M`$?AU(%]R)^@NR,\'4!!P)I_\^%``4^:5\B_F566B"(8J9GMZB>TR)EG!2CD
M[[[SU?=GM'F@0`O.N.11"1MZ!1O/-SR/<E3KX"H8!1%&='X>%;!9N92`M0%W
MNNZ[XX/W_;WU5U`<;F(#_N"\XN+7$>:@.[@X_\>@>W;R\>BXY]*PY&T`MJJM
M8)*2$%8Z</(S'3J8T-;0W,:XS0US:'+4&7[POC&<C)SNG0][</84<MS^%+X&
M86&+@4D&@(&VU5EKB-R#[\U'CXJ98A/WQ0T=&<2:$S5`MUZ4<9G!H^/#*SYJ
M#>`HAIK;#[O4AR^*"F#=A%@W05`<,0`._GUO\`XH-NA??OQX=G[Q`M!6/E[K
M[%"YKF[@*25N:L#'0<0+^QY:.U?-#;4B;EG$HW3J"%^4H9^Z!]T/O0'\W_V;
M^ZS\.CL,Z9_)?VL40,V^OA]<#Q3$@"$&&N)S8BQ]IDCRTZE;V/U2<NA7\)E^
M?X$/./A6E+GWB"X:^":2_,[BH\4R,*P+%OY!_^C]Z<%Q_/OCT>'@(OY)RSFW
M'MO-:L&T?)><9-03E>?D[+!GEG%I%XE"U0%M#-BCY1_\Q[EXR"MC;!9/H%B9
M.`J)^6Z>^O\O=>FV(^)G[W#;@BW_=CH=PB[KLS?%;S[-*1H3<S\$=M3!W;C$
M);#$&_@%Q54I(9]B3F&'QK52GUNVLL9;@E4HJ=['[X,@Q'T1OD.5:AR=7Y[R
M&!I[P018\3^5U-,2AK]UVKO.=QA/Q<SR>`SEI$VF2Y(*7PK8R6I%>)4)Y^QA
M0#:U>M!R>MA[=W3:2_H>?E'T1ZL7%RXA03@]2>&8;K--FH:,S("^82&?EU1E
MX2N3T&"EW%=_QCF^L[-B%NID0NL=3]P:.[KF5VG<UC&.S]2J/5WB?Q;><!"I
MXF#M+,KC"WU;7O[+9`6Z0P:7I[]=GEWT#MT4JYU1$G6]Y$]T1X*KU'U`WZV!
MC/FMP8QG1@G6;AU7L+*<0<[QK624`PVDV.PZ9;`O`:`1OS2]\*6@@UU:`S\!
MFASY%K$SW&NKSLPC:X*GUF2E[__O9*52<\F:J#--UB1`DJSI]%RR)D"7DS5Q
MB##(RG\3G`;KDP6WH0^C>LLQ9-='&V.8M5/F12:<Q3Y!XZ+_%C=(.'/<[4/F
5,SR@A<Z83K2X6[SX7[ZWTYNML0``
`
end

-- 
Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy



Messages sorted by: Reverse Date, Date, Thread, Author