TheBriefingBlurb:ExploringtheEthernetwithMouseandKeyboard1983EditionByLyleRamshawofPARC/CSLAnimmigrationdocumentinthetraditionofRoyLevin'sAFieldGuidetoAlto-Land.June7,1983Filedon:[Indigo]Documentation>BriefingBlurb.tioga,BriefingBlurb.pressAbstract:ThisdocumentisageneralintroductiontothecomputingenvironmentatPARCslantedtowardstheneedsandinterestsofnewcomerstotheComputerScienceLaboratory.Ifyouarelookingatthisdocumenton-linefromwithintheeditornamedTioga,youmightwanttousethelevel-clippingfunctionstoseetheoverallstructureratherthansimplyplowingstraightthrough.Clickthe``Levels''buttoninthetopmenu,thenclick``FirstLevelOnly''inthenewmenuthatappears.Thatwillshowyouthemajorsectionheadings.Click``MoreLevels''toseethesubsections,orclick``AllLevels''toreadthedetails.XEROXXeroxCorporationPaloAltoResearchCenter3333CoyoteHillRoadPaloAlto,California94304ForInternalUseOnlyp ^{q Y!E&`-2 Tr O Gds J 5 B1i%9&*t/ J0vJ4 8c:' s GT Cu D s DD13Cv @s#@@= w" *,/69 >@,Dd ?"!Z)E+-4:@ BDF =h+#&'}*.Q387:>BcD/G ; d; %,038>2C :   S#'+Q.:`BOF 8r. ;"&,48 ACG 6 ~X !c$'Tw s(-0 (?,I/X5( ,14( ,I/ 6gq I-kTVm$r3"+x0 5buTVm$THEBRIEFINGBLURB2Raisond'EtreThepurposeofthisdocumentistohelpimmigrantsadapttothelocalcomputingcommunity.By``thelocalcommunity'',ImeanprimarilytheComputerScienceLab,theImagingSciencesLab,andtheIntegratedDesignLaboftheXeroxPaloAltoResearchCenter,betterknownbytheacronymsCSL,ISL,andIDLrespectively.ImmigrantstoothercomputingcommunitieswithinXeroxmayalsofindthisdocumentofinterest,butImakenoguarantees.Ishallassumehereinthatsaidimmigrantsknowquiteabitaboutcomputerscienceingeneral.Hence,Ishallconcentrateupondiscussingtheidiosyncraticcharacteristicsofthelocalhardwareenvironment,softwareenvironment,socialenvironment,linguisticenvironment,andthelike.YouwilldoubtlessreadmanydocumentswhileyouareatXerox.Acommonconventionobservedinmanymanualsandmemosisthatfinepointsoritemsofcomplextechnicalcontentperipheraltothemaindiscussionappearinsmalltype,likethisparagraph.Youwillsoondiscoverthatyoucannotresistreadingthisfineprintandthat,despiteitsdiminutivestature,itdrawsyoureyeslikeamagnet.Thisdocumenthassuchpassagesaswell,justsothatyoucanbegintoenjoyferretingoutthediamondshiddeninthemountainofcoal.Thereisagreatdealofusefulinformationavailableon-lineatXeroxintheformofdocumentsandsourceprograms.Readingthemisoftenveryhelpful,butfindingthemcanbeanuisance.Throughoutthisdocument,referencestoon-linematerialareindicatedby,wherenisacitationnumberinthebibliographyattheendofthisdocument.Standardcitationstotheopenliteratureappearas[n].IfyouarefortunateenoughtobereadingthisdocumentfromwithinTioga(theCedareditor),youshouldpauseatthispointtotryoutthe``Def''command.Ifyouweretoselectthethreecharacters``''intheprecedingparagraphandthenclickthe``Def''commandwiththemiddlemousebutton,youwouldthenfindyourselflookingattheplaceinthisdocumentwhere``''isdefined,thatis,whereitappearsfollowedbyacolon.Youcouldthengetbacktothissectionofthedocumentbyclickingthe``PrevPlace''commandwithanymousebutton.The``Def''commandisalmostasgoodasanautomaticindexingfacility.Onanothertopic,youmighttryclickingthe``FirstLevelOnly''button(click``Levels''firstifyoucan'tfindthe``FirstLevelOnly''button),andthenclicking``MoreLevels''afewtimes.Tryscrollingabittoo.TheTioga``levels''commandsarealmostasgoodasanautomatictableofcontents.Readingadocumentfromfronttobackcanbemightyboring.Fortunately,thisdocumentissodisorganizedthatitisnotatallclearthatitreallyhasafrontandabackinanynormalsense.Youmightaswelljustbrowsethroughandreadthepartsthatlookinteresting.Tohelpoutthebrowsersinmyreadingcommunity,IhavemoreorlessabandonedthecustomofbeingcarefultodefinemytermsbeforeIusethem.Instead,alltherelevantterms,acronyms,andthelikehavebeencollectedinaseparateGlossary.SomeinformationiscontainedonlyintheGlossary,soyoumaywanttoskimthroughitlater(ornow,forthatmatter).The``Def''commandinTiogaisparticularlyhelpfulwhenbrowsingtheGlossaryfromwithinCedar;tryselectingtheword``Tioga'',andthenclickingthe``Def''buttonintheGlossaryviewer,forexample.WhilewritingtheGlossary,Iassumedthatyouhaveabasicknowledgeofcomputerscience,andamodicumofcommonsense:don'texpecttofindtermslike``computer''and``network''intheGlossary.1983EDITIONx"g'y#g'#g'x% g'y%g'x+Kg'y,3g'xsHDg'z ^sx [=!""% -11258k?L Gs Y 7 x{5#,%, 04(6;ASD~G/ XP i`7 $/'g-n2k6;&=@?F V   " #';. 6:H>\APDF UWD} (*)1,k125t8A; BHF SZ 1 jg{D$*(*-h 48 ?A Q ),. 7F;. C P S jy M-]H!$&()./c3 9>g?BGH K 4{G?!%) /0p2_53 :r>?|BjE-GZ J; \-#&z*y,.136e:0; AIE.FH H ~} "&(F*,.^02479!<@BDl F <x Dk />O &,10268:><?F B6w#&+ -2^58g:S;wA A g  h%((.&0,{0Ax1A32{7UAx8A:;L@@EwG/ ?u d$N*,/1I37 =AC8{C?uxDY?u <,1!!&)0/27@;=BF ;M6y!N#(/}137[9%=?}C" 9OY"(%g(+3/n59;@RD 7 8!."%-(*v-37;=%yB7B7DF. 6W IxK6W6W7",%|'+_-704694?AG/ 4 " 'U*,.N46:}<*?AIC8 3 p V#')C.`0;@#C 1a Jxy$*-,005X >U?BDF /o !(+/}1+46K8;>AC -8@ !"&=(*/5 =?FFG + Qa!$i%),F-135$8:H=AF ) (!$'M*-0 8;:d=?BZH (B MD 0 "%#,8.3Z58=w?(CcE &g<Qm &f*1b4F69=@FHe $.L "{(J$($x+0$+$,/569P<>?ADW #L Wy #L#LDnx#Lj#LV#*+/1: 8=kA4G/ !F[$&{* /2S5y:<AEG/ 6by#%Z**/K1|36+7 9?7@Ek V  Mg!#2%(* 02 8L9;x%I(y)v*\ TVm$rTHEBRIEFINGBLURB3NamingThingsAttheoutset,youshouldknowsomethingaboutthenamesofthecreaturesthatyouwillfindhere.Theprevailinglocalphilosophyaboutnamingsystemsisperhapssomewhatdifferentfromthetrendelsewhere.Wedohaveourshareofalphabetsoup,thatis,systemsandlanguagesthatarenamedbyacronymsofvaryingdegreesofcutenessandartificiality;consider,forexample:PARC,FTP,MAXC,IFS.Butwearetryingtoavoidmakingthissituationanyworse.Tothisworthyend,namesforhardwareandsoftwaresystemsarefrequentlytakenfromtheSunsetWesternGardenBook[1];Grapevineserversarenamedafterwines;Doradosarenamedaftercapitalships;PilotreleasesarenamedafterCaliforniarivers.Asthisconventionaboutnamesdoesnotmeetwithuniversalapproval,itseemsinappropriatetoofferajustificationoftheunderlyingphilosophywithoutofferingequaltimetotheopposition.Youwilldoubtlessprovokeafarmoreinterestingdiscussionifyouadvanceyourownviewsonnamingtoalmostanyonewanderinginthecorridors.Whileweareonthegeneraltopicofthenamesofthings,weshoulddiscussforamomentthelocalcustomsforconstructingsingleidentifiersoutofmultiplewordphrases.Supposethatyouwouldliketonameavariableinyourprogram``nameseveralwordslong''.Insomeenvironments,aspecialcharacterthatisn'taletterbutthatactssomethinglikealetterisusedasawordseparatorwithinidentifiers;thisleadstonamessuchas``name!several!words!long''or``nameseveralwordslong''.Nosuchcharacterisincommonuselocally,however.Instead,shiftingbetweenupperandlowercaseisusedtoshowthewordboundaries,leadingtothename``NameSeveralWordsLong''.Somepeople,includingDonKnuth,thinkthatidentifierswithmixedcaselookterriblyugly.Irefusetogetsuckedintoexpressingmyopinioninthisdocument;onceagain,Iexhortyoutoespouseyourviewsinthecorridors.ThereareseveralfinepointsthatIshouldmentionaswell.Asageneralrule,caseissignificantforidentifiersinthelocalprogramminglanguages,butcaseisnotsignificantinfilenamesorinGrapevineR-names.Thus,theCedaridentifiers``REF'',``Ref'',and``ref''arequitedistinct,butthefilenames``BriefingBlurb.tioga''and``briefingblurb.tioga''areequivalent,asaretheR-names``Ramshaw.PA''and``ramshaw.pa''.InMesaandCedar,thereisafurtherconventionthatthecaseofthefirstletterofanidentifierisusedtodistinguishfancyobjects,suchasproceduresandtypes,fromsimpleones,suchasintegersandreals.Thus,theidentifiername``ProcWithFiveWordName''beginswithanuppercase``P'',butthename``integerWithFiveWordName''beginswithalowercase``i''.Thelatterformlooksverystrangetomostpeoplewhentheyfirstseeit.Whenyoufirsttastedanolive,youprobablydidn'tlikeit.Now,youprobablydo.Givethesecapitalizationconventionsthesamechancethatyouwouldanolive.Thesecapitalizationconventionsdon'tworktoowellwhenacronymsandnormalwordsappeartogetherinoneidentifier.Suppose,forexample,thatIwantedtointroduceanidentifiernamed``FTPversionnumber''.Logicwoulddemand``FTPVersionNumber'',butthisdoesn'tlookquiteright;manypeoplewouldbeprobablywrite``FTPversionNumber''instead.Ofcourse,sinceaversionnumberisprobablyaninteger,itshouldreallybe``fTPVersionNumber''.Ugh.Perhapscaseisbeingusedfortoomanypurposes?1983EDITIONx"g'y#g'#g'x% g'y%g'x+Kg'y,3g'xsHDg'z ^x [Z  7&*-1D25N;=@C5F Y  ,"7'T,}.3h9?C\E XS 6D!]' *-/}47X=@BG Vp"% -3U5<@DN U J7"$* ,1$315:E=:AcC S]  P #'{)[S]*8S]-3 7x;YS];S]>BD Q 6) r$( ,}04!9!;k?C P" +"@%h'+3.F4:;g?` G Ng d < ! (-3C7:a<,> F L Ek &: ,.I16z9<@BG KQ H'%|G!#c%)+02-6;6=j>CFI F&Z  #f%',0s6(;>jAE>G EJ R"'C+G/15. >?3C C b^"%&*[+.015Q;@? F A j\ ?}d(#?#?}'?()?}+?,6?} < \ !%,=1v6y;@BF ;W XB* !%') 28 6Y  $'_ -1 5I8E;l@YD`Ew 4  C#%(@/37-8D<?gA$FT 3  Y 0{@[!!""&+-1Z3c49Pu " '>+.2?48Y=@EBEK +>')w 02I47< F )f- $D%&+ 258;<?MB4EG (F ju v!;&@)+@ 2W59<ADG &o !%Y6v:=?CF $ %)-$.g2K5S8;?IBF #PlY2"$r&*-0~46{:9<BF ! FJ" +X 35v9=@C\G y   "$'(*5/81z5Y8 A~E6 4 I#4&)-1 27k:LEl  X ? "&|'+/.=/;|>BECFl  M;Dx%I(y)v*\ TVm$THEBRIEFINGBLURB4LocalHardwareMostoftheofficesandsomeofthealcovesaroundPARChavepersonalcomputersinthemofoneflavororanother.ThefirstofthesewastheAlto.TherearemorethanathousandAltosinexistencenow,spreadthroughoutXerox,thefouruniversitiesintheUniversityGrantprogram(U.ofRochester,CMU,MIT,andStanford),andotherplaces.Inrecentyears,mostofthelocalAltoshavebeenreplacedbyvariousflavorsofD-machines:Dorados,Dolphins,andDandelions.BothD-machinesandAltoscomeequippedwithbitmapdisplays,mice,andEthernetinterfaces.Let'sdiscussthesecomponentsfirst,andthenturnourattentiontothevariouspersonalcomputersthatcontainthem.BitmapDisplaysFirst,let'stalkaboutdisplays.Differentdisplaysusedifferentrepresentationsofimages.Acharacterdisplayrepresentsitsimageasasequenceofcharactercodes.Thisisaverycompactrepresentation,butnotaveryflexibleone;textisallyoucanget,andprobablyinonlyalimitedselectionoffonts.Avectordisplayrepresentsitsimageasalistofvectorcoordinates.Thisworksverywellforcertainvarietiesoflinedrawings,butnotsowellforfilledareasortext.Abitmapdisplay,ontheotherhand,producesanimagebytakingalargematrixofzerosandones,andputtingwhitewherethezerosareandblackwheretheonesare(orviceversa).Thegreatadvantageofbitmapdisplaysaretheirflexibility:youcanspecifyatremendousnumberofimagesbygivingevenarelativelysmallarrayofbits.Cursorsandiconsaretwolargeclassesofprominentexamples.Ofcourse,youdohavetosupplyenoughmemorytoholdallthosebits.AltosandD-machinesstoretheirbitmapsinmainstorage.Analternativewouldbetoprovideaspecialchunkofmemoryonthesidewherethedisplay'simagesits;suchamemoryisoftencalledaframebuffer.TheprimarydisplayoftheAltoisabitmapthatis608pixelswideby808pixelshigh.Suchadisplayisalmostlargeenoughtodoareasonablejobofrenderingasingle8.5"by11"pageoftext.TheCRTonaD-machinehasthelongaxishorizontalinsteadofvertical,givingabitmapdisplaythatis1024pixelswideby808high.Ithadtobe808highsothatD-machinescouldemulateAltos,ofcourse.Theextraspaceallowsyoutohavesomethingelseonthescreenaswellasthesomewhatscrunchedpageoftextthatyouareediting.EreIleaveyouwithamistakenimpression,letmenoteinpassingthatbitmapdisplaysarenotthefinalsolutiontoalloftheworld'sproblems.Rasterdisplaysthatcanproducevariouslevelsofgrayaswellasblackandwhitecandepictimagesfreeofthe``jaggies''andotherartifactsthatareinherentinbitmapdisplays[2].And,forsomepurposes,coloriswellworthitssubstantialexpense.MiceButnowontomice.Amousehastwoobviouspropertiesitrollsanditclicks.Insidethemachine,themousepositionandthedisplaycursorpositionarecompletelyunrelated;butmostsoftwarearrangesforthecursorto``track''themouse'smovements.Thethreemousebuttonsgobyvariousnames;``left'',``middle'',and``right''isonesetofnames.Themousebuttonsarealsocalled``red'',``yellow'',and``blue''respectively,eventhoughphysicallytheyarenearlyalwaysblack.Thesecolorfulnameswereproposedatanearliertimewhensomeofthemicehadtheirbuttonsrunninghorizontallyinsteadofvertically.Usingcolors(evenimaginaryones!)workedbetterthanswitchingbackandforthbetweenthenomenclatures``top-middle-bottom''and``left-middle-right''.Micealsocomeintwobasicflavors:mechanicalandoptical.Ourcurrentmechanicalmicerollonthreeballs:twosmallones,andonelargeone.Motionofthelargeballissensedbytwolittlewipersinsidethemouse,onesensingsidetosiderollingwhiletheothersensesforwardandbackwardrolling.Themotionofeachwiperdrivesacommutator,andlittlefeelersslidealongthecommutator,producingtheelectricalsignalsthatthelisteningcomputercandecode.BuildingoneoftheselittlegadgetsisnotquiteashardasbuildingaSwisswatch,butit'sinthesameleague.Theopticalmiceareamorerecent1983EDITIONx"g'y#g'#g'x% g'y%g'x+Kg'y,3g'xsHDg'z _x [/:> }"',D039_@AE1F Z  z= #%y(Z x)Z -0R37 8T>RAC Xc 6  Y"L )l+ -V 37y=kXc=Xc?S@ F V x`V,Vb7 % (,&-03U6:=fBD UN [*$g' .2< 9L 'G*.| Nvx K'0L'%*#,|2;e=B6C I #%@+ /24,5N8T=G G y   "%(=+ 0257-;ACH F1C*  ."#n%',# 47<3?uBE DQ v #%)z,.2Y38=?BE B c!"%'c+-1p4>9<A&CG; A; (.{ %(G+2 38S=w?B ? @ !#(0*5.`12 8<@AyEc?F.? = zx%S=&f='c, .04 5:'?D|F* AGDF 4 M_="% ,'027<=DBF 3, `y$3,3,W!"$}&) *, 26::=l>xC3,C3,E 1 a a##%5'+-02P4;2AEF / q -bAH '),#/;058=6BkDG/ + $m$D&*_/2s5:g?7C DG * `'$f'C) +z 1e4,7=?BXG (l]&)*-13 :| %x !:).s!$j)v 2 578=ZAhC ' >h_#(* 1 8;\>D  f 0 V (W+.279;@BEa  sR+ &!) -2588+ +n@"$'D*-05;S CG  |."&+|/g28;>iAG/ ;  @" >Y$| +.47D  {0^1:` 'm*!-N148: C " T $s!g'*//5r8&9=y@EG { qPnB"% '7(+:.36;>j@AEk%I(y)v*\ TVm$PTHEBRIEFINGBLURB5innovation.Anopticalmouselivesonaspecialpad,coveredwithlittlewhitedotsonablackbackground.Alensinthemouseimagesaportionofthepadontothesurfaceofacustomintegratedcircuit.ThisIChassixteenlight-sensitiveregions,someofwhichnoticethattheyarebeingshinedonbytheimageofawhitedotonthepad.AsthemouseslidesalongthepadonitsTeflon-coatedunderbelly,theimagesofthewhitedotsmoveacrosstheIC;itissubtlyconstructedsoastoobservethisphenomenon,andtakeappropriateelectricalaction.Formoredetailsonthisinterestingapplicationofacustomchip,youmightenjoycheckingoutDickLyon'sblue-and-whitereportonthesubject[3].TheEthernetTwo'scompany,three'sanetwork.AcollectionofmachineswithinreasonableproximityishookedtogetherbyanEthernet;ifthatdoesn'tsoundfamiliar,Iknowofsomeblue-and-whitesthatyoumightliketobrowse[4,5].EthernetsareconnectedtoeachotherbyGatewaysandphonelines,whichformostpurposesallowustoignorethetopologyoftheresultingnetwork.TheresultingnetworkasawholeiscalledanInternet.Occasionally,it'snicetoknowwherethingsreallyare,andthat'swhenamap<6>ishelpful.Ethernetscomeintwoflavors:oldandnew.Theoldonerunsat3MBits/sec,andshouldnowbereferredtoasthe``ExperimentalEthernet''.Theunqualifiedname``Ethernet''shouldbereservedforthenewone,thestandardizedversionusedinOSDproducts;itrunsat10MBits/sec.Weallknowhowuncommunicativecomputerscanbewhenlefttotheirowndevices.That'swhyweinventcarefulprotocolsforthemtouseintalkingtoeachother.TherearetwoentireworldsofprotocolsthatarespokenonourvariousEthernetsaswell:oldandnew.TheoldonesarecalledPUP-based(PARCUniversalPacket)[7].ThenewonesareknownbytheacronymNS(NetworkSystems)[8,9].I'msurethattheNSprotocolsmustbedocumented,butIdon'tknowwhere;sorry.Eachprotocolworldincludesahierarchyofprotocolsforvariouspurposessuchastransportingfiles,orsendingandreceivingmail.Inadditiontoconnectingupallofthepersonalcomputers,thenetworkalsoincludesanumberofmachinesgenericallycalledservers.Normally,servershavespecialpurpose,expensivehardwareattachedtothem,suchaslarge-capacitydisks,orprinters.Theirpurposeinlifeistomakethathardwareavailabletothelocalcommunity.Wetendtoidentifyserversbyfunction,sowetalkaboutprintservers,fileservers,namelookupservers,mailboxservers,tapeservers,andsoon.ManyoftheprotocolsforuseoftheEthernetweredevelopedpreciselysothatpersonalcomputerscouldcommunicateeffectivelywithservers.TheAltoTheinnardsoftheAltoarewonderfullydescribedinaclearandinformativeblue-and-whitereport[10];Iseriouslyrecommendthatyoureadit.IntheveryunlikelyeventthatyouneedtoknowstillmoreabouttheAlto,youmighttrylookingintheAltohardwaremanual<11>.Butforourpurposes,sufficeittosaythattheAltoisa16-bitminicomputerwhoseprimaryclaimtofameisthatitcomesequippedwithabitmapdisplay,amouse,andanEthernetinterface.D-MachinesTheD-machinesareafamilyofpersonalcomputers,eachmemberofwhichhasanamestartingwiththeletter``D''.Aslongasyoudon'tlooktooclosely,D-machineslookalotalike.Inparticular,theyareall16-bitcomputerswithamicroprogrammedprocessorthathandlesmostoftheI/Oaswellrunningtheuser'sprograms.Andtheyallgenerallycomeequippedwithaharddisk,abitmapdisplay,akeyboard,amouse,andanEthernetinterface.Therearedifferencesofcourse:insize,inspeed,andinflexibility.1983EDITIONx"g'y#g'#g'x% g'y%g'x+Kg'y,3g'xsHDg'x _/ i=E!/"<&).148J;'=>A ] g !#p%(+.D345: AHFu [ v $&N*c.1Y4p6:? ACE Z9 Y;t %})d-K/246 ? G/ Xu&~6( #<&0'~(, 4@579I>L@ V   !$L',).,0 7 >@EAkF& UC Y$b -246h;| Q x NAe"$ *@+163 <C@D LJ@+"&,%-(026"@BE KV Z{ ;&(,/18<;?oC#GR I mX%S!'), 18Q;MAFHe H{H:HxQHH $@&)+N/!3N{7{H8Hx;PH;H>@DHe F`  Cs ("%;(+.)035r6 =}@-DG B=DA  %( 094 ;+?AGR @ K9= !i$&S)/1H4b57 >@8 #(),r.k2(46[9<BjF $0*,[03-6:,=-?CE 9$A89$9$X8X9$w9$89$9$!%%(6+].1R68E:@CbC8#C9$D9$ 7 7} 7}yy7}7}c_f$>'( /U1l2U5H8]<x>7}@7}D! 5 d"$)/24 <{?AF 4. 1  "s$*d 1q396< AsBG 0  {0 $0 x0 0 &5*-2W7>D .d Sp  U"'+x02@457;&=C , 7 !&+-35|7:>BG% +&!M&.),.02z5N9=:=GC2EhG )n g)J"#&,3J71 ? Ft '| $w x !(k# %+-h.14 ; Ek  E*!%'')j+/4f81;=AUCF  x`#& Y%X')|,27;>@Cp 2o*R# ,06L:;?yACEa F.#&(.. | < x  ay!P& .1c68<?@D E y #F $\'~). 6y9:<A(C  qrz:f ,>2b5A:]=?BDF o<"$*m. 47*8K;}>?D O pF! (,.U 5N7=2 DF KQ | )<*/4b7<?%D3G/ Io !&x -m036 <> FEHe H |0q#"$~'*/1y3d4 <?UAE F[ 4;"]%,] 36\9v;%= @ { C  x ?> !a").2/4S7d9=?E >^  #f%5)z.2F7 ?VAhF ABGR 5 (t &)+-2< <1?BDA 4( +"r%&)R- 58>+CFu 2 c% 0+'!L$(+-04B:<?BDX .^/ G #`',,157e9=?B;D F ,'2"0#$)+2 37:3 @ + !'J(+/ 279y=+=u+?AE-GP )h S#Ucx)h)h"%8(o+..2B59*:D=Z?C/ ' 3 )$>'.N2z37:= DF & a%), 027 =i>AD?G $r  #&R(.0Q147; B " <H6#=$(*C.1C4.7:}=G@CtG; !# "&~).-/4q7!=?CD | y$b'+P-025:N;?cAE   #A%'^*-104o:Y>T@Ev - * ^#"8  ;s#1%* 1g36<>?D  6"F'_-5028:=R@E&G c S]$@',/35 8H=@C{ (.1 8>AvG  9$]M "%(n-/4]9 @nBRF m ~!$V() 0l45{8;?uEtG/ < j"(N+.14{ v x%I(y)v*\ TVm$THEBRIEFINGBLURB7TheDicentraisthenewestD-machine.Essentially,itconsistsoftheprocessoroftheDandelionwiththetaskingstuffstripedoutsqueezedontooneMultibuscard.ItcommunicateswithitsmemoryandwithI/OdevicesovertheMultibus.DicentraswilltalktoanyEthernet,oranyI/Odeviceforthatmatter,forwhichyoucansupplyaMultibusinterfacecard;that'soneoftheDicentra'sstrengths.TheinitialapplicationoftheDicentraisasaprocessorforlowcostInternetgateways.TheDicentraandtheDandelionarenamedafterwildflowerspartiallybecausetheyareoutgrowthsofaninitialdesignofButlerLampson'scalledtheWildflower.TheDaffodilTheDaffodilisaD-machinethatdoesn'texistyet,butsomedaymay.Ifso,itwillbecheaptobuild,sinceitwillusecustomintegratedcircuits.TheDaffodilisproduct-related.Thus,pleasedon'ttalkaboutittoowidely.ImentionithearonlysothatyouwillknowwhatitisthatChuckThackeristalkingabout.TheDragonTheDragonisahigh-performanceprocessorbasedoncustomintegratedcircuitsthatisbeingdesignedinCSL;confusinglyenough,though,theDragonisnotreallyaD-machine.Forexample,theDragonwordsizeis32bitsratherthan16.TheunderpinningsofCedarwillbeadjustedasnecessarysothatCedarwillrunonaDragon;butthiswilltakesomedoing.AfewcommentsaboutBootingAllofthelocalprocessorscomeequippedwithahiddenbuttoncalledthe``bootbutton''thatisusedtoreinitializetheprocessor'sstate.TheAltohadjustonebootbutton,hiddenbehindthekeyboard;pushingitbootedtheAlto.OnDolphins,thesituationisonlyslightlymorecomplex:therearetwobootbuttons,oneatthebackofthekeyboard,andtheotherontheprocessorchassisitself.Theyperformroughlythesamefunction,buttheoneonthechassisisalittlemorepotent.OnDorados,thereisalotmoregoingon.Therearereallytwocomputersinvolved,themainDoradoprocessorandaseparatemicrocomputercalledthebaseboard.Itisthebaseboardcomputer'sjobtomonitorthepowersuppliesandtemperatureandtostage-managethecomplexprocessofpoweringupanddownthemainprocessor,includingthecorrectinitializationofallofitsRAM's.ThebootbuttononaDoradoisactuallyawayofcommunicatingwiththisbaseboardcomputer.Youencodeyourrequesttothebaseboardcomputerbypushingthebootbuttonrepeatedly:eachnumberofpushesmeanssomethingdifferent.Fordetails,seeEdTaft'smemoonthesubject<13>.IfthebaseboardcomputeroftheDoradohasgonewestforsomereason(asoccasionallyhappens),youronlyhopeistopushtherealbootbutton,alittlewhitebuttonlocatedontheprocessorchassisitself,far,faraway.Justasthebootbuttononthekeyboardisessentiallyaone-bitinputdeviceforthebaseboardcomputer,thebaseboardcomputeralsohasaone-bitoutputdevice:agreenlightlocatedontheprocessorchassis.Variouspatternsofflashingofthislightmeanvariousthings,asdetailedin<13>.ThereisonemorebitoffolkloreaboutbootingthatIcan'tresistmentioningeveryonceinawhile,Ihavetothrowinsomesubtletidbittokeepthewizardswhoreadthisfromgettingbored.Oursubjectthistimeisthe``longpushboot''.SupposethatyouhavebeenworkingonyourDoradoforawhile,andyouwalkawaytogotothebathroom.Whenyoureturnandreachtowardyourkeyboard,yougetastaticshock.Youareonlymildlyannoyedatthisuntilyounoticethatthecursorisnolongertrackingthemouse,andthemachinedoesn'tseemtohearanyofyourkeystrokes.ThescreenlooksOK,buttheDoradoisignoringallinput.Whathasprobablyhappenedisthatthemicroprocessorinyourterminalhasbeenknockedoutbythestaticshock.Yes,Virginia!InadditiontotheDoradoitself,andthebaseboardcomputer,thereisalsoamicroprocessorinyourterminal(locatedinthedisplayhousing),whichobservesyourinputactionsandsendsthemontothemainprocessorunderaprotocolreferredtoas``theseven-wireinterface''.WhatyouwanttodonowistoreboottheterminalmicroprocessorwithoutdisturbingthestateoftheDoradoatallafterall,youwereintheprocessofeditingsomething,1983EDITIONx"g'y#g'#g'x% g'y%g'x+Kg'y,3g'xsHDg'x _/bc &3 -t.458N>|@PBy ] ]8qx]~]"%+o/?0 9<>kCFt [ &$4&)+e.458;k?BD Z9 0E =!-&*.1Y35 < BE X /P8%T'*A-2ay9X9X;`?BD  V g ( C"$ *D+-10T35(8>A0C { S x PLEO";'*d-"/59;G=>ACG N y$ #}):,$137=AE L P !k$')l,=.15g8: ;>_BH# KV}{ H x D %#).0I5J <ADE CC^ !&):.0/156 >AhG/ AiGa|"%(q 13\7::<8AC{ ? ~B!#&'(+/_| /27<2@C  59Xc$'D,.v16:-@DyF 4- LmrZ!(y+`-136<AoF 2e #N%(*-B13k48;A(C 0 v!e h"&)5/589;@F /7 Y { !/7 /7x%/7'1/7(),T2 9<2=C Ea -; g &(.}3R5 ;=+?CF + a$ &8(#*E,0.<4C7M:?SABH# *AF #%,4\7<@%E=G/ ( f#( /38K:>B & @e|#%',h0[14:@B;D %K Vo &o,/26J79N<{>%K?x%KxA%KBg%KD # '9.%1)-B/1y6#6~#8=9;b=AdBD !  9%#)#*0457M9::=AfEFl U yE %2&*,.1037;/DGF < 15~%V&)z,/c3p648<> @ DB  Ac #%-(<*,/ 7$9> ADG/ py ?"(.0c385 ? @D F Kk %(/k1_68;J@zDSG/ ?we *M,/y5:m<<>C  \"#%)+-b/3_9=>DM P    "%),*-09138:@  m#%q+m-0T35;7B %I(y)v*\ TVm$`THEBRIEFINGBLURB8andyouarenowindangerofloosingthoseedits.Whatyoushoulddoistodepressthebootbuttonandholditdownforquiteawhile(morethan2.5seconds);andthenreleaseit.Thisisknownasa``longpushboot'',anditdoesjustwhatyouwantundertheseconditions:itrebootsyourterminalwithoutaffectinganythinghigherup.MAXC:ablastfromthepastBeforeweleavethetopicofhardwarecompletely,IshouldpausetomentiontheexistenceofMAXC(thenameissaidtobeanacronymforMultipleAccessXeroxComputer).Overtheyears,thefolkinCSLbuilttwoMAXC's.Eachwasagood-sizedmicroprogrammedcomputerthatspentitsdaysemulatingaPDP-10:runningTENEX,andtimesharingawaywiththebestofthem.OneoftheMAXC'sstillsurvives,theoneinitiallyknownasMAXC2,anditservesusnowprimarilyastheInternet'sinterfacetotheArpanet.VestigesofMAXC1stillsurviveassouvenirsinsomepeople'soffices.MostofthestuffgoingbetweentheInternetandtheArpanetiselectronicmail;ourmailsystemsunderstandaboutArpanetrecipients,sothereisnoneedtotalktoMAXCdirectlyjusttosendArpanetmail.ThereareafewothercomputingtasksthatMAXCcanperformandthatnoonehasyethadtheenergytosupplyinsomeotherway,suchasarchivingfilesontomagnetictape.ButmostfolksshouldbeabletospendtheirtimeherequitehappilywithoutevertalkingdirectlytoMAXC.1983EDITIONx"g'y#g'#g'x% g'y%g'x+Kg'y,3g'xsHDg'x _/ ~](!%)-057/8:m?iAE ] _;%` &$D'{)0y3B6z;=f@BFHe [ j2 Z#&*L.y2. :%;@D Z9N| V-sx Sm%# *+0E45:=ACD Q   A"Q\V"Q#Q(5Q\(5Q)>Q,Q\ ,Q-Q0Q\0Q1Q8BEG P $d &2 8*:>c@C# Nw /~u '*-0D3A59<>AF LyLLx!L"eL$%*+/5'69_ ?EMG K(y1K(K(~g Y!&'*/*x2K(4HK(68D:=AG/ I=pP !%(l+0 7;A/ G G t?O6$*&(w+148;NBF_ D  $e&*S-2468<?BF B w"&%I(y)v*\TVm$THEBRIEFINGBLURB9LocalProgrammingEnvironmentsVariousprogrammingenvironmentshavegrownuparoundthevariouspiecesofhardwarementionedabove.Youcangetasoftwaremeritbadgesimplybywritingonenon-trivialprogramineachenvirnoment.ProgrammingonMAXCSincewewerediscussingMAXCjustamomentago,let'sgetitoutofthewayfirst.Fromasoftwarepointofview,MAXCisaPDP-10.Thus,itisprogrammedeitherintheassemblerMacro-10orelseinoneofavarietyofhigherlevellanguages[14].Fortunately,therearen'tallthatmanynewprogramsthathavetobewrittentorunonMAXCanymore.BCPLThefirsthigh-levelprogramminglanguageusedontheAltowasBCPL,andquiteabitofprogramwritingwasdoneinthatenvironmentovertheyears.Bynow,however,essentiallynonewprogrammingisbeingdoneinBCPL.Thelanguageitselfwillbearoundforsometimetocome,sincethereareBCPLprogramsthatperformvaluableservicesforus:theprintserverprogramsPressandSpruceandthefileserverprogramIFSarethreeimportantexamples.Ofthebetter-knowncomputerlanguages,BCPLisclosesttoC.ThefundamentaldatatypeinBCPLisasixteen-bitword.Therearefacilitiesinthelanguageforbuildingstructureddataobjectsincludingrecordsandpointers.Butthereisnotype-checkinginthelanguageatall.Forexample,iffooisapointertoarecordoftypenodethatincludesafieldnamednext,thatfieldisreferencedinBCPLbywriting``foo>>node.next'',whichmeans``treatfooasapointertoanode,andextractthenextfield''.Inastronglytypedlanguage,youwouldn'thavetomentionthatfoowasapointertoanode,sincethecompilerwouldbekeepingtrackofthefactthatfoowassodeclared.TheBCPLcompiler,however,thinksoffooasasixteenbitvalue,justlikeanyothersixteenbitvalue.Forexample,itwouldbelegalinBCPLtowrite``(foo+7)>>node.next'',or``foo>>otherNode.next''.SomeofthestrictnessoftheMesaapproachtotype-checkingandversionmatchingdiscussedbelowmaybeareactiontoBCPL'sfree-wheelingwaysofhandlingtheseissues.FurtherdetailsabouttheBCPLlanguageandenvironmentcanbefoundelsewhere<14,15,16>.ThedebuggerintheBCPLenvironmentwasnamed``Swat''.Thisnameispreservedinthelocaldialectasthenameofthebottomofthethreeunmarkedkeysattherightedgeofthekeyboard.Variousdebuggersmaybeinvokedinvariousenvironmentsbydepressingthiskey,perhapsinconjunctionwiththeleft-handshiftkeyorthecontrolkey.(Therighthandshiftkeywon'tdo;itistooclosetotheswatkeyitselfforcomfort!)MesaMesaisastronglytyped,PASCAL-likeimplementationlanguagedesignedandbuiltlocally.ItfirstranonAltos.Herein,IshallcallthatsystemAlto/Mesa.DolphinsandDorados(butnotDandelions)canrunAlto/MesabyimpersonatinganAltoatsomelevel.MorerecentinstancesofMesanowrunonallofourD-machinesunderthePilotoperatingsystem.Inpassing,IshouldobservethatPilotisanoperatingsystemwritteninMesabyfolkinSDD.Itisaheavier-weightoperatingsystemthantheAltoOS,providingitsclientswithmultiprocessing,virtualmemory,andmappedfiles.Alto/MesaprogramsdonotusetheAltoOSatall,mostlybecauseMesaandBCPLhaverather1983EDITIONx"g'y#g'#g'x% g'y%g'x+Kg'y,3g'xsHDg'z ^  x [  "%)+0U27<;4<B YuZ(#').*0 79<>"A) | V rmx S`K[  #N$`),/M1~2569;?GCD Q ? H ?$%g& .246=9CkE,G P f8$c( 0379<@uC| Nj S#&'| Kx GW  !C'*>,@.14Z8;? @1BKD F%*+ #&B*,/5 <(>@ D} Ij !m$'X):-0368U"| >w  n '=+-$136=9B AsDG = 5  #D (*-)35z; AD ;e $k%( 025:<?BIH.{ 9x _9 9 1.t{ 9!a9x$9$o9&,o-1{596j9x8<9979<$?s@ G 8  5 3 0{ 3z3xX33"!{"3#m3x%i3&?3(-e{/30|3x233E37z9C:f?Cp 1x @{ '1x 1xx"1x#1x%Y&+~-F{.1x/G1xx1C1x291x58=>BYDc / i,M{&//x//:$}'_+17;{=/=/x?/@/ABGr .) ;{ 4$'e-6.2479=?p + )3 [ w p $& /G16<BF ' +AR !%f'1,05|:?BEl %i x#)L,:.w #hr &8(-3K6w:H;BCFI !A+ ."|%,p/x03M69;j=Dy {rd!- )+ 25&8=C> Ft r A.r n#'*X-03f7&:;`<? B|D Ft  | |x -P9 $ .4{:/<@EGF  frA!&' -46XADG 7  i "="(K-/46:?BFG z(t j#;$)=*,-9 6l<@DFu  &H*0h38m m !0#&)_+-y27E; =BE%I(y)v*\ TVm$PTHEBRIEFINGBLURB10differentphilosophiesabouttherun-timeworldinwhichtheyexist.SothefirstthingthataMesaprogramdoeswhenrunningonanAltoistojuntaawayalmostalloftheOS,andsetaboutbuildingaseparateMesaworld.ItisaconsiderablenuisanceforMesaandBCPLprogramstocommunicate,sincetheirunderlyinginstructionsetsarecompletelydifferent.So,mostoftheimportantOSfacilities,suchasthefilesystem,hadtobere-implementeddirectlyinMesa.Mesa'smemorymanagementstrategiesreplacetherevolutionarytacticsof``junta''and``counter-junta''withtherelativeanarchyofsegmentswapping.AfairamountofsoftwarewaswritteninAlto/Mesa,butlittlenewprogrammingisbeingdoneinthatenvironment;thatis,Alto/Mesaisn'tquiteatdeadasBCPL,butitisgettingthere.PerhapsthecrownjewelsofAlto/MesaarethesystemsLaurel,Grapevine,Mockingbird,andGriffin.Youwillbehearingmoreabouttheformertwointhesectiononelectronicmail;tofindoutmoreaboutthelattertwo,checkouttheirentriesintheGlossary.ThePilotversionofMesaisthehometolotsofactiveprogramminginseverallocations.First,itisthesysteminwhichtheStarproductwasandisbeingimplementedbyOSD.TheprogrammersinOSDhavedevelopedasetoftoolsforprogramminginMesavariouslycalledthe``ToolsEnvironment''or``Tajo''.Thisbodyofsoftwaremaysoonbemarketedunderthename``theMesaDevelopmentEnvirnoment''.Inaddition,PilotMesaisthecurrentbaseoftheCedarprojectinCSLandISL.MoreonCedarlater.AlthoughMesaprogramslookalotlikePASCALprogramswhenviewedinthesmall,Mesaprovidesandenforcesamodularizationconceptthatallowslargeprogramstobebuiltupoutofsmallerpieces.Thesesmallerpiecesarecompiledseparately,andyetthestrongtypecheckingofMesaisenforcedevenbetweendifferentmodules.Thebasicideaistostructureasystembydeterminingcertainabstractcollectionsoffacilitiesthatsomeportionsofthesystemwillsupplytootherportions.Suchanabstractioniscalledan``interface'',anditiscodifiedforthecompiler'sbenefitinaMesasourcefilecalledan``interfacemodule''.Aninterfacemoduledefinescertaintypes,andspecifiesacollectionofproceduresthatactonvaluesofthosetypes.Onlytheprocedureheadersgointotheinterfacemodule,nottheprocedurebodies(exceptforINLINE's,sadtosay).Thismakessense,sincealltheinterfacemodulehastodoistogivethecompilerenoughinformationsothatitcantype-checkprogramsthatusetheabstraction.Havingspecifiedtheinterface,someluckyhackerthenhasthejobofimplementingitthatis,ofwritingtheprocedurebodiesthatactuallydothework.Theseprocedurebodiesgointoadifferenttypeofmodulecalledan``implementationmodule''.Animplementationmoduleissaidto``export''theinterfacethatitisimplementing;itmayalso``import''otherinterfacesthatitneedstodoitsjob,interfacesthatsomeotherprogramwillimplement.Insimplesystems,eachinterfaceisexportedbyexactlyonemodule.Insuchasystem,thereisn'tmuchquestionaboutwhoshouldbesupplyingwhichservicestowhom.Infact,inthesesimplecases,thebinding,thatis,theresolutionofimportsandexports,canbedoneontheflybytheloader.Butinmorecomplexcases,theremightbeseveraldifferentmodulesinthesystemthatcansupplythesameserviceundersomewhatdifferentconditions,orwithsomewhatdifferentperformance.Then,thejobofdescribingexactlywhichmodulesaretosupplywhichservicestowhichothermodulescanbecomerathersubtle.Awholelanguagewasdevisedtodescribethesesubtlecases,calledC/Mesa.TheBinderistheprogramthatreadsaC/Mesadescription,calledaconfig,andbuildsarunnablesystembyfillingimportsrequestfromexportsaccordingtotherecipe.TheMesalanguageisdescribedbyamanual[18].Itliessomewherebetweenatutorialandareferencemanual.Somepeoplefindsomeportionsofitratherobscure;inparticular,thediscussionofinterfacesandimplementationsinChapter7isoftencitedasconfusing.Tomakemattersalittleworse,thatmanualdocumentsMesaversion5.0;thecurrentAlto/Mesaisversion6.0,andPilotmesahasadvancedevenfurther.FromthepointofviewoftheMesalanguageitself,themostimportantchangesthathaveoccurredsinceversion5.0aretheintroductionofsequencesandzonesinversion6.0;theyaredocumentedforyourreadingpleasure<19>.YoumayalsobeinterestedinJimMorris'scomments1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/ p$L(c*=.v168H:=ADE ]~k"$0%)o,1Y3M5 7l:'<?BHe [<f #m) +?.15;=Y F Z9 = 8  ( '. -0.35X7>.@ F] X s: %+,1a5;s C V[ C %%8(2!5e7<BJD, UC RE8$&f -0D36y ?@DcG Q  !$(%)-1.3p57]8=qAG/ Oy>]$) 0 9d<'ADG MvZM!$ (* 05 69<"?CE L* G  It'!$&)>+. 79K= DH9 H g _9"%(M)- 68 <?k G Fa lO{U! *},-/59<@ D  2#e&(/>3p59=-A C W"C#& *-/16:<]?BAE Ak   >;1- 9".$*04>8:Y<@tD =H /h "$)0,2469;>@HE ;  %(i*-1)429;?;@FI 9k5B"&')/057 ?Dx 8R / z0"$&+D-2037N=^@B 6  R7S$'8) 05_7:8#&,1369[?!DG/ 1gy311d!#x&1&1)-E14468>}CuEG 0  X S $&F)*k, 39<?3A -\ #y'=+.1v36]8% @FG +l#%',9046;<?@F *D 0R")+ 5:#CF " dN[ '-+C0V2 7(9<=AVE !+{ J!+ !+x!+z!+G i  %(K-v015a7f9;=@.E@G  0 %l+(0249 @E wX "#)&,048>QA0EG/ h$ #d'I{(a(x+,/[3m4:C>@D ?';!I !q#$* -/259?&@~EHe o $[)+l,068w >AY G u "$%D&*:-/< 6N8q< @BEK   !%X',35{:k='@CuG &6w"f$'I(+R.48^:> Db  ,|Z #% -y/H58<CF  A Z#( +0.512 9B:=C%I(y)v*\;TVm$THEBRIEFINGBLURB11onhowprogramsshouldbestructuredinMesa[20].SmalltalkSmalltalkwasdevelopedbythefolkwhonowcallthemselvestheSoftwareConceptsGroup(formerlyknownastheLearningResearchGroup).TheSmalltalklanguageisthepurestlocalembodimentof``object-oriented''programming:Acomputingworldiscomposedof``objects''.Theonlywaytomanipulateanobjectistobepolite,andaskittomanipulateitself.Oneasksbysendingtheobjectamessage.Allcomputinggetsdonebyobjectssendingmessagestootherobjects.Everyobjectisan``instance''ofsome``class''.Theclassdefinitionspecifiesthebehaviorofallofitsinstancesthatis,itspecifiestheirbehaviorinresponsetothereciptofvariousmessages.GenealogistswillrecognizethatideasfrombothSimulaandLispmadetheirwayintoSmalltalk,togetherwithtracesofmanyotherlanguages.Forsomeyearsnow,thefolkinSCGhavebeenworkingattryingtogettheSmalltalklanguageandsystemoutintothegreatwideworld.ThefirstpubliceventthatcameoutofthiseffortwastheAugust1981issueofBytemagazine;itwasdevotedtoSmalltalk-80,includingacolorfulcoverdrawingofthenowfamousSmalltalkballoon.Inaddition,theSCGfolkarewritingseveralbooksaboutSmalltalk,andtheyareplanningtolicensethesystemitselftovariousoutsidevendors.Thefirstofthebooks,entitledSmalltalk-80:TheLanguageandItsImplementation,emergedfromthepressesatAddison-Wesleyjustrecently[21].FuturebookswillincludeSmalltalk-80:TheInteractiveProgrammingEnvironment,andSmalltalk-80:BitsofHistory,WordsofAdvice.Interlisp-DLISPisthestandardlanguageoftheArtificialIntelligencecommunity.PureLISPisbasicallyacomputationalincarnationofthelambdacalculus;buttheLISPdialectsincommonusearericherandbiggerlanguagesthanpureLISP.InterlispisonedialectofLISP,anoutgrowthofanearlierlanguagecalledBBN-LISP;formorehistoricaldetails,readthefirstfewpagesoftheInterlispReferenceManual[22].OneofthebiggeststrengthsofInterlispisthelargebodyofsoftwarethathasdevelopedtoassistpeopleprogramminginInterlisp.ConsiderthemanyfeaturesofInterlisp:aninterpreter,acompatiblecompiler,sophisticateddebuggingfacilities,astructure-basededitor,aDWIM(DoWhatIMean)errorcorrectionfacility,aprogrammer'sassistant,theCLISPpackageforAlgol-likesyntax,theMasterscopestaticprogramanalysisdatabase,andtheTransorLISP-to-LISPtranslator,tonameafew.Interlispitselfhasbeenimplementedseveraltimes.Interlisp-10isthewidely-usedversionthatrunsonPDP-10's.Interlisp-DisanimplementationofInterlispontheD-machines[23],producedbyfolkatPARC.IntheprocessofbuildingInterlisp-D,theboundarybetweenInterlispandtheunderlyingvirtualmachinewasmoveddownwardsomewhat,tominimizethedependenciesofInterlisponitssoftwareenvironment;thatis,functionsthatwereconsideredprimitiveinInterlisp-10wereimplementedinLispitselfinInterlisp-D.ButtheprincipalinnovationsofInterlisp-DaretheextensionsthatgivetheInterlispuseraccesstothepersonalmachinecomputingenvironment:networkfacilitiesandhigh-levelgraphicsfacilities(includingawindowpackage)amongthem.Bytheway,Interlisphasthehonorofbeingthefirstsystem(tomyknowledge)tousetheprefix``Inter-''.Thisprefixhasbecomequitetherageoflate:Internet,Interpress,Interscriptyougetthegeneralidea.Cedar1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _'  v !#'Q| [x X(x"k%M(.* 1e39<?Cq V]$'.358uDIEN  L(  $ J/ (!&(*,`.G 79;@CH~#1 !& F  $Z'+4/259==@0C# DePkLo Aq3!a$(L+11268;%=C @B G0 % '*/2259<=@DpG/ >? !("z%!*T+ 4@:P;u@DB < 6#%+.C157<AjE ;L W o)$Q&+*.0349?BEwG/ 9{99  &), x5J969@BF ,g-g$&])-/@3)5";=?}C * y !X%)+_..04698>Dy ) }DU, &h'*>-1,28h;<=DSF 'qe  $'(*01 8B:0 AUB} % 4 $%/359:t%`:t%;%<%`a<%>:%@%`@%A%`VA%C%F $" yn  %S',d14 :?6A "{ v  ##(C 0 7d9<= n+ #r',i 357h >CFt X   ')/H1Z3 ;t>DF  qF! )b+2/7=O@#B  RA #*,2L4 =?EkG bQ 5"%D( /S5&6 >A=    q&1 -/9 6C8: ADIG/ wb i&, 5: @eC. l[  Ku!'\+y cOHE1t"$'!*,{.f 4Q579< ADCG} I "h #E+q-E/+3| x%I(y)v*\ TVm$THEBRIEFINGBLURB12Backin1978,folkinCSLbegantoconsiderthequestionofwhatprogrammingenvironmentwewoulduseontheemergingD-machines.Aworkinggroupwasformedtoconsidertheprogrammingenvironmentsthatthenexisted(Lisp,Mesa,andSmalltalk)andtoformacatalogofprogrammingenvironmentcapabilities,rankedbybothbyvalueandbycost.Asomewhatcleaned-upversionofthereportofthatworkinggroupisavailableasablue-and-whiteforyourperusal[24].Afterponderingthealternativesforawhile,CSLchosetobuildanewprogrammingenvironment,basedontheMesalanguage,thatwouldbethebasisformostofourprogrammingduringthenextfewyears.Thatnewenvironmentisnamed``Cedar''.Cedardocumentationisinaconstantstateofflux;indeed,itmightbesaidthatCedarasawhole,notonlyitsdocumentation,isinaconstantstateofflux.Muchofthedocumentationforthecurrentreleaseisaccessiblethrougha``.df''filenamedManual.df<25>.Hardcopiesofthispacketofstuff,entitled``TheCedarManual'',areproducedfromtimetotime,anddistributedtoCedarprogrammers.TheprogramminglanguageunderlyingCedarisessentiallyMesawithgarbagecollectionadded.Now,addinggarbagecollectionactuallychangesthingsquiteabit.Firstofall,itchangesprogrammingstyleinlargesystemstremendously.Withoutgarbagecollection,youhavetoenforcesomesetofconventionsaboutwhoownsthestorage.WhenIcallyouandpassyouastringargument,wemustagreewhetherIamjustlettingyoulookatmystring,orIamactuallyturningoverownershipofthestringtoyou.Ifwedon'tseeeyetoeyeonthispoint,eitherwewillendupbothowningthestring(andyouwillaggravatemebychangingmystring!)orelseneitherofuswillownit(anditsstoragewillneverbereclaimedastorageleak).Oncegarbagecollectionisavailable,mostoftheseproblemsgoaway:God,inthepersonofthegarbagecollector,ownsallofthestorage;itgetsreclaimedwhenitisnolongerneeded,andnotbefore.Butthereisapricetobepaidforthisconvenience.Thegarbagecollectortakestimetodoitswork.Inaddition,allprogrammersmustfollowcertainrulesaboutusingpointerssoasnottoconfusethegarbagecollectoraboutwhatisgarbageandwhatisnot.Thus,programsintheprogramminglanguageunderlyingCedarlookalotlikeMesaprograms,buttheyaren'treallyMesaprogramsatall,onadeeperlevel.Toavoidconfusion,wedecidedtousethename``Cedar''todescribetheCedarprogramminglanguage,aswellastheenvironmentbuiltontopofit.Cedarisreallytwoprogramminglangauges:arestrictedsubsetcalledthesafelanguage,andtheunrestrictedfulllanguage.Programmerswhosticktothesafelanguagecanrestsecureintheconfidencethatnothingthattheycanwritecouldpossiblyconfusethegarbagecollector.Theirbugswillnotriskbringingdowntheentireenvironmentaroundtheminarubbleofbits.Thosewhochoosetoveeroutsideofthesafelanguagehadbetterknowwhattheyaredoing.ThosewhowanttoknowmoreaboutCedarareonceagainencouragedtodredgeupacopyoftheCedarManual<25>.ItincludesdocumentationonhowCedardiffersfromMesa,annotatedexamplesofCedarprograms,manualsformanyofCedar'scomponentparts,aCedarcatalog,andlotsofothergoodstuff.Bytheway,themostauthoritativesourceforwhatthecurrentCedarcompilerwilldoonfunnyinputscanbefoundinadocumentcalledtheCedarLanguageReferenceManual,alsoknownbytheacronymCLRM.ThisislogicallypartoftheCedarManual,butitiscurrentlyboundseparately,andonlyavailableindraftform.TheCLRMsuggestsaparticulardesignphilosophyforbuildingapolymorphiclanguagethatisasupersetofthecurrentCedar,sincethatisthedirectioninwhichtheauthorsoftheCLRM,ButlerLampsonandEdSatterthwaite,wouldliketonudgetheCedarlanguage.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/.c!#)++1M36 ?@ Gg ]5a $8%+Q/o257$8>@ [ -"2&q)f 013&58: ?@ Z9  }  "#e%g)+-13!9 @EpG/ X G"$% /H149=@G/ V hK!"&(A+m 4> <ACHE UC?C$!t$&)M 16v8< >CGF S f Q (=e#'(,1f268;t>@BVDE* Ou s [%V(*d.;2P46 @BTD M1 P #(;/3 :<?D#F L&u%(+-Z03 : E G *E s"'+/@0d3Q68D:;@ FW ^M6 "('-: 4 7:EbG/ Aa X,?!$-&H(- 1 3J6 8:>QCDE ? p{"?#?x$?%d?)+b.24u6?8;=5@aB6F >  J!%J* 02] 8<=A{G AE 7u9 9#Z(,0(169l<>5 4B #3( /378@:Q<@G 3N  V"$%*.14 ;=BDG/ 1 $6 )?/]1 358 @C[EaG 0 Z !| )*H 0e48{;D0;0>%xC`0DZ0G/ .X lu "%(*,/5g7:{>@JB , !'D,].3 :>QAD`F + 6 "p'Z+,.?248<?DF )bna"%)-,=. &$ "$(*l-1Z 8:[>@B&EwG/ %;9ys ')-1:59= C # nH"*#)0E45]9>ArD E ! n5tO 'd+.1}38<BErG E 5Z#'*.!4f:@KCG  _"%&)C-o2568l>\B  5"'-.e 491 @gBHe O i#"$'q,V04o7Y8;[A=CG/ ="F$'0 /368X<>B%I(y)v*\ TVm$THEBRIEFINGBLURB13LocalSoftwareThissectionisaonce-over-lightlyintroductiontosomeofthemajorsoftwaresystemsthatareavailableintheAltoandCedarworlds.First,letmemumblesomegeneralwordsabouthowsuchsubsystemsaredocumented.ThemostcommonlyusedAltosubsystemsaredocumentedinatomecalledtheAltoUser'sHandbook[26].Thelesscommonlyusedonesaredocumentedinacatalogentitled``AltoSubsystems''<27>.Inaddition,SuzanJeromewroteaBravoprimeraimedatnon-programmers[28].InCedar,thecurrentbestsourcesaretheCedarManualmentionedabove<25>,andabrandnewpublicdatabase,sittingonAlpine,containingwhiteboardsofCedardocumentation.Unfortunately,Iwon'thearaboutthelatteruntilDealertomorrow,sothatIcan'ttellyouanymoreaboutitatthemoment;I'msorry,butthat'slifeinarapidlychangingworld.Wow!I'veseenthewhiteboardsstuffnow,andit'sflashy!MaybethisisthelastversionoftheBriefingBlurbthatI'lleverhavetowrite.FilingWhenprogrammingintheAltoworld,orincurrentCedar,youaredealingwithtwodifferenttypesoffilesystems:localandremote.Thelocalfilesystemsitsonyourmachine'sharddisk.Remotefilesystemsarelocatedonfileservers,machineswithbigdisksthatarewillingtostorefilesforyou.Localfilesystemshaveseveralunpleasantcharacteristicsincomparisonwiththeremotesystems:theyaresmall,andtheyaren'tveryreliable.Bothoftheseproblemshaveconsequences.Becauselocalfilesystemsaresmall,itisn'tingeneralpracticaltostoremorethanoneversionofafileonthelocaldisk.Thus,inourcurrentlocalfilesystems,writinga``newversion''ofafilereallymeanswritingontopoftheoldone.Nearlyeveryonewhoisn'taccustomedtothis(particularlyPDP-10hackers)getsburnedbyitatleastonce.Thereisoneimportantexceptiontothisgeneralruleof``nooldversions'',however:ourtexteditorsmaintainonebackupcopyofeachfilebeingeditedasaseparatefile,whosenameendswithadollarsign.Thatis,thebackupcopyof``foo.tioga''isstoredinthefile``foo.tioga$'',andsimilarlyforBravo.Notethatourremotefileserversdomaintainmultipleversionsoffiles.Lettingoldversionsofthingsaccumulateisoneeasywaytooverflowyourdiskusageallocationonaremoteserver.Nodiskiscompletelyreliable.Ourremotefileservershaveautomaticbackupfacilitiesthatprotectusfromcatastrophicdiskfailures.Butthelocalfilesystemshavenosuchautomaticprotection.Sincethisprotectionisn'tprovidedautomatically,itbehoovesyoutoadjustyourbehaviorappropriately:makesurethat,onaregularbasis,backupcopiesoftheinformationonyourlocaldiskareputinsomesafeplace,suchasonaremotefileserverwheresuitableprecautionsareconstantlybeingtakenbywizardstoprotectagainstdiskfailure.DoingthisisonefacetofwhatismeantbythephraseLivingCleanly,whichdeservesitsownsection.LivingCleanly(alsoknownas``Keepingyourbagspacked'')Thephrases``livingcleanly''and``keepingyourbagspacked''refertoaparticularstyleofuseofyourlocalfilesystem.Inordertounderstandthecosmicissuesinvolved,weshouldpausetodiscussthewaysinwhichlocalandremotefilesystemshavebeenusedovertheyears.BackintheAltodays,personalfileswereusuallystoredonone'sAltodiskpack,whileproject-relatedandotherpublicfileswerestoredonremoteservers.Carefulfolkwouldoccasionallystorebackupcopiesoftheirpersonalfilesonremoteserversaswell,incaseofaheadcrash.But,asageneralrule,onethoughtofone'sAltopackastherepositoryofone'selectronicstate.ThismadesharingAltosquiteconvenient,sinceyoucouldturnanyphysicalAltointo``yourAlto''justbyspinningupyourdiskpack.InthegloriousworldoftheCedarfuture,allofyourpersonalfilesaswellasallpublicfileswillliveonfileserversinthenetwork.Thediskattachedtoyourpersonalcomputerwill,fromtimetotime,containcopiesofsomeofthisnetworkinformation,forperformancereasons;butyouwon'thavetodo1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'z ^x [" *,02u59B>D1G; Y0tT$4'*!,265:?%C0F] XX $ n!(a+. 57 ?AB0E V q!$+n.2%4 <>q?D U  !%*./38<>f Sb n:"}$'++@0S7+;*>AzBF QI^ & .0^4 ? H P $/v#*a,N/F0x36|9\<&?CEmG/ Nl\BZ! "6&,y1Nl2Nl5H7u9; BDGH L ^yU!%(+1,/T13K| Ivx F' @6 D$|&4',035:=@aE D k'"%(J,/.1:4z:>!AG% B@pY%b(~*.P13s79=?B1E A1 } )+ 36a8=DG; ?  ^#%t(/2L =<"$T'P)-3`58p<?0AFHe ;g m`ZG  %(+p056:@1BCDE 9#+) %q+@.71$ 8:$< Dn 8lK&4F}#')T,28:=?B$E F 6q A P"e( */d24E7b9=mAC!D6 4 I $n'), 04W6! =C>BDG% 3"9m!8$'k).05s7p="BG 1{ r7 \ ')+.13{96<~?xCO /  -Y ^ V "').18< BOE + 3 "<$'*c/k248>` E *  {  $T%+.2/36< E (c %8n- % &)< 026-9AhC"F & !!H!`%* 24d :>BD % eh!$d%(,-18269;q{?%@%D?xH% #m sMQ{ 3+q"%(x ;!x'l*-3v689 @2CyEJG ( >O  'S).e2]8e:?5C-D  KVca "r'q*.1Q4j6 ("`%*).00369Q<@k ^ :LY I$*.15 =\@Ea  !#W% (*I-S/&0k38;=f>CF ,D &!'+ 16C9{=YBJF h ;["" &)+/3678.=?CE XX$"'S)W+$.s4 7 8;=?CF E |`Wt"A%$*,7/g4;=ATDnF -|! )+ 39<*>BEG%I(y)v*\ TVm$THEBRIEFINGBLURB14anythingtoachievethis,andyouwon'thavetoworryabouthowitisdone.Fromtheuser'spointofview,allfileswillactasiftheywereremoteatalltimes.Indeed,exceptinafewfunnycases,therewon'tevenbeanynotionof``localfile'';``file''willmean``remotefile''.Atthemoment,wearesittinginanunpleasanttrasitionalphasesomewherebetweenthesetwostylesofusageofthelocaldisk:weareattemptingtosimulatethelatterstatebymeansofmanualmethodsandsocialpressure.Wewantyoutothinkofyourdataasreallylivingoutonthefileservers.Thatistheproperpermanenthomeforyourpersonalfilesaswellasforpublicfiles.Youwillhavetobringcopiesofthesefiles,bothprivateandpublic,toyourlocaldiskinordertoworkonthem.But,attheendofeacheditingsession,youshouldstorethenewversionsoffilesthatyouhavecreatedbackouttotheirpermanentremotehomes.Noneofthishappensautomaticallyatpresent;youhavetomakeithappenmanuallybyusingvariousfileshufflingtools,suchasthe``DFfiles''discussedbelow.Usingthesetoolsisahassle,andlearninghowtousethemcanbeconfusing.But,therearefourimportantbenefitstobereapedfromadoptingacleanlivinglife-style.First,youaretakingasteptowardsthegloriousfuture.Secondly,youareprotectingyourselfagainstfailuresofthelocaldisk.Acleanliveronlyholdsinformationonherlocaldiskforthedurationofaneditingsession.Thisputsareasonableboundontheamountofinformationthatshecanlosebecauseofadiskcrash.Thirdly,therearevariousreasonswhyerasingyourlocaldiskisagoodideawhenupdatingtoanewreleaseoftheCedarsystem;sometimes,infact,itisrequired.Sincecleanlivingfolkdon'tkeeplongtermstateontheirlocaldisks,thisdoesn'tbotherthemintheslightest.Finally,andperhapsmostimportantly,cleanlivingisthekeytosharingdiskspaceonmachineswithoutremovabledisks.WhenyouuseapublicDolphinorDorado,youareforcedtoshareitsdiskspacewiththeothermembersofthecommunity.Thissharingispredicatedonapolicyofcleanliving:whenyoursessionisover,youmuststoreawayallofyourfilesonremotefileservers.Thepersonwhousesthemachinenextmayneedtofreeupsomediskspace;ifso,sheisperfectlyentitledtodeleteyourfileswithoutqualmorpause.Andyouwon'tmindabit,itsayshere,becauseyouhavebeenlivingcleanly.Theaboveparagraphisthe``letterofthelaw''regardingthesharingofpublicdiskspace.Peoplewhowanttobewellregardedshouldalsopaysomeattentiontothe``spiritofthelaw'':sharingthingsisalwaysmorepleasantwheneveryoneactswithamodicumofpolitenessandcare.Don'tdeletetheprevioususer'sfilesifshewascalledawaybysomedisasteranddidn'thaveachancetocleanup.Trynottodeletethestandardsystemfiles,suchastheCompiler,thatsitinthelocalfilesystem,sincewhoeverfollowsyouwillbejustifiablyaggravatedbytheirabsence.Evenmoreimportant,ifyoudoexoticthingssuchasbringingovernon-standardversionsofsystemfiles,trytoputeverythingbacktonormalwhenyouleaveereyoucausewhoeverfollowsyoutobecomehopelesslyconfused.LocalfilesystemsThelocalfilesystemintheAltoworldiscalledeitherthe``Altofilesystem''orthe``BFS'',thelatterbeinganacronymforBasicFileSystem.ThebiggestthataBFScanbeis22,736pages.ThisissubstantiallybiggerthantheentirediskonanAlto.However,DolphinsandDoradoshavemuchbiggerlocaldisks.Hence,whenaDolphinorDoradoisemulatinganAlto,itslocaldiskissplitupintoseparateworldscalledpartitions,eachcontainingamaximum-sizedBFS.Dolphindiskscanholdtwofullpartitions,whileDoradodiskscanholdfive.Whatpartitionyouarecurrentlyaccessingisdeterminedbythecontentsofsomeregistersthatthediskmicrocodeuses.Thereisacommandcalled``partition''intheExecutiveandtheNetExecthatallowsyoutochangethecurrentpartition.WhenoperatinginthePilotworld,adiskpackiscalledaphysicalvolume,anditisdividedintoworldscalledlogicalvolumes.(Pilot,youwillrecall,isthenewoperatingsystemwritteninSDD.)The1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/bW\"& '+/24#59=@JD+G ] l#!&N'*.38C: ;L>B"F [ #'z*%-3< Ye "o )B /3]:q?CBE W E. &{(3-0368=I? C V tQk!$&z),.q2>68:<?gDH# To \!`&)+.0o27:>@D&E R$x !s&'+ .Z1Q3 68~<>BEG/ Q  R~".%'*0147v:(=jB.EpG Oy HDa"E$&,O 46<?OBDoH9 M"2(+/03Q6:X@xE L* f  =#R%'+2-/ 7:=@C- J> a!%( HLV"%*T E] $e)#.#/259;?XBE C rn!(&(*/847;  s6M &h( +.,.48B;?BF= ,C1$247Z8>CE 1 )}"%0(,{-/1C47z<?5BlE 0  -."b$'&)02{7Z9=e@_E  + R!$#&*,/14 8E:@bCF & n:#$&(c*1468|; >AF %L_/ "y )w+.58DG # "` (?-/_37;9p;,= DG !^!]&+.T05 ;{  x ^vq_ i$E%)-e/3o5:<>CE  YNY@ N +N+%-(9-01t479;E?DH#  iL"0$-&)0#68>KAEV h >o!&'.30 3i5-8];5<?yAuD6 {xg $ % /4=:=@DG  q3Ld"&P*/24:@BF r Z1!u#&-1u568(>B   E[!%(*P.1W6! P ="$)'**,0 1I6;>@0AF WI #&I*Q+.07;@9AF%I(y)v*\TVm$THEBRIEFINGBLURB15areaofthediskdevotedtoPilotvolumesmustbedisjointfromtheareadevotedtoAlto-stylepartitions.MostDolphinsthatrunCedararesetupwithahalf-sizedAltopartition,andtheotherthree-quartersofthediskdevotedtoPilot;mostDoradosthatrunCedarhaveonefull-sizedAltopartition,andtheotherfour-fifthsofthediskdevotedtoPilot.IncurrentCedar,manyprogramsstillrestrictyoutoworkingwithfilesinthelocalfilesystem,whichismaintainedbyPilotintheappropriatelogicalvolume.TheeditorTioga,forexample,willletyoureadremotefilesspecifiedbyafullpathname,butitwon'tletyoueditthem;onlylocalfilesmaybemodified.InsubsequentCedar's,therewillbeanewlocalfilesystemanddirectorypackage,theNucleusandFSrespectively,togoalongwiththenewvirtualmemorymanager(alsopartoftheNucleus).Thesewonderswillmakeitsomewhateasiertoignoretheexistenceofthelocalfilesystem,exceptforitsbeneficialeffectsonperformance;thatis,theywillmakecleanlivingmorenearlyautomatic.Allofourlocalfilesystemsusearepresentationforfilesthatdrasticallyreducesthepossibilityofahardwareorsoftwareerrordestroyingthedisk'scontents.Thebasicideaisthatyoumusttellthedisknotonlytheaddressofthesectoryouwanttoreadorwrite,butalsowhatyouthinkthatsectorholds.Thisisimplementedbydividingeverysectorinto3parts:aheader,alabel,andadatafield.Eachfieldmaybeindependentlyread,written,orcomparedwithmemoryduringasinglepassoverthesector.TheAltofilesystemstuffsauniqueidentificationofthediskblock,consistingofafileserialnumberandthepagenumberwithinthefile,intothelabelfield.Now,whenthesoftwaregoestowriteasector,ittypicallyasksthehardwaretocomparethelabelcontentsagainstdatainmemory,andtoabortthewritingofthedatafieldifthecomparefails.Thismakesitprettydifficult,thoughnotimpossible,towriteinthewrongplace.Furthermore,itdistributesthestructuralinformationneededtoreconstructthefilesystemoverthewholedisk,insteadoflocalizingitinoneplace,thedirectorydatastructures,wherealocaldisastermightwipeitout.EachlocalfilesystemalsohasautilityprogramcalledaScavengerthatrebuildsthedirectoryinformationbylookingatallofthedisklabels.RemotefilesystemsThemostimportantlocalfileserversareIFS's,anacronymforInterimFileSystem(oneofthecrownjewelsoftheBCPLprogrammingenvironment).LikeIalwayssay,``temporary''means``untilitbreaks'',and``permanent''means``untilwechangeourminds''.IndigoandIvyaretwoprominentlocalIFS's;Indigostoresmostlyprojectfiles,whileIvystoresmostlypersonalfiles.MAXCalsoservesasafileserverforsomespecializedapplications.JuniperwasCSL'sfirstattempttobuildadistributedtransactionalfileserver;itwasoneofthefirstlargeprogramswritteninMesa.AlpineisanewefforttobuildsuchabeastinthecontextofCedar,insupportofdistributeddatabasesandothersuchwonderfulthings.SomeWalnutusershavebeenstoringtheirmaildatabasesonAlpineforamonthormore.Thereisnocoherentlogictotheplacementof``generalinterest''filesanddirectories,noreventothedivisionbetweenMaxc,Indigo,andIvy.Browsethroughtheglossaryattheendofthisdocumenttogetaroughideaofwhat'saround.IfsomethingwasmadeavailabletotheuniversitiesintheUniversityGrantprogram,thenitisprobablyonMaxc(orarchivedoffofMaxc),sinceMaxcisthemachinethattheuniversityfolkcanaccess.IFSsuppliesageneralsub-directorystructurewhichtheMaxcfilesystemlacks,andasaresulttherearelotsofplacetolookforafileonanIFS.Forexample,onMaxcyoumightlookfor[Maxc]MyFavoritePackage.presswhileonIFSyouwouldprobablylookfor[Indigo]Doc>MyFavoritePackage.press,or[Indigo]MyFavoritePackage>Documentation.press,orperhapssomeotherpermutation.Thisrequiresabitofcreativityandalittlepractice.However,ifyougetinthehabitofusing``*''sinfilenamespecifications,youwillfindallsortsofthingsyoumight1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/ #@&(-h036 ;<< C ] sB!#'"(] .1 7:=@ [ !d %(f+ /125@ ;@>h DjG/ Z9 1 W" W,"X% ),.4 7M:b<7>B+D Vr  'o+148<? DG To WA "%),M-1e3\68=K@`CF R  !|% ')+6.?14%8;AzG/ Q * "%'*.49<?A Ca Oy 7Y!%'y+.4458N;>BGR M V\ !^$,%)+/`26:\> KV:} P!w *j,/2Y 8=@1 FHe IG !u#'.04_7_8;>eAD:F H g!%&)+/248P; >AE F` a !%(b)-g.3_48,:;>BF^ D   !(+0t459<?BF C .: &l(<*-1 8Q: ;`=AF Aj Q~F!##&+.2z4:^=}?1BCH9 ?G}Y#"%)9.368>ACcG/ >{F+"&).;/3 9[> @ G D?He 7~n< (E*A/4024v69{ 4/.x 0($V&*,250v5050:00v:00;0=*0v=*0=0B ESG/ /87 " y,/8,/8./h25 ;l>ACGH -  ?x#z-#-'*-&/2?9!\&',m02u36:x<1?CDMG & :D &%,3.2g5<@D %L j %'$+-/3w5; "6J\!(,)/ 5 8: ADG !) V3"&*08279;>@vC"  4y##k$V), /)35W7^ =@>@ F7 *;^x"$&),/0269:; @2BxDx _Up "(k,j.2u49:<?A0BJF  ?"'Q "&D(.047H;@>Y ='  ^C". F.+ 8 O ? !$&)*,. 47e8;AH.  ; #&/2K479=>BE%I(y)v*\TVm$LTHEBRIEFINGBLURB16nototherwiselocate.Notethata``*''inarequesttoanIFSwillexpandintoallpossiblesequencesofcharacters,includingrightanglebracketsandperiods.Thus,forexample,arequestfor*pressreferstoallfilesonallsubdirectoriesofthePackagesdirectorythatendwiththecharacters``press''.A``*''won'tmatchaleftanglebracket,bytheway.Thus,ifyouaskfor``*.press'',youarereferringtoallPressfilesonthecurrentdirectory.Ifyouaskfor``<*.press",youarereferringtoallofthePressfilesontheentireIFS(expectsuchasearchtotakealongtime!).Warning:OnceyouhavegottenusedtotheIFSconventionsabout``*''sinfilenames,youwillfindtheTENEXrulesquiterestrictiveandunnatural.OnTENEX,asteriskscanbeusedforonlytwopurposes:eithertowildcardtheentireprefixofthefilenameortowildcardtheentireextension.IfyouwanttorefertoallofthefilesonaTENEXdirectory,youmustsay``*.*'',notjust``*'';ifyouwanttorefertoallofthefileswhosenamesstartwithan``H'',youaresimplyoutofluck.Thislackof``forwardcompatibility''(theoppositeofbackwardcompatibility?)hastrippedupmanyasearcher.ThereisamovementafootintheCedarworldtosimplifyourfilenamingconventionsbyreplacingthevariousflavorsofbracketswithaUNIX-likeslash.Thus,insomeCedarsystems,suchastheFileTool,thedocumentationfilementionedabovecouldbereferredtoas/Indigo/Packages/MyFavoritePackage/Documentation.press.FilePropertiesThe``size''ofafileisitslengthmeasuredindiskpages;the``length''ofafileisitslengthmeasuredinbytes.The``createdate''ofafileisthedateandtimeatwhichtheinformationinthatparticularversionofthefilewas``created'',thatis,thedatewhenthisthatsequenceofbytescameintobeing.Copyingafilefromonefilesystemtoanotherdoesnotchangethecreatedate,sincetheinformationinthefile,thesequenceofbytes,isnotaffected.Thecreatedateisalmostalwayswhatyouwanttoknowaboutafile.Someofoursystemsalsomaintaina``writedate''ora``readdate'',buttheyarelesswelldefined,andnotasinteresting.EditingandTypesettingIntheoutsideworld,documentproductionsystemsareusuallyde-coupledfromtexteditors.Onenormallytakesthetextthatonewantstoincludeinadocument,wrapsitinmysteriouscommandsunderstoodbyadocumentprocessor,feedsittothatprocessor,andpuzzlesovertheresultingjumbleofcharactersonthepage.Inshort,oneprogramsinthedocumentprocessor'slanguageusingconventionalprogrammingtoolsaneditor,acompiler,andsometimesevenadebugger.Programmerstendtothinkthisisneat;afterall,onecandoanythingwithasufficientlypowerfulprogramminglanguage.(Remember,Turingmachinessupplyasufficientlypowerfulprogramminglanguagetoo.)However,documentprocessorsofthissortfrequentlydefinebizarreandsemanticallycomplexlanguages,andonesoondiscoversthatallofthetimegoesintotheedit/compile/debugcycle,notcarefulprosecomposition.BravoistheeditorandtypesetterintheAltoworld,anditrepresentedamodeststepawayfromtheprogrammingparadigmfordocumentproduction.Asingleprogramprovidedboththeusualeditingfunctionsandareasonablecollectionofformattingtools.Youcan'tprogramBravoasyouwouldadocument``compiler'',butyoucangetverytolerableresultsinfarlesstime.Thesecretisinthephilosophy:whatyouseeonthescreeniswhatyougetonpaper.Youusetheeditingandformattingcommandstoproduceonthescreenthepagelayoutyouwant.Then,youtellBravotoshipittoaprintserverandpresto!Youhaveahardcopyversionofwhatyousawonthescreen.Soundssimple,right?Ofcourse,itisn'tquitethateasyinpractice.Therearedozensofsubtlepointshavingtodowithfonts,margins,tabs,headings,andonandon.Bravowasasuccessbecausemostoftheseissuesare1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/ gw!#H$x)R+,/2l7F:%<AcG ] {]]x]]"%+e/;1x7I8s=H [  X ym_j_ !$"%E+0369< Bt yH7X V K5)<"%&(*, 135:!;v<?B#CE UB ` M q% &s()}+q.S02e4Z79=@DAADFH S g{ QxQQCt!%&)`,1 37;<?\DF Ox M# " $ +.d4,9<8>3AxCF Mw!%'|)/g128O:> EbF L) E<%V +|./137:P<@xADG J -V"%'+-/4[68k<,?6B C HyHPH6x'sH(:H).045 F_ .k!i%y)]+0I25.: AC D 4%!"s).E2S488@qCY 6. ("#&{)-w093(91; >BtEl 5we r!&),903977:=@[ G 3Y G`DI &)-026a:>@D%E 1 S/~"U()E-y1424-7<>ADF 0 Dq | ,S x )l ',.3 :>TAF '' "$)+-4 839; B & 1 $%'*H 03^8*;==C5G $v NIl7 &(*17 8=Au " y $&-}018 A&DGE !' { ?i7#B&J'b .a4 <yC!'C~!'  Z k! ',yx/l05; BD>F  ~/ #) /2848=@BuDFi 1 ="$)-E G !#&5)e-01 9{:?BF(  ?  #j +5,06;? A_D g{ggxg/g % !#c *N.25{;2?[A0DHe  @ #1&y,c02548'BDdFt  " $',.005:B=?C<G;%I(y)v*\ @TVm$ THEBRIEFINGBLURB17resolvedmoreorlessbyfiatsomeonepreparedacollectionofconfigurationparametersandasetofformsthataccommodatedmostdocumentproduction.Manyoftheconfigurationoptionsaren'tevendocumented,soitishardtogetenoughropetohangyourself.Theneteffectisthatonespentmoretimecomposingandlesstimecompiling.InBravo'swake,severalneweditorsofunformattedtextappeared:theLaureleditor,andtheeditorintheToolsEnvironmentareprominentexamples.TheLaureleditorisparticularlynoteworthyinthatitpioneeredthedevelopmentofamodeless(oratleastlessmodal)userinterfaceforaneditor.TheStarproducteditorandTiogaaremorerecentlocaleditorsinthefullBravotradition:theycanhandleformattingandmultiplefonts.TiogaistheeditorwithinCedar,anditsuserinterfaceisveryclosetothewidelybelovedLaurelmodelessinterfacetrygoingbacktoBravoafterusingTiogaforawhile,andseehowhorribleitfeelstohavetoremembertotype``i''and``ESC''allthetime.Tiogashowsformattedtextonthescreen.Togetahardcopyofthattext,thecurrentpathinvolvesrunningacompanionprogramcalledtheTSetter,whichwillcomposeyourpagesforprintingandsendthemtoaprintserver.Tioga'sdocumentationisparticularlyconvenient,sinceitusuallyavailableiniconicformatthebottomoftheCedarscreen<29>.DealingwitheditorbugsAlltexteditorshavebugs.Furthermore,youareoftenmostlikelytotickleoneoftheremainingbugsinaneditorwhenyouareworkingfuriouslyonahardproblem,andhence,havebeeneditingforalongtimewithoutsavingtheintermediateresults.Asfatewouldhaveit,theseareexactlythetimeswhenitismostdamagingandmostupsettingtoloseyourwork.Thereisnothingquitelikethesinkingfeelingyougetwhenalargenumberofyourpreciouskeystrokesgurgleawaydownthedrain.BothBravoandTiogahavemechanismsthatcan,insomecases,saveyoufromthehorriblefateofhavingtodoallthosehoursofeditingoveragain.Bravoattemptstosafeguardyoubykeepingtrackofeverythingthatyouhavedoneduringtheeditingsessioninalogfile;incaseofdisaster,thislogcanbereplayedtorecapturemostoftheeffectsofthesession.IfyouhaveadisasterwheneditinginBravo,becarefulNOTtorespondbyrunningBravoagaintoassessthedamage.ByrunningBravoagaininthenormalway,youwillinstantlysacrificeallchanceofbenefitingfromthelogmechanism,sincethelogallowsreplayonlyofthemostrecentsession.Whatyouwanttodoinsteadisruntheprogram``BravoBug''(``Bravo/R''isnotanadequatesubstitute).Itwouldn'tbeabadideatoaskawizardforhelpalso.Whileyouarelookingforawizard,tryandthinkofsomegoodanswertothequestion``WhyareyouusingBravo,anyway?'',whichsaidwizardwillalmostcertainlyask.ThemostcommonperhapsIshouldreallysay``theleastrare''sourceofeditingdisastersinTiogaisproblemswithmonitorlocks.Unfortunately,thisclassofproblemusuallymakesfurtherprogressinanypartofCedarimpossible,sinceTiogaissobasictotheCedarsystem.IfyoucangettotheCoCedardebugger,youmightbeabletosaveyoureditsbycallingtheprocedure_ViewerOpsImpl.SaveAllEdits[]RumorhasitthatCedarversionsfrom4.2onwillallowyoutoinvokethisprocedurebyhittingaspecialcollectionofkeysinCedaritself,evenafterTiogahasbecomewedged.Afurtherrumorhassuppliedmoredetails:holdingdownboththeleftandtherightshiftkeysandtheSwatkeyformorethan1secondwillinvokeSaveAllEdits[].Whilethesavingistakingplace,thecursorwillbecomeablackbox.PrintingIngeneral,ourprintersarebuiltbytakingaXeroxcopierandaddingelectronicsandascanninglaserthatproducealightimagetobecopied.Therearemanydifferenttypesofsuchprinters,andtherearemultipleinstancesofeachprintertypeaswell.Therearealsomanydifferentprogramsthatwouldliketoproduceprintedoutput.ThePressprintfileformatwasourfirstanswertotheproblemofallowingeveryprintingclienttouseeveryprinter.PressfilesaretheEsperantoofprinting.Mostprint1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/m "() 001 : ADhEG ]  b$] ,r02S4 =WBOFI [ .h1H#B&(B+147O;+<?BAE Z9 Ci Wj5["$u ,F.58@C > 4E"(*+/(57<?VBGR =H $LO %W*,/378CwE ; Q%'*Q-1574ACfG 6  WXc"&,A-468=A B 5 t0!&>')+m.03v50:~=!?vBC 3\ (y3!' (+G./48e=>C D 1 L#%H)0+138=@BkD 0  4n$&V ,0o25R <@BEb .f-[' A"&)~,.0579<,A , 4 %'Q-0/E03n68]:<8@C,Fk +/.v ~"%s)*.168\:@bDyF )p  {a#&|*0| &s d[#'|),/ 8{:">DE %M `pE '*;-s/449z=BkG # ~S #S$&e)+i-168o;=?AmC !M #')-{/ : s GL!#%(d+.0D47B=?CE a ; @:"h%),E1uy7a8a<@$B0F )19"d$'Z)+k.0-147W8M;>A Hu  2yU!x%&x)f| x tv !k#}')-;14M8 ?BC  %Adc &* ,Q059-:=C\F & EZ!($>%)-0'26ishairy,andsomeprintserversdon'tsupportthefullgeneralityofPress.Generally,however,suchserverswillsimplyignorewhattheycan'tfigureout,soyoucansafelysendthemanyPressfileyouhave.APressfilecanaskthattextbeprintedinoneofanextensivecollectionofstandardfonts.Unfortunately,youmustbecomeawizardinordertoprintwithyourownnewfont.Youcan'tuseanewfontunlessitisaddedtothefontdictionaryonyourprinter,andaddingfontstodictionariesisadelicateoperation:asadstateofaffairs.IfthePressfilethatyousendtoaprinterasksforafontthattheprinterdoesn'thave,itwillattemptareasonablesubstitution,and,inthecaseofSpruce,tellyouaboutthesubstitutiononthebreakpageofyourlisting.Ifyouhavechronicfontdifficultiesofthissort,contactawizard.Thereisanewprintfileformatunderdevelopment,calledInterpress.TheprintserversthatarepartoftheStarproductspeakadialectofInterpress.AprintfileinInterpressformatiscalledamaster.OurlocalplansforprintingInterpressmastersinvolveconvertingthemfirstintoaprinter-dependentprintfileinso-calledPDformat(withconventionalextension``.pd'').Fromthere,arelativelysimpledriverprogramoneachprintershouldbeabletoproducethefinaloutput.TherestofthissectionwascontributedbyJulianOrrofISL:PARChasavarietyofprintersavailableforyourhardcopyneeds.Wehavehighvolumeprintersforquantitiesoftext,listings,anddocumentation;wehaveslowerprinterswithgenerallyhigherqualityformorecomplexfiles;andwehaveveryslowprintersforextremelyhighquality.AllofourcurrentprintersexceptPlatemakeroffer384spotsperinchandshareacommonfontdictionary.WeusetwodifferentsoftwaresystemsforprintingPressfiles,bothrunningonAltos:oneiscalledSpruce,andtheotheriscalled(confusingly)Press.Spruceoffersspeedandspooling,butitcanonlyimagecharactersandrules,andnottoomanyofthem.Thismakesitlimitedingraphicsapplications.Furthermore,Spruceislimitedtotheparticularsizesoffontsthatithasstoredinitsfontdictionary:itdoesnotknowhowtobuildnewsizesbyconvertingfromsplines.Pressisslower,butcanhandlearbitrarybitmaps,andcanproduceodd-sizedfontsfromsplines.ISLisdevelopingInterpressprintingcapabilities.Printing``.pd''filesisnowanoptiononmostPressprinters(thatis,onprintersrunningtheprogramPressasopposedtoSpruce).Justshipyour``.pd''filetotheprinterinthestandardway:itissmartenoughtofigureoutwhetherwhatyouhavesentitisinPDorPressformat,anditwillinvokePDPrintorPressasappropriate.Documentationonthesetwoprintingprogramsisavailable,bytheway<31,32>.PDprintingshouldnotbeundertakenwithoutconsultationwithawizard.DoverprintersrunSpruceforhighvolumeprinting,producingapagepersecond.CSL'sDover,namedClover,isfoundinroom2106;ISL'sDover,namedMenlo,isinroom2305.SamplesoftheDoverfontdictionarymaybefoundnexttoCloverandMenlo.InstructionsformodifyingthequeueandgenerallyrunningtheseSpruceprintersaretobefoundnexttotheirAltoterminals.LilacisourcolorPressprinterandmaybefoundin2106withClover.Itisathreecolor,composite-blackmachine;itgenerallyproducesgoodqualityoutput,butisoccasionallytemperamental.AnyoneinterestedincolorprintingorthestateofLilacshouldjointhedistributionlistLilacLovers^.pa.IntheISLmazearea,room2301,wehaveanassortmentofblackandwhitePressprinters,answeringvariouslytothenamesofRockNRoll,Quoth,andStinger.TheprintersaretwoRavens(RavenisaXeroxproduct),oneHornet,andoneGnat(thelattertwoareprototypes).Theprintqualityisnormallyexcellent.Instructionsforinterpretingstatusdisplaysarepostedlocally.Tobeinformedofwhichprinterisfunctioningandwhere,jointhelistISLPrint^.pa.Thereshouldbethreeprintersupformostofthesummer.PeriodicallyoneoranotheroftheseorLilacarepre-emptedfordebugging.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/"%|(*j-/15":}=ADG ]j^#'(,Q056E:R<@BvE [ Xx {#U' */H28-:=\ CE Ye !Q%*,-04&8<;<?B_FS W u UBT "'),.1%7` =?E S >y$R& )+/2*5s8;?fBEHe Q  l5". (*.25:Z=? FHe PL H}:#K$'4*--/2578=n@`BCF N e"$= +% 3 667:v=~?PD`F L  zs"$q',v-038; BACF KV HG!%1 -1 9E<3?DWG; G3 r!# *,L/23 9>o?C{DG3EG3xHG3 E Z{ "c'z,o 3V79<>B C ly"D *v059=?! E* B= Q!#&(e-03N ?' %*'&+>-/ =F]  ?&(K+16r9@wB5D 8Pq  $E&),0]17U:S AD^F 6  I!%(Z+027q:;?DxG/ 5 ! x$(,/X5E79>;?C" 3Z xe#&M*,"028Y A 1|!s !#h&)*->1T247 >@EChE 0  xy !%*.A/4y79>FC .d //! + < $" ,_158:V=|?D F2 *B <#M$'c-028/:@:C7FT ( ;c+"&(')-y2p4,8;:@CFH & *H !$)".0N35 = G %L E< #a%n'*-1^399=@NBQ #  !)s"'-4:5u8;R@D k "&+8/467;?EdG/ 42  $ %*Q-2x :@wAE !'*/4T687 ? i Xx!t#&(,03X5 =?P cE!#&B( .046:V=C F0i "+&)/27:9=AFHe C $a'/*-X/ 7:p=B^C    "&,0.3O8;C=fCE P Aj!8#% .27N9@<ACF2  - X %'&*i,-/1 9R; %I(y)v*\yTVm$dTHEBRIEFINGBLURB19OurbestqualityprinterisPlatemaker,whichisnormallyoperatedat880spotsperinch,butcanberunupto2200spi;itisnotnormallyusefultogobeyond1600.Platemakerusesalasertowriteonphotographicpaperorfilm.Colorimagescanbedoneinindividualseparations,whicharethenmergedusingtheChromalinprocess.ThePlatemakerprintingprocessisusedforfinalprintsoffineimagesorforprintingmastersforpublication.Ifyouwishtohavesomethingprinted,speaktoJulianOrr,EricLarson,orGaryStarkweather.SendingandReceivingMailWerelyveryheavilyonanelectronicmailsystem.Weuseitformailandalsoforthetypeofannouncementthatmight,inotherenvironments,bepostedonaphysicalorelectronicbulletinboard.Inourenvironment,aphysicalbulletinboardisprettyuseless,sincepeoplespendtoomuchoftheirdaysstaringattheirterminalsandtoolittlewanderingthehalls.Electronicbulletinboardsmightworksatisfactorily.Butabulletinboard,beingasharedfiletowhichmanypeoplehavewriteaccess,isarathertrickythinginadistributedenvironment.Itprobablypresupposesadistributedtransactionalfileserver,forexample.Mumble.Forwhateverreason,thefactremainsthatwedon'thaveanelectronicbulletinboardfacilityatthemoment.Asaresult,announcementsofimpendingmeetings,``forsale''notices,andthelikeareallsentasmessagesdirectedatexpansivedistributionlists.Ifyoudon'tcheckyourmessagesonceadayorso,youwillsoonfindyourselfoutoftouch(andsaddledwithamailboxfullofobsoletejunkmail).Andconversely,ifyoudon'tmakemovestogetontherightdistributionlistsearly,youmaymisslotsofinterestingmail.Thisbusinessofusingthemessagesystemforrapiddistributionofannouncementscangetoutofhand.Oneoccasionallyreceivesnoticesoftheform:``meetingXwillstartin2minutesallinterestedpartiespleaseattend''.Grapevineisthedistributedtransportmechanismthatdeliversthelocalmail[33].WhentalkingtoGrapevine,individualsarereferredtobyatwo-partnamecalledan``R-name'',whichconsistsofaprefixandaregistryseparatedbyadot;forexample,``Ramshaw.pa''meansRamshawofPaloAlto.Inadditiontodeliveringthemail,Grapevinealsomaintainsadistributeddatabaseofdistributionlists.AdistributionlistisalsoreferredtobyanR-name,whoseprefixconventionallyendsinthecharacterup-arrow,asin``CSL^.pa''.DistributionlistsareactuallyspecialcasesofaconstructcalledaGrapevine``group''.GroupscanbeusedforsuchpurposesascontrollingaccesstoIFSdirectories.ThereisaprogramnamedMaintainthatallowsyoutoqueryandupdatethestateofthedistributionlistdatabase.Infact,therearetwoversionsofMaintain:thedocumentedonewiththeunfortunateteletype-styleuserinterfaceisusedfromwithinLaurelortheMesaDevelopmentEnvironment<34>;theundocumentedonewiththefuturisticmenuinterfaceisusedfromwithinCedar.SomedistributionlistsaresetupsothatyoumayaddorremoveyourselfusingMaintain.IfyoutrytoaddyourselftoFoo^.paandMaintainwon'tletyou,theproperrecourseistosendamessagetothedistributionlistOwners-Foo^.pa,askingthatyoupleasebeaddedtoFoo^.Atthemoment,Grapevineprettymuchhasamonopolyondeliveringthemail.ButthereareseveraldifferentprogramsthatgiveusersaccesstoGrapevine'sfacilitiesfromdifferentenvironments.FromanAlto,oneusesLaurel,whichismentionedelsewhereasapioneerofmodelesseditorinterfaces.Evenifyouaren'taLaureluser,IrecommendthatyoureadChapter6oftheLaurelManual[35],whichisanenlighteningandentertainingessayonpropermannersintheuseofthemailsystem.IntheMesaDevelopmentEnvironment,theprogramHardyprovidesservicesanalogoustoLaurel's.FromwithinCedar,mostfolkuseWalnut,whosedocumentationappearsaspartoftheCedarManual<25>.Walnutrepresentsasteptowardsthefutureinsomerespects,sinceWalnutusesCypress,theCedardatabasemanagementsystem,tostoreyourmailinadatabase.AccesstoGrapevinefromwithinCedarcanalsobehadwithoutthedatabasefrillsthroughaprogramcalledPeanut,whichstoresyourmessagesinastructuredTiogadocumentinsteadofinadatabase.Finally,incasetravelshouldtakeyouawayfromyourmulti-functionpersonalworkstation,thereareserversontheInternetknownbythename``Lily''towhomyoucanconnectfromanyrandomteletypeinordertoperusethemailsittinginyourGrapevinemailbox.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/e $a(g)/5>69]<?@BEG ]  "&6'*/3Q :=>B0CG [ ?Y#&`(F+-Q 3 ;3?6AD Z9 i &+025S7:>@kC9G X ; !"%u(*x-49=?lCF V, | S, x PLY;jHo $(-0^24j6:<?B%DG N ?z6 (*/Q1f279 @E@ L  N"'(,15;9=@|DqFH KV *sr+!$+-1 8=BF I' $%*M,.26;T>BVFHe H h< + ()/V 7 83 ?# G% F`\ U&=*-e05T8.:a>ASCO D0"$%*. 45<CF( C%}*,m2 :+=?YBE Aj 4oS$M!#'*/d137:?C DB ? Y &'x*D-167:.B$ > v2:X $ny(l>)%>*/G0359=j?8B! H CSG 6  2c!"$){-+12 9=BDsE 5 6T6!#) 3.7>%@CaG 3\b m$8' -T. 5;"< DUH 1 !$).D2u ;?;AC 0 3 ya0 G0 !#%)-A01^2I7:*;@{ Et .f  qE+ "$3&V x,M.f-4.f0C128G<BEb , Y~!$ +-469=??BqG +  H!# + 4 7!<>mAEJ )p^/Q  'D+. 7::=b? E ' N!$ ,V/1y357:U=@BD &!6F 6!$)+1 39=?BE $zt/S (:*5D9$&1+/59==>@FHe  x`!R#$:*/148^<?BF( & ; g #'p).{038^<?AyEL  9$)+9.0m47:>?B %I(y)v*\VTVm$ %I(y)v*\yTVm$THEBRIEFINGBLURB20PackagingSystemsandControllingVersionsIntheBCPLworld,theprimaryfacilityforpackagingupagroupofrelatedfilesandeitherhandingthemoutorstoringthemforlaterrecallwasthedumpfile.Adumpfile,givenconventionalextension``.dm'',issimplytheconcatenationofthedumpees,togetherwithenoughheaderinformationtoallowthedumpeestobepulledapartagain.Dumpfileshavefallenoutoffavor.IntheAlto/Mesaworld,andmorestrongly,intheCedarworld,acollectionofsoftwarecalled``DFfiles''hasgrownupthatattackstheproblemofdescribingandpackagingsystems,detailingtheirinterdependencies,andcontrollingtheversionsofthings.YoucanfindoutalotaboutDFfilesbyreadingEricSchmidt'sdissertation[36].YoucanfindtheanswerstodetailedquestionsaboutthebehaviorofthevariousprogramsthatdealwithDFfilesbyreadingthereferencemanualforDFfiles<37>.AllthatIwilltrytodohereistogiveyousomeideaofwhatDFfilesaregoodfor,andhow,inageneralsense,theyareused.Onewayoranother,allCedarprogrammersmustmaketheirpeacewithDFfiles:theyperformvaluablefunctions,andtheyhavenocurrentcompetition.Inthesimplestcase,aDFfilejustconsistsofalistofthenamesofarelatedsetoffiles.Atthislevel,aDFfileissomethinglikeadumpfile:giventheDFfile,youcangetateachofthefilesthatitdescribes.Ofcourse,youwanttobesurethatyougettherightversionsofthedescribedfiles,sojusthavingtheDFfilelisttheirnamesisn'tquiteenough.IftherewereanInternet-widenotionofversionnumberthatmadesense,wecouldgetaroundthisproblembyspecifyingtheversionnumberalongwiththefilename.Butthereisn't.TheclosestthingtoaInternet-wideuniqueidentificationstampthatwehaveisthecreatedateofthefile.Thus,whataDFfilereallycontainsisalistoffilenamesandassociatedcreatedates.ThefirstprogramthatyouwillmeetthatdealswithDFfilesisBringover.Bringover'sjobistoretrievetoyourlocalfilesystemthesetoffilesdescribedbyaparticularDFfile.ThiswouldbesomethingofachallengeunlesstheDFfileincludedsomehinttoBringoverconcerningwhereinthegreat,wideInternetthecorrectversionsofthesefilesmightbefound.SoDFfilesdoindeedincludesuchhints:inparticular,theyincludespecificationsofremotedirectoriesonwhichtolook.Thesedirectoriesarejusthints,inthesensethatBringoverwillalwaysverifybycheckingthecreatedatethatitisgettingyouthecorrectversionofthespecifiedfile.IfBringovercan'tfindthecorrectversiononthespecifieddirectory,itwillissueasprightlyerrormessage.Bringoverhaslotsofbellsandwhistles.Forexample,youcanpointitateitheralocaloraremoteDFfile;youcanaskittoretrievejustaselectedsubsetoffilestoyourlocaldisk,ratherthantheentiresetdescribedbytheDFfile;oryoucanindividuallyconsiderthefilesonebyone,decidingwhichyouwouldliketoretrieveandwhichyouwouldn't.SupposethatIamworkingonacollectionoffiles,suchasthesourcesforthisBriefingBlurb.IhavemadeaDFfilethatdescribesthem,andIcanuseBringovertoretrievethemfromtheirremoteandpermanenthometomylocalfilesystem,whereIcaneditthem.ThenextthingthatIneedisaservicethatissymmetrictoBringover:afterdoingmyediting,Iwanttoputthenewversionsbackontheremotefileserver,alongwithanewDFfilethatdescribesthenewversions.ThisfunctionisperformedbySModel.IrunSModel,andpointitattheoldDFfile.SModelconsiderseachfileinturn,andlookstoseeifIhaveeditedit;thatis,itlookstoseeifthecreatedateofthatfileinmylocalfilesystemisnowdifferentthanthecreatedatestoredintheoldDFfile.Ifso,SModeldeducesthatIhaveeditedthefile.ItstoresthenewversionthatIhavemadeoutontotheremotedirectory.Afterdoingthisforeachfileinturn,SModelwritesanewversionoftheDFfileitself,fillinginallofthecreatedatescorrectlytodescribethenewversionoftheentireensemble.IftheDFfiledescribesitself,asmostDFfilesdo,SModelissmartenoughtomakesurethatthenewversionoftheDFfileisstoredouttotheremoteserveraswell.SModelalsohaslotsofbellsandwhistles,butlet'snotgointothem.Ifthatwerethewholestory,meremortalscouldfigureoutDFfileswithoutstrainingtheirbrains.Butthere'smore.Sofar,wehaveonlydiscussedDFfilesasdescriptionsofensemblesoffiles.Infact,1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'| _, x [nY $'(-/046M:=@YD6 Z5 |\0]#%{(1Z5(Z5+x-Z5/.Z5047;O Cp X !$*F/27< D#E V K"&k)Y,0u24 Tkt"#')Y+/35 ;F<BeFT R #u"#') 03:@TFH Q "!')q.147:C;=ADG OuB J$E'*R-z05m7U<CG/ Mk!$'*^-W/]4\6<AD F L'Y$*!)"%(t,.04 69;??ADG J " "$*+/ 8[;?gBFt H wbrC $'Q*a-/4w F][}"')t*,.1'5x7=8t=?<ADF D 6Nt#t&*,/k2*47f9;B>p@&BEmH9 C Pn!h$k'C*,V.27p93;AE F AghUF"&+-Z0466( >C D ? jC!&0(.<0+ 68=BFt > LSV /$()* 38, @DGg @D 1 TlQ \"r +-1 8;?EA*E 0 m"!/$*l-15}7=C?CF .b N d'0 !$4)-Y.5S8;>BG , Y# Zw!&*V079<7=AFD  + |+9#5$n')*/2!58n; =>@EHe )l-q>AT $ (++f-14 :K<\>AoDF ' s y!f#]&]+/269v; @BF & #F(D 0!m '),0!14U9=;>CCH ! DQhH A$4&(*-:35k:|>AD S X"!&*+.h1=58;?{B\CwFHe vH^ "v%)+025b79;>D>G  ]!9$\'),25o8?%BtH# ]"T%(*7+.S03l6<B"EeG  A+w!5#x&>')G,.02'4~8x;u=&?BMCFI  S56 Z$[']+~-*/14w796;P@zEH g CX@">')+.e2547:k?" E  0q#$';(z+}0Z2'47<9=AC]EaG/  i  a#H(),/y67?89;=BErF q O6Zx #,%l'T)-.024599;2<>sB-ElFxHq Y$&)x+-0 N7g"0'!*.1|47<AE  RU7"L(R*-/m 68?H@DF%I(y)v*\TVm$CTHEBRIEFINGBLURB21theseensemblesareoftencomponentsoflargeprograms.Andthishasconsequences.First,therearetwodistinctlydifferentreasonsthatyoumighthaveforretrievingaprogram:youmightwanttochangeit,oryoumightjustwanttorunit.Inthelattercase,youdon'tneedtobringoverallofthesources;allthatyouneedistherunnable``.bcd''.WecouldhandlethisbyhavingtwoDFfiles:onefortheusersandtheotherforthemaintainers.Butthatwouldbeadisaster:thetwoDFfileswouldneveragree!Instead,eachDFfiledistinguishesbetweenfilesthatit``exports''andtherest.Theexportedfilesaretheonesthatusersneed,whilemaintainersareassumedtoneedtheentireensemble.YoucanwarnBringoverthatyouareauserratherthanamaintainerbygivingitthe``/p''switch(whichstandsforPublic-only).Secondly,someprogramsaregoingtodependuponotherprograms:thatis,theprogramsthemselveswillbe``users''(``clients''isabetterwordhere).ThissuggeststhatoneDFfileshouldbeabletocontainanotherDFfile.Infact,thereshouldbeseveraldifferentkindsofcontainment,correspondingtosuchphrasesas:``TheywhomaintainmealsomaintainthestuffdescribedbythefollowingDFfile.''``Theywhomaintainmearealsousers(butnotmaintainers)ofthestuffdescribed...''``Theywhousemearealsousersofthestuffdescribed...''Yougetthepoint?Formoredetailsonthewaysthatthesethingsaredone(``includes''and``imports''),checkoutthereferencemanual.Incaseyoustillaren'tconvincedthatthingsarecomplicated,itisnowtimetomentionthefactthatDFfilesareusedforyetanotherpurpose:theydescribecomponentsoftheCedarrelease.DuringtheCedarreleaseprocess,allofthenewversionsofCedarcomponents,whicharesittingoutondevelopmentdirectories,mustbecheckedforconsistency,andthenmovedenmassetotheofficialreleasedirectory.AndanentirenewsetofDFfilesmustbeproduced,describingthereleasedversionofthesystem(asopposedtothedevelopmentversion).Thismeans,amongotherthings,thatsomeDFfilesmustspecifytwodifferentremotedirectories:thedevelopmentdirectoryandthereleasedirectory.Inaddition,thereisathirdDFfileprogram,calledVerifyDF,whosepurposeistoperformcertainconsistencyandcompletenesschecksonaDFfile.ByinsistingthatallcomponentimplementershavesuccessfullyrunVerifyDFontheircomponents,theCedarReleaseMasterensuresthatthereleaseprocesshasatleastafightingchanceofsucceeding<38>.Infact,thereareseveralotherprogramsrelatedtoDFfilesthataresometimesuseful.DFDisk,forexample,looksatallofthefilesonyourlocaldiskandclassifiesthemaccordingtowheretheymaybefoundonremoteservers.Thisisaconvenientwaytodeterminewhatlocalfilesneedtobebackedupbeforeerasingthelocalfilesystemforsomereason.FormoreonDFDisk,anintroductiontoDFDelete,andmore,seetheDFfilesreferencemanual<37>.DFfilesgrewupovertimeinresponsetoamixedbagofneeds.Astheybecamemorepopular,featureswereaddedonebyonetomakethemmoreusefulinthesevaryingcontexts.Theresultingsystemasawholeisratherhardtogrok,butIhopethatthisintroductionhasgivenyoualegupontheproblem,atleast.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _/ u ` !#Y&-03k5 \WI $),e/'3)6z8 ?@6F [ _g."5$(R*,/03V6:P=@D'E Y`   }#%N'-25b92=@cBcF W AE $^&) 1r4 6;7=4>jDwF V |nq!!R$') 17: <>: DsG/ Tj uSa #'T+. 688>'?C>E R ! #f&((),04 5A <1>8BfCF2 Q&PQQ N>0b" #(a+/Q68:o<B L h6 D#'h*r/2m5 79>H@)CD KMD!#(N-13o ; DF] I G&$&*0<284:=5 DM!$'* 13692?]@9A B&`!Q# %i(./0| ?}D+ %'*c-149;?^ F = )  ;~rWq #'* 13K47:Cf 4 )"$+t 249>@uBGg 3:`b !$)I-1b58<#>AD 1 " L (.1/37 >@LF / +U 'i+1_3 4:?b F .D S "!'*g,b3 <2? F ,.6 $)-25k7.Ifyouthoughtthatitwasworthwritingdown,itisprettylikelythatthereareotherfolkinCSLwhowouldconsideritworthreading,andsubmittingittotheCSLNotebookisoneeasywaytogetitread.(IbelievethatlikelylookingsubmissionstotheCSLNotebookareconsideredforentryintotheCSLArchivesaswell.)AboutISLISLalsohasaweeklymeeting,onTuesdaysstartingat11:00am.Thismeetinghasnocatchynameatthemoment.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'z ^| [x X; E' .27<>BE V ^Z  (,*.159 ;@B Tw;!3%'*- 1|4c69>i@AEk SEK}#%')~-2 9; B Q 4 Q ') 04M6 ?BE O VA 3 " +B,.0f27Z>2AC NO Y  y GNO!XNO#[& -02)4$9w=;>C L  XL "#%')&*. 35;S=> xDWLEwL K EY j!>#& -v/ 7)9* ?pCp IY )Hr"%'+ F $%i*,-136N8;=BfE E-w "0')!+ BdR$'-B 36 74 =i?!AF A  "g&(R+s1, 7:Y?ADX ?Z :) #E$']-803k7 =BD =L $" ;. J!#r%(/37p9<>@fB 9  c #p&* 1258<@E@ 7 R ;"$)!,N025;=V?C 68Hj9;"3&+ ,_-158\;>9ADF^ 4 -  !\$ *,Z.0v3:$;>IATD3EH9 2 x1 'b)+~.5+7 >r@DPG/ 1B z| -x *Y4!',.147=0?AE (  %I(y)v*\TVm$sTHEBRIEFINGBLURB23SomeCodePhrasesYoumayoccasionallyhearthefollowingincomprehensiblephrasesusedindiscussions,sometimesaccompaniedbylaughter.Tokeepyoufromfeelingleftout,weofferthefollowingtranslations:``Committingerror33''(1)Predicatingoneresearcheffortuponthesuccessofanother.(2)Allowingyourownresearchefforttobeplacedonthecriticalpathofsomeotherproject(beitaresearcheffortornot).KnownelsewhereasForgie'sprinciple.``Youcantellthepioneersbythearrowsintheirbacks.''Essentiallyself-explanatory.Usuallyappliedtotheboldsoulswhoattempttousebrand-newsoftwaresystems,ortouseoldersoftwaresystemsinclever,novel,andthereforeunanticipatedways...withpredictableconsequences.Alsoheardwith``asses''replacing``backs''.``We'rehavingaprintingdiscussion.''Referstoaprotracted,low-level,time-consuming,generallypointlessdiscussionofsomethingperipherallyinterestingtoall.Historically,printingdiscussionswereoffargreaterimportancethantheyarenow.YoucanseewhywhenyouconsiderthatprintingwasoncedonebycarryingmagnetictapesfromMaxctoaNovathatrananXGP.FontologyThebodyofknowledgedealingwiththeconstructionanduseofnewfonts.Ithasbeensaidthatfontologyrecapitulatesfile-ogeny.``Whatyouseeiswhatyouget.''Usedspecificallyinreferencetothetreatmentofvisualimagesbyvarioussystems,e.g.,aBravoscreendisplayshouldbeascloseaspossibletothehardcopyversionofthesametext.Alsoknownissomecirclesbytheacronym``WYSIWYG'',pronuonced``whiz-ee-wig''.``Movingrightalong'',``Pop!'',or``Heyguys,up-level!''Eachofthesephrasesmeansthattheconversationhasdegeneratedinsomerespect,oftenbybecomingenmeshedinnitty-grittydetails.Feelfreetoshoutoutoneormoreofthesephrasesifyoufeelthataprintingdiscussionhasbeengoingonlongenough.Iftwoparticipantsinalargemeetingbegindiscussingdetailsthatareofinteresttothembutnotofinteresttothegroupasawhole,shout``Off-line!''instead.``Lifeishard''Twopossibleinterpretations:(1)``Whileyoursuggestionmayhavesomemerit,IwillbehaveasthoughIhadn'theardit.''(2)``Whileyoursuggestionhasobviousmerit,equallyobviouscircumstancespreventitfrombeingseriouslyconsidered.''Thecharmofthisphraseliespreciselyinthissubtlebutimportantambiguity.``What'saspline?''``YouhavejustusedatermthatI'veheardforayearandahalf,andIfeelIshouldknow,butdon't.Mycuriosityhasfinallyovercomemyguilt.''Moral:don'thesitatetoaskquestions,eveniftheyseemobvious.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'z ^x [  *&L1d6^9;h B Y 3/n"&*-/15Q7= { W} .x Tn a"&B(-i/,5(7=AD+ SW 7_}"$(T,03_46";?AxyESWFlSW QL { O2M1} %A&*x L $k)+.315`8=?B K p[y#)*/%3H6 ; DH Ie  % yIe]Ie #1%)w.9 { FU x Dhfs L "-39 @B B  ~Cyx <ntA"%F ,/136py:<:<;=@(B[D :v E { 7 aAx 5zc [{!K#*#+0 46;A?DBE 34= q%')0469<@PCH# 2+   %2 ,{ /T]x}/ 8/{!A/!/$(S x -/gf6f#% -0 8:>rCG +F v$'*,0U257i; <@nEgF ) . T"&(+136G =?@DM (9 W$&*',/F167:=>T@AUE{ & x&Y&{ $Bx !I{!!"9!x"!#!&* 047a;?+@NCG i{Tx !$ +-36;@ Fez &(-B/ 1668>}@<BG M { !1x ?!$Z(V*+/13'6g99:\=">EBG CE#%j*/2794; AE*F T i%I(y)v*\TVm$ $Bx !I{!!"9!x"!#!&* 047a;?+@NCG i{Tx !$ +-36;@ Fez &(THEBRIEFINGBLURB24HintsforGraciousLivingThereareacoupleofareaswherelifeatPARCcanbemademorepleasantifeveryoneispoliteandthoughtfulenoughtogotosomeefforttohelpout.Hereareafewwordstothewise:CoffeeBothISLandCSLhavecoffeealcoveswheretea,cocoa,andseveralkindsofcoffeeareavailable.Allcoffeedrinkers(notjustthesecretariesorsomeothersuchbarbarism)helpoutbymakingcoffee.Ifyouareabouttoconsumeenoughcoffeethatyouwouldleavelessthanafullcupinthepot,itisyourresponsibilitytomakeafreshpot,followingthepostedinstructions.Therearelotsofcoffeefanaticsaround,andtheygetirritatedbeyondallreasonifthecoffeesituationisn'tworkingoutsmoothly.Forthosecoffeesforwhichbeansarefreshlyground,thelocalcustomistopipelinegrindingandbrewing.Thatis,youareexpectedtogrindacupofbeanswhilebrewingapotofcoffeefromthepreviousloadofgroundbeans.Thisspeedsupthebrewingprocessforeveryone,sincealoadofgroundbeansisatleast,hadbetterbealwaysreadywhenthecoffeepotrunsout.SharingOfficeSpaceBewarnedaswellthatsomelabmembersareunbelievablypickyaboutthestateoftheiroffices.TheconventionisthatanyAltoinanemptyofficeisfairgametobeborrowed.PrivateDolphinsandDoradosmaybeborrowedonlybypriorarrangementwiththeirowners,becauseoftheproblemsofsharingdiskspace.Ifyouusesomeone'sofficeforanyreason,takecaretoputeverythingbackexactlythewayitwas.Don'tspillcrumbsaround,orleaveyourhalf-emptycocoacuponthedesk,orforgettoputthemachinebackinthestatethatyoufoundit,orwhatever.Ofcourse,lotsofpeoplewouldn'tmindevenifyouwerelessthanfanaticallycareful.Butsomepeopledomind,andthereisnopointinirritatingpeopleunnecessarily.SharingprintersWhenyoupickupyouroutputfromaprinter,itisconsideredantisocialmerelytoliftyourpagesoffthetopoftheoutputhopper,andleavetherestthere.Takeamomenttosorttheoutputintothelabelledbins.Sortingoutputistheresponsibilityofeveryonewhoprints,justasmakingcoffeeistheresponsibilityofeveryonewhodrinks(coffee).Checkcarefullytomakesurethatyoucatcheverybreakpage:shortoutputshaveawayofgoingunnoticed,andhencebeingmissorted,especiallywhentheycomeoutrightnexttoalongoutputinthestack.Therulefordeterminingwhichbinistousethefirstletterthatappearsinthenameonthebreakpage.Thus,``Ramshaw,Lyle''shouldbesortedunder``R'',while``LyleRamshaw''shouldbesortedunder``L''.Atrickierquestioniswhattodowithoutputfor``Noname'',orthelike.Followingtherulewouldsuggestfilingsuchoutputunder``N'',butthatdoesn'tseemveryhelpful,sincetheoriginatorprobablywon'tfindit.Checkthecontentsandfileitintherightboxifyouhappentorecognizewhoseoutputitis;otherwise,eitherleaveitontopoftheprinterorstickitbackintheoutputhopper.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'z ^'.x [/oX"%&+.-/37U<>:D,E Y iS!3$&)-024 6:| Vx SK* M%):+027u;5<AC| Q <Q; $-%)~-0I 77:O<>CH  O H3#M&(-03$6K7v:<>`@CDFT NU w? P%(g, 5T9o;>@]D L&n!\#Q')+z/5785=@ F K :#o(+.R346F;A*C I_ 5 {' T#$(,Y125M7;#>@F G l(A!&b+5-q378?;N=AE F j!K"%*)C+.| B :x ?dx!!') 2/59DCG 3  | 0z x -$ }#%"*+w, 3 9>@BBE +} )@!%3'*H.2?3s8:=f?DMG/ ))! w (*038:<AEG/ (. f& y!U(.!(.x$(.&b(.*0[258;>aAE &[W S$2 + -15 @GAD^F #8 u87.!1$), 479BQFI ! #J'Yy+!,`!054589;>)AC  H !] $"%|(,%.0269l;?BDd B2w!#$&'*,-045c:K=A7BLD@  yp #!$y&_)x%I(y)v*\ TVm$(+.0 8k@GAD^F #8 u87.!1$), 479BQFI THEBRIEFINGBLURB25ThephonesystemWhentheVoiceProjecthashaditsway,ourphonesystemwillbeamarvelousassemblageofcomputerstalkingtocomputers,andthissectionoftheBriefingBlurbwillhavetobeexpandedtotellyouallaboutit.Atthemoment,however,wearesimplycustomersofPacificTelephone,sothereisn'ttoomuchtosay.First,alittlepreaching.Ifyoumakeasignificantnumberofpersonallong-distancephonecallsfromXeroxphones,itisyourresponsibilitytoarrangetoreimburseXeroxforthem.Thismaynotbethateasy,either,sincephonebillstakequiteawhile(sixweeksorso)topercolatethroughthebureaucracyupstairs,andthesaidbureaucracyalsohasalotoftroublefiguringoutwheretosendthephonebillsofnewpeople,andpeoplewhomovearoundalot.JustbecauseitiseasytostealphoneservicefromXeroxdoesn'tmakeitmorallyright;ifyouthinkyouaren'tbeingpaidenough,youshouldstartagitatingforaraise.Ifenoughsuspiciouscallsaremadewithoutrestitution,PARC(beingabureaucracy)willimposesomebureaucratic``solution''onallofus.Soasnottoendonasournote,let'sdiscusshowthephonesystemworks,anyway.TheofficeswithinPARChavefour-digitextensionswithinthe494exchange,asystemknownasCentrex;todialanotheroffice,thosefourdigitssuffice.Dialingasingle9asthefirstdigitgivesyouanoutsideline,andyouarenowanormalcustomerofMaBell:seeaphonebookformoredetails(Oh,comenow,surelyyouknowaboutphonebooks!).Dialingasingle8givesyoudifferentsoundingdialtone,andputsyouontotheIntelNet(nottobeconfusedwiththeInterNet).TheIntelNetisaXerox-widecompanyphonesystem,completewithitsownphonebook,anditsownphonenumbers.IfyouarecallingsomeoneinsomeremotepartofXerox,youcansaveMotherXeroxsomebreadbyusingtheIntelNetinsteadofgoingstraightoutoverMaBell'slines.Ontheotherhand,youmaynotgetasgoodacircuittotalkoveralthoughthissituationisfrequentlysaidtobeimproving.Furthermore,throughthewondersofmodernelectronics,youcandialanylong-distancenumberovertheIntelNet.JustusethenormalareacodeandMaBellnumber:thecircuitryissmartenoughtotakeyouasfaraspossibletowardsyourdestinationalongIntelNetwires,andthenswitchyouovertoMaBelllinesfortherestofthetrip.UsingtheIntelNetdoesn'tstarttosavemoneyuntilthecallisgoingafairdistance;therefore,theIntelNetdoesn'tletyoucalloutsidenumbersinareacodes408,415,and916bettertojustdial9.Onemorething:afteryouhavedialedanumberontheIntelNet,youwillhearafunnylittlebeeping.Atthatpoint,youarebeingaskedtokeyinafour-digitnumbertowhichthecallshouldbebilled.Youshouldusethefour-digitextensionnumberforyournormalofficephoneundermostcircumstances.Callsmadebydialing9insteadof8arealwayschargedtothephonefromwhichtheyareplaced.Thefirstthreerings(roughlyspeaking)ofanincomingcalloccuronlyinyouroffice.Thenextroughlythreeringshappenbothatyourofficephoneandatareceptionist'sphone,centrallylocatedinthelaboratory.Duringnormalbusinesshours,thereceptionist'sphonesarestaffed;thus,someonewillatleasttakeamessageforyou,andleaveitonalittleslipofpaperinyourphysicalmessagebox.Ifthesecondthreeringsgobywithouteitherofthosetwophonesanswering,thecallisthenforwardedtotheguardsdeskdownstairs(Ibelieve).Ifyouareexpectingacallbutwon'tbenearyournormalphone,acallforwardingfacilityexists:dial106andthenthenumbertowhichyouwantyourcallstobeforwarded.Lateron(trynottoforget),youdial107onyournormalphonetocanceltheforwarding.WhenIforwardmyphone,Iturnthephonearoundphysically,sothatthetouch-padfacesthewall.Thishelpsmetoremembertocanceltheforwardingagainlater,atwhichpointIturnthephonebackthenormalway.ThereisalsoawaytotransferincomingcallstoadifferentXeroxnumber:Depresstheswitchhookonce,anddialthedestinationnumber;whenthedestinationanswers,youwillbetalkingtothedestinationbuttheoriginalcallerwon'tbeabletohearyourconversation;depressingtheswitchhookagainputsallthreeofyouontheline;thenyoucanhangupwhenyouplease.Ifthedestinationdoesn'tanswer,depressingtheswitchhookonceagainwillflushtheannoyingringingorbusysignal.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'z _ W2x [y!" $'{*9.3T628U9@| G Z =  #n(),>15|80;=6?0EyG0 Xc t$&)-35:" AIC F V V- T@M"< "=$) 2069=:A{FH# R F %)X+0U369C;R>?AF P($ yPP!#Nx%P%P&,14S <AD:F OJ O!&)-/25z9<>AF Mkr5# &'r(+-059<AE K Z{q?#'*0*27:@eBCyH@KHK JT oE>A #'=*+ 24,7: A FOG H Mx F15!$)b,}.3E7EF B P#T(S)-.0369H<?AF A; 9 !"%b)\+,1K47+:?3BvF3 ? "')'-'.q14:}@CPF = ) #) ,`. 6[9k? @B& r!o#A'*-J0g5u9=]AXClG/ 8p*!'$H&*y.8/8025m8:=%?!@BXEF 7O A i (? "#$g%'E x-=7O.$7O 5:=EBDn 5 &e #(+.64w7D9<@CF 4 uVu"')j,m/-034:?CB 2Y +!3#'(+7.1L358:H<y@)2YA2YC^EE 0 7Q>Mv"#z%* /159;l=?CH /  MV1  x!x ,~"4&'-+/[17:=@B2F^ *!%'i*+, 3 8T: > @CG )Agg ")%.14y9q=AF2 ' y~'I'??}t#6$%'j*/0j2P58j;>?x %>o%')/2f6D9{;F>CF #w.# &+#-/{0 8=CG ! G x1"&)! 1Y68b=A-F (  r $<%'(,0.046M9>D[H   ES $}&0),n1% 7:F<>/AOG  K = ^A n #%),i18579 @Ea  4!$q'*-/~1\ 87{>?!x@ACD  1Mq "&)? 1L5z6;>NBDG/ h < X&*1,0?3P691:AdC G/  T!!"& (|,0$27h;C?X@CDG 6}!"&h-2509=eACD9G/ r  #)>+.0a468 ?B6D  ~=b ' .0568 #&{y+ #+ #,. 4D8< AxCaF | y^D B"x%J |% |%I(y)v*\TVm$;>NBDG/  < X&*1,0?3P691:AdC G/  T!!"& (|,0$27h;C?X@CDG r6}!"&h-2509=eACD9G/   #THEBRIEFINGBLURB26ReferencesReferencenumbersin[squarebrackets]areforconventionalhardcopydocuments.ManyofthemareXeroxreportspublishedinblueandwhitecovers;theCSLblue-and-whitesareavailableonbookshelvesintheCSLAlcove.Referencenumbersinareforon-linedocuments.Thepathnameforsuchfilesisgivenhereinintheform[FileServer]SubDirectory>FileName.Extensionforbackwardcompatibilitywithearliersystems.Recently,thesimpleralternativeform/FileServer/Directory/SubDirectory/FileName.Extensionhasbeguntocomeintolocalcurrency,butsomesystemsstilldemandbracketsratherthanslashes.:Thegenericformforareferencetoanon-linedocument.[n]:Thegenericformforareferencetoahardcopydocument.[1]:SunsetNewWesternGardenBook.LanePublishingCompany,MenloPark,CA,1979.ThedefinitivedocumentonWesterngardeningfornon-botanists;1200plantidentificationdrawings;comprehensiveWesternplantencyclopedia;zonedforallWesternclimates;plantselectionguideincolor.[2]:JohnE.Warnock.TheDisplayofCharactersUsingGrayLevelSampleArrays.blue-and-whitereportCSL-80-6.[3]:RichardF.Lyon.TheOpticalMouse,andanArchitecturalMethodologyforSmartDigitalSensors.blue-and-whitereportVLSI-81-1.[4]:TheEthernetLocalNetwork:ThreeReports.blue-and-whitereportCSL-80-2.[5]:JohnF.Shoch,YogenK.Dalal,RonaldC.Crane,andDavidD.Redell.EvolutionoftheEthernetLocalComputerNetwork.blue-and-whitereportOPD-T8102.<6>:[Maxc]NetTopology.press.Containsapictureoftheentireinternetworkconfigurationinsevenpages.Itisoutofdate.Allsuchdocumentsarealwaysoutofdate.AcopyispostedonthewalloppositetheAlcoveinCSL.[7]:DavidR.Boggs,JohnF.Shoch,EdwardA.Taft,andRobertM.Metcalfe.Pup:AnInternetworkArchitecture.blue-and-whitereportCSL-79-10.[8]:InternetTransportProtocols.XeroxSystemIntegrationStandardreportXSIS028112,December1981.[9]:Courier:TheRemoteProcedureCallProtocol.XeroxSystemIntegrationStandardreportXSIS038112,December1981.[10]:C.P.Thacker,E.M.McCreight,B.W.Lampson,R.F.Sproull,andD.R.Boggs.Alto:Apersonalcomputer.blue-and-whitereportCSL-79-11.<11>:[Maxc]AltoHardware.press.EverythingthatyouneedtoknowtowriteyourownAltomicrocode.[12]:TheDorado:AHigh-PerformancePersonalComputer;ThreePapers.blue-and-whitereportCSL-81-1.<13>:[Indigo]DoradoBooting.press.DescribeshowtobootaDorado,andhowtoconfigureittobootinvariousways.[14]:Myer,T.H.andBarnaby,J.R.TENEXExecutiveLanguageManualforUsers.AvailablefromArpaNetworkInformationCenterasNIC16874,butintherelativelyunlikelyeventthatyouneedone,borrowonefromaTenexwizard.<15>:[Maxc]BCPL.press.ThereferencemanualfortheBCPLprogramminglanguage.<16>:[Maxc]OS.press.Theprogrammer'sreferencemanualfortheAltoOperatingSystem,includingdetailedinformationontheservicesprovidedandtheinterfacerequirements.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'z ^ x [>%d'* 298Q @:D?F Y wj!$(.134>AG XX 'w$d*+/587:e? F V A.N"$A& T56 Q )_ "'-0^5G < O?5 L a>"$(-/5:j>wA J{ ^JxJJq?%<&(- H{ Hx HHq?%<&(. F|FKf"x'F(F* 1S7o <<|p<d<Q$C)4+- 6, >@D:xk:: G$k 8|8M-#'x,W8-8 74;W 66J/!>%]*M,90379|?,6@6EqG05VtT x%5V'5V 04 3h3h")0.27a9<Au 1 J#%&w(*.046;/=ADrF20\"(X*/S1 .,.,Cx-!&,B.v25:<|C.,D.,G],  x Q,!, +-/Q *|*j#x"*$*)a.x 5<@D(t '|'`[%@(Px-o'/'3X88 ?lEk%Zon  #l#lZ  %C')F/13S8;D=A?'|D#lE#lH!Gx!+! &* #( /25l8:q>-?CSF/ A|Ag%+x26x;A<A Ek (,v257;xCqDyoQ %z*+/$36'7:h @tEU!~$*'(, $&,146x: C-  "& /5V:=?C D7$ ,.17H=@C %I(y)v*\ TVm$}"(X*/S1 .,.,Cx-!&,B.v25:<|C.,D.,THEBRIEFINGBLURB27<17>:[Maxc]Packages.press.AcataloguegivingdocumentationforthevariousBCPLpackagesthatotherhacker'shavemadeavailable.[18]:JamesG.Mitchell,WilliamMaybury,andRichardSweet.MesaLanguageManual,Version5.0.blue-and-whitereportCSL-79-3.Acrossbetweenatutorialandareferencemanual,thoughmuchclosertothelatterthantheformer.<19>:[Ivy]Doc>Compiler60.press.DescribesthechangesintheMesalanguageandthecompilerthatoccurredinmovingfromMesa5.0toMesa6.0.[20]:Morris,J.H.TheElementsofMesaStyle.XeroxPARCInternalReport,June1976.Somewhatoutofdate(sinceMesahaschangedunderit),butareadableintroductiontosomeusefulprogramstructuringtechniquesinMesa.[21]:AdeleGoldbergandDavidRobson.Smalltalk-80:TheLanguageandItsImplementation.bookpublishedbyAddison-Wesley,1983.[22]:WarrenTeitelman.InterlispReferenceManual.Publishedinablueandwhitecover,althoughnotofficiallyablue-and-white.October,1978.[23]:TheInterlisp-DGroup.PapersonInterlisp-D.blue-and-whitereportCIS-5(alsogiventhenumberSSL-80-4),Revisedversion,July1981.[24]:L.PeterDeutschandEdwardA.Taft,editors.RequirementsforanExperimentalProgrammingEnvironment.blue-and-whitereportCSL-80-10.<25>:[Indigo]Documentation>Manual.df.HardcopiesareentitledTheCedarManual.[26]:AltoUser'sHandbook.Internalreport,publishedinablackcover.TheversionofSeptember,1979isidenticaltotheversionofNovember,1978exceptforthedateonthecoverandtitlepage.IncludessectionsonBravo,Laurel,FTP,Draw,Markup,andNeptune<27>:[Maxc]SubSystems.press.DocumentationonindividualAltosubsystems,collectedinasinglefile.Individualsystemsaredocumentedon[Maxc]systemname.TTY,andthesefilesaresometimesmorerecentthanSubSystems.press.[28]:Jerome,Suzan.BravoCourseOutline.Internalreport,publishedinaredcover.Orientedtonon-programmers.<29>:[Indigo]Documentation>TiogaDoc.tioga,orTiogaDoc.press.HowtousetheTiogaeditor.<30>:[Maxc]PressFormat.press.DescribesthePressprintfileformat.<31>:[Maxc]PressOps.press.DescribesthePressprintingprogram.<32>:[Maxc]PDPrintOps.press.DescribesthePDPrintprintingprogram.[33]:AndrewD.Birrell,RoyLevin,RogerM.Needham,andMichaelD.Schroeder.Grapevine:anExerciseinDistributedComputing.blue-and-whitereportCSL-82-4.<34>:[Ivy]Maintain.press.DocumentationfortheteletypeversionofMaintain,theversionthatisusedfromwithinLaurelorTajo.[35]:DouglasK.Brotz.TheLaurelManual.blue-and-whitereportCSL-81-6.[36]:EricEmersonSchmidt.ControllingLargeSoftwareDevelopmentinaDistributedEnvironment.blue-and-whitereportCSL-82-7.<37>:[Indigo]Documentation>DFFilesRefMan.press.ThereferencemanualfortheuseofDFfiles.<38>:[Indigo]Documentation>ReleaseProcedures.press.DescribesthepoliciesandproceduresthatindividualswhocontributetoCedarreleasesneedtounderstandandobserve.<39>:[Indigo]Docs>HowToUseCSLNotebook.press.1983EDITIONx!g'y"g'#g'x$g'y%g'x*g'y+g'xsG~g'x _'_'&'-2' ;>@El]e"Q%)W [[!(:*0-|5[6e[8?DYxYY !)9*.b350:<>5DMXCZF!T$(*n VUVU'K-0d57:S>9D<G/TY  %),.04Q RR|RR#%)x.R/R37=%BbEQltf"?%(8-1367< D`EOqw !i (E) MM*"(|(>M)M 1W4B:=O?r xHMKM'9 II |II#*qx/ I0I79;>xAyEHG *3/ FYFY | &FY! FY$& x-FY.FY 83U4R# &*- 22|22#x)2*,2.3h9;|<?)C1 ~ /2/2,.60+; >@zCE- ++&*0Z26A9< ))#(.S04;9} ''%)0/27=4 %%$ (4*m139/;2 |B%C%$,M ! x($,)$, 2h6 ">">" ,Z.05:  1) 6 CQV =ap { [ U^; j q =- 07 &A($,)$, 2h6 ">">" ,Z.05: