; TeX output 1996.02.25:0151Q|{Ycmr8THEERRÎORSOFTAEMXK`y cmr101@t : cmbx910Mar1978 ㎍&10 o cmr9RenameTafewexternalv|rariablestomak9etheir rstsixlettersunique.?yL&20 InitializeT%j cmti9escapeffYfichar5TtoT cmsy91,not0[itwillbAesettothe rstc9haracterinput]. ޸xN240"2yD&30 Fixbug:*Thetest`id [5" cmmi9<Ƭ&j2002'w9assuppAosedtodistinguishone-letteridenti ers : fromTlonger(pac9ked)Tones,butnegativ9ev|raluesofid=alsopassthistest.ax}3561L&40 FixTbug:pIwrote`while ^8( d_ )'TwhenImean9t`while( ^8 x,)_ '. x% 2598_B&50 Initialize9theinputroutinesinߤN cmtt9INITEX9[atthistimeashort,Bseparateprogram: notTunderusercon9trol],incaseerrorsoAccur.Zxʬ1337HR&60 Don'tTinitializememJinINITEX,itw9astestime.Tx0Ĭ164SE&70 Change`newffYfiline"V'[whic9hdenotesalexicalscanningstate]to`nextffYfiline#'[which: denotesTcarriageffYfireturnCandTlineffYfifeed%*]Tinprin9tcommands.erwB&80 IncludeTadditionaltest`mem[p]Ƹ6=0^'TincheckffYfimem0Gr.h\xm̬168ULF&90 Fix'inconsistencybAet9ween'theeqffYfilevel#!con9ventions'ofmacroffYfidef/andeqffYfide ne&).xn277TuAEX78commandforassigningacatffYficode$ u],getffYfinext$,andbackffYfiinput0Vthe: rstTtime.11Mar1978!100 InsertTspacebAefore`('onterminalwhenopeninganew le.P:xTVv537jI!110 Putz`p彸 link<(p)'in9totheloAopofshowffYfitokenffYlistA~ ,Msothatitdoesn'tloop: forev9er.xR2923 F!120 ShiftC&thelastitemfoundb9yscanffYfitoks*kintotheinfo% eld.a[WithSAILBallpacking: ofT eldsw9asdonebyarithmeticopAerations,notbythecompiler.]0&x4ʖ474IPkL12Ƹ7!!130 FixTthepreviousbug x:pIshiftedb9ythewrongamount.^xbl474vAB!140 Add afeaturethatprin9tsawarningwhentheendofa lepageoAccurswithin: aTmacrode nitionorcall.p[SystemdepAenden9t.]zΎx~336EI'0 Unin9tendedbugsinmytestroutine[aformatintendedeventuallytotypAeset: The=ArtofComputerProgramming;]helpAedc9heck=outtheerrorreco9very: mec9hanisms.F:or/example,=eIhad`\lft{#}'insteadof`\lft{##}'insidea: macro,TandthreecasesofimpropAer{and}nesting.!150 AddTtheforgottencase`setffYfifontլ:'ptoeqffYfidestroy,<.Nx275V>F!160 ChangeT\requireto\input.͈θxѥ>376~FC!170 Addo"coAdeforthecasecurffYficmd'n=0[laterkno9wnasthecase`tcsffYfitokenffY ag6']: whenTscanningatok9enlist.θx>357=F'0 That'sTthe rst\big"errorI'v9espAottedsofar.!180 In9troAduceTa`d'optionintheerrorroutine,tofacilitatedebugging.:3|x>O84P I!190 Assigna oating-pAoin9tconstantignoreffYfidepth6ytoprevffYfidepth,c,Finsteadofassigning: theTin9tegerconstant ag [sinceprevffYfidepth0istypAerealinTuAEX78]./Ƹx36215H L!200 Impro9veTthereadabilit9yandspacingofshowffYfinodeffYlist@output.5x9~182;187bI!210 SetlDthev|rariablevbAeforeusingthecaseconstructioninshowffYfinodeffYlist<],because: there'ss}onecasewherev'didn'treceiv9eav|ralue[aspartofthe eldunpacking].xn182F'0 AbAoutTsev9enhourstoda9y:.12Mar1978'0 OneThourtoen9teryesterday'scorrectionsandrecompile.'0 A9tthispAointTuAEXcorrectlyloAcatedfurtherunintendedsyntaxerrorsinacphdr: [theTtest le].!220 InsertdebugffYfihelp1in9tosuccumb% ,givingachancetoloAokatmemorybeforethe: systemTdies. xϊ93"-I!230 UseTeqffYfidestroy/Rwherev9erTnecessaryinunsavecx.E xa283D*Q2jD.E.KNUTH@!240 Change`t (t1)moAd8'to`t (t1)land7'inidffYfiname%/,(sinceSAIL : haseR1moAd8=1. j[A9teRthistime,QidffYfiname*3isaroutinethatunpacks: con9trol$sequencenames,haccordingtoaschemethatwillbAecomeobsolete: afterTc9hange#422.]DL C!250 Remo9ve6thespacethatappAearsatendofparagraph.(I6?hadn'tan9ticipated: that.)!Nx%Ⱦ816:S!260 Thro9w\849RdD36Ƹ7!!370 SimplifyEthenewcoAde,realizingthatifhangffYfiindent9=U0thenhangffYfi rst0zis: irrelev|ran9t.'xCr848(fE'0 Time`sharingisv9eryslowtoAday:,*soI'mmostlyreadingtechnicalrepAortswhile: w9aitingۏthreehoursTforcompiler,editor,andloadingroutine.'0 I'mTnotcoun9tingthisasdebuggingtime!'0 (CameTbac9kintheevening.)!380 Spruceupthecommen9tsinthelineffYfibreak- routine,whichappAearstobealmost: w9orking.XƸxu6813.aP!390 Rethink^thesettingofbestffYfiline%o¬;|it's1toAohighinman9ycases.[The nalline: ofTaparagraphw9ashandledinatreacherousway:.]mߤxq874?D!400 ComputeipropAerinitializationforprevffYfidepth2Bwhenbeginningan\hboxwith: aparagraphinside.i[ThisreferstoaspAecial`paragraphbo9x'construction,: used`whenanh9bAox`ofspeci edsizebecomeso9verfull;)eTuAEX78`doesn'tha9ve: theTconceptofin9ternalverticalmoAde.]xn1083D!410 AlsoTinitializetailyinthatcase. xɐ1083D!420 AlsoTputtheresultofline-breakingin9tothecorrectlist.vdM!430 Fixat9ypAointhefreeffYfinode*routine(`link'not`lxlink֬');ubystrangechanceithad: bAeenTharmlessun9tiltoda9y:.J$xf130?T!440 FixTbug:ppostffYfilineffYbreakBQkforgottosetadjustffYfitail,.|`xЬ889PF!450 UpAdateTactffYfiwidth,GiproperlyTwhenloAokingforendofw9ordwhilelinebreaking. kxV866"D!460 Repairthe\tric9ky"partofgetffYfinode%_:IusedtheinfoK{ eldwhenImean9ttosay: lxlinkM߬.#Px'm127;^B'0 No9wthe\cornersmacroofacphdrworks![See\setcornerrulesinThe: TuAEXbAook,Tpage417.]2QTHEERRÎORSOFTAEMX3@!470 ResetTcontribffYfitail32propAerlyTinbuildffYfipage,;.Lx995/D x1079,F!580 IssueTanerrormessageif\box255isn'tconsumedb9ytheoutputroutine.; xWz10157RI'0 I'mJha9vingtroublewiththeBAILJudebugger;eitmakesanillegalmemoryrefer-: enceManddies,whensingle-steppingpasttheen9trytorecursiveproAcedures: hlistffYfiout_dandpvlistffYfiout%4w..SSopIpha9vetoreloadandbAecarefultogothruthese: proAceduresTathighspeed.!590 FixTbugincommen9t(memoryparameterdescriptionsaidnot).3ix7$11G QP!600 FixAt9ypAoinde nitionofruleoutput(saidx;ynotx04a;y0 o).u7[Thispartofthe: coAdeTw9entawaywhenDVI leswereintroAduced.]eB!610 Correct4theem9barrassingbuginshellsort,-,whereIsaid`str6 [kC]'not`t'.: [TheT rstTuAEXhadtosortalloutputb9yverticalpAositiononpage.]CZaB!620 Mak9eKstartffYfiinput1ˬsetKupjobffYfiname+*intheformneededbyshipout d;itusesobso-: leteTcon9ventions.x^532;537 M!630 InsertQ(and)in9totheSAILQ}macrode nitionofnewffYfistring..hismacrowas: forTpre-DVIoutput.]L!640 Unscram9bleotheparametersofoutffYfirule$U:Thedeclarationwas(x0 ;y0 o;x1 6ʲ;y1): whileTthecallw9as(x0 ;x1 6ʲ;y0 o;y1).YjM'0 4:30am,TTuAEX's rstpageissuccessfullyoutput!'0 (ItTw9as`\titlepage\setcpage1\corners\eject\end'.)15Mar1978'0 10:30pm. T:oAda9yI'minstrumentingtheline-breakingroutineandputtingit: throughTabunc9hoftests.'0 (TheTinsertedinstrumen9tationhadbugsthatwon'tbAementionedhere.)!650 Don'tTabAortthejobwheneqffYfidestroy/Rrede nesaTuAEXcon9trolsequence.#Px(275;C'0 TheT rstw9ordofaparagraphwon'tbAehyphenated:::sobAeit!!660 FixTthet9ypAoinlineffYfibreak.thatspoilsthetestfor`lettersinthesamefon9t'.@x896*̸T'0 TheTe ectofthatt9ypAowastosuppressallhyphenationattempts.25Ƹ7!!670 ReplaceTthespaceatparagraphendb9y llglue,notbyzero.PA|xT]816hOB!680 P9ackTtheh9yphencharacterpropAerlyintoitsnoAde.xS0x|o582uL!690 FixTat9ypAo(`2(638U+I48Ƹ7!!880 FixVy9etanothertypAointhecomputationofpageffYfitotal+z:Myoriginalcodesaid: stretchU<(p)Tinsteadofstretchԇ(qR)(terrible).xbxҬ1004&B!890 DoAcumen9tKthedirtytrickabAoutbotffYfimark)!t'sreferencecount.[Thattrickis,: fortunately:,Tnolongeruseful.]\xy1016>gB75Ƹ7!!930 Amend֘theline-breakingalgorithm:\breakinparagraphdoAesn'tw9orkwith: reallyTbadbreaks.xt851lA'0 AZproblemZ1tobAediagnosedtomorro9w:*EachZ1timeIrunthetestprogram,khthe: amoun9tTofmemoryinusegrowsby13cellsnotreturned.'0 Sev9enThourstonight.U17Mar1978!940 In9troAduceTdeadffYficycles4mtoTkeep\endactiveuntilshipffYfiout'oAccurs.:tx>1054W G!950 Don'tTcalllineffYfibreak.withanempt9ylist.Bx_.1096"WE!960 T:ak9expropAeraccountofthe(in nite) llgluewhencomputingthewidthofa: paragraphTlineprecedingadispla9y:.x$1146ĺ)S!970 Addanewparametertohpack668)1G'0 ITrealizedtheneedfor\maxdepthwhile xinginsertions(see#90).C1040 In9troAduce@(400 AC1080 Mak9eTthegetffYfinext'Ƭ0.m&xq"995#SC1300 CorrectTasillyslipinmathffYficomp3t%(theexactoppAositeofwhatIdidin#118).zXx Ȭ1158"(BC1310 RectifyTm9ymentallapseinmakeffYfifraction;~;Isaidnucleus%3insteadofthickness(i.%x Bd74349BC1320 MaskTo themathclasswhenscanningdelimiters.q`xu|1160qtFC1330 Allo9wanoptionalspaceafter\def{...}.[ThisdecisionwillbAeretractedlater.]xn473vC'0 MyTtestexampleissocomplicateditcausestheseman9ticstackstoover ow!C1340 Don'tTtestfornopagesoutputb9yloAokingatthechannelstatus.>lxB$642WLC1350 FixTt9ypAoinde nitionof\mathop(openffYfinoad-/jnotopffYfinoad$6).K¸xO21156hH8TC1360 Rewriter2 nffYfimlist''Ь,ibAecauser2`\left(...\above...\right)'doesn'tparsecor-: rectly;the\leftgoAesin9tothenumerator,the\rightintothedenominator.xn1184!dAC1370 CorrectmtheuseofdepthffYfithresholdEbinprintffYfisubsidiaryffYdataX:FSimple eldsget: sho9wnTwhileothersloAokempty:.xd6929B78Ƹ7!C1380 ReturnTthecarriagebAeforesho9wingthe rstlineofanew lewhenpausing.RظxoH538(IC1390 Fixbug:FThecallshowffYfinoadffYlist>n(mem[..])shouldbAeshowffYfinoadffYlist(..),Nin: theTincompleatffYfinoadHcaseTofshowffYfiactivities>_.x팬219mM'0 3am.pTheTwholemessyform9ulahasbAeenparsedcorrectlyintoatree.'0 TheTeasypartisdone,no9wcomestheharderpart.C1400 Don'tTshiftsinglec9haractersdowninmakeffYfiop%ɬ.Ƹx6749TFC1410 Mak9eTcleanffYfibox,2returnTabAox(asitsnameimplies),notanhlist.>ڸxBJ720VuuD'0 F:on9tTinfostillisn'tquiteright,ithasthewrongv|ralueofquad!.C1420 RetaintheitaliccorrectionwhendoingreboxȬ;canmak9eglueffYfiset%66=0a agfor: this.p[ATbAettersolutionwillbeadoptedlater.]~2x715AC1430 FixTthebugthatmak9esrebox)֬bAombout:pvalue(p)shouldbAevalue(mem[p]). xx715$B'0 6am;TtenhourstoAda9y:.pTuAEXdidn'tdo$\pi\over2$correctly,butw9asclose.'0 IEfoundEthattherebox,problem(#142)w9entEawaywhenIE xedthecleanffYfibox: problem(#141);*butIcwilllea9vetheextrastu abAoutglueffYfiset&޸6={0inthe: programTan9yway:,justforweirdcases.C1440 OmitTextralev9elsofbAoxingwhenpAossibleincleanffYfibox).bP^xflά721zE'0 (T:oTdothis,Ineedtofacetherebox)probleman9yway.)'c21Mar1978'0 10pm.pTheTcomputerisratherhea9vilyloadedtonight.C1450 Don'tOforgetthickness+jwhenmakingasquare-roAotsign(see#131).;[Therule: thic9knessTwilllaterbAederivedfromthecharacterheight.]P xTz737i=FC1460 De neTploAcaltothemakeffYfifraction>routine.rx743ZL'0 Un9wittinglyTusingtheglobalpwasadisaster.C1470 Don'tTsho9wtheamountofglueffYfiset%~whenit'szero.w@x{186QI142Ƹ7!C1480 Mak9eTglueffYfiset%~nonzeroTintheresultofvarffYfidelimiter8\.lBxp706DC1490 FixTbug:pThemathffYfiglue.functiondidn'treturnan9yresult.VBxZ716oJ2FC1500 FixEt9ypAoincharffYfibox*P֬(cnotw>);thiscausedasubscriptedP(tocomeoutthe: samewidthasanunsubscriptedPH.[Laterc9hangesintheruleswillmove: thisTcomputationtox1Ĭ755.]_Jx{709TT144Ƹ7!C1510 ReviseicleanffYfibox,vtoidoopAerationsthatareneededoftenbecauseoftherebox: c9hange.nxެ7202 PC1520 UseTthenewcleanffYfibox,2toa9voidTabugin\sqrt{\raise...}.M xQ737eDQ8jD.E.KNUTH@C1530 Changethede nitionofO\notsothatit'sarelation(whic9hwillbuttagainst : theufollo9wingrelation).>I[AllmathsymbAolsandGreeklettersarede nedin: INITEXTatthistime,notinac9hangeableformatde nition.]`Q 9C1540 Giv9eGerrormessage`Largedelimitermustbeinmathexfont',insteadGof: callingconfusion*NL, sincetheerrorcanoAccur..[Thisparticularerrorisimpos-: sibleTinTuAEX82.]GظxdH706IC1550 ChangetheuseofpinvarffYfidelimiter8%;itisn'talw9ayssetwhenIsa9ygotofound}.xn706F'0 Anotherfon9tproblemnowsurfaced:6xZ6853C127Ƹ7!C1610 ChangeT\ccto\char.Rx¬265CC1620 Don'tOusetric9kysubtractiononpackeddatawhenchangingqtoanordffYfinoad: inTmlistffYfitoffYhlist7\;Tsubtractionisn'talw9aysTsafe.2xNv729KLC1630 FixTt9wotypAosinthespaceffYfitable2&Z(*for0).ɀx764BC1640 InitializeTcurffYfisize&vRev9erywhereT(Iforgotitintwoplaces).__*xc{703wFC1650 ResetTopffYfinoad'KԬbAeforeTresettingbinffYfinoad' ׬. Hx)728ѰAC1660 T:reatTdisplayffYfistyle7BЬ+8cramped'8andmlistffYfitoffYhlist8U,whichwanttouse: tempffYfiheadgsim9ultaneously:.jxڬ713xMC1740 FixTbadt9ypAoinoverbar%6routine(bforp).Px705T'0 FinallyTTuAEXgottoafterffYfimath1nafterdealingwiththathairyform9ula:::C1750 FixTanotherbadt9ypAo:ppforbthistime.zPx1199TC1760 InsertTmoreparen9theses(twice)bAecauseof`lsh'precedenceinSAIL.(ȸx,81199E L36Ƹ7!C1770 Use`thenewhanging-inden9tationconventionswhenformattingdisplayedequa-: tions.Dx""11999BMC1780 RecomputeTpAenaltiessothatbreakisallo9wedTafterpunctffYfinoad0s.=PxA761UOQ ʟQTHEERRÎORSOFTAEMX9@C1790 Cen9terTthelargedelimitersvertically:.иx@749F >C1800 RoundTallrulesizes(up)bAeforedra9wingthem.tx589uAQC1810 Pro9videTmorespaceoverxinp ʦaH>8Zxެ,andmorespaceatopvincula..x2,^705;737W%QC1820 Mak9elargedelimiterslargeenoughtocoverformulaheight(impAortantforsub- : scripts,TsupAerscripts).f2x悢762QC1830 Insert̀/ntn=33onX9GPnpromptmessagesothatcomplexmathwon'tblowthe: deviceTdriv9er.p[See#84.]gI161Ƹ7!C1840 UpAdatethecommen9taboutthemeaningofE:\char,Ksinceitcanbeusedinmath: moAde. bx$~2088#P'0 SixThourstoAda9y:.23Mar1978'0 11pm,TMaundyTh9ursday:.104Ƹ7!C1850 Mak9eT\tracingand\jparfollowbloAckstructure.yCx}_2838C'0 It|CtoAokmet9wo|Chourstoen9teryesterday'scorrections,bAecausethechangeswere: soTn9umerous.C1860 FixTbadcallonbeginffYfitokenffYlistC¬whenmarksaretobAescanned.CxGZ396Z.RM'0 No9wTtheformulaloAokslikeitshould,moAduloproblemsinfonts.C1870 Prev9entTanexpAonen9tfromgoingbelo9wbaseline+xheight/4.Kd(xO758bQC1880 ChangeTquad7+toTmathffYfiquad1mwhenT nishingadispla9y(severalplaces).&K,x*g1199BoBC1890 Don't{useappendffYfitoffYvlist@4fwhenputtingan\eqnobAo9xonaseparateline,Etbecause: the0@pageshouldn'tbreakatgluethere.m3[Later,6theappend#_willbAeusedbut: precededTb9yanin nitepAenalty:.],x;1205΃AC1900 IncreaseTtheinputstackffYfisize*X;TuAEXma9yneedtobackupalot.LxP:11`SC1910 Don'tTassumethatpalw9aysTpAointstoagluenoAdewhenapageisbroken. xՐ10171AC1920 Use|epsilon$in|scanffYfispec,ޞ(I|dhad|usedadi eren9tsmallconstant).Q[Thiswasa: kludgeTtoa9voidTtheextraparameterlatercalledexactly"oradditional,a.]x36451ۀAC1930 In9troAduce::anewprocedurescanffYfipositiveffYlengthS,stoprev9ent::negativeorzero: lengthsTinscanffYfiruleffYspec;؇.p[Thisrestrictiv9erulewillbAe\overruled"later.]̲x"463)RC1940 FixridiculousbugintheleadersroutineofvlistffYfiout%j:?Ihadtheinitialization: insideetheTloAop!Oxl^635^3BC1950 Eliminate&confusionbAet9ween&thet9wo&tempv|rariablesnamedh;/zoneisrealǬand: theTotherisinteger˥.x7629LC1960 Include*/forgottencase(leaderffYfinode.Ҭ)inhlistffYfiout&f.[[T9ypAeleaderffYfinode70willbe: absorbAedTin9toglueffYfinode,inTuAEX82.]cVxƬ622FFC1970 Don'tTforgettocomputex0Ȭinv|rariablehorizon9talrules.`Kxdg624xxF'0 Sev9enTandahalfhourstoAday:.'0 TuAEXTseemstobAereadytotac9klemytest lebasedonV:olume2.C1980 Calculatey003inhorizon9talrulesasanintegernumbAerofpixelsfromthebase-: line,TsothatthebaselinedoAesn'tjump.x589S25Mar1978'0 2amTSaturda9y:.p(MightaswelldropF:riday.)185Ƹ7!C1990 Mak9ey:defffYficode(Nconsistenty:withthenew\tracingcon9ventions.H#[Manyy:tracing: optionsTarepac9kedTintoasingleparametercalled\tracing.]@xD:1233\j!D185Ƹ7!C2000 Don'tTallo9wuserstochangenonexistentthingslike\catcode1000.0`x4Ь1232M`NR110Ƹ7!C2010 ResetTalignffYfistate0 atTbAeginningofinitffYfialign(.Xx8Ȭ774HFC2020 Don'tTforgetscanffYfileftffYbrace@vafter\noalign.ܸxL785=F110Ƹ7!C2030 SetTcurffYficscϸ Ƭ0TingetffYfinext$'d,after\crcausesaswitc9htothehv ;cmmi6j۸itemplate.x$342-xF'0 Ouc9h,LthatINwasabigbadbug,LwhichtoAokmethreehoursto nd(sinceI: though9tTTuAEX'slow-levelscanningmechanismwasworking). ݟQ10ꍭD.E.KNUTH@'0 Notejtom9yself:GIP,knewitwouldbAecleanertode negetffYfinext'sothatitsets : curffYficsWtozeroev9erytimeitbAegins[i.e.,inxɄ341,wherethisc9hangewillin: factXbAemadeinTuAEX82]."ButIX~hada9voidedXthisongroundsofeciencyin: theTinnerloAop.pW:ell,no9wIhaveearnedthistinybitofeciency:. E0C2040 Prohibitthe rstw9ordofanunav|railablenoAdefrombecomingnegativ9e._D[The: storagealloAcatorofTuAEX78usesanegativ9ev|raluetosignifyanodethatis: a9v|railable,Tjustas`linkE=maxffYfihalfword9'willsignalav|railabilityinTuAEX82.]Fx124)1D'0 ThatTw9asanotherbadone,it'snotmynight.'0 A9tTleastI'mdevelopingmoresubtlediagnostictechniques.C2050 Remem9bAertoun-negatethetopsaveffYfistack0entrywhenhandxleffYfirightffYbraceO߬ n-: ishesTaninsertffYfigroup4Ӭ.p[Thisroutinew9ascompletelyrevisedinTuAEX82.]y$x11002M185Ƹ7!C2060 InitializeT\jpar[i.e.,\tolerance].x(240FC2070 CorrectTthedispla9yofinsertionnoAdesbyshowffYfinodeffYlist=¬.]Cxa`188uQBC2080 Prev9entTshowffYfitokenffYlistC-fromTgeneratingreallylongstringswheninaloAop.Ƹx6292*RC2090 IncreaseAthereferencecoun9tofbotffYfimark,%whenvpackage,7Y ndsit. 7[Thiswas: laterTthejobof reffYfiupN.]K޸xhN1016wDC2100 Remem9bAerTthatthetokenlistforamarkendswitha}.^&xb1101yMC2110 Don'tpletvpackage+qlosethetopinsert.(Itfailswhenthev9ery rstitemisa: \topinsert.)¸x21014 [DC2120 AndwhenthatstupidcoAdeiscorrected,mak9eithandleinsertions rst-in- rst-: out.$>x(Z1018@zA'0 Sev9enThourstoAday:.ϑ26Mar1978'0 EasterTSunda9y:,willworktillsunrise.C2130 AddTan`i'featuretotheerror˟reco9veryTroutine.@x87rSIC2140 IncludeTaprompt.fx ֬87yIC2150 IgnoreTspaceafter\noalign{...}.Lĸxi41133:C'0 Otherwise,things|xZ386D'0 IThadtoredothet9ypAewriter-styleTfontsinceitswidthtableswerewrong.'0 AndTIincreasedlo9w-memorysizeagainto5500,then6500.'0 FinallyTtheen9tiretestprogramwasTuAEXed.pHappyEaster!pSixhourstoAday:.ϑ27Mar1978'0 BeginningTat2:30am.C2190 Mo9veb\vcenterproAcessingtothe rstpassofmlistffYfitoffYhlist8;zotherwisethe: heigh9t,Tdepth,subscripts,etc.,arewayo .x733uAC2200 OmitTspaceafterclosing$$.Kfxg֬1200C'0 Spacing+iswrongintheform9ulaY1b+7 :r+7Yk;Ihavetorethinktheuseofthree: dots. ŸQTHEERRÎORSOFTAEMX11@C2210 Mak9eTconditionalthinspaceav|railabletouseras\.p[Laterwillretractthis.] xr226$VG v'C2220 In9troAduce?y\dispaskipand\dispbskip[latercalled\abovedisplayshortskip : andT\belowdisplayshortskip].jxڬ226L7Q'0 Reminder:pITneedtotestline-breakingwithem9bAeddedmathformulas.C2230 Mak9eTsurethatinteraction2f\6=errorffYfistopffYmodeFլinthe`Whoa'error[fatalffYfierror*Ĭ]. Fx ޶93YIC2240 Fixabigmistak9einthestyleffYfinode0 routine(whichpAointstoagluespAec,not: toglueitselfq);׃someho9wthisdidn'tcausetroubleyesterday:.[InTuAEX78,&style: noAdesTdoubleasplaceholdersformathgluelik9ethinspaces.]Da$xH}732\oiBC2250 Mak9e\p\fntfamobAeygroupstructure.[TuAEX78's\fntfamoperationisacom9bi-: nationTofTuAEX82's\textfont,\scriptfont,and\scriptscriptfont.]xZ12344m`C'0 A9tTthispAointthetestroutineforV:olume2workspAerfectly:.'0 ButTIwillc9hangethepagewidthinordertocheckhardercases.178Ƹ7!C2260 Disablehautomaticlinebreaksafterpunctuationinmath(e.g.,Cconsiderf(x;yR)).xn7612QC2270 Represen9tv^italiccorrectionsasbAoxes,notglue,sothattheyw9on'tbAebroken.: [TheT\kerncommanddoAesn'texisty9et.]2FxN1113S'0 Eigh9tThourstoAday:.C2280 FixabugthatjustclobbAeredthememory:GCallfreeffYfiavail)<,VnotfreeffYfinode(,in: theHinsffYfinode'caseHofvpackage&.[Thislogicwillc9hangecompletelyinTuAEX82.]xn1019!NABbv29Mar1978'0 (W:ednesda9y)TAgainbAeginningat2:30am.C2290 PutTstillmorespaceabAo9veTandbelo9wfractionlinesindisplayedformulas. Hx&746/Q189Ƹ7!C2300 InstallJanin nitepAenalt9yfeature,LwhichpAositivelysuppressesbreaks;useitin: displa9yedTformulaswhose\eqnodoAesn't t.xӈ1205ݟGC2310 CallbuildffYfipage.{after nishingadispla9y;&anddon'tgotothe\noindentroutine: bAecauseTofthenextremark.Åxǡ1200zFC2320 Put\parskipgluejustbAeforeaparagraph,څnotjustafter(sinceitin9terferes: withTapAenalt9yafter).Lnxhެ1091 S'0 Although~thetestprogramgiv9escorrectoutput,itgenerates46loAcationsof: v|rariable-sizeTmemoryand280ofone-w9ordmemorythatarenotfreed.C2330 RecycleTtheulistsandvlistsin nffYfialign%j.bjx~ڬ801ZF25Ƹ7!C2340 Fixbugwhendeletingspaceatendofparagraph:deleteffYfiglueffYref@C(curffYfinode$ʬ): notTdeleteffYfiglueffYref=(value(curffYfinode$ʬ)).5xQ816M'0 There'salsoamorem9ysterioustypAeofuncollectedgarbage, afractionffYfinoad: correspAondingTto$p\choose$,anincompleatffYfinoadHnotcompleted.'0 Couldn'tT ndthatone,soIrecompiledwith#233and#234corrected.'0 No9wTitgainsjust10loAcationsofv|rariable-sizememoryand7oftheotherkind.C2350 ExtendTsearchffYfimem69toTsearc9heqtbalso.3hxOج255yI143Ƹ7!C2360 FixTbuginrebox)֬whenlistffYfiptr_(b)=0.4xQ715=D'0 The,sev9enone-wordnoAdesweregeneratedbythisbug;7}reboxbputthemontoa: link9edTliststartingwithmem[0],growingatthefarend!C2370 Remem9bAerTtocompleteeachincompleatffYfinoadEE.x`1184"D'0 Thissolv9edtheothermystery:.AIshadnevernoticedthatmytestoutputwas: actuallyTwrong:p$p\choosek$cameoutas`kC'.'0 AfterW thesecorrections,}thetestroutinew9orked:::7 IVfeelW thatTuAEXisno9wpretty: w9ellTdebugged(exceptpAerhapsforerrorrecovery)|it'stimetocelebrate!bvh1Apr1978C2380 Don'tTquitafter leloAokupfails.ָxF530CIh2Apr1978C2390 Add-#TlEXffYfifontffYarea<,3so-#thatit'seasiertoc9hangethedefaultlibraryareaasso- : ciatedTwithadevice.Gxdh514P 2Q12ꍭD.E.KNUTH@h3Apr1978 JfC2400 Insert0paren9thesesagain,wtocopAewiththeprecedenceofDlshwhenpacking : data.p(SeeT#55and#176.)Ů>xʮ1114L'0 IThadnev9ertriedhmodeʓ+8discretionary:+bAefore!C2410 Remem9bAerhthatbackffYfierror3+"mathffYfishift+*0,%whenthetopofsaveffYfistack/(gisn'tamathffYfishiftffYgroupEr.xn1065# IC2530 Adjust{'themathspacingbAet9ween{'closingparen9thesesandOrd,ԛOp,Open,: Punct.x"(7645QC2540 Mak9eTtheunderlinegofurtherunder.`px|735=Q96Ƹ7!C2550 ComputeNthepropAernaturalwidthwhenadispla9yedNequationfollo9wsapara-: graphTwhose llgluehasbAeendeletedb9ylineffYfibreak*.cOJxgk1146 S320MaCy1978C2560 FixTthespuriousv|ralueofprevffYfidepth0insidealignmen9ts.dcZxhʬ775|'AC2570 Considerg(anddefeat)thefollo9wingscenario:Theuandvlistsarebuiltin: initffYfialigndbOusingdtempffYfihead.; thendwhilescanning`\tabskip2pt\rt{...}': theTmacro\rtisexpanded,clobbAeringtempffYfihead-kެ.lhxpج779S'0 ThatTbugw9asmoresubtlethanusual.C2580 Addtheparameternum3ެ,sothatthepAositioningof\\atopcanbedi eren9t: fromTthatforfractions.ix߆`700QC2590 Add)newparametersdelim1%5׬anddelim2 ,]sothat\combcanuse xedsize: delimiters,Tnotcomputedaswith\left.ƶx&748YQ322MaCy1978221Ƹ7!C2600 ChangeT\to\andin9troAduce\asthenegativeof\.p[Laterobsolete.]fxd226.\lC FQTHEERRÎORSOFTAEMX13@C2610 Fix\thedispla9yofnegativepAenaltynoAdes;`showffYfinodeffYlistAz*isconfusedwhena : negativ9eTv|raluehasbAeenpackedintothemiddleofaword.M2xQ194f|wL 0'0 Memory5o9ver owjustoAccurredwithloffYfimemffYmax;=G7500andmemffYfimax1@=: 16384.pSoTIha9veTtogoto15-bitpAoin9ters.(Aproblemon32-bitmac9hines?)?23MaCy1978C2620 Add]anewparameterbigffYfiopffYspacing5BU",(forextraspaceabAo9ve]andbelo9wlimits: ofTbigdispla9yedTopAerators.x \751喹QC2630 InitializeTincompleatffYfinoadHinT$$\halign{...}$$.}KָxhF775F'0 Thatƞw9asanotherheretofore-untestedopAeration.0NHowmuchofthecoAdehas: notTy9etbAeenexercised?238Ƹ7!C2640 CloseTthe lewhendoingloAokup-failurereco9very:.8xŨ27z*FC2650 Impro9veTtheerrorreco9veryTfor`Extra&'.޸xN792oIC2660 Thetoppiecem9ustbAecalculatedmod128invarffYfidelimiter9,Otoguaran9teea: v|ralidTsubscriptrange.p[ObsoleteinTuAEX82.]朸x 546ÌR252Ƹ7!C2670 FixTablunderinnewmissingffYfibrace=]coAde.Kxh1065B262Ƹ7!C2680 FixTablunderinnewcoAdeforlimitsondispla9yoperators.Xx\8751p)B?26MaCy1978C2690 Don'tTinsertanewpAenalt9yafteranexplicitpenalt9yinmathmode.2xx6767J qQ'0 TheThashtableo9ver owed;TIough9ttomakeitmuchbigger.110Ƹ7!C2700 Av9oidpAossiblebadmemoryreferencesinalignmentwhenthereiserroneous: inputafter\cr.l[InsteadofextraffYfiinfo+j, 7thev|ralueofcurffYfialign,ninTuAEX78is: negated,TbAecausew9eneedonlydistinguish\crfrom&.]Z3Bx^O789r2RC2710 Mak9ethedimensionparameterslike\hsizeallglobal,sothattheycanbAeset: inTthe\outputroutine.ڋxާ~279S'0 ThisTledtomajorsimpli cations,alsotomajorsurgery:.'0 [ButTitw9asakludgydecision,overruledinTuAEX82.]94Ƹ7!C2720 Don'tTforgettosetthet9ypAeofthenewnullbAoxinthe\endroutine.(fx,֬1054ED?27MaCy1978'0 TheTdatao9ver owedTmemoryagain,bAothlo9wandhigh,doingSection3.3.2.184Ƹ7!C2730 MaskTo extrabitsof\charinmathmoAde,toa9voidTbadmemoryreferences.x d1151"PRC2740 ZeroToutthenegativ9e\medmuskipinscriptstyles.xklx|ܬ732yB29MaCy1978C2750 Be'preparedtohandleanunde nedcon9trolsequenceduringgetffYfixffYtoken0.(Can : xTthisb9ybruteforce,usinggetffYfitoken+΄insteadofgetffYfinext$'d.)HHxL380aSC2760 CorrectTthesupAerscriptshiftwhenasinglec9haracterisraised.FRxJ¬758^4D184Ƹ7!C2770 Maskeo allbut7bitsin\charroutine,atoa9voidespace-factorindexoutof: range. lx$7ܬ4357\R'0 MoreTmemorycapacit9yover ows.22Ƹ7!C2780 FixZTuAEX'so9ver owZstopsothatI/don'tha9veZtow9aitforloadingoftheBAIL: debugTroutines.p[SystemdepAenden9t.]Rx¬93(EC2790 Remem9bAer'toadjustthepagenumbAerwhena lepageendsinmid-macro.: [SystemTdepAenden9t.]H&xd306F?T5Jun1978C2800 Mak9eηsurethattheargumentsofpAositioningcommandsdon'tover owtheir: eldTsize.fx֬610+VRC2810 RepAortTtheexcessamoun9twhengivinganoverfullbAoxwarning.- x1|666;677Z:I?T7Jun1978C2820 UseTinsteadof>asterminationcriterioninvarffYfidelimiter8\.KxO714c4]QC2830 Disallo9wy\ejectinmathmoAde.[InTuAEX78,r\ejectisdistinctfrom\break;in: horizon9talTmoAdeitincludesTuAEX82's`\vadjust{\break}'.]IexM^1102eR Q14ꍭD.E.KNUTH@C2840 Don'tTputtoAom9uchTclearanceabo9veT\sqrtintextst9yle.]ﴸxb $737uQT9Jun1978 33110Ƹ7!C2850 Mak9eAalignffYfistate3Q4anAintegerv|rariable,notboolean"?K,sothat\eqaligncanbAe : withinTanother\eqalign.ѵxZ309[namely:,{\mskip\medmuskip; TuAEX78alreadyhas\,forconditional: \thinmuskip,D6asw9ellasthenegativeamounts\<,\].[Changethename: ofeev9ectoraccentfrom\>to\b. [MathspacingopAeratorswillbecomem9uch: moreTgeneralinTuAEX82.]]xzd716SlCʍOw25Jul197894Ƹ7!C3150 Giv9eTthecorrect\hsizeand\vsizetothenullbAoxescreatedat\end.ܸx$L1054<'Q94Ƹ7!C3160 And Sdon't\appAend"them.l[Laterthisw9aschanged,Gsothatitwouldwork: bAetterTwithgeneralizedoutputroutines.]x1054>zA297Ƹ7!C3170 Remo9veTthecon9trolsequence\endv,sinceerrorrecoveryisnowbAetter.#x'6f375=IC3180 De neTanothermoAdeoftracing:pItsa9ys`OK'andstopsafter\showlists.xT12986I244Ƹ7!C3190 Giv9eTbAetterdefaultstoparameters.p[Laterdonebyplain.tex.]AWnxEsެ209X;QC3200 Allo9wTmorebitsinthepackedrepresentationof\showboxdepth.=xA238XIC3210 Scan"pastdelimitersand/ordimensionswhenreco9vering"fromam9biguousfrac-: tions.Dx""1183=SIC3220 ReduceTaccen9tnumbAersmodulo128or512,dependingonthemode.(rpx,1165D^RC3230 IncludeTaw9arning,`(\endoccurredonlevel...)'.cH\xgd̬1335_kIʍOw28Jul1978'0 (I'mTwritingChapter27oftheman9ual:p`RecoveryTF:romErrors'.)C3240 Impro9ve/theerrormessageinscanffYfidigit*皬.d[ThisproAcedurewillc9hangeitsname: toscanffYfieightffYbitffYintH>,whenthen9umbAerofregistersincreasesfrom10to256.]xn433IC3250 Don'tTrepAorto9verfullTboxesTifthey'relessthan.1poin9tover.;Rx?¬666;677hIC3260 Giv9etheuserextrachancestode nethefont,0ifreadffYfifontffYinfo=Ƭisunsuccessful.xn560IC3270 Change Cdefaultreco9very Cforbadparametern9umbAer Cfrom#1to##,K>since#1: w9on'tTalwaysworkandsince##isprobablyintended.`Rxd¬479{cIC3280 OmitTthe"Negative?"messageonthingslik9escanffYficharffYnum?Ǭ.FfxJ435`ݥIC3290 Impro9veTerrorreco9veryTwhenalargedelimiterisn'tinfamily3.p[Obsolete.]. IC3300 Giv9eTamoreappropriateerrormessagewhentheinputis`$\right'.)x. n1192I I'0 Curren9tlyTTuAEXsays`Missing$'!C3310 CallTbackffYfiinput0bAeforeTtheerrormessageinbackffYfierror-ì,notafterw9ards.#Aָx'^F327=Iʍ1Aug1978C3320 Giv9eTanappropriatewarningwhenthere'snoinput leandtheusertypAes`e'. .xJ~84 !IC3330 Increasevthesystempushdo9wnlistsizesothatthemanualwillcompile.@j[Pro-: ceduresThlistffYfiout(gcandTvlistffYfiout'canTrecursedeeply:.]L'0 Y:esterda9y6I6distributed45preliminarycopiesofthemanual;GtoAdayI6toAokout: theT\debugginghoAoks"andputTuAEXupasasystemprogram.ʍ2Aug1978'0 I'mTt9ypingV:olume2again(currentlyinSection4.2.2).pCultureshoAck!C3340 In9troAduce"a\raggedparameter,etoindicateadegreeofraggedness.D>[Previ-: ously:,ragged-righ9tLsettingwaspAerformedwhenthe\tolerance/100was: oAdd!}Ev9entually*abetterapproac9h,with\rightskipandsuchthings,will: bAeTdisco9vered.]TxĬ886$GC3350 OmitTthe`wido9wpAenalty'inone-lineparagraphs.zx~890 wQ0͟Q16ꍭD.E.KNUTH@5Aug1978 9C3360 GeneralizeT\pagenoto\counthdigiti.px236-G285Ƹ7!C3370 UpAdateTalignffYfistate0 whenTreco9veringfrom`Missing{'and`Extra}'errors. Wx[W1069;1127DC3380 Sho9wT\runaway"tokens,makingiteasiertopinpAointanerror.DԸxID306_uIg22Aug1978C3390 AddT\predisplaypenalty.сx՞T1203kGC3400 Clarify{errormessages;theyshouldindicatewhensomethinghasbAeeninserted,: etc.%ܸx)L1064DIg23Aug1978114Ƹ7!C3410 SubstituteT`Extra}'forthelosing`Missing\cr'errormessage.9x=3d1069X.I213Ƹ7!C3420 GoTpastonlineinsertionsinshowffYficontext7.4HxP311YIC3430 ExactTnopAenalt9yforbreakingonelinebeforeadispla9y:.\vx`1145y AQ338Ƹ7!C3440 Chec9kTforrunawaysatendof le.ȸx8362:IC3450 Giv9eTerrormessagewhenamacroargumentbAeginswith}.T/xXL$395nIg24Aug1978213Ƹ7!C3460 Remo9veextraline-feedinshowffYficontext;mafterprin9tinginsertions.[([Systemde- : pAenden9t.]Gxcp318+ELg25Aug1978C3470 Lea9veTnoglueattopofpage,ev9enafter\eject.Hxd997YQg27Aug1978C3480 Adopt/GuySteele'snewv9ersionoftheTuAEXsource les.[Hehasrecently : made7acop9yandmoAdi editbyintroAducingcompile-timeswitchesforMIT: con9ventionsK$asanalternativ9etoSUAI.Thisisthe rsttimethatTuAEXisbAeing: pAortedRtoanothersite;additionalswitc9hesforP:ARC,TENEX,TOPS10,yand: TOPS20TwillbAeaddedlater,usingtheSteelest9yle.][PI1Sep1978 9C3490 Don'tpasso9verleadernoAdesinthetryffYfibreak,bac9kgroundcomputation.[At: thisTtime,leadersha9veTnoty9etbAeenuni edwithglue.]\/x`L837s{Q82Ƹ7!C3500 PruneTa9wayallpAenaltiesatthetopofapage.x`997gQI4Sep1978338Ƹ7!C3510 IncludeT`\'inerrormessageabAoutaruna9wayTargument._[Ƹxcx6306yII8Sep1978'0 ITjustremadeallthefon9ts,withincreasedligature eldsize.350Ƹ7!C3520 Insert\anecessarygotostatemen9tinthe rstbranchofthenewpAenaltyroutine : withinTbuildffYfipage,;.Mxi997[WBi30Sep1978338Ƹ7!C3530 Mak9eSthetokenlistforrunawayargumentsmeaningfuloutsideofmacroffYficalxl.}. : (Ijusthadaruna9wayargumentendingwith`\lcm',iwhichturnedouttobAe: theTcon9trolsequenceinhashtableloAcation0.)3*xO371ϒMC3540 Av9oidTin niteloAopwhenrecoveringfrom$$inrestrictedhorizontalmoAde.fx1138,RC3550 Fixet9wohyphenationbugsrelatedto-ages,-ers.[Aecompletelynewalgorithm: forTh9yphenationwillgointoTuAEX82.].LC3560 AddT-esttoh9yphenationroutine;alsodisablepuz-zledandrat-tled,etc.&~Q!4Oct1978C3570 AddTnewprimitiv9e\vtop.R*xn1087xGC3580 T:reatTimplicitk9ernspropAerlyafterdiscretionaryhyphenshavebAeeninserted. hxج914"5QEޟQTHEERRÎORSOFTAEMX17@ 4NoCv1978 J=C3590 F:orgetthehalfquadoriginallyrequiredatleftandrigh9twhencenteringdis- : pla9yedTequationswithoutequationn9umbAers.x1202KQ޸11NoCv1978C3600 Don'tletthepAostam9blecomeoutempty:.[ThiscouldoAccurifnofontswere: selected.]@x\642,R޸15NoCv1978C3610 Allo9wToptionalspaceafterdigitinscanffYfiint'uroutine.q)BxuE444C17NoCv1978C3620 Mak9eTthecheckffYfimem3\ƬproAcedureslightlymorerobust.j Dxn&1674R20NoCv1978C3630 Mak9e[the\parina\defmatchthe\parthatcomesautomaticallywithablank : line.p(SuggestedTb9yT:erryWinograd.)фx351CC3640 Addhnewparameter\mathsurroundforspacingbAeforeandaftermathintext.xn1196 ƅGC3650 ExtendR\advancetoallo9wincreasebyotherthanunity:.[Atthistimeitapplies: onlyTtotheten\countregisters,anditiscalled\advcount.]?6xC¦1238[̽G޸25NoCv1978C3660 AddTanewprimitiv9e:p\unskip.ʸxí:1105۷QGC3670 AddTnewprimitiv9es\uppercaseand\lowercase.txx1288G28NoCv1978338Ƹ7!C3680 Don'tTlet\markandmacroffYficalxl1Tin9terferewitheachother'sscannerffYfistatus=Z.{px306,MC3690 Omit9extra}aftershowffYfinodeffYlist>dsho9wsa\mark,esincetherightbraceisalready : there.p(SeeT#210.)hxج176XMC3700 AddTanewprimitiv9esuggestedbyT:erryWinograd:p\xdef.NGxRd1218jnG29NoCv1978C3710 Deleteiaspacefollo9wing\else{...}alsointhefalsecase."[TuAEX78usesbraces, : notT\fi,forconditionals.]1S320Ƹ7!C3720 Mak9eT\tracingset\showboxbreadthasadvertised.pظxtH198dsDC3730 Accoun9tTpropAerlyforkernsinwidthcalculationsoflineffYfibreak*.ExI"866^(F364Ƹ7!C3740 DeleteTamathffYfinode14atthebAeginningofaline.6xӦ148JQ339Ƹ7!C3750 Guaran9teesthat\predisplaypenalty=10000willsuppresspagebreakingbAefore: aTdispla9y:.YڸxvJ1005*@A޸:L6Dec1978C3760 ChangeAthe leopAeningstatemen9ttoallowlinesupto150characterslong.: [SystemTdepAenden9t.]kL޸z16Jan1979365Ƹ7!C3770 Initializenegative&EpropAerlyinthe\advanceroutinewitha\countasargumen9t.xn440Fz20Jan1979C3780 T:rytok9eepcomplex,Gbuggypreamblesofalignmentsfromcrashingthepro- : gram.!x%j7899R17Feb1979376Ƹ7!C3790 Giv9emoredetailedinformationwhenwarningabAoutalonglinebeingbrok9en. : [SystemTdepAenden9t;thebu ersizeinTuAEX78isverylimited.]]AIC3800 DeclareɲploAcaltotryffYfibreak(,forthe\rare"casecode.9[Myoriginalprogram: included(Jthefollo9wingcomment:B]\Thiscasecanariseonlyinweirdcircum-: stancesUduetoc9hanginglinelengths,andthecoAdemayinfactneverbAe: executed."nLatergMic9haelPlasswilldiscoverthatv|rariablelinelengthsre-: quireTanen9tirelydi erentalgorithm,usinglastffYfispecialffYlineA.]FظxJ%H847^LVGQ18ꍭD.E.KNUTH@334Ƹ7!C3810 Don'txomittheraggednesscorrectionwhenthelastlineofparagraphhasto : shrink.p[ObsoleteTinTuAEX82.]ރFg}22Feb1979 wԍ363Ƹ7!C3820 Don'tTforgettoreturnfromgetffYfixffYtoken3xafter nding\par.Us8xY351m(FC3830 AddTanewparameter:p\lineskiplimit.wxx679 EQC3840 Change8thesyn9tacticsugar:`\hboxIpar'replaces`\hjustto...{overfull}'.: [ThisUv|rastlyimpro9vesUontheoldidea(see#40),buttherestillisnoin9ternal: v9erticalTmoAde.]܂CC3850 In9troAduceTnewnames\hboxand\vboxfor\hjustand\vjust.>J,xBf1071ZߢCC3860 Addianewcondition:\ifpos.[ItwilllaterbAegeneralizedto\ifnumand: \ifdim.]O4xk513.սGC3870 Add6vuand\varunit.;[TuAEX82willev9entually6allowarbitraryinternaldimen-: sionsTasunitsofmeasure.]xT453omG312Ƹ7!C3880 AddTanemunit.[Pxw455GC3890 Legalize\hbox)spreadhnegativ9eTdimensioni^e[sincescanffYfispec-6nolongeruses: theTsignasa ag].4xQ0645*8Cg}10Mar1979370Ƹ7!C3900 Mak9ewscanffYfitoks. expandw\countduring\xdef.4[Thiswillchangelaterwhen: \theTand\numberarein9troAduced.]戸x367Cg}23Mar1979C3910 Putqonly100000ptstretc9hattheendofaparagraphinsteadof10000000000pt.: [Ino+TuAEX78,š\in nite"glueisactually nitebutlarge;inthelanguageof: TuAEX82~w9ewouldsaythat\parfillskip,whichisnotyetuser-settable,is: bAeingTc9hangedtobelik9e\hfilinsteadoflike\hfill.][ڸx_J816sAQC3920 T:reat3thelastlineofaparagraphmoreconsisten9tlywiththeotherlines(e.g.,: when\hfilappAearsinmid-paragraph),b9ye ectivelyinsertinginfffYfipenalty: atTtheend. ʸx:816$+Qg}31Mar1979C3930 Ensure1thatpAenalt9ynodesaren'twipedout,Ӟinw9eirdcaseswherebreaksoccur: atTpAenaltiesthatnormallydisappear.TxqR879rYSg}V927Apr1979C3940 Correctthepagen9umbAercountwhen lesbAeginwithanemptypage.[System: depAenden9t.]!ʊAC3950 Allo9w#themathffYficode/沬tabletobAechangeablevia\chcode.G[InTuAEX82,'R\chcode: willTsplitin9to\mathcodeand\catcode.]xꄬ1232G332Ƹ7!C3960 Don'tTaccept`e'afteranerrormessageifnotinputtingfroma le.8mpx<84NDIg}29MaCy1979C3970 Don't;callendffYfi leffYreadingCpgify9ouhaven'talreadyinvokedbeginffYfi leffYreadingF);dthis: couldThappAenwhentryingtoreco9verTfromanerrorinstartffYfiinput/.. x22537FFg}T7Jun1979306Ƹ7!C3980 Besuretoejectt9wopages,when\ejectcomesjustatthetimeanotherbreak: isTpreferable(e.g.,whenthepagehasjustbAecometoofull).CXxGȬ1005`Ag}Z%27Jun1979354Ƹ7!C3990 Don't2asa9y`Youngcan'tdothatinmathmode'2awhentheusersays`$$'in: restrictedThorizon9talmoAde!޸x7N11381Ig}Z%30Jun1979C4000 AddTwd,dp,htdimensionunits.fxĹ֬455#G307Ƹ7!C4010 Don'tTtrythesystemareafor lenameswhoseareaisexplicitlyindicated.ihxج537.yIg@QTHEERRÎORSOFTAEMX19@1Jul1979 pC4020 Allo9wTlettersas(ASCIAI)numbAers[withoutthe`markerintroAducedlater].(xᘬ442,KGQ썒2Jul1979C4030 Fixa\gdefbug:+Ifthecon9trolsequencewasneverde nedbAefore[thislater : bAecameTtherestoreffYfizero5\option],don'tremo9veTitatgroupend.;x?$282TFOw16Jul1979320Ƹ7!C4040 UpAdate-PshowffYfinoadffYlist@to-Pbelik9eshowffYfinodeffYlist=.dd[Thetworoutines,3Ooriginally : separate,TwillbAemergedinTuAEX82.]Rx¬238DcIOw18Jul1979C4050 ExtendTcapacit9yfrom32fontsto64fontsifdesired.nÎxr134JGC4060 AddTnewextraffYfispace39parametertoalltextfon9ts(requestedbyF:rancesYao). - xI558"QC4070 Mak9eTeachnodeffYfinoad0DprintpropAerlyinshowffYfinoadffYlist=.ciPxg183{@FC4080 Mak9e\jparallowanybreakifitis1000000ormore.2[InTuAEX82,эa\tolerance : ofT10000ormoreallo9wsanybreak.] θx(>851QOw23Jul1979C4090 In9troAduceTnewprimitives\hfil,vfil,\hfilneg,\vfilneg.KxO1058h{/EC4100 AddT\ifmmode.ax ~.501GGC4110 AddT\firstmark.,xΜ1012;1016uGC4120 Allo9wTbreakatleaders(horizontalmoAdeonly).ʸx:149BCOw25Jul1979213Ƹ7!C4130 ReviseTerror˟soTthatonlineinsertionsw9orkpropAerlyafterend-of- leerrors.tܸxL336+I411Ƹ7!C4140 Change`if rstffYfimark.[G6=0'to`if rstffYfimarkƬ0'[bAecause1isusedtoindicate : `notTy9etgivenav|ralue'].YƸxv61012 BOw28Jul1979370Ƹ7!C4150 Stop3\xdeffromexpandingcon9trolsequencesafter\def's.w[Thisdecisionwill : bAeurescindedlater,aftersev9eralmoreyearsofexpAeriencewithmacroexpan-: sionTwillsuggestbAetterw9aysTtocuretheproblem.]lxp366tC pC4160 ChangeTsym9bAolicprintoutforcontrolsymbAols.p[Systemdependen9t.]5x949J+I308Ƹ7!C4170 Av9oidTlinefeedsinthetranscript le.p[SystemdepAendent.]p)L370Ƹ7!C4180 ExpandTtopmark,etc.,in\xdef.x366C4Aug1979413Ƹ7!C4190 Fixanerrorin9troAducedrecently:*\parwassuddenlyomittedatendofpage. : [SystemTdepAenden9t.]VkBg11Aug1979C4200 ChangeTerrormessagesthatuseSAILc9haractersnotinstandardASCIAI.x"3606#Pg28Aug1979411Ƹ7!C4210 Mo9veTthecommand` rstffYfimark+ť 1'fromvpackage*Cto reffYfiupN.9$x=Aj1012UpD403Ƹ7!C4220 Correctfaserious\gdefbug: Con9trolsequencesdon'tobAeyalast-in- rst-out : discipline,nso{TuAEXlosesthingsfromthehashtablewhendeletingacon9trol: sequence..x259,S p'0 T:o# xthis,IeitherneedtorestrictTuAEX(sothat\gdefcanbAeusedinsidea: group'onlyforcon9trolsequencesalreadyde nedontheouterlevel)orneed: toc9hangethehashtablealgorithm.YAlthoughallapplicationsofTuAEXknown: to&mewillagreetotheformerrestriction,+5I'v9echosenthelatteralternative,: bAecauseitgiv9esmeachancetoimprovethelanguage:3Controlsequencesof: arbitraryTlengthwillno9wbAerecognized.C4230 Mak9easurethatunsave!cannotcalleqffYfidestroy.x-withav|raluefromtheuppAerpart: ofTeqtbxP.Nxk2822?DxmQ20ꍭD.E.KNUTH@'0 Inoticedthislong-standingbugwhile xing#422.Ithadv9erylowprobability : ofAcausingdamage(e.g.,xitrequiredacertain eldofa oating-pAoin9tnumbAer: to*ha9veacertainv|ralue),butitwouldhavebAeendev|rastatingonthedayit: rstTsho9wedup!h"g29Aug1979 "C4240 CallTeqffYfidestroy/RwhenTacon9trolsequenceis\gdef'edafterbAeing\def'ed. x!(,2835|F418Ƹ7!C4250 T:reatthe rsttok9enconsistentlywhen\topmarkanditscousinsareexpanded : inTscanffYfitoks(.8x 477(F'0 No9wTI'vecheckedthingsprettycarefullyandIthinkTuAEXis\fullydebugged."z25Jan1980338Ƹ7!C4260 Displa9yTrunawayalignmentpreambles.x逬306D!IC4270 In9troAduceractivecharacters(one-strokecontrolsequences).5![Irdon'tyetgoall : theTw9ay:pThemeaningsof`x'and`\x'havetobAeidentical.]G(xKD344^Gf 7Feb1980314Ƹ7!C4280 FixTaglaringomission:pOpspace\>w9asneverimplementedinmathmoAde!u(x716(F25Feb1980C4290 AddTanewdimension`ex'(forunitsofxheigh9t).~.xK455GW3Mar1980427Ƹ7!C4300 Allo9wthecontrolsequence\:&tobAerede ned[itwasthe`selectfont'opAerator]; : thisTallo9wsthecharacter:ptobAeactive.p[Obsolete.]`C23Mar1980'0 AnTextend-TuAEX-for-the-eigh9tiesparty:C4310 AddTanew\copyfeature.ٶx 204=#GC4320 AddTanew\unboxfeature.]xyv1110샍GC4330 AddTanew\openfeature[later\openout].ux1351GC4340 AddTanew\sendfeature[later\write].Vxs^1352:;GC4350 AddTanew\leqnofeature,requestedb9yMDS.8xר1204GC4360 AddTanew\ifdimenfeature[later\ifdim].[xx`513yGC4370 Mak9eT\hspaceioinverticalmoAdebeginaparagraph.n b413Qu{G427Ƹ7!C4400 Don'tTletactiv9echaractersgobblethefollowingspace.gZxkv344OC208Ƹ7!C4410 AddTanewparametertogo9vernTamountoftokenlistdumpAed.p[Obsolete.](x$295.GC4420 AddTanew\linebreakfeature[laterreplacedb9y\break].VjxZڬ831nG25Mar1980'0 (StillTw9orkingontheabAove,alsothoughtofmore.)C4430 AddTanew\mskipfeature.xt716샍GC4440 AddTanew\newnamefeature(soAonc9hangedto\let).eUxir 1221|!G430Ƹ7!C4450 Allo9wTanycontrolsequencetobAerede ned.x 275sGC4460 SendTtheoutputtotheuser'scurren9t learea,Tevenwheninputcomesfrom : elsewhere.jx9ڬ532*{I27Mar1980C4470 Computethexheigh9tforaccentsinmathmoAdefromfamily1,notfamily3. : [Obsolete.]%Q28Mar1980C4480 IncreaseTminim9umclearancebAetweensubscriptandsupAerscript.@4.xDP759WQ29Mar1980222Ƹ7!C4490 Whenadispla9yfollowsadisplay:,thesecondshouldhavethe`shortskip'glue.xn1146 QQTHEERRÎORSOFTAEMX21@h4Apr1980 ۍ445Ƹ7!C4500 LoAok%atcurren9ttokenmeaningswhentryingtorecognize\tabskipinalignment : pream9bles. 0x렬782%ADV923Apr1980C4510 Estimatethelengthofprin9tedoutput,forthenewpriorityfeatureonourXGP: deviceTdriv9er.p[SystemdepAendent.]^oI434Ƹ7!C4520 Breaklong\sendlinesin9topiecessothatthe lecanbAereadinagain.[System: depAenden9t.]!CD19MaCy1980182Ƹ7!C4530 Don't8mak9e\leftand\rightdelimiterstoAolarge;I|theyneedtobeonly90%: ofTtheenclosedsize.p[Thisev9entuallyTbAecame\delimiterfactor.].x2762FsQD21MaCy1980C4540 AddTanew\pagebreakfeature[later\vadjust{\break}].Xx\X655p/qGZ%13Jun1980'0 T:oAda9yI'mbeginningtoo9verhaultheline-breakingroutine,bno9wparametersareallowed: toTtak9enegativev|ralues.뺸x*875rCGC4600 Remo9vethev|rariablejustffYfipar%F. [Obsolete;}itw9asthereal"wequivalen9tofan: integerVZ]./2EDZ%14Jun1980C4610 Installnewline-breakingroutines,Vincluding\parshape.(Thesemajorc9hanges: areTin9troAducedasMichaelPlassandIwriteourarticle.)URxY¬813mQC4620 AddTanewparameter\exhyf[later\exhyphenpenalty].^oFxb869uGDZ%16Jun1980444Ƹ7!C4630 Changeq5con9ventionsineqtbEfsothatglueisdistinguishablefromotherequiv|ra-: len9ts.#jx'$275<+S444Ƹ7!C4640 Don'tTexpand\bin\xdef{\d\b{...}}after\let\d=\def.p[Obsolete.]>`A444Ƹ7!C4650 Av9oidTcreatingdeadstoragewhendoingunsave"x̬incertainregions.4Dx8a275K1DDZ%17Jun1980C4660 Allo9wTnegativedimensionsinrules.x138yCZ%19Jun1980463Ƹ7!C4670 Mak9eTthenewtestforglueattheouterlevelofshowffYfieqtb*;<.UxY252mBZ%27Jun1980453Ƹ7!C4680 Don'tZ;let\leftand\rightbAecometoosmallforbigmatrices.[Thisev9entually : bAecameT\delimitershortfall.]x762NWQ3Aug1980C4690 Don'tzmo9veextra-wide,numbAeredequations ushleftunlesstheybeginwith : glue.!'޸x%DN1202=ZQi15Sep1980461Ƹ7!C4700 Sa9y}``fz ,'insteadof`>`fz'inthepre-h9yphenationroutine;ϑI'dforgottenmy : de nition#Roffz{[av|rariableusedtotestforasequenceoflo9wercase#Rlettersin: theTsamefon9t].px8979M ۍ395Ƹ7!C4710 Chec9kTtherangeoftheindexin\chcodebAeforesavingtheoldv|ralue.'[x+w1232CzRӟQ22ꍭD.E.KNUTH@i18Sep1980 Gm457Ƹ7!C4720 Don'tforgettoincreasethereferencecoun9tto\parfillskip,horitwillmyste- : riouslyTv|ranish.xb816FDFi19Sep1980412Ƹ7!C4730 Mak9eTleadersbreaklikeglueinbAothhorizontalandverticalmoAdes.18x5T149I-C364Ƹ7!C4740 Mak9eT\mathsurroundbreakpropAerlyatleftandrightendoflines.5nx9ެ879M4;Q13Oct1980461Ƹ7!C4750 Remo9vespuriouso9verfullbAoxesgeneratedwhentheloAosenesscriterionfails. : [Obsolete.](]I461Ƹ7!C4760 RedesignTtheiterationforloAoseness;breakpoin9tswerenotchosenoptimally:.yx875'>A461Ƹ7!C4770 Av9oidTstoringalotofbreakpAointswhentheyaredominatedbyothers.#x'836;#E366Ƹ7!C4780 Don'tTsa9y`curffYfinode$ʬ'whenyoumean`mem[curffYfinode$ʬ]'._Mhxciج1105{B461Ƹ7!C4790 Prefer23theoldestbreaktothey9oungestbreakwhentwobreaknoAdeshavethe: sameTtotaldemerits.q6xꍦ836Q461Ƹ7!C4800 Don't:jmak9ebadnesstoAobigfor oating-poin9tcalculations,f3whenforcedtomake: anTo9verfullbAox.p[Obsolete.]wLF10Dec1980C4810 Mak9eTitimpAossibletogetunmatched`}'inadelimitedmacroargument.֎x3923~RC4820 Addnew\topsepand\botsepfeatures.[TheseareTuAEX78'sw9aytoputspace: atDtheedgeofinserts,replacedinTuAEX82b9ythe\skipregistercorrespAonding: toTan\insertclass.]x;b1009EyGFj6Jan1981C4830 Installnewroutinesforreadingthefon9tmetrics,@jusingRamshaw'sTFM\ les: insteadTofTFX les.Wxtj539PC4840 AbAortTafterreporting100errors,ifnotpausingonerrors.]Ƹxa682sIC4850 Add5new\spacefactorand\specskipand\skipprimitiv9es.[At5thistimew9e: write`\specskip3=10pt'and`\skip3'forwhatwillbAecome`\skip3=10pt': andT`\hskip\skip3'inTuAEX82.]Px1060G366Ƹ7!C4860 \unskipTisno9wallowedininternalverticalmoAde.u|Lxy1105GFz26Jan1981482Ƹ7!C4870 Don'tTsa9y`mem[qR]'whenyoumean`qR'.p(See#143and#478.)?xD01009\B27Feb1981417Ƹ7!C4880 PutqZsomelinefeedsbac9kintothetranscript le,&inordertopreventoverprinting : inTlistings.p[SystemdepAenden9t.]IC4890 AddTanew\dpenaltyfeature[later\postdisplaypenalty].JxN.1205fEGC4900 AddTthedimensionccforEuropAeanusers.Ƹx6458&OGC4910 Mak9exWscanffYfikeyword=3matchxWuppAercaselettersasalternativ9estolowercaseones: (suggestedTb9yBarbaraBeeton'sexpAerimentswith\uppercase).7x;0407O CC4920 AddTnonstopmoAdesothato9vernightTbatchproAcessingispossible.Qč20Mar1981371Ƹ7!C5020 Mak9esespace-eatingafter\elsefullyconsistentbAetweenthetrueandfalsecases.: [Obsolete.]'3Sč24Mar1981496Ƹ7!C5030 ChangeglueffYfispecffYsizethreshold*ataline\breakexceptinanemergency:.  x1z854"rAOw13Jul1981402Ƹ7!C5070 Allo9wTothercharactersasnumbAers.tx442iC294Ƹ7!C5080 Av9oidTdeadstorageifanoffYfinewffYcontrolffYfisequenceherroroAccurs.p[Obsolete.] x|2591RC5090 AddTanew\ifxfeature.p0x⌠507GC5100 AddTnewfeatures\xleadersand\cleaders.yKx}g626;635GOw14Jul1981507Ƹ7!C5110 AmendTthenewcoAdeforconstan9ts;the`.'pin`.5'isthoughttomean&j056!o2x442)S507Ƹ7!C5120 And5 xanegregiousblunderinthatcoAde:2Newcommandsattheendofa : proAcedureTareignoredwhenearlierstatemen9tsexitviareturn.8@x<㰬442QiL4Aug1981C5130 Accept2alphabAeticcodesforallonlineerrorreco9very2options,` insteadofinsisting : on\$con9trolcoAdeslikelinefeedorformfeed.޵[Theoriginalerror-recoverycoAdes: w9ereTsuggestedbytheconventionsoftheSAILcompiler.]WDx[84k:P W썍C5140 AddTanew\theboxfeature[later\lastbox].\x̬1079(G7Aug1981C5150 AddTfil,fill,andfilllasunitsforgluestretc9hingorshrinking.2?x6\n454IƇGC5160 SuppressTtheo9verfullTbAoxerrorwhenshrink|rageamountisnegative.2x66T664LI9Aug1981C5170 LetTunsetbAo9xesinheritthesizeoftheirparentinalignments.IjxMx810`QV912Apr1982C5180 Mak9eINITEXPdumpoutthefontffYfidsize/ǬarrayneededbythenewDVIPoutput : moAdule. 8x)13221&Fi@1MaCy1982151Ƹ7!C5190 FixncleanffYfibox-DsonthatmlistffYfitoffYhlist<=cannotmak9elink(qR)G=0nandtype0(q)G= : glueffYfinode`.px720( S'0 [Thatw9asthehistoric nalchangetoTuAEX78.Allsubsequententriesinthislog: referTtoTuAEX82.]Q24ꍭD.E.KNUTH@Ow15Jul1982 22'0 FinishedYdraftoftestprogramandbAegandebuggingabout1430[2:30pm]. : T:akingTm9ytime.'2@cmbx8X10 ChangeTeqtbxP[curffYfifont!]Ttoeqtb[curffYfifontffYloc/ج].nzx232|B'0 NotTloggingc9hangestotheexpAosition.'0 CompileS@timeisabAout2min9utesCPU,times5fortime-sharing;r7addanother: halfTmin9uteforlinkingandloading.'0 HashTtableandgetffYfinext'13380I'X90 IncludeTignoreffYfispaces<VandTmathffYfiaccent7TinTprintffYficmdffYcharD=cases.?,¸xCI2266WF5X100 Don'tTcallconfusion-]twhenprintffYficmdffYcharD=seesunkno9wncoAde.DkvxH298^I'0 CompilerTbugcausesstac9kover ow.pRetiringforthenightat2145.Ow16Jul1982'0 StartingTat0700;DRFhas xedthecompiler.5X110 Allo9wTarbitraryintegerparametersindiagnosticprintroutines./x3237;699YfR5X120 Sa9yTcurffYfitok!,TnotcurffYfival Q(,whenyoumeancurffYfitok!.vxz~440T5X130 Mak9eT\pausee ectivealsoon rstlineofa le.^hxzج538XF5X140 Sho9wTcontextafteronlinedeletion.~x88ͥpF5X150 BypassTreferencecoun9twhendebugffYfihelp1showsatokenlist.LxQ1339lI5X160 ChangeT`casep'to`casetypeJ(p)'.x n1000ϜAB5X170 FixTtimingofprintffYfiln&whenscrollinghelpmessages.sָxwF90F5X180 Mak9eTotherffYfichar1BtheTdefaultcategoryforASCIAIcontrolcoAdestoo.3Dx8232L2P5X190 UseTspAecialscanningmethodforfon9tnumbAerinnewffYfifont'5.QqxU1257m A'0 EatingTlunc9h,1020{1035,whilethemachineslowlyrecompileseverything.5X200 Don'tTforgettoincreasekXinthewhileloAop.x355l|F5X210 AdjustTlimit$propAerlyTafterlinec9hangedwhenpausing.bxg\363zD5X220 Remem9bAerTtoreturnav|ralueinnewffYfispec*,andnewffYfipenalty3Ŭ.CfȸxG8151;158m"F'0 No9wTsteppingthroughlineffYfibreak.insimplecase.5X230 Don'tTpruneun9wantedTnoAdesifcurffYfip.=nulxlP .tLx8778A5X240 Prin9tTaclosingparenthesiswhendisplayinggluenoAdes.bնxf&189{FF5X250 Uselast ,)notlimit,intermffYfiinput1ì;elseerrorpromptcausestroublewhen: stateP\=tokenffYfilist(.xX71;87S5X260 SetT rstҸ limit֬+81TafterinitffYfiterminal7:.nx3311D5X270 Mak9eTsuresetffYfitrickffYcountAhisalwayspAerformed.bxҬ317;DOw17Jul19825X280 AddTnewdiagnosticfeature\tracingcommands.kĸxo74299;1031.=I'0 DebuggingTofsystem-depAenden9tcodenotsho9wninthislog.'0 T:anglingTTuAEXno9wtakes1.75minutes;abAout75Kbytes,108Ktokens.'0 Redundan9tTsemicolonsendsPascalcompilerintoin niteloAop!5X290 InitializeTpassive" nulxlP . ܸx(L864|F5X300 FixTpseudoprin9tingwhenthelineisempty:.x318]A5X310 MergeTadjacen9tfreeareasofdynamicmemorybAeforedumping.B4\xFP̬131ZsE5X320 Prin9tTthewordmodeinprintffYfimode0! .ʆx211;vFάQTHEERRÎORSOFTAEMX25@5X330 Impro9veTmessageandhelpincaseofw9eirderror.|oFx415WI /h5X340 Allo9wToptionalspaceafter\defandsimilarconstructions.V xZ听473nOG5X350 DeclareTalpha٬toTbAein9tegerinreadffYfifontffYinfo:̬.yxf560^M5X360 FixTtimingofbackffYfiinput0inscanffYfidimen1.vx3448A5X370 Bac9kTupaftermissingnumbAererror. x|446tI5X380 Sho9wTthe`at'sizethatisconsideredimpropAer. x|1259I5X390 StreamlineTthedialogindebugffYfihelp.^.Jx̺1338YI5X400 T:ak9eToutputoftheffYfitoks& fromtheadvertisedplace._zxc&467;1297M5X410 Sa9yTtrieffYfi x(qR),TnottrieffYfi x(p).}x˙959rT5X420 DecreaseTlo9wlimitoferrorffYficount4Ĭto1.o$x76S9Ow18Jul19825X430 ClearTinitialreferencecoun9tofmacrode nitions.{x掬473;F5X440 FixTtimingofbackffYfiinput0inscanffYfiglue(s.x461A5X450 UseTcurffYfivalffYlevel50,TnotcurffYfival Q(,whenc9heckingTlevels.ohxsج461B5X460 MultiplyTfilunitsb9y2-=16 ꢬforcorrectscaling.Oxl454]B5X470 Don'tTconfuseglueffYfibase+withskipffYfibase':._0x{1237 sB5X480 FixTprintffYfiscaled53soTthat0.01doAesn'tcomeout0.1.rxvf103^A4Xt28Ƹ7!5X490 Sho9wTmoAdechangeswhentracingcommands.x299&I5X500 Don'tTsa9yif(nƬ=0)8_(:::qdiv!in)TinPascal.V0xr105uL5X510 Don'tTconfuseboxffYfi ag&withboxffYficode%fT.xx1075uKB5X520 ResetTo setجonTprintffYfiln&ev9enTinnoffYfiprint(moAde.薸x57fS5X530 FixTrestartingofin9terruptsafterbigffYfiswitch+.x 1031S5X540 Don'tTloAopforkT Ʋatob81Twhenb=0ifkXisdeclarednonnegativ9e.;L5X550 PutT`='signin9totheformatffYfiident6ˬ.qx^1328шI5X560 Allo9wTrWtobAeanyintegeringetffYfinode%8.sиx@125GS5X570 Don'tTputtheoutputofprintffYfi leffYnameC\Ьinquotes.vxz518 I5X580 Sa9yT`dumped'afterdumping.|xϙ1311ꓻI5X590 EliminateTunnecessaryinitializationcoAde.x:j1332E5X600 GetTthe lereadingstartedrigh9twhenbAeginningtoundump.CxH1308a>L5X610 Giv9eTforlornmessageifformat lecan'tbAeloaded.p!xt>d13039I5X620 AssignTv|raluetocurffYfival#f|aftergluearithmetic.pʸxt#:1239;1240 FOw19Jul19825X630 Don'tTsa9yifp>maxո_8free~[p]TinPascal.Tx*Ĭ169L5X640 FixTmemory-undumplogic;loAopsareoutofphasewithinput.C"xG?1312_A5X650 UndumpThyphffYfiword-[j],TnothyphffYfiword[kC].x~1325QB'0 A9tTlasttrip.fmtloadswithoutbAombingout.5X660 Remo9verassignmentofarraytoarray:,notallowedbyIBMMPascal(SusanPlass).xn167ߙP5X670 SimplifyTanexpressionthat'stoAobigforIBMP9ascal(SusanPlass).,x0!1009H)P5X680 GoTtocontribute,A,notdone,afterinsertions.x11000yA5X690 DecreaseTdepthffYfithresholdD8^ifTthere'snotenoughstringspace.QAxU]198kI5X700 Sho9wTrulesas`|'inshortdisplays. :x<175ЗKI5X710 Don'tTsho9wnullglueinshortdisplays.=hxYج175yI5X720 SetTjobffYfiname+ Ƭ0Taspartofoutputinitialization.x8"x|T528US5X730 Don'tTcomplainofin niteshrink|rageon0ptminus0fil.3lx7825;976;1009u"aS5X740 UseTdi eren9tpromptatbAeginningwhenacceptinga lename.IȸxM837_I5X750 ResetTlastffYfiglue(xonTnongluenoAdes.x0996F5X760 Remem9bAerTtocallerror˟afterprintingOK.Ƹx 61293 B5X770 InsertTbKegin:::endaroundprogramtextofsection.brxf1025L5X780 De neTthe\shipoutprimitiv9e.Bx_1071;1073F5X790 In9troAduceTwriteffYfiloc)analogousTtoparffYfiloc.|.x1344;1371zA5X800 DumpTandundumpparffYfiloc"CЬandwriteffYfiloc&J.} x)l1313;1314RF囟Q26ꍭD.E.KNUTH@5X810 Allo9wTthe\MinTscanffYfithe(;[laterTscanffYfisomethingffYinternald].hxlP413.F ׍5X820 In9terchangeTcommandcoAdestheؿ:=:number$[laterconvert!].P-xTJV210hmE5X830 Don'tTconfusebreadth$ ެwithdepth.x!236B5X840 AddTstringprin9tingfeaturetodebugffYfihelp.^.lxܬ1339{I5X850 SetTstate midffYfiline'inTbeginffYfi leffYreadingG.Lxi328F'0 TimeTout2105{2200topic9kupJennyfromdrivinglesson.5X860 KeepTcƸ127whendeleting99tok9ens.>x88L5X870 Don'tTc9heckforstrffYfiroom)rerrorwhenselector%2¬=newffYfistring-4.MWxQs1328kS녍Ow21Jul19825X880 GatherTmorestatistics:pStringusage,fon9tinfo,hyphenexceptions,stacks.Y8xu13341pGI4Xt79Ƹ7!5X890 InitializeTwriteffYfiloc)fromTcurffYfival Q(,TnotfromcsffYfiptrϬ.vtxzP1344yD5X900 Remem9bAerTtopack lenamefor\open.3޸xPN1374DF4Xt34Ƹ7!5X910 DefuseT\outertestbAeforescanningoptionalspaceafter`}'.Q0xUؠ473j٧S5X920 Don'tTallo9wprepareffYfimag8i:tocauseerrorsafterjumpffYfiout(N.c xg'84wS'0 TheT rstpageofDVIoutputispAerfect.!pP9ausetoplaypiano.5X930 Don'tTconfusedimenffYfibase3zwithscaledffYfibase/Mw.zx01237½B5X940 InitializeTlink)Ӭ(pageffYfihead(6)Ƹ nulxle^whenTbAeginningapage.Zx^^991rdD5X950 CorrectTcurffYfiheight/mmoreToften,sincemaxffYfidepth0nmigh9tbAenegative.!Z\x%v̬972;973Lt=S5X960 CalculateTpagedimensionspropAerlyafterv9erticalkerns.`m0xd973x1A5X970 Install5newpageffYficontents?.logictohandlein9teractionbAetweeninsertionsand : \topskip.fx֬987;1008)ES5X980 Allo9wTtopffYfiskip&glueTtobAeav|ralidbreakpoin9t.x21001ӏS5X990 Don't+ forgettocoun9tdynffYfiused(ŀininnerloAop[erroneousanalysisretractedlater].nIOxre1034Z=FX1000 SetTpƸ qgaftermigrationstep.s:xȏ655*FX1010 ClearTprevffYfigraf+ԼtoTzeroatstartofparagraph.eHx1091v6FX1020 PutTparensin9tonegatedleaderffYfi ag04macro.p1078?L'0 TimeTout1720{1920forJohn'sbirthda9ydinner.X1030 ScaleTbestffYfiheight1whenTadjustingpageffYfigoal(g.Hnxdެ1010DX1040 SimplifyTlogicofsplitinsertions;threestatesbAecomet9wo.+3ظx/PH981;1019;1020p1AX1050 Don'tTomit rstc9haracterwhenshowingamacroargument.O&xSB400e‚MX1060 Prev9entTclobbAerageifmacrosha9veTtooman9yparameters.[x_390sR녍Ow22Jul1982X1070 T:ellTho9wmanyDVIbyteswereoutput.x"6420IaX?E88Ƹ7!X1080 AdjustTforsingularorpluralstatistics.иx"@1320;1334GIaX?E98Ƹ7!X1090 ConsiderTpageffYfihead.a0aTgluenoAde,toinhibitun9wantedTbreak.P@xT"988i#SX1100 In9troAduceTnewffYfiskipffYparamEtoTkeepreferencecountsupAdated.$x(~679;969;1001d{DX1110 RecordTthecorrectsizeofnewinsertionafterit'ssplit.`xd1010|̳DX1120 UseTfreeffYfinode(VV,Tnot ushffYfinodeffYlist<ެ,whenrecyclinginsertionnoAdes.2vx61022NDX1130 Mak9eTonlineinsertionsworkaftergetffYfinext'Ь87;324;343s2SX1140 Prin9tTnewlineoninterruptionstop.0x698̈wBaX?E34Ƹ7!X1150 PutTspacebAeforeendffYfiwriteffYtokenB葬.jfx֬1371'SX1160 Don'tTconfuseglueffYfiorder/lwithstretchffYfiorder7X.wx838BX1170 SetTmaxffYfidimen3U '77777777775,Tnot'777777777.|ʸx:421BTX1180 Mak9eT\global\textfontlegal.xp1211fMX1190 F:etc9hT\the\textfontwithequiv,notfamffYfifont&.ʸx:415BX1200 CallTnewffYfiligature5b(fw;l&9;::: UP)Tnot(f;c;::: UP).ȸx81035< BX1210 Mak9eTshowffYfibox+@JworkTonrandomgarbage.x174;177uRX1220 Coun9tTreferencetozeroffYfiglue*UfromcondffYfimathffYglueAW~.pdxu Ԭ1171;D~QTHEERRÎORSOFTAEMX27@Ow23Jul1982 !ЍX1230 Allo9wTavail=nulxle^whenTundumping.O`xkЬ1312NRAcXG110Ƹ7!X1240 SetTwidth(glueffYfiptr Y-(p)),Tnotwidth(p).bxҬ679BX1250 PutTbeginffYfi leffYreadingJinsideTthestartffYfiinput23ݬloAop.{¸x92537*AAcXG116Ƹ7!X1260 Don't9confuseglueffYfistretch5k+withstretchffYfiorder:޾[theprevious xw9ent9onlyhalf- : w9ay].#Nx(838< BX1270 NegateTxwhencalculatingbadnessofshrink|rage.l;xpX,667;678FkBAcXG121Ƹ7!X1280 Remo9veTdanglingelsethatparseswrong.lxܬ174'LaX?E28Ƹ7!X1290 Prin9tTnewlinebAefore{,notafter},whentracingcommands.LxQ299gkIX1300 Remo9veTcolonfromo9verfullTbAoxmessages.Ᾰx.663;675U9IaX?E97Ƹ7!X1310 ComputeTpageffYfigoal,propAerlyTwhenthe rstbo9xarrivesafterinserts.)ĸx-41001F]DX1320 Don'tTconfusepageffYfisize*Ԏ[no9wpageffYfigoal(g]withbestffYfisize%&R._Jxc1017|BX1330 PutTheldo9verinsertionsatfrontofcontributionlist.lxp1023AaX?E88Ƹ7!X1340 OutputTstatsbAeforeclosingDVI le,sincethelatterdecreasesfontffYfiptr#n.`x"Ь1333<@SX1350 Don'tTcalla\vboxan\hbox.͍xѪ674 TX1360 FixTmisplacedendcausedb9yeditingerror.Bx^6757TeoOw24Jul1982X1370 Don'tTeqffYfidestroy/Ran9yTparagraphshapAewhenparffYfishape-O;isnull.F޸xJN275^FyDX1380 OmitTblankbAefore\messageatthebeginningofaline.^TXxbpȬ1280}kgIAcXG104Ƹ7!X1390 Don'tTtrytosplitaninsertionwhenbestffYfinode,Ƭisn'tthesplitone.64x:1021SAX1400 CorrectTanothercaseof`ifx8^yR'TmisunderstoAodb9yPascal.NxRd1021k7LX1410 Pro9videTdiagnosticinfoabAoutinsertionsvia\showlists.\2x`뢬986wFCIX1420 AddT`insideagroup'toclarifyaw9arningmessage.i."xmJ1335E1IX1430 RepAortTprevffYfidepth0onTaseparatelinein\showlists.m̤xq219CIX1440 Bac9kTupinputtoavoidunexpAectedclobberageofcurffYfitok!.RLxVڼ1090p{S'0 W:o9wwhatabug:(newffYfigraf+ecallsbuildffYfipage+",{whichinvokestheoutputroutine,: afterTwhic9h`gotoreswitch$'isadisaster.X1450 AddTinsertiongluetopageffYfisoffYfar3insteadofsubtractingitfromthegoal. x%10092UDX1460 PutTextrablanklinebAeforeo9verfullTboxTwarning.{:x660pKIX1470 De neTbreakatk9ernconsistentlybAetweenhorizontalandverticallists.KxhX973;1000534IX1590 Allo9wT\specialstringstocontainmorethan256bytes.IҸxM5B585;1368w;GaX?E99Ƹ7!X1600 UndoT\correction"toanon-bug.Jx1034ͰMX1610 SuggestT\&inhelpmessageforunexpAected&.<ȸxY81128SIX1620 Mak9eT`E'astandardoptionforexiting.{vx84bGX1630 RestoreTtheuseofdeadcycles`alaTuAEX78.{(x81024;1054G'0 TheTprevioussixc9hangesweresuggestedduringdiscussionswithTuAEX82class.Q28ꍭD.E.KNUTH@X1640 FixTglobalv|rariablecon ictbAet9weenTopenffYfilogffY le73andTnewffYfifont'5.>xB1257[S X1650 Allo9wToptional`='whenassigntofontparameter.txx݀1253VCX1660 SetTcurffYfival#f|afterTincreasingthen9umbAerToffon9tparameters.R%xVB 580jFX1670 SetThashffYfibrace1[whenTmatc9hing`{'..>xB[808VR9Aug1982X1980 IncludeT\leftskipand\rightskipindispla9yedTequations[rescindedlater]. XJxt1199'CX1990 T:raceTline-breakcomputationsiftracingffYfistats8j>Ƭ2.cHظxgeH846;856SIX2000 KeepTprevffYfipiupTtodatewhenpassingastring.-ȸxJ8867cD'0 No9wTsteppingthroughmathstu ;alotisworking.X2010 SetTlink)Ӭ(p)Ƹ zxwhenTmakingafraction.Lx747DX2020 Don'tTresetspacefactorwhenbAeginning\valign.xbx|P775XXC0+QTHEERRÎORSOFTAEMX29@X2030 Don'tTsho9wgluesettingifglueffYfisign*=normal j¬.tx 186I !ЍX2040 ClearTglueffYfistretch5"andTglueffYfishrink3RwhenTcreatinganunsetbAo9x.B{*xF801Z&DX2050 DoTvpackTinThmoAdeandvicev9ersawhenaligning.yx};804-BX2060 Remo9veTfallaciouscalltoconfusion-]tafteralignmen9tindisplay:.ABxF1206^_AX2070 Don'tTtestmode9=vmode=indispla9y:,testnestffYfiptr&y)=1._fxcr1145{hAX2080 Sho9wTaninnerffYfinoad38OaswellastheothertypAes.q"xu>690;696pFX2090 Ren9umbAerTmuffYfiglue' pandTcondffYfimathffYglueDlҬsoTthatthegluedispla9ylogicworks. dxԬ149$3DX2100 Don'tTconfusecurffYfisize&vRwithcurffYfistyle&8.޸xN703#BX2110 Adv|ranceTpƸ qgduringsecondpasso9vermlist.,8xH761(FX2120 AddThelpfulhin9tabAout\tracingonline=1.Nx1293]IX2130 DeleteTspuriousstatemen9tleftfromsloppyediting.txx*7102TX2140 ChangeTthesubt9ypAewhenmskipXWbecomeshskipm.}x732DX2150 Don'tTforgettousetheremainderwhencomputingmathglue.EvָxIF716]FAcXG199Ƹ7!X2160 Impro9veTparagraphdiagnosticsusingshortffYfidisplay7.s-xwI857!IAcXG199Ƹ7!X2170 In9troAduceTarti cialffYfibadnessJcforTbetterdiagnostics.exi~854;856FIeog11Aug1982X2180 In9troAduceTcharffYfibox)zsubroutineTsothatvarffYfidelimiter;addsitaliccorrection.xf709,H^AX2190 Sa9vefontandcharinloAcalv|rariablesofmakeffYfimathffYaccentNN̬,sinceitcanbe : recursiv9e.x738+SX2200 CallTerror˟afterTdecryinganin9v|ralidcharacter.#x@346Fg12Aug1982AcXG199Ƹ7!X2210 InstallTnewformatforsho9wingbreaknoAdes.x!846{I'0 ITha9vebAeentestinglineffYfibreak.andIthinkit'sworking ne.X2220 ChangeTqgtop,inordertocatc9hemptyalignments.[x_f812;1206BX2230 Disallo9wTthirdpartofdiscretionaryinmathmoAde.o xsz1120SX2240 Don'tTc9hangetailyifdiscretionarythirdpartisempty:.cxh1120HDX2250 Sa9yTnonscript,notnon_script."x?189ؙIX2260 InhibitTmathif\scriptfont3isimpropAer.hxج1195SAcXG199Ƹ7!X2270 In9troAduceT@firstpassand@secondpasscomments.qtxu863DIX2280 ChangeTptorWwheny9oumeanrAǬ.,6xH1204TAcXG108Ƹ7!X2290 Sa9yTpage,notpages,ifthere'sonly1.XPxt642aIX2300 InsertTspacebAefore[]ontruncated\showlists.}x.182Ig28Aug1982'0 Bac9kTfromv|racationafterhavingloAokedathardcopylistingofTRIPtest.X2310 Allo9wTdmasaunit[later.5dm1willbAe.5\dimen1].tܸxx6L455eGAcXG108Ƹ7!X2320 SingularizeTprevgraf1lines.ēڸxȰJ219 IX2330 OmitTtrailingzerocoun9tregisterswhenshowingcompletedpagenumbAers.۶x&6380RIX2340 Av9oidTclobbAeringabyintroAducinganewlocalv|rariablet.Zx^986sWLAcXG216Ƹ7!X2350 FixTdiagnosticprin9tingofdiscretionaries.$xҔ858aDX2360 Don'tTsho9wunsetstretch/shrinkthat'szero.xބ1859%IAcXG198Ƹ7!X2370 Mak9e\halignindisplaysconsistentwithotherdisplays.(Namely:,ignore : \leftskip)and\rightskipinnonaligneddispla9ys;respAecttheparagraph: shapAeTinaligneddispla9ys.)exv800;1199C !ЍX2380 P9arenthesizeT`Ifyou'reconfused...'.x4033IX2390 Sa9yT`\fraction',not`\xabovex'.Nxk&697IX2400 Remem9bAerTtoreturnwhenyoushould.Jx11538FX2410 UseTabsolutev|raluetomak9esuredivisunambiguous.jxn.737RPAcXG218Ƹ7!X2420 Don'tTconfusedepthwithheigh9t.Jx709ԏBX2430 UseTdeltar8height9ݬ,TnotheightO18delta]f.@x#736BX2440 IncreaseTshiftffYfidown0ެtoTincreasetheclearance.x745BX2450 Don'tTbac9kupafterimpropAeruseof\the.L¸xi2428IFQ30ꍭD.E.KNUTH@X2460 Don'tTgiv9e0ptasthedefaultresultwhenloAokingfortokffYfivalA&.JvxN9428dI X2470 InitializeTsecondffYfiindent> XinTtheeasycase."x848FX2480 P9ack|rageTtheequationn9umbAer.6pxR1204G^FX2490 Don'tTresorttovp maxffYfidimen3UwhengluedoAesn'tstretc9horshrink.(\Tx,xĬ1148DQX2500 InsertTnewlinebAeforesho9wingcurrent\botmark.IX2510 CallTerror˟afterTgivingerrormessage.Rx¬784)BFX2520 Changeimplemen9tationof\number;itshouldscanffYfiint#w,notsomethinginternal.xn471dfAX2530 In9troAduceTsymbolicTconstantslikeformatffYfiareaffYlengthN\(.j xn'p524JPX2540 ChangeTquitӬtoTjumpffYfiout(N,Tsincesomecompilerstreatquitasareserv9edword. @x81 +PX2550 AddTmoreparen9thesestogetpropAerparsing.$x1260BgLX2560 Sa9yTpleaseinordertobAefriendly(oratleastpolite).ghxk360ߧIX2570 Don'tTconfusecurffYfivcmd,MwithcurffYfichr!垬.~x-508BX2580 UseT&insteadof!ptospAecifyapreloadedformat.w*Px{F1337A_IAcXG177Ƹ7!X2590 CorrectTs3tos4.]xzn88xTX2600 In9troAduceTnewprimitive\mathchardef,tosavespaceandtime.<$x@Af1224XK}GX2610 UseTthe[]con9ventionTfornoadsasw9ellasnoAdes.z*x~G692 CX2620 Correct$spAellingincalltoprimitive':!\xatopxshouldbe\xoverx[laterrenamed, : thankTgoAodness].}x1178 Tg30Aug1982X2630 Don'tTfetc9hlink)Ӭ(nulxlD)inmalformedlist.}x175ZRX2640 InitializealignffYfistate0khatabAettertimesothatalignffYfipeek.Xdoesn'tsee&or\span.`xe S785;791SX2650 Outla9wTpreambleinterferingwithalignffYfistate0t=0.ygx}d789kSX2660 AddTlev9elofgroupingtoalignmenttotabskiploAcality:.fxj"~774}CX2670 Chec9kTalignffYfistate0 whenTscanninghuj۸i.+fxG֬783VFX2680 Mo9veT`unsaveN$;newffYfisaveffYlevel=U߬'frommainffYficontrol:in9to nffYficol!".1x5791;1131`VAAcXG180Ƹ7!X2690 Remem9bAerTcurffYfichr$whenTyou'reloAokingforoptional`='.ZA x^]1243wSX2700 ChangeTqgtorWncoAdeno9wobsolete].xl804µtTX2710 DisableTin9terruptsduringbackffYfierror02sothathelpmessagesaren'tclobbAered. Px327'waIX2720 In9troAduceTslowffYfiprint/forTprintingcontrolsequences.vGxzd 60SX2730 InitializeTdelffYficode#(".")Ƹ 0Tforerrorreco9very:.Trxp240˃IX2740 CallTendffYfi leffYreadingE#7bAeforeTcallingcheckffYfiouterffYvalidityR.aTxep362zqSX2750 Don'tTdeleteanextra`}'when\parwillhelp ndaruna9way:.IxNr395dcIg31Aug1982X2760 Don'tTconfusethinffYfimuskip6withthinffYfimuskipffYcodeG.wUx{q413cBAcXG266Ƹ7!X2770 Reco9verTfromerrorifnewalignffYfigroup4 Aendsabnormally:.])xaF1132z:FX2780 Reco9verTfromerrorif\paroAccurswhenalignffYfistate0t<Ƭ0.\6x`1094{EIX2790 Mak9eT\hskip\the\thinmuskipand\mskip\the\baselineskiperroneous.܀x413/CX2800 AddT\muskipand\setmuskipanalogstoskipand\setskip.2\x60̬413;1228`7MGX2810 Don'tToutputpoprigh9tafterpush.ڸxJ601uE'0 TheTTRIPtestloAoksrigh9t;nowtotestforwastedmemory:.'0 WhenTmemoryshouldbAeempt9yI nddynffYfiused*=18,varffYfiused(=267.I1Sep1982'0 MadeTspAecialMEMTEXprogram,designedtotrac9kallmemoryallocation.X2820 DeleteTreferencetolastffYfiglue(xwhenapageispac9k|raged.chfxg֬1017DX2830 IncludeTsaveffYfistack0ݬinTthesearchffYfimem69debuggingroutine.Zl2x^285tCIX2840 Disallo9wT\vfillinrestrictedhorizontalmoAde.x1095C'0 MostTofthememoryloAcationsIthough9twerewastedwereactuallyingoAodTuse.'0 T:otalT192hours(appro9x)debuggingtimesofarsinceJuly15.^QTHEERRÎORSOFTAEMX31@I2Sep1982 '0 No9wTloAokingatallzerocountsinpro leandextendingTRIP.X2850 SimplifyTthecreationofvtopbAo9xes.Px"1087EX2860 SetTspaceffYfifactor6 Ƭ1000Tafter\hbox.Xxu1076CX2870 In9troAduceTpreambleintoDVIformat.x617#PX2880 Giv9eTspAecialchrffYficode(Tto\relax.:x©265תSX2890 Don'tTsho9w`(null)'whentokenlistisnull,justshownothing.BxG 295]gIX2900 DeleteTtheproAcedurewriteffYfinameffYstringLѬ,whic9hisneverused.cEX2910 Rename%\xabovexto\abovewithdelims;u~dothesamefor\xatopxand\xoverx. nIOxre1178CX2920 Impro9veTcleanffYfibox,2soTthatitrecognizescleanlinessbAetter.X1Ҹx\NB720oğQX2930 RepAortTaMissingdelimitermoremeaningfully:.v6"xzR1161M1IX2940 Giv9eTendvffYfitoken2naTchryҬcoAdeTof128sothatitwillenda lename.8bx<Ҭ289PfRRX2950 T:estTpresen9tofmathfontsafterparsinganmlist,notbAefore./dx3Ԭ1138;1195bRX2960 OmitT`recentcontributions'and/or`currentpage'whentheyareempt9y:.`xe S218;986`^IX2970 Displa9yTwhatTuAEXhasdeletedafterimpropAerdiscretionarylisthasarisen.xP11210IX2980 Sho9wTwhatmathcharacterwasunde ned.Hx723YIX2990 Impro9veTtheIncompatiblemagnificationerror;breakitin9totwolines.cܸxL2885IX3000 PutTnewcasesin9to ushffYfinodeffYlist<ެ,torecyclemlistnoads.XZx]ʬ698pD;ꍒI6Sep1982AcXG300Ƹ7!X3010 InsertTanecessary`gotodone'inthatnewmaterial.mxq698xF'0 ItTtoAokt9woThourstodiagnosethatgotoproblem.AcXG295Ƹ7!X3020 ChangeT`2'to`3'inhelpmessageforextensionfon9ts.g3 xkO|1195ȂTX3030 AddTaspAecialnoteifmaterialisbeingheldo9verTforthenextoutput.+Xx/Ȭ986F iIX3040 DivideTbAeforem9ultiplyinginmakeffYfileftffYright?E,toavoidover ow.CĸxG4762[RX3050 In9troAduceTtheboxffYfierror+routine.@x992mQIX3060 ClearTarithffYfierror2pRafterTo9ver owhasbAeenreported.uxy*460rFAcXG249Ƹ7!X3070 Don'tTconfusestretch!۬withglueffYfistretch2 Ŭ.8ʸxU:1148 BX3080 SetTglueffYfisign* normal#whenTpac9k|ragingwithglueratiozero.7Ȧx;558;664apDX3090 T:estTforo9ver owTbAeforeattac9hingthesign.mθx>44826A'0 ThatTallw9orked!pNowTtryingmin_quarterwordnegativ9e.X3100 T:ak9eTabsolutev|raluebAeforeapplyingmoKdinnewffYfitrieffYop1.Yx^ f944r;LX3110 Sa9yTqi (c),Tnotc,whentestingTFM ags[nowobsolete].dܸxhL573}}!LX3120 InitializeTtokenffYfirefffYcount@(defffYfiref )TtonulxlӘ,notzero.r[xvx\4731LX3130 ChangeTthet9ypAeofvsplitparameternfromquarterword7toeightffYfibits(.%"x)7977=gLX3140 InitializeTnulxl-delimiter>-di eren9tTformnulxlffYficharacter<.j_̸xn|<685LX3150 InsertTqit9wiceTinscanffYfidelimiter=+.:x1160D}LX3160 InsertTqiinTscanffYfimath-5.̸x<1151FX3170 InsertTqo-inTfetchd.ڸxJ722;723/4FX3180 InsertTqiinTsetffYfimathffYchar<.tx1155bFX3190 InsertTqiinTmathffYfiac$~.x^1165FX3200 InsertTqo-inTmlistffYfitoffYhlist7\.ƶx&7557FX3210 UseTbrac9ketsaround8-bitcharactersinprintffYfiASCII5⦬.n쌸xs68ßIX3220 IncludeThyphffYfilist)inTthesearchffYfimem69debuggingroutine.`rxe933{aI'0 No9wTcompilingnon-INITEXtotryanindustrial-strengthversion.X3230 Addreturnto nalffYficleanup7o,bAecausesomeP9ascalcompilersinsistthateach: labAelTbeused.x1335LX3240 ComputeTparffYfitoken-whenTundumping.`xЬ1314%D vǟQ32ꍭD.E.KNUTH@i11Sep1982 qPX3250 EmitTnewlinebAefore lename,ifnearendofline.ynx}537IX3260 De neT\ifxforarbitrarytok9ens.@x507ՅCSi12Sep1982X3270 Don'tTaskuserstot9ypAextwicebAeforeexiting.n\x̬84EoIX3280 Install~Xnewfeatures\openin,\read,\ifeof,\closein;rename~Xexisting\open, : \send,T\closetobAe\openout,\write,\closeout.A xE'`209;313;1275*KGX3290 InstallTnewfeature\expandafter.ʸx/:368ϙSGX3300 ChangeTthedefault leareafrom`'to`TeXinputs:'.V޸xZN574nyPi13Sep1982X3310 InstallTnewfeature\string.ϲx(4729AGX3320 Remo9veTspuriousspaceprin9tedbysprint_cs.ָxF263>A'0 Alltestspassedno9w!ButwhenIplayedwiththesystemIfoundanotherbug : (undetectedTb9yTRIP):X3330 SetTrӍ Ʋsaftermatc9hingmacroparametertokens.u]xyz397ΜFi16Sep1982AcXG199Ƹ7!X3340 In9troAduceserialnumbAersinline-breakrecords,gimprovingreadabilityandin- : depAendence.@x Ѱ846",QIX3350 Don'tTabAortwhen leffYfinameffYsize>I=isexceeded.x-\519Ii17Sep1982X3360 Remo9veTunwantedpAeriodfromfon9tcapacitymessage.hָxl520SJF'0 V:ersionT0ofTuAEXisbAeingreleasedtoda9y!!8Oct1982C5290 Fixgablunder:I&decreasedhmoAdaquarterw9ordwhenitshouldhavebAeen : decreasedTmoAdtrieffYfiopffYhashffYsizeI(HWT).4x944yB!9Oct1982X258Ƹ7!C5300 FixTat9ypAo(`!'pnot`&')intheWEBdocumen9tation.w3x{Ox524rPC5310 Remem9bAerTtocallinitialize* ifadi erentformatwaspreloaded(MaxDgaz). zx1337(hF'0 V:ersionT0.1incorpAoratestheabo9veTchanges.12Oct1982C5320 AddTthe`\immediate'feature,b9ypAopularrequest.qNxukn1375uG'0 V:ersionT0.2incorpAoratesthis(somewhatextensiv9e)change.13Oct1982C5330 In9troAduceTnewWEBmacrossothatglueffYfiratio-2Wismoreeasilychanged.-(x1昬109F P'0 IbAeganwritingTheTuAEXbook6toda9y:I8editedtheoldprefaceandsearchedin : theTlibraryforquotations.14Oct1982C5340 ChangeTthet9ypAeofhdͬtoeightffYfibits(;it'snotaquarterword7(HWT)./Ǟx3649GBX281Ƹ7!C5350 Reviseg8theoptimizationofDVIg commands:bIt'snotalw9aysg8safetoeliminatepop : when theprecedingb9yteispush~:,#sinceDVI Ьcommandshavev|rariablelength!: (Em9barrassingToversightcaughtbyDRF.)x601S15Oct1982 5C5360 T:estT`prevffYfidepth-I6>ignoreffYfidepth5PY',not`6='.xn679vC'0 V:ersionT0.3incorpAoratestheabo9veTchanges.16Oct1982C5370 OmitTde nitionofalignffYfisize)ɬ;it'snev9erused(BillScherlis).Wx[f11k>PC5380 InhibitTerrormessageswhenpac9k|ragingbAox255.{ x|1017I21Oct1982X145Ƹ7!C5390 SubtractTwidth(qR)TfrompageffYfigoal(g,don'taddittopageffYfisoffYfar0[1].7阸x<1009TMA'0 V:ersionT0.4incorpAoratestheabo9veTchanges.22Oct1982C5400 Increaselytheamoun9toflower(v|rariable-size)memoryfrom12000to13000,?since : the4ZTuAEXprogramlistingno9wneedsabAout11500.y[Atthistimetherestillis: aT xedbAoundarybet9weenTupperandlo9werTmemory:.]hONxlk12{P 5C5410 AddTanewparameter\boxmaxdepth.㈸x1086 G'0 V:ersionT0.5incorpAoratestheabo9veTchanges.26Oct1982C5420 FixTano -b9y-oneerrorcaughtbyGabiKupAerandHWT.(Iforgot`8+1').E(xa1317-kBC5430 Fix`thespacingofdispla9yed`controlsequences:FprintffYfics&|pshouldbaseitsdecision : onTcatffYficode$4(p8singleffYfibase-x),TnotcatffYficode(p).Oxlb262^7B'0 TheTTRIPtestdetectedthisbug,butIdidn'tnotice.27Oct1982C5440 SetwmathffYfitype/ebAeforewsa9yingfetch禬(nucleus(qR)),@sincefetchingcanhaveaside : e ect. 4x%752:S"՟Q34ꍭD.E.KNUTH@28Oct1982 C5450 Install_pamajorc9hange:~F:onts_pnowhaveidenti ersinsteadofcoAdeletters.Elim-: inateTthe`\:'pprimitiv9e,andgivecorrespAondingnewfeaturesto`\the'.xV2090?oG'0 Actually,9I,3bAeganmakingthesec9hangesonOctober26,1butI,3neededt9wo,9days: toTdebugthemandtoputHumpt9yDumptytogetheragain.'0 A9tTthistimeI'malsodraftingmacrosfortypAesettingTheTuAEXbook.'0 TheTabAo9vechangeshavebAeenincorporatedin9toV:ersion0.6.30Oct1982'0 Aftervy9earsofsearching, I've nallyfoundade nitivede nitionoftheprinter's: pAoin9t;??and1F(unfortunately)mypreviousconjecturewaswrong.pGThetruthis: thatT83pAc=35cm,Texactly;soIamc9hangingTuAEXtoconform.C5460 ReviseTunitde nitionsforthe`real'prin9ter'spAoint.`@xd458;617"C'0 V:ersionT0.7incorpAoratestheabo9ve. 1NoCv1982'0 Oops!Retract]lerror#546,qandretractTuAEXV:ersion0.7;wthesourceofm9y: informationLGabAoutpoin9tswas akyafterall.HMyoriginalsuppAositionswere: correct,Tascon rmedb9yNBSCircular570. 4NoCv1982C5470 Revise thede nitionofdd,Myconformingtothede nitiv9ev|ralueshownmeby: Ch9uckTBigelow.:ȸxW84580@C545Ƹ7!C5480 In9troAducez\frozen"copiesoffontidenti ers,htobAereturnedby\the\font,hso: thatTfon9tmanipulationismorerobust.ʸx:1257JR 5NoCv1982C5490 ResetTlooseness+andTparagraphshapAewhenbeginninga\vbox.>xB1083[?D 6NoCv1982C5500 De-upAdateTalignffYfistate0 whenTbracesareinconstan9ts.ovxs442NDX294Ƹ7!C5510 Impro9veTerrorreco9veryTforbadalignmen9ts.Ƹx$61127I'0 T:oAda9yTIwrappedupChapters4and5. 8NoCv1982C5520 Giv9eTmorepAowerto\let:ptheright-handsideneedn'tbAeacontrolsequence.x R1221"iGC5530 AmendshowffYficontextotherthingswerecleanedupaspartofthischangebAecauseitisnow: moreFnaturaltohandlethemdi eren9tly:.ׄForFexample,oanullcontrolsequence: hasTno9wbAecomemorelogical.'0 TheTresultofallthisiscalledV:ersion0.8.ff18NoCv1982'0 T:oAda9yTIresumedwritingChapter8.pTomorro9wI'm2-=14 daysold!21NoCv1982C5650 DeclareTcasaloAcalv|rariableforh9yphenation(DRF).mGxqd^912FC5660 Omitdthe\ rstpass"andtryh9yphenationsimmediately:,xif \pretoleranceis : negativ9eT(suggestedbyDRF). ~x(863LEC5670 Don'tTshipoutincrediblyh9ugepages;theymightfoulupDVI les.5-x9Jl641M R:L2Dec1982C5680 AddTnewfeatures\everymathand\everydisplay.Xk2x\1139;1145.!GC5690 AddTanewfeature\futurelet.vx1221ٝ5G'0 TheTc9hangesabAovehavebAeenincorporatedin9toV:ersion0.9ofTeX.:L7Dec1982C5700 AddTanew\endinputprimitiv9e(suggestedbyFY).^xbT362;378G:L8Dec1982C5710 T:ryʕo ffYfisave#,if\parʕoAccursinrestrictedhorizon9talmode.<3(Thisa9voidsʕem- : barrassmen9tifTuAEXsays`typAeacommandorsay\end',~thenwhenyoutypAe: \endTitsa9ysyoucan't!)p[However,IsoAonretractedthischange.]1x51094PIff21Dec1982C5720 Rede ne \relaxsothatitschri< eldexceeds127.(Thisfacilitatesthetestfor: endTinscanffYfi leffYname> @.)iLx߅265-A566Ƹ7!C5730 CallTbeginffYfidiagnosticFwhenTomittingthe rstpassoflinebreaking.4ܸx8L863M,FC5740 Fixthelogicofgluescanning:In\hskip-1pt9plus2ptthemin9usshouldapply: onlyTtothe1pt. xz461HrAff23Dec1982C5750 Ren9umbAerthedecimalcodesinparagraphstatisticsforlooseandtigh9tlines;: theyTw9ereorderedbackwards.TxĬ817eIC5760 T:reat޲aparagraphthatendswithleaderslik9eaparagraphthatendswithglue.xn816vCC5770 Allo9wTcommasasalternatestoradixpAoints,forEuropAeans.QTRxUp¬438iIC$Q36ꍭD.E.KNUTH@C5780 Change~\hangindenttoanormaldimensionparameter.[IthadbAeenacom9bi- : nationTof\hangindentand\hangafter,withspAecialsyn9tax.]?>xD247WC ZC5790 Mak9eT\prevgrafaccessibletousers. (x<422;1244CGC5800 SplitT\clubpenaltyo from\widowpenalty.5xR 890#G'0 I'mTt9ypingChapter14whilemakingthesechanges.24Dec1982C5810 UsebackffYfiinput2ܬinsteadofgotoreswitch)wheninserting\par,SabAecause\par: ma9yThavechanged.ڸxJ1095VOS25Dec1982'0 It'sT10pmafterav9eryMerryChristmas!X328Ƹ7!C5820 Don'tTpromptforanew lenameif\openindoAesn't nda le.;xx?1275ZIC5830 AddTanew\jobnameprimitiv9e.x,472ږGC5840 Giv9etheuserawaytodeletethedollarsign,whenTuAEXdecidestoinsertone.xn1047# IC5850 Allo9wToptionalequalsafter\parshape,andimplement\the\parshape. zx423;1248:BZC26Dec1982C5860 AddanifffYfilineffY eld5totheconditionstac9kentries,;Ssothatmoreinformative : errorTmessagescanbAegiv9en.ŵxV489,I549Ƹ7!C5870 In9troAduceanormalffYfiparagraphQjprocedure,sinceinitializationisneededalso: withinT\insert,\vadjust,\valign,\output.z$x~1070#D27Dec1982C5880 Giv9e\*usersaccessto\pagetotaland\pagegoal.(Analogousto#679and: #585,Tbutsimpler.)qx\1245sGX199Ƹ7!C5890 In9troAduces\tracingpages,allowinguserstoseepage-optimizationcalculations.: AlsoTsplit\tracingparagraphso from\tracingstats.'x+ x987;1005;1011nI'0 TheTc9hangesabAovehavebAeenincorporatedin9toV:ersion0.91ofTuAEX.31Dec1982C5900 Breakf8thebuildffYfipage/ͬproAcedurein9totwoparts,zqbyextractingthesectionnow: calledI reffYfiupC. l[ThisIisnecessarybAecausesomeP9ascalcompilers,notablyfor: IBMTmainframes,cannotdealwithlargeproAcedures.]\Ex`av1012y$P564Ƹ7!C5910 Mak9eT\ifodd1\elselegalbyintroAducingifffYficodeMk.{xx489SC5920 Impro9vealignmentswhencolumnsdon'toAccur:_Don'tappendn9ullbo9xesfor: columnsBmissingbAefore\cr,N8andzerooutthetabskipglueafternonpresen9t: columns.IָxfF802,ܣQC5930 Mak9eTtheerrormessageabAoutoverfullalignmentmoreintelligible.#Bx'+801;804OI'0 The<2c9hangesabAovehavebAeenincorporatedin9toV:ersion0.92ofTuAEX82,Ewhich: w9asTthelastversionof1982,completedat11:59pmonDecembAer31.j3Jan1983'0 T:oAda9y I'mbeginningtowriteChapter15,andplanningthe\outputroutine: ofTplain.tex.X186Ƹ7!C5940 Change|thelogicofitsffYfialxlffYover0qʬ;usemaxffYfideadffYcyclesHטheretoAo,insteadofthe: xedTconstan9t100.$x,1054CBX34Ƹ7!C5950 Don'tforgettopopffYfinest(gGwhenaninsertisempt9y:.EAlsodisallowoptionalspace: afterT\insertn{...}.`jx|ڬ1100qXFj4Jan1983541Ƹ7!C5960 UseTthe\boxmaxdepththat'sdeclaredinsidea\vboxwhenpac9k|ragingit.:x 10865CC5970 RenameT\groupbeginand\groupendas\begingroupand\endgroup.&Ox*k265>DC594Ƹ7!C5980 Mak9eT\deadcyclesaccessibletousers.fx֬1246GC5990 BaseTthesplitinsertionsonnaturalheigh9tplusdepth,notondeltad.+Sx/ox1010GQ'0 TheTc9hangesabAovehavebAeenincorporatedin9toV:ersion0.93.%ՔQTHEERRÎORSOFTAEMX37@j6Jan1983 C6000 AddupushffYfimath/touhandleacasewhereIucforgottoclearincompleatffYfinoadD}.-(This : long-standingTbugw9asunearthedtoAdaybyPhyllisWinkler.)?;xCW1136[D588Ƹ7!C6010 AddT\pageshrink,etc.,toAo.Ǻx*1245AGC6020 In9troAducenewparameters\floatingpenalty,Z\insertpenalties.Alsoadopt: anewin9ternalrepresentationofinsertionnoAdes,sothat\floatingpenalty,: \splittopskipѬand\splitmaxdepthcanbAestoredwitheac9hinsertion.xn140;10082GɈj7Jan1983C6030 Impro9vetherulesforen9teringnewffYfiline'^?,inparticularwhentheend-of-line: c9haracterTisactive.\x̬343y)QɈj9Jan1983C6040 DistinguishTbAet9weenimplicitandexplicitkerns.oJxsg155;896QC6050 ChangeTthename\ignorespaceto\ignorespaces.pĸxu4265xԮ92;5359R591Ƹ7!C6130 InsertT\relax,notablankspace,tocurein niteloAoplik9e\ifeof\fi(LL).xb510)RC6140 Changetheold\limitswitchto\limits,L\nolimits,and\displaylimits.: Inciden9tally:,Tthis xesabugintheformerpAositioningofintegralsigns.xx &682;7490GC6150 Giv9eTa\charinmathmoAdeitsinherited\mathcode.hhθxl>1151DC525Ƹ7!C6160 Mak9e|underline,Eoverline,radical,vcenter,accent|noadsand{...}allrev9ert: to.t9ypAeOrdinsteadoftypAeInner.IntroAduceanewprimitive\mathinner.: (ThisT xesthespacing,whic9hgotworseinsomewaysafterchange#525.) JLxf761"Q'0 I'mTw9orkingonAppAendixGtoda9y:.Ɉz19Jan1983C6170 In9troAduceTa\mathchoiceprimitive.:xȪ1174GC6180 Mo9veT\inputfromthestomac9htothemouth.ڨx378 CX260Ƹ7!C6190 In9troAduceT\chardef,analogousto\mathchardef.`-LxdI1038;1224_*CC6200 ChangeT\unboxto\unhboxand\unvbox;alsoadd\unhcopy.G:xK1110cGC6210 Consideri\spacefactor,~\pagetotal,etc.,aspartofpre xedffYficommandLJ,ev9en: thoughTtheyarealw9aysTglobal.?Vx[Ƭ1211C&衟Q38ꍭD.E.KNUTH@z20Jan1983 77C6220 Switc9hTmoAdeswhen\hruleoccursinhorizon9talmodeor\vruleinv9ertical. Wx[W1090;1094CC6230 AddTanew\globaldefsfeature.xو1211Gz21Jan1983C6240 Optimize?thecoAde,Jinplaceswhereit'simportan9t(basedonfrequencycounts: ofTuAEXusageaccum9ulatedduringthepastweek):uIntroAducefastffYfigetffYavail: andJfastffYfistoreffYnewffYtokenT;آreduceJproAcedure-callo9verheadJinbeginffYfitokenffYlist@6d,: endffYfitokenffYlistqu,r backffYfiinput-r,r ushffYfinodeffYlist<ꪬ;c9hange_sometestsfrom`ifa?^b': toT`ifathenifb'.xv122;371 Ez22Jan1983C6250 Sa9vespaceinmathlists:!Don'tinsertpAenaltieswithinrestrictedhorizon9tal: moAde;Tsimplifytrivialbo9xes.3xPh721;1196EC6260 FixTasurprisingo9versightTintherebox)֬routine:pEnsurethatbisn'tavbAo9x.x 715-!S545Ƹ7!C6270 Mak9e\nullfontaprimitive,sothatcurffYfifont(ڬalwayshasav|ralue.J(Thisisa: dramaticimpro9vementoverTuAEX78,whereamissingfontwasafatalerror: calledT`Whoa'!)Zpxv552OCz24Jan1983586Ƹ7!C6280 ListTallincomplete\if'swhenthejobends.Fxc*1335]Iz29Jan1983552Ƹ7!C6290 ChangeTinitializationofalignffYfistate0 sothat\halign\bgroupw9orks.3ݨx7777K Cz30Jan1983625Ƹ7!C6300 BeTsuretotest`isffYficharffYnode2 (qR)'whenc9heckingTforatrivialbAo9x.C22Mar1983C6620 LetWUasingle#sucein\tokens,g\message,etc.s(TheWUpreviousrule,ginwhic9h : ## w9asalwaysrequiredasinmacros,wasaloserespAeciallyin\writewhere: y9ouThadtosay####!)px477C(gQ40ꍭD.E.KNUTH@X328Ƹ7!C6630 Requirethek9eyword`to'in\read.^(Thiswilla9voidthecommonerrorofan : incompleteztconstan9twhennospaceappAearsbeforethe\cs.)KAlsoallo9w: terminalTI/Oasadefaultwhenastreamn9umbAerTisoutofrange.<θx Y>482;1225;1370JkC ͍26Mar1983 YC6640 Replacep$\ifevenhcoun9tnumbAeri?Bb9y\ifoddhnumbAeri%},forbAetterconsistencyof: language.VxƬ504*C564Ƹ7!C6650 In9troAduceN6thechangeffYfiifffYlimit>#7,v toovercomeabigsurprisebugrelatingto\if\if: aabc\fi.'dxCԬ497.DS'0 Suc9hAexamplesshowthatcurffYfiif mightnotbAecurrent,inmyoriginalimple-: men9tation. ͍28Mar1983X326Ƹ7!C6660 T:olerateTnon-c9haractersasargumentsto\ifand\ifcat.Y缸x^,506qnEGC6670 ChangeT`absent'to`void',abAetterw9ord.x*x487mCC6680 Clear6theshiftffYfiamount;lin\lastbox,sinceIdon'tw9ant6to gureoutwhatit: meansTinallcases.x 1081C ͍29Mar1983C6690 W:ak9euptheterminalbAeforegivinganerrormessage.(Thismeansaspecial: printffYfierraˎproAcedureTisin9troduced.)p(Suggestedb9yDRF.)HxMT34;73lcI ͍h1Apr1983'0 T:oAda9y .I nishedChapter21(bo9xes)andbegantodraftChapter22(align-: men9ts).C6700 Allo9wTpAeriodicpream9blesinalignments.\x ̬793GC6710 Mak9eT\leaderslineupaccordingtothesmallestenclosingbAox.. ޸x2=N627;636XCC6720 Allo9wThyphenationafterwhatsits(e.g.,afteritemsforanindex).;x?`896SMQ ͍h2Apr1983C6730 CallTbuildffYfipage/QwhenT\paroAccursinv9erticalmode.nxrl1094QC6740 ClearTauxinTinitffYfirow$#֬,Tfortidyness.x늬786ĒCh4Apr1983C6750 LetTdigitsswitc9hfamiliesinmathmoAde.θx>232FCh7Apr1983602Ƹ7!C6760 Re neTthetestfornotsplittinganinsertion.zx1008kQh8Apr1983647Ƹ7!C6770 RenameT\xcras\crcr,atLL'srequest.x 780Ch9Apr1983'0 T:oAokyada9yo andhadachancetohelpprintasamplepageona150-year-old : letterpressTinMurph9ys,California.V911Apr1983C6780 Reco9verTmoresensiblyafteraruna9wayTpreamble.{TBxp339SIV912Apr1983X328Ƹ7!C6790 Mak9eT\readspanseveralinputlines,ifnecessarytogetbalancedbraces.v:x4823kCV914Apr1983C6800 Fixasubtlebugfoundb9yJS:xK882canmakeq#acharffYfinode+`,ލsoweneedtotest : `if:isffYficharffYnode2 (qR)'.%[ActuallyITdisco9veredmuchlaterthattherealbug: w9asTtoomit`else'atthispAoint.]lLx881ΉS ͍V915Apr1983C6810 Mak9efI\uppercaseand\lowercaseapplytoallcharacters,zregardlessofcate-: gory:. ޸x$N1289=5TC)QTHEERRÎORSOFTAEMX41@'0 7:30am.-Afterw9orkingallnight,MIMcompletedadraftofthemanualthruChapter : 22,Tfordistributiontov9olunteerTreaders. l'0 5pm.pTheTc9hangesabAovehavebAeenincorporatedin9toV:ersion0.97.D0V917Apr1983C6820 ChangeT`smalxlffYfinumber7@'to`0::65'Tintheh9yphenationroutine(DRF).(O~x,k901@,nRC6830 Flush}Npatternsintheinputwhentheusertries\patternsoutsideof1INITEX: (suggestedTb9yDRF).꨸x1252I'0 T:omorro9wI ytoEngland,whereI'lllectureandwriteapapAerabout`Literate: Programming'T[Comp.J.27(1984),97{111].D014MaCy1983663Ƹ7!C6840 Impro9vecthebAeha9viorof\readfromterminal(suggestedbyT:oAddAllenat: Y:ale).v[I'dforgottentoimplemen9ttheextendedstreamnumbAersin#663.: Also,Tthepromptisno9womittedifn<0.]\bxxҬ484sID018MaCy1983C6850 RestrictT\writentothetranscript leonly:,ifn<0.exi&1350IX188Ƹ7!C6860 Unify0thesyn9taxforregistersandinternalquantities.ȹ(Removeprimitivescalled: `\insthe'Qand`\minusthe';renamescanffYfithe&toscanffYfisomethingffYinternalc2,xand: c9hangeTitsinterfaceaccordingly;cleanupcommandcoAdesgenerally:.)Zzxv209;413:L\CC6870 In9troAduceTnewparameters\hoffset,\voffset.iظxH617aGD024MaCy1983C6880 In9troAduceTanewparameter\everycr(suggestedbyMDS).AGnxEcެ774;799jaG'0 Man9ymacrowritersandpreliminary-manualreadershavebAeenrequestingnew: features;TI'lltrytok9eepthelanguageasconciseandconsistentaspAossible.D025MaCy1983C6890 In9troAduceY\countdef,j\dimendef,etc.(suggestedb9yDRFYvlongago,easyno9w: inTviewof#686).fx֬1224 GC6900 In9troAduceT\advance,\multiply,\divide(suggestedbyFY).FivxJ1240bGC6910 In9troAduce:\hyphenchar;L,thisrequiresanewcommandassignffYfifontffYint@'Ŭ,plus: minorTc9hangestoabAout15modules.xl915zGC6920 In9troAduceT\skewchar(easybecauseof#691).x. 741%GC6930 In9troAduce"\noexpand. (Ihaddicultythinkingofhowtoimplementthisone!)`xe S358;369oGC6940 In9troAduceT\meaning.:x⪬296LGX231Ƹ7!C6950 Remo9veT`dm'and`vu';allo9wthemoregeneral`.5\hsize'.Z~x_455rzGC6960 ChangeT`\texinfofn'to`\fontdimennf'.0x 578CD027MaCy1983C6970 AddTanewfeature\afterassignment(suggestedb9yARK).KQxg1046;1093 }CC7150 Remo9veredundantcoAde:There'snoneedtocheckcurffYfigroup.orcallo ffYfisave: whenTstartingalignmen9tsorequationnumbAersindisplays.0x4 1130;1142dEjCT8Jun1983C7160 Disallo9wT\openout-1and\closeout-1.ax~1350CC7170 Disallo9wT\lastboxinmathmoAde.xn1080ЖtCT9Jun1983C7180 CallTbackffYfierror-ì,TnoterrorK,when\leadersaren'tfollo9wedTbypropAerglue.x10780IC7190 InitializeTforapAossibleparagraph,after\noalignina\valign.?ixC785WDZ%10Jun1983708Ƹ7!C7200 ExpandTtheoptionalspaceafteranASCIAIconstan9t.nxr442̖CZ%12Jun1983C7210 SetTspaceffYfifactor6 Ƭ1000Tafteraruleoraconstructedaccen9t.0x4$1056;1123cCZ%14Jun1983C7220 Correctaseriousblunder:SetdiscffYfiwidth.H Ƭ0bAeforetestingifsisn9ull(caught : b9yTJS).䀸x 8693D'0 This!isarealbugthatexistedsincethebAeginning!Itsho9wed!uponpage37of: theTV:ersion0TRIPman9ual,butIdidn'tnoticetheproblem.708Ƹ7!C7230 Mak9eToptionalspacesafterhdimeni&likethoseafterhnumbAeri(Ѭ.HxLx448`C568Ƹ7!C7240 InsertTeveryffYfidisplay;1328IZ%25Jun1983C7340 AddsextrabAo9xesandgluetotheoutputofalignment.8f[ThisthwartspAossible : attempts̭attric9kery̭bywhichsystem-depAendentgluesetv|raluescomputed: b9y:\spancouldhavegottenintoTuAEX'sregistersbythingslike\valignand: \vsplit.DItalsohastheadv|ran9tageofpAerfectaccuracyinalignmentofvertical: rules.] Ҹx$B8098nR XpC7350 Mak9eTleadersa ecttheheightorwidthoftheenclosingbAoxes.2fx6֬656;671\HC'0 T:oAda9yI'mmainlyinstallingamuch-improvedformatforchange lesinWEB : programsT(suggestedb9yDRF).Z%28Jun1983C7360 P9ermitT\unskipinverticalmoAdewhenweknowthatitdoAesnothing.$ix(d1106@jC1Jul1983700Ƹ7!C7370 Av9oidTredundantbAoxeswhenthingslike`{\bfA}'oAccurinmath.2*x61186OEC7380 AddTa`scaled'featureto\fontinput.θx>1258UG700Ƹ7!C7390 Remem9bAerTtocorrectdeltay֬whenanaccentedbAoxchanges.SֶxW&742kQD2Jul1983C7400 In9troAduce8bypassffYfieoln0j,qto8removeanomalousbAehavioroninput lesoflength1. : (SuggestedTb9yDRFaftertheproblemwasdiscoveredbyLL).D\xH0̬31WQNR4Jul1983C7410 Allo9wTcoAdeslike^^baswellas^^B.pNx352;355AGC7420 In9troAducenewparameters\escapechar,\endlinechar,\defaulthyphenchar, : and\defaultskewchar,Ftomak9eTuAEXlessdepAendentonthecharacterset.: (This1a ectsman9ymoAdules,8sincealotoferrormessagesmustbAebrokenup: soTthattheyuseprintffYfiesc'r.)SG7Jul1983 XpC7430 Useasystem-depAenden9tfunctionerstatQwhenopeningorclosing les(suggested: b9yTDRF).x27*'POw11Jul1983 Xp'0 Theicomputerisbac9kupaftermorethan50hoursdowntime(duetoair: conditioningTfailure).C7440 Sho9wTtotalglueintheoutputof\tracingpages.{nxެ9852IC7450 GuardTagainstinsertionin9toanhbAox.xx993URC7460 LegalizeTtheassignmen9thtokenv|rari,z=htokenv|rari)&.}1xN1227 CC7470 In9troAduceTanewparameter\errhelp..\xJ̬1283EkI623Ƹ7!C7480 Don'tTforgettoc9heckTglobalffYfidefs0whenT\tabskipisc9hanged.N937;962+(R672Ƹ7!C7620 Allo9wTwhatsitsafterhyphenatablewords.Pxmn899FvC604Ƹ7!C7630 Represen9tTanitaliccorrectionasanexplicitkern.v6xzS^1113dCOw18Jul1983C7640 Allo9wTlowercaselettersin lenames.QڸxnJ519GRCC7650 ChangeTthemessage`Nooutputfile'Tto:p`Nopagesofoutput'.7ָx;8F642QIC7660 Con rmxm86(QIz1Aug1983C7710 Don'tputanempt9ylineattheendofan\input le!Z(Thissimpli estherules : andStheprogram,andalsogetsaroundabugthatoAccurredattheendof: lesTwithendffYfilineffYcharIinitializedqcev9erytimetheloAopofchangeffYfiifffYlimit : w9asTpAerformed!p(F:oundbyFY.)3xP497AB648Ƹ7!C7730 DistinguishT`string'from`strings'whenrepAortingstatistics.B-|xFI1334aDIC7740 In9troAduceTlx Dv,Ttocorrectabugin\xleadercomputations(foundbyFY).x 6273aAg20Aug1983C7750 Don'tTforgettoapply\/toligatures.2xO1113CF'0 T:oAda9y2I2|begantoreadallpreviousissuesofTUGboat,9inpreparationforAp- : pAendixTD.g27Aug1983C7760 AddTdebugginghac9knumbAer16,tohelpcatchsubtledatastructurebugs.x13390-IC7770 Remo9veTredundantsettingandresettingofnameffYfiinffYprogressHˬ.IxM531a#E618Ƹ7!C7780 Suppressb\inputduringafon9tsizespAec;otherwisecurffYfiname0ˬisclobbered : (foundTb9yMDS).Ҹx B1258 GSC7790 In9troAduceTnewconditionals\ifhboxand\ifvbox.wx|^505lwGg29Aug1983750Ƹ7!C7800 T:estforanempt9ylist,ifemptinesswillmessupthedatastructure.(Foundb9y : T:oAddTAllen.)&~x B478D624Ƹ7!C7810 UseTfastffYfistoreffYnewffYtokenXDXinTanotherplaceforeciency:.bxf466zA/EC7820 Sa9yT`hasonly'insteadof`has'.8rxT579ܯI'0 TheseTc9hangesyieldV:ersion0.99999,usedonlyatStanford.g30Aug1983C7830 Mak9eTfunnyblankspacesshowable.Āx298ʹCg31Aug1983754Ƹ7!C7840 Mak9eT\newlinechara ectprintffYfichar-:,notjustprint-.n0xs589CI4Sep1983C7850 AddTnewfeatures\lastkern,\lastpenalty,\unkern,\unpenalty.Klx gܬ424;996;1105HjG'0 OK,TAppAendixDis nished!!'0 TheTabAo9vechangeshavebAeeninstalledinV:ersion0.999999.i17Sep1983548Ƹ7!C7860 Don't/JbAothermakingduplicatefon9tidenti ers;Fthatwasoverkill,unotreally : needed.xT12582}P'0 WillTthisbAethehistoriclastc9hangetoTuAEX?i18Sep1983C7870 CorrectTaminorinconsistency:,`display'not`displayed'.Wx\d211rwIi20Sep1983604Ƹ7!C7880 T:reatTthek9ernsinsertedforaccentsasexplicitkerns.gAxk^j1125pCi26Sep1983C7890 ChangeT`log'to`transcript'insev9eralmessages.`ڸxeJ535;1335 SI'0 ThepJindexw9as nishedtoAday;Ip2mailedtheentireTuAEXbAookRtopJMassachusetts : forT nalproAofreadingbeforepublication..tQ46ꍭD.E.KNUTH@!1Oct1983 C7900 Prev9entL'uninitializedtriepAositionsincaseofo9ver owL'(foundb9yBerndSchulze).xn944KD!7Oct1983'0 HenceforthTourw9eekly`TuAEXlunch'meetingswillbAecalled`MET:AFuONTlunch'.'0 DRFTbAeginstoproduceTheTuAEXbook\onourAPSphotot9ypesetter.14Oct1983633Ƹ7!C7910 IgnoreTspacesattheendsoflinesalsoinTEX.POOL(foundb9yDRF).3 ¸x7&252F_P610Ƹ7!C7920 InitializeTthehistory"v|rariableatstartffYfihere-W(DRF).pJxt1332D18Oct1983C7930 ExtendTrunaway)9toTcatc9hrunawaytext(suggestedbyFY).QtxV306luIC7940 ResetTcurffYfics]afterTbackffYfiinput-,Tnotafterscanningthe`='(foundb9yFY).iƸx612266_D24Oct1983638Ƹ7!C7950 ChangeFqtheerrorreco9veryFqforbaddelimiters,Rinaccordancewiththec9hanged : syn9tax.p(F:oundTbyBarrySmith.)q~x1183̈I 9NoCv1983C7960 OptimizeULthecoAdeabitmore,Ibasedonempiricalfrequencydatagathered : duringASeptem9bAerandOctober:gInxױ45,Eusethefactthattheresultisalmost: alw9aysh4true.Inx380,delete`whiletrue#do'sinceman9ycompilersimplement: that5badly:.Rewritex852toa9void5callingbadness(جinthemostcommon: case.a޸x ~N45;380;852=OE:L3Dec1983 C7970 Don'teQforgettocallerrorafterthemessagehasbAeengiv9en(noticedbyGabi: KupAer).+̸xH<5001F'0 V:ersionT1.0releasedtoAda9yincorporatesalloftheabo9ve.:L9Dec1983'0 DinnerTpart9ywith36gueststocelebrateTuAEX'scomingofage.f 2Feb1984786Ƹ7!C7980 Reinstallz\fontprecautionsthatIz$though9twereunnecessary:.KIz$overloAoked : man9yWproblematicpAossibilities,}}like`{\font\a=x\global\a}\the\font'and: `\font\a=x\font\b=x\let\b=\undefined\the\a',Letc.(F:oundb9yMikeUr-: ban.)Thenewremedyin9volvesremov|ralofthefontffYfiident.1arrayandputting: the&iden9ti ersintoafrozenpartofthehashtable;/sothere'sasprinklingof: corrections~inlotsofmoAdules.AButbasicallythec9hangeisquiteconserv|rative,: soTitshouldn'tspa9wnanynewbugs(itsayshere).E"2xI>222;267;1257{Sf 9Feb1984C7990 Remo9vemthepAossibilit9yofdoubleinterrupt,ainascenariofoundbyClintCuzzo.xn1031"]sS12Feb1984C8000 Impro9veTspacinginaform9ulalike$(A,<)$.x.^764Q13Feb1984C8010 Av9oidabadgoto,easdiagnosedbyClintCuzzoandGeorgeO'Connor.(Must : notTgodirectlytoswitch2.)nxެ346AC8020 Conserv9eCstringpAoolCspacebynotstoring lenameintwoguises(suggestedby: DRF).jx"ڬ5376E26Feb1984C8030 Mak9eSscaledoutputloAokcleanerbyprintingfewerdecimalswheneverthisin-: v9olvesTnolossofaccuracy:.p(Suggestedb9y1*= manfnthij:klumnjdevelopment.)#ຸx'*103>WI/tQTHEERRÎORSOFTAEMX47@W2Mar1984 FC8040 Main9tainK17-digitaccuracy:,tnot16;nowconstantslike`.00000762939453126pt' : willTroundcorrectly:.牾x.452fR16Mar1984C8050 Plug=waloAopholethatpermittedrecursioningetffYfinext$O,Gb9ydisallowingdeletions: inTcheckffYfiouterffYvalidityR.x 336 R24Mar1984C8060 OpAen1theterminalbeforetryingtow9ake1itup,whentheprogramstartsbad.xn1332# I27Mar1984C8070 Chec9kuthatk <63,toavoidthe\patterns{xxx...xxxdxxxdxxx}anomaly : foundTb9yJacquesDXesarmenien.7xTP962RV911Apr1984C8080 SupplyTcoAdeforthemissingcaseadjustffYfinode58%incopyffYfinodeffYlist;_.C.$xGJ206[F'0 Y:oic9ks,ThowcouldseriousbugslikethathaveescapAeddetection?Z%11Jun1984627Ƹ7!C8090 InitializeTcharffYfibase),Tetc.,fornulxlffYfifont&,.p(F:oundb9yNickBriggs.)@xD552X`DC8100 ClearTthebu erarra9yinitially(Briggs).x8P331RZ%21Jun1984C8110 LoAokTaheadforligatureork9ernaftera\chardef'ditem(DXesarmenien).ʸx:10387,@C4Jul1984C8120 Mak9eTthequarterwordconstraintexplicitwithanew`badD'case(19).+Xx/t~111C4R7Jul1984C8130 Optimize_ rmffYfiupffYtheffYlineG^sligh9tly:,qto_bAeconsistentwiththehij:klumnjpro- : gram.!x%j3639E8Jul1984C8140 Giv9eTadditionaldiagnosticswhen\tracingmacros>1.kxo323z/I'0 TheTc9hangesabAovewereincorpAoratedinV:ersion1.1,releasedJuly9,1984.Ow27Jul1984C8150 Sa9y8 `seethetranscriptfile'afterhandlingoine\showcommands.(Sug- : gestedTb9yhij:klumnj.)xR1298I20Oct1984C8160 Allo9wT`0'inrespAonsetoerrorprompts.PDxl84'WI'0 ThoseTt9wochangesledtoV:ersion1.2.25NoCv1984C8170 Don'tforgettoc9heckfornulxlbAeforelookingatsub eldsofanode.0((Thisw9as : \dirt9yTPascal,"withtwoquarterword0'sreadasahalfword.)?뢸xD846WȒRC8180 DittoTinanotherplace!`xЬ939PRC8190 Remo9vethe xed-at-compile-timepartitionbAet9weenloweranduppAermemory:.NyxS 116;125;162(E'0 ThisJHmajorc9hangeinmemorymanagementcompletesV:ersion1.3,Wwhichwas: publishedTinpreliminaryloAoseleafformas`TuAEX:TheProgram'.20Dec1984C8200 KeepthenodeffYfisize-) eldfromo9ver owingifthelo9werpartofmemoryistoAo: large."2x&ɢ125:"R'0 ThatTw9asanotherbuginexistencefromthebAeginning!j5Jan1985C8210 Impro9veTthemissing-format- leerror(DRF).dxԬ524@uI0?Q48ꍭD.E.KNUTH@j7Jan1985 HC8220 UpAdatetheterminalrigh9tawaysothatthewelcomingmessagewillappAearas : soAonTaspossible(DRF).8XxTȬ61kIz23Jan1985C8230 Con9veyTmoreuncertain9tyTinthehelpmessageattimesofconfusion*H .2x695H#I610Ƹ7!C8240 Impro9veTthehistory"logicinthewarningffYfiissuedC $case.j머xo245bI18Feb1985810Ƹ7!C8250 Stic9kX4tostandardPascal:/Don'tuse rst inaforloAop.[Someprocedures : \threaten"itglobally:,accordingtoBritishStandard6192,section6.8.3.9.]: (P9ointedToutb9yCET.) x&331IPV911Apr1985 HC8260 Prev9entNnonexistentcharactersfrombAeingoutputbyunusualcombinationsof: ligaturesTandh9yphenation.͆x915SV915Apr1985 H819Ƹ7!C8270 Compute\memoryusagecorrectlyinINITEX;thepreviousn9umbAer\waswrong: bAecauseTofaWEBtextmacrowithoutparen9theses(DRF).R0xVMh164j=LV916Apr1985 HC8280 SpAeedTup ushffYfilist)b9ynotcallingfreeffYfiavail,"(DRF).qxuÌ123EV917Apr1985788Ƹ7!C8290 In9troAduceeMaspecialkindofk9ernforaccentpAositioning;IitmustnotdisappAear : afterTalinebreak.4xxP837;879;1125AV918Apr1985755Ƹ7!C8300 Prev9entT\lastboxand\unkernfromremo9vingdiscretionaryreplacements. Wx[W1081;1105=R'0 ThatTcompletesV:ersion1.4.V926Apr1985C8310 Don'tTtryTlEXffYfiarea,bifanonstandard leareahasbAeenspeci ed(DRF).zx!5375oC'0 ThatTw9as#401inTuAEX78;Ineverlearn!V930Apr1985754Ƹ7!C8320 EliminateFthelimitationon\writelength;?thereasonforithasdisappAeared : (NancyTT:uma).@Lx\1370Ci@8MaCy1985819Ƹ7!C8330 AlloAcateTt9wowordsfortheheadoftheactivelist(CET).Zex^ 162r5D11MaCy1985C8340 ChangeTwterm BtoTwtermffYfiln+7gafterTabadbAeginning(BillGropp).C8410 PunctuateTtheP9oirothelpmessagemorecarefully:.qzxu1283Iz28Jan1987C8420 Mak9eTsurethatmaxffYfiinffYopen9#/doAesn'texceed127(DRF).cxgˀ14vR680Ƹ7!C8430 Don't8uallo9wa\kerntobAeclobberedattheendofapre-breaklistwhena : discretionaryv@breakistak9en.?3(Av&missing`else'wasthesourceoftheerror,: diagnosedTincorrectlybAefore.)1xM881ܵDC8440 T:ak9e-faccountofdiscardednoAdeswhencomputingthebackgroundwidthafter: aTdiscretionary:. x%p840D'0 Thatw9asthe rstreallyseriousbugdetectedformorethan17months!Ifound: itTwhileexpAerimen9tingwithright-to-leftextensions.'0 V:ersionT2.1w9asreleasedonJanuary26,1987.Tf 5Feb1987C8450 Remo9veTcasesinshorthandffYfidef?OxthatcannotoAccur(foundb9yPatMonardo). 䂸x1224'EV914Apr1987C8460 Impro9ve?robustnessofdatastructuredispla9ywhendebugging(RonaldoAm`a). `xe S174;182=RV921Apr1987C8470 Mak9eTthestoragealloAcationalgorithmmoreelegantandecient.:Hиx>e@127RkEV922Apr1987742Ƹ7!C8480 CalculateTtheempt9y-lineconditionpropAerlywhenendffYfilineffYchar<ݬisabsent.܀x360-A'0 Thetpreviousthreec9hangeswerefoundwhileItkwasteachingaclassbasedon : V:olumeTB;theyledtoVersion2.2.V928Apr1987C8490 Av9oidTclosinga lewhenTuAEXknowsthatitisn'topAen(JS).M벸xR"560f+ME3Aug1987C8500 CleanTupun nishedoutputifit'snecessarytojumpffYfiout+(KlausGun9terman).޸x N642"US'0 ThatTmak9esV:ersion2.3;subsequentversionnumbAerswon'tbAeloggedhere.g19Aug1987C8510 Inden9tTrulespropAerlyincaseslike : \hangindent=1pt$$\halign{...\cr\noalign{\hrule}}$$.I2xN806aAg20Aug1987C8520 In9troAduce8coffYfibackup-W=because8ofcaseslike\hskipj0ptplus1fil\ifdim8(Alan : Guth).x!3666S 9NoCv1987C8530 Change)thecalculationforn9umbAer)ofleaderbo9xes,nsothatitwon'tbAetoo : sensitiv9eTtoroundo errornearexactmultiples(M.F.Bridgland).,px0626ES17NoCv1987C8540 ReplaceBm9ystupidalgorithmfor xed-pAointmultiplicationofnegatives(WGS).xn572dfA12Dec1987C8550 FixTat9ypAointheinitializationofhyphenationtables(PB).R*xW952joB'0 Thaterrorw9asalmostcompletelyharmless,thusundetectable,exceptifsome : \lccodeTis1andno\patternsaregiv9en.23Dec1987564Ƹ7!C8560 Bemorecautiouswhen\relaxing"apreviouslyunde ned\csname;Ry9oumight : bAeTinsideagroup(CET).ҕxֲ"372)S2Q50ꍭD.E.KNUTH@V920Apr1988 9C8570 Mak9esuretempffYfihead/kiswell-formedwheneveritcanbAeprintedina\runaway" : message:pConsiderTconstructionslik9e\outer\def\a0{}\a\a(SilvioLevy). x391& SV924Apr1988618Ƹ7!C8580 Av9oidcon ictinguseofthestringpAoolinconstructionslike\def\\#1{}\input: a\\\zT(RobAertMesser).v@xݒ260S10MaCy1988C8590 AmendTthe\patternsdatastructurewhentrieffYfimin'ނ=0(PB).0Bx4951;953Z}R25MaCy1988C8600 Guaran9teeTthattrieffYfipointer5EcannotbAeoutofrange.p-xtJ923 R618Ƹ7!C8610 Av9oid additionalbugslike#858inconstructionslike\inputhx31|Sg16Aug1989 9C8750 Allo9wTintegerproAductstobe31bitslong(FM).JJxf105Mg31Aug1989441Ƹ7!C8760 IncreaseTthen9umbAerToftok9ensshownbytokenffYfishow3(J.Lav|ragnino)../Zx2Kʬ295F$CC8770 Av9oidTconfusionfrom$$\begingroup\eqno$$(FM).i`xmЬ1140S3GQTHEERRÎORSOFTAEMX51@'0 The~recen9tTUGmeetingturnedouttobAeanextend-TuAEX-for-the-nineties : part9y!lI/agreed0thatsomeextensionsfornon-Englishlanguagesoughtto: bAemadewhileIstillknewho9wtodothem.b(Inotherwords,#Ibrokemy: rm#commitmen9ttokeepingTuAEXcompletelystable;butinthiscasenobAody: objected.)@ The!9follo9wingelevenchangeswerecoAdedduringthemonthof: Septem9bAer.)i30Sep1989 DC8780 InstallTmajorc9hangeallowinggeneral8-bitcoAdeinput.VxZj38;352{GC8790 InstallTmajorc9hangeallowingmultiplehyphenationtables(M.F:erguson).xj923/.GC8800 In9troAduceTnewparameters\lefthyphenminand\righthyphenmin.4x8923LGC8810 In9troAduce3majornewligaturecapabilitiesincludingimplicitboundaryc9harac- : ters.x908;1037>ƑGC8820 InstallTnew\inputlinenofeaturesuggestedb9yMDS.i xm|424@GC8830 InstallTnew\holdinginsertsfeaturesuggestedb9yFM.]xa4d1014y>{GC8840 InstallTnew\badnessfeature.x(424;664GC8850 InstallTnew\emergencystretchfeature.rܸxL863eGC8860 InstallTnew\errorcontextlinesfeaturesuggestedb9yFM.S0xW311kGC8870 Reco9veryfromanomalywhenh9yphenationchar_warningclobbAersold_setting.xn863uSC8880 Mak9eTiteasiertochangetheformatextension(DonHosek).8ʘx<520;1328gP16Oct1989C8890 Av9oidTrangecheckinnullfontwithbc=256(PB).yPx}565@R22NoCv1989856Ƹ7!C8900 Prev9ent saveffYfistack.)Gcon icts in{\hbox\expandafter{\csname\endcsname}}and : similarTconstructions(W9GS).(xؘ645;1117vS858Ƹ7!C8910 System-depAenden9tycpartsof lenamesmustbAeaddressedrelatively:,gnotabso-: lutelyT(FMandRainerSc9h`opfq).x