diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/digests/tex-implementors/mf.dif |
Initial commit
Diffstat (limited to 'info/digests/tex-implementors/mf.dif')
-rw-r--r-- | info/digests/tex-implementors/mf.dif | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/info/digests/tex-implementors/mf.dif b/info/digests/tex-implementors/mf.dif new file mode 100644 index 0000000000..4258fe0f16 --- /dev/null +++ b/info/digests/tex-implementors/mf.dif @@ -0,0 +1,285 @@ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 7 % TeX is a trademark of the American Mathematical Society. + 8 % METAFONT is a tradement of Addison-Wesley Publishing Company. + 10 % Version 0 was completed on July 28, 1984. + 11 % Version 1 was completed on January 4, 1986; it corresponds to "Volume D". + 12 % Version 1.1 trivially corrected the punctuation in one message (June 1986). + 13 % Version 1.2 corrected an arithmetic overflow problem (July 1986). + 14 % Version 1.3 improved rounding when elliptical pens are made (November 1986). + 15 % A few "harmless" optimizations have been made since then. + 17 % A reward of $10.24 will be paid to the first finder of any remaining bug. + 18 % (This amount will double again in 1988.) + 20 % Although considerable effort has been expended to make the METAFONT program +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 7 % Version 0 was completed on July 28, 1984. + 8 % Version 1 was completed on January 4, 1986; it corresponds to "Volume D". + 10 % A reward of $5.12 will be paid to the first finder of any remaining bug. + 11 % (This amount will double in 1987.) + 13 % Although considerable effort has been expended to make the METAFONT program +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 42 \chardef\%=`\% + 43 \let\swap=\leftrightarrow +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 35 \let\swap=\leftrightarrow +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 146 @d banner=='This is METAFONT, Version 1.3' {printed when \MF\ starts} + 148 @ Different \PASCAL s have slightly different conventions, and the present +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 138 @d banner=='This is METAFONT, Version 1.0' {printed when \MF\ starts} + 140 @ Different \PASCAL s have slightly different conventions, and the present +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 1019 @!str_ptr : str_number; {number of the current string being created} + 1020 @!init_pool_ptr : pool_pointer; {the starting value of |pool_ptr|} +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 1011 @!str_ptr : str_number; {start of the current string being created} + 1012 @!init_pool_ptr : pool_pointer; {the starting value of |pool_ptr|} +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 1617 when |get_next| is being used to delete a token, and/or if some fatal error + 1618 occurs while \MF\ is trying to fix a non-fatal one. But such recursion + 1619 @^recursion@> + 1620 is never more than two levels deep. + 1622 @<Error handling...@>= +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 1609 when |get_next| is being used to delete a token, or if some fatal error + 1610 occurs while \MF\ is trying to fix a non-fatal one. But such recursion + 1611 @^recursion@> + 1612 is never more than one level deep. + 1614 @<Error handling...@>= +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 3177 @ The |mem| array is divided into two regions that are allocated separately, +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 3169 @<Glob...@>= + 3170 @!temp_ptr:pointer; {a pointer variable for occasional emergency use} + 3172 @ The |mem| array is divided into two regions that are allocated separately, +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 3314 @p function get_node(@!s:integer):pointer; {variable-size node allocation} + 3315 label found,exit,restart; +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 3309 @p function get_node(@!s:integer):pointer; {variable-size node liberation} + 3310 label found,exit,restart; +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 3368 if r=p then if rlink(p)<>p then + 3369 @<Allocate entire node |p| and |goto found|@>; +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 3363 if r=p then if ((rlink(p)<>rover) or (llink(p)<>rover)) then + 3364 @<Allocate entire node |p| and |goto found|@>; +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 4250 or syntactic significance, except in a few instances defined here. + 4251 There's also |max_class|, which can be used as a basis for additional +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 4245 or syntactic significance, expect in a few instances defined here. + 4246 There's also |max_class|, which can be used as a basis for additional +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 6061 @!s,@!t:pointer; {registers for list traversal} + 6062 @!delx,@!dely:scaled; {directions where |open| meets |explicit|} +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 6056 @!r,@!s,@!t:pointer; {registers for list traversal} + 6057 @!delx,@!dely:scaled; {directions where |open| meets |explicit|} +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 6164 @<Other local variables for |solve_choices|@>@; +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 6159 @!sine,@!cosine:fraction; {trig functions of various angles} + 6160 @<Other local variables for |solve_choices|@>@; +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 6759 (The constant .14 is actually $(7-\sqrt{28}\,)/12$; the worst case + 6760 occurs for polynomials like $B(0,28-4\sqrt{28},14-5\sqrt{28},42;t)$.) + 6762 @ OK, now that a long theoretical preamble has justified the +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 6755 (The constant .14 is actually $(7-\sqrt{28}/12$; the worst case + 6756 occurs for polynomials like $B(0,28-4\sqrt{28},14-5\sqrt{28},42)$.) + 6758 @ OK, now that a long theoretical preamble has justified the +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 + 8304 The following code maintains the invariant relations + 8305 $0\L|x0|<\max(|x1|,|x1|+|x2|)$, + 8306 $\vert|x1|\vert<2^{30}$, $\vert|x2|\vert<2^{30}$; +****** +File DRB0:[BELL.WEB]MF.WEB;1 + 8300 The following code maintains the invariant relations |0<=x0<max(x1,x1+x2)|, + 8301 $\vert|x1|\vert<2^{30}$, $\vert|x2|\vert<2^{30}$; +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +10380 while max_coef<fraction_half do +10381 begin double(max_coef); +****** +File DRB0:[BELL.WEB]MF.WEB;1 +10375 while max_coef<fraction_one do +10376 begin double(max_coef); +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +10404 var @!ww:pointer; {for list manipulation} +10405 @!du,@!dv:scaled; {for slope calculation} +****** +File DRB0:[BELL.WEB]MF.WEB;1 +10399 var @!q,@!ww:pointer; {for list manipulation} +10400 @!du,@!dv:scaled; {for slope calculation} +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +10411 begin right_type(p):=k; +10412 if rising then +****** +File DRB0:[BELL.WEB]MF.WEB;1 +10406 begin q:=link(p); right_type(p):=k; +10407 if rising then +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +11228 alpha:=abs(u); beta:=abs(v); +11229 if alpha<beta then +11230 begin alpha:=abs(v); beta:=abs(u); +11231 end; {now $\alpha=\max(\vert u\vert,\vert v\vert)$, +11232 $\beta=\min(\vert u\vert,\vert v\vert)$} +11233 if internal[fillin]<>0 then +11234 d:=d-take_fraction(internal[fillin],make_fraction(beta+beta,delta)); +11235 d:=take_fraction((d+4) div 8,delta); alpha:=alpha div half_unit; +11236 if d<alpha then d:=alpha +****** +File DRB0:[BELL.WEB]MF.WEB;1 +11223 d:=take_fraction(d,delta); +11224 alpha:=abs(u); beta:=abs(v); +11225 if alpha<beta then +11226 begin delta:=alpha; alpha:=beta; beta:=delta; +11227 end; {now $\alpha=\max(\vert u\vert,\vert v\vert)$, +11228 $\beta=\min(\vert u\vert,\vert v\vert)$} +11229 if internal[fillin]<>0 then d:=d-take_fraction(internal[fillin],beta+beta); +11230 d:=(d+4) div 8; alpha:=alpha div half_unit; +11231 if d<alpha then d:=alpha +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +12126 weight in |cur_edges| will be shown as |black| in the window; all other +12127 pixels will be shown as |white|. +****** +File DRB0:[BELL.WEB]MF.WEB;1 +12121 weight in |cur_edges|will be shown as |black| in the window; all other +12122 pixels will be shown as |white|. +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +13545 begin p:=cur_tok; +****** +File DRB0:[BELL.WEB]MF.WEB;1 +13540 @!s:0..param_size; {value of |param_start| on the current level} +13541 begin p:=cur_tok; +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +16989 var @!p:pointer; {for list manipulation} +16990 @!c,@!d:halfword; {operation codes or modifiers} +****** +File DRB0:[BELL.WEB]MF.WEB;1 +16985 var @!p,@!q,@!r:pointer; {for list manipulation} +16986 @!c,@!d:halfword; {operation codes or modifiers} +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +19051 @!q:pointer; {successor of |p|} +19052 begin p:=cur_exp;@/ +19053 if left_type(p)=endpoint then n:=-unity@+else n:=0; +****** +File DRB0:[BELL.WEB]MF.WEB;1 +19047 @!vv:scaled; {initial value of |v|} +19048 @!q:pointer; {successor of |p|} +19049 begin vv:=v; p:=cur_exp;@/ +19050 if left_type(p)=endpoint then n:=-unity@+else n:=0; +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +20107 @!w:integer; {tentative weight} +****** +File DRB0:[BELL.WEB]MF.WEB;1 +20104 @!t:small_number; {variant of |with_option|} +20105 @!w:integer; {tentative weight} +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +20449 ("Pretend that you're Miss Marple: Examine all clues,")@/ +20450 @^Marple, Jane@> +****** +File DRB0:[BELL.WEB]MF.WEB;1 +20447 ("Pretend that you're Miss Marple, examine all clues,")@/ +20448 @^Marple, Jane@> +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +20535 last gives the ``face byte.'' +20537 \yskip\hang|header[0]| is a 32-bit check sum that \MF\ will copy into +****** +File DRB0:[BELL.WEB]MF.WEB;1 +20533 last gives the ``face byte.'' Extensions of \TeX\ for oriental languages +20534 should be able to identify oriental fonts by means of this additional +20535 header information. +20536 @^oriental characters@>@^Chinese characters@>@^Japanese characters@> +20538 \yskip\hang|header[0]| is a 32-bit check sum that \MF\ will copy into +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +21284 print_nl("Font metrics written on "); print(metric_file_name); print_char("."); +21285 @.Font metrics written...@> +****** +File DRB0:[BELL.WEB]MF.WEB;1 +21285 print_nl("Font metrics written on "); print(metric_file_name); +21286 @.Font metrics written...@> +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +22487 This program doesn't bother to close the input files that may still be open. +22489 @<Last-minute...@>= +****** +File DRB0:[BELL.WEB]MF.WEB;1 +22488 @<Last-minute...@>= +************ +************ +File DRB0:[BELL.WEB]MF.WEB;2 +22527 internal[fontmaking]:=0; {avoid loop in case of fatal error} +22528 @<Finish the \.{TFM} file@>; +****** +File DRB0:[BELL.WEB]MF.WEB;1 +22526 @<Finish the \.{TFM} file@>; +************ + +Number of difference sections found: 27 +Number of difference records found: 54 + +DIFFERENCES /IGNORE=(SPACING,TRAILING_SPACES,BLANK_LINES)/WIDTH=132/MERGED=1/OUTPUT=DRB0:[BELL.WEB]MF.DIF;1- + DRB0:[BELL.WEB]MF.WEB;2- + DRB0:[BELL.WEB]MF.WEB;1 |