DFFilesdocumentationReleaseas[Indigo]Documentation>DFFiles.tiogaLasteditedRussAtkinsononJune8,1983AbstractThisdocumentationdescribesthesoftwarethathandlesDFfiles.OfparticularinterestaretheprogramsBringOver,SModelandVerifyDF.TableofContentsIntroduction2SimpleDFFileFormat2IndividualCommandsBringOver3SModel7VerifyDF10DFDisk12DFDiff12DeleteAll12DFDelete13RemoteDeleteAll13ReleaseTool13OtherInformation14CedarReleaseProcedures14CompleteSyntaxDescriptionofDFFiles18SemanticsofDFFiles18XEROXXeroxCorporationPaloAltoResearchCenter3333CoyoteHillRoadPaloAlto,California94304DRAFTForInternalXeroxUseOnlyDRAFTp ^{ q YorY*q V6 rV6`~!O"q RrR %]'-0{58;= DC Q@   "m%Zs Kwt H( u>H(t EUu>Et C2 Q @u6@t ><u6><t ;u6;t 9Fu69Ft 6u66t 4Pu64Pt 1u61t /Zu6/Zt , u6,t *d u=*dt ' u='t %n  #-u=%nt "%iu="v r!-%p !-+$'.9!-$),^!-$' .w CY ',014.`TVm$:DFFiles2IntroductionTheprogramsdescribedbelowcompriseageneralpackageforfilemanagementwithexplicitversioncontrol.EachprogramtakessomenumberofDFfiles,whicharelistsoffilenames,oneperline,specifyingaremotehostanddirectorywherethefileisnormallystored,followedbythefile'screationdate.(Incertainsituationssomeofthisinformationcanbeomitted.)TheDFfilessystemwasinitiallyusedbypeoplerunningMesaonpublicDoradoswhowantedtoguaranteetheyhadthecorrectversionoffilestheyneededandasaneasywaytosavechangedversionsoffilewithoutunnecessarycopying.ItisnowbeingusedtopartiallyautomatetheCedarandMesagroupreleaseprocessaswell.EricSchmidtwasprimarilyresponsiblefortheprogramsandtheinitialversionsofthisdocumentation.Ofthecommandsdescribedinthisdocument,thesethreearemostheavilyused:BringOver-willinsurethatthefileslistedinaDFfileareretrievedfromtheirremotefileservers,possiblyoverwritingdifferentversionsalreadyonthelocaldisk.SModel-onceBringOverhasbeenrunandafewfileshavebeenchanged(possiblybyeditingthem),SModelwillstorethenewestversionsontheremotefileserversandproduceanewDFfilecontainingreferencestothenewestversions.VerifyDfisappliedtoaCedar.BcdfileandaDFfileandverifiesthatallfilesneededtore-buildthat.BcdarelistedintheDF.Thisdocumentisintendedasthedefinitivedocumentationforthecommandsandproceduresdescribedhere.Pleasesendmessageswithcomments,questions,anddiscrepanciestoCedarSupport^.PA.MessagesaboutchangestotheDFfilessystemaresenttoCedarImplementors^.PAand/orCedarUser^.PA.Youmightalsoread"CedarReleases:PoliciesandProcedures"byRoyLevin,storedon[Indigo]Documentation>ReleaseProcedures.Pressand.Bravo,forinformationonuseofDFfilesintheCedarreleaseprocess.SimpleDFFileFormatAsimpleDFfileiscomposedofsomecontrollinesandlinesoftheform:Directory[host]Forexample,Directory[Indigo]Cedar>pl.mesa!132-Oct-8015:43:09PDTspecifiesaspecificversionnumberforthefileserver,andalsoliststhefile'screate-date.NotethatafilecannothavethenameDirectory,andupper-andlower-casedifferencesareignored.BlanklinesareOKandlinesaretreatedascommentsiftheybeginwith"//"or"--".TheformatofDFfilesissimilartothatproducedbytheLocal-ListorRemote-Listsub-commandsintheFileTool.YoumaymakeitalmostidenticalbysettingtheoptionsintheFileToolsothatonlythefilenameandfilecreatedatesarelisted.ExampleDFFile:Anexamplefilemightbenamed"Poplar.DF"andcontain:--FilePoplar.DF,created5-Oct-8019:48:32Directory[Indigo]Cedar>poplar.bcd!163-Oct-8013:26:28x&grHDgs ^ t [ #t#$)/Z14L <?D Y^ &D(5*.w25I8D:5 @CF XX nV\!&(*,v2R6<>@DM V  N " *3,. T5 l#%A)/]3;5v9?BG R3?N!#U&?)K.02m4Z7Z:-;>DC P Is 1!t# $'+.06B<^>CE O? s/ %(I.U 57:N@pC5E M8 K ]Bm&* -/3D8y HtKHKH P#?&(),U.16:H=B:D F B$4)+ -m0y DtDD`#&A)!*t-=0S37H<BD B4;#!(m*s,1y38s;*@ADG% A1 g "}y >tR>>s"%j(+)_+.f1'58:=BDL =|L : rE $ .'0d29<^ Cd 8 $h *-T 57C 7D  #O&3'7!; 4 V%+. 7e:=BG 3"4,n/.36- =?BLDF 1{  s .,fXt * yh=n"&),/13x (bt(b9(b #'*u1z % x #lt#l9#l-28E {",$' +.g1J4!69 AEHe I Uwx7IJItI I#o'* 1P 8L:  q)o# $+G,/369; S ]%6 #d)+. 46o >a G  Q"o(*.r057o9?rA<DG/  U68y t  ?!  &)ky % "x t 9 o . 4 TVm$DFFiles3checkpoint.bcd!324-Sep-8011:14:26AFiles.bcd!52-Oct-8017:17:32overviewdefs.bcd!62-Oct-8017:16:16coredefs.bcd!72-Oct-8017:16:20filepageusedefs.bcd!52-Oct-8017:17:28filepageusedefs.mesa!126-Oct-7912:45:39filesystemdefs.bcd!52-Oct-8017:17:31filesystemdefs.mesa!122-Oct-7913:21:59BringOverIfthenameofyourfileis"Poplar.DF",youtypeBringOverPoplar.DFtotheExecutive.BringOverworksasfollows:ItreadstheDFfileonelineatatime.Ittakestheremotefilename,stripsoffthedirectoryinformationandlookstoseeifitisonthelocaldisk.Oneofthreethingscanhappen:(1)Ifthefileisnotonthelocaldisk,BringOverwilltrytoretrieveit.(2)Ifthefileisonthelocaldisk,BringOverlooksattheversiononthelocaldisk.Ifthecreate-dateonthelocalfilediffersfromthethecreatedatelistedintheDFfile,BringOverwilltrytoretrievetheremoteversion.(3)Ifthecreate-dateisomittedfromtheDFfile,BringOverwillALWAYStrytoretrievethefile.IfyouomittheIFSversionnumber(e.g."!3"),BringOverwillenumeratealltheversionsofthatparticularfilelookingforonewiththecorrectcreatetime.IftherearenoversionsofthefileyoulistintheDFfileontheremotehostinthedirectoryyouspecify,BringOverwillgiveyouawarningmessage.Iftherearefileswiththesamenameandnoneofthecreate-datesavaliablematchthatlistedintheDFfile,BringOverwillgiveyouawarningandoffertoretrievethelatestversion.AfterrunningBringOveryoucanbesurethefileslistedintheDFfileareonyourlocaldisk,andthattheircreate-datesagreewiththecreatedateslistedintheDFfile,orBringOverwillhaveprintedouterrormessages.NormallyBringOverwilllisteachfiletoberetrievedandwillaskforconfirmation.(Youmayreply"y"orCRtoconfirm,"n"toskipretrievalofthisfile,"q"toquittheBringOverprogramaltogether,and"a"toretrievethisfileandtransfersubsequentfileswithoutfurtherconfirmation.)BringOverwilltransferallthefileswithoutconfirmationifyouprovidethe/aswitch:BringOver.~/aPoplar.DFBringOvercanreadaremoteDFfileaseasilyasalocalone:BringOver.~[Indigo]Poplar.DFreadsPoplar.DFfromtheremotefileserverasspecified.(Ifthehostfilesystemis"Indigo",the"[Indigo]"canbeomitted.)Asfilesarebroughtover,aproperty(calledtheRemoteFileNameproperty)isaddedtotheirleaderpagerecordingwheretheremotecopycanbefound.ThesepropertiescanbeprintedoutbytheDFDiskprogram(seebelow.)x&grHDgto_/.q_/4o\ .\4oZ8.Z84oW .W4oUA.UA4oR.qR4oPJ.PJ4oM.qM4s Jt G0 n FV "%u Dt B:  ?)0 #%'*-1./35%8:?AE > q< q"#%'W(* , .e15a8_:=AD+ ;W f #*-V/}1,6+ 9 6:/ '+,.357;(>@CB 7y\ #@'C*I-/247R> @BD 5  3VW  5#%(+H2z43V53Vt:3V:p3V<)=BE7 0 "'%i)03j:n<?=DF /3 ."6&*.046~8=?BDGQ - _^ "k$+-39<?BDB +(= #'P* -/@1 9*>CE *=  F"N#w(+{.057;y ' ? #&"),.s03e58):3=r@DF & I D"\%)+~-03k5E<>B/G $s ^ ! W! "$*J,/14" = @C}F P W^"$N&),.C153:h@ F  >+!l (+116 ?F F4@ #e$'|,.0u  Tt  /Is!"&(5)_,u  t  h"&( /247:x?.@G/ l x  #R m$y'+() t12790=K>B.FH J0b !#(, 36*85=#?ADB {HTVm$DFFiles4Commentsmaybeindicatedbylinesbeginningwith//or--,asinthePoplar.DFexampleabove.Inaddition,BringOverwillprintcommentsattheendofthefileafterthelastlinelistingfileswhenitisrun.Thiswaydistributorsofsoftwarecanprintoutusefulreminderstotheirusers.InsteadofgivingcreatedatesIfthecreatedateentryisa"~="ratherthananormaldate,BringOverwillretrievethefileonlyiftheversionontheremoteserverisdifferentthantheversiononthelocaldisk.Ifthefileisnotonthelocaldisk,itwillberetrieved.Forexample,Foo.Mesa~=Ifthecreatedateentryisa">"ratherthananormaldate,BringOverwillretrievethefileonlyiftheversionontheremoteserverisnewer(ormorerecent)thantheversiononthelocaldisk.Ifthefileisnotonthelocaldisk,itwillberetrieved.Forexample,Foo.Mesa>willretrievefromtheremoteserveronlyifthereisanewerversionontheremoteserver.IndirectUseofOtherDFFilesTherearetwocommon,distinctusesofoneormoreDFfilesbyanother.Thefirstissyntacticinclusion,similartomacro-expansion,whereaDFfilereferencesanotherandallprogramstreattheseDFfilesasiftheywereasingleDFfilewiththetextoftheinnerDFfilesubstitutedintheouteroneatthepointofreference.Theseconduseisasan"Importer"ofanothersystem,package,orsetoffilescontrolledbysomeoneelse.ByanalogywiththeseconceptsinMesa,thereareExportsaswell.TheDFfilesyntaxallowsbothformsofuse,whichareindicatedbydifferentkeywordsbeforethenameanddateofthenestedDFfile.SyntacticInclusionAlineoftheformInclude[host]file.DFOfwillcauseBringOvertoinvokeitselfonfile.DFatthepointitencounterstheIncludestatement.IftheincludedfileitselfhasanIncludestatement,thenBringOverwillagaininvokeitselfontheinnerDFfile,andsoon,inarecursivefashion.Furthermore,theDFfileisretrievedusingtheusualBringOverrulesbeforetherecursivecall.ExamplesofInclude:Include[Indigo]CompilerSources.DFOf2-Oct-8115:43:09PDTInclude[Indigo]CompilerObjects.DFOf>(TheOfkeywordisoptional,andtheIncludestatementmaybesplitonmultiplelines.)ExportsandImportsDFfilesusersareencouragedtouseasingleDFfileforpackagestheymaintain.Some,butusuallynotall,ofthefilesanimplementorneedsarealsoneededbyusers,orclients,ofthepackage.Filesthatareusefultobothusersandimplementorsaresaidtobeexported.ThesefilesareindicatedbybeinglistedbelowastatementsimilartotheDirectorystatement:Exports[host]x&grHDgt _/!K'*,.02H46p=ABG ]?#P$'c*(+.\0469;@BFH# [ ^xP R!$V'*4.L46q9x Xlmt UB k Z5#@&c',D/6S8=@TBEG/ S"%(,.14M89y;>-?ACFI Q 24$ r Oy+Oy L   !G-"M%&+/58=@BEG/ KV&R!n#'F+/1v6A8L:=ACREH# I ag SUE #& G4+G4 D ] #+$()*.357<x Ai t > !x a" $&Y),V/3169BdDG : M^Q!7#%( +.30 79J;?JACE 9% ! )*/4:\<*>Q@C 7} 5Qf# (*S.U1x417}57}t9Q7}97}: 5 7 "%l)n+139'?9C|E 3[ ay 0 t , y/Hx *Bt*B*Bx*B*Bt*B S*B ' Q 9 "'j)+g/0` 7Tx9'::'t>'?'EG/ &-xv&&tE&&$'.1"49*p@DQF $x ^bT 't),V.0"59;?F2 ";l U+x Uh Ut= Ux tx(5)Ut*G*/5x _t__x(_)3_t*&_ x =]tP Ux!'!t&&,:/>1/4369;y t F nS ] o!%r'*U,2G5N;?BpG  / <$ .! #W&*,02f68; ADsG; i !$&(y*+(t/047:.@ BE P #Xx P Pt$ P$ Px t 0 TVm$DFFiles5Directory[host]BringOvernormallyexaminesallthefilesinaDFfile(i.e.itassumesyouareanimplementor.)Ifyouareauser,youcangetonlythosemarkedExportsbygivingBringOverthe/pswitch:BringOver/pPoplar.DFUsersoftenneedtospecifythe/pand/aswitches.ThecorrectwaytoinvokeBringOverisBringOver.~/a/pPoplar.DF(Notethespacebeforethe/aandbetween/aand/p.)WhenaDFfileneedstorefertootherDFfilesasauser,itmayhaveanImportsstatementImports[host]file.dfOfwhichcausesBringOverto(1)retrievefile.dftothelocaldiskifnecessaryand(2)examineallfilesmarkedExportsinfile.dfandretrievethemifnecessary.Ofcoursefile.dfmayhaveIncludeorImportsstatements,sothisisarecursivealgorithm.SometimestheExportsfilesaretoofewortoomanyfilesandtheuserofapackagewouldliketolistthefileshe/sheneedsfromtheimportedDFfile.AppendingaUsingclausetotheImportsstatement,analogoustotheoneintheMesalanguage,givestheuserexplicitcontroloverwhichfileshe/sheneeds:Imports[host]Package.DFOfUsing[listoffiles,separatedbycommas](TheOfclausecanbeomitted.)UseoftheUsingclauseisstronglyrecommended,butisnotrequired.ExamplesofImports:Imports[Indigo]Pilot>PilotMesaFriends.DFImports[Indigo]CoPilot>CoPilot.DFOf24-Sep-8111:14:26PDTUsing[CPSwapDefs.Bcd,CPSwap2.Bcd]AswiththeIncludeclause,theImportsstatement(andUsingclause)mayspanmultiplelines.IntheCoPilot.DFexampleabove,CPSwapDefs.BcdandCPSwap2.BcdcanappearanywhereinCoPilot.DF.(ItdoesnotmatterwhethertheyareExportsornotwhenaUsingclauseisusedtoaccessthem.)ThefilesreferredtobyanImportsstatementmaythemselvesbeexportedtothenextouterDFfilebyprecedingthewordImportsbythewordExports.Thisisusefulwhenusersofapackageyoumaintainneedtohavefilesfromsomeotherpackageinorderto(e.g.)compiletheirsystem.Youcanimportandexportthesefilestoassureyouruserswillhavethem.UsingClauseSemanticsSince,ingeneral,CoPilot.DF(intheexampleabove)mayhaveinternalstructure(i.e.itreferencesotherDFfileswithIncludeandImportslists),CPSwapDefs.BcdandCPSwap2.BcdmaybedefinedinsomeoftheDFfilesreferencedbyCoPilot.DF.Toavoidanexplosioninsearchtime,theserestrictionsapplywhenusingUsinglistsonaDFfilewithinternalstructure:x&grHDgto_/]2 ^#%u x \t\9\oZ8]2K"Y Wvsd #%b&)+.8/479; EUF V ? irF`x#V$Vt)V)V+/;58S:Nu St Q U`]X"#*)-14k6:ALu N Tt L& ;@y1$&z)1 I.""P$')w*-/H2L5x7I8ItDF C xC C tC jC i!f$&M -9/H37:x=C >aC tBC CsC xDzC DC t Ad c >x`>G>t>> ]# $'Q+(."03R6X89T>BEGQ =A PB)#&)a0x1=A2=At5=A6P=A9;x==A>l=AtC=AC=A ;MG$'*S-C2 69=@E4x 9t9%9x 9!9t"9#n9xo6te66!$# 4'x =4']4'yP4'4't4';4'D5 1 rx11t1b1K (+],/> //+x//h//tu//x ,t,%,'x *8t*8%*8x'*8)*8t)*8**80d5xo'te'' %A xw%A%AtT%A%Ax%%A%At"9%A"%A(ox+%A,%At/%A00%A4'7+:f? " , ! ,0 9GBE$G SCx,SStASS=x#&S$St'S)"S,=-15x8:;AC  ?"d$&a* +/$4Q7<?BZF ;a!=#'/x  \t e  6 &*u-r05;w>%?u E  mQxbt6xhtR"y -V0 8;=BDLG  ]  #:%s)D+F13A7;> E o xK o^ ot@ o o2 &#A(W TVm$DFFiles6(1)Ausinglistfile(e.g.CPSwapDefs.Bcd)mayberetrievedfromaDFfileincludedbyanimportedDFfile(e.g.includedbyCoPilot.DF).(Inotherwords,includedDFfilesaretreatedasiftheyweremacro-substitutedinlineinthetopDFfile.)(2)AusinglistfilemayberetrievedfromaDFfileimported(withoutaUsinglist)byanimportedDFfile(e.g.,importedwithoutaUsinglistbyCoPilot.DF)aslongasthefileisexportedintheinnerDFfile.(I.e.,importsaresignificantonelevelbelowthetopDFfile,CoPilot.DF.)(3)AusinglistfilemayberetrievedfromaDFfileimportedwithaUsinglistbyanimportedDFfile(e.g.importedwithaUsinglistbyCoPilot.DF)aslongastheusinglistfilebeingretrievedalsoappearsontheinnerusinglist.(I.e.,multiple,nestedUsinglistsmustintersect.)UsefulModesAoption(/v)willrunBringOverinverifymode,whereitwillverifythatthefileslistedintheDFfilearepresentontheremoteservers.(Nofilesareretrievedinthismode.)Ifthefileislistedcorrectlyandalocalcopyexists,BringOverwilladdtheRemoteFileNamepropertytotheleaderpage.NoteforlargeDFfilestheverifyoptiontakesafewminutes.BringOverwillinformtheuseriftherearenewerversionsoffilesontheremotefileservers,andwillmakeanewDFfile(onafilecalled"NewDFFile.DF")listingthenewerversionsoffileslistedintheoriginalDFfile.IfanyfileswerelistedintheDFfilewithouttheirIFSversionnumbers(e.g.!5),BringOverwillmakeanewDFfilewiththoseversionnumbersfilledin(alsoon"NewDFFile.DF").Anoption(/o)willinstructBringOvertoonlyBringOverthefile(s)listedafterthe/o.Forexample,BringOver/ox.mesafiles.dfwillexamineonlythefile"x.mesa"infiles.df,evenifotherfilesshouldbebroughtover.Ifno"."isgiven,BringOverwillappend".Mesa",sothisisequivalenttotheprecedingexample:BringOver/oxfiles.dfMorethanonefilecanbelistedafter/o,inwhichcasethelastDFfileonthecommandlineissearched.FiveoptionsareavailabletoreducethenumberoffilesthatareretrievedwhenBringOverisrun./bcausesBringOvertoretrieveonlythosefilesthatare"derived"fromsourcefiles,i.e.filesthatendin".Bcd",".Signals",".Boot",and".Press"./scausesBringOvertoretrieveonlynon-derivedfiles,i.e.allfilesthatdonotendin".Bcd",".Signals",".Boot",and".Press"./rcausesBringOvertoretrievefilesthatareindirectoriesmarkedReadOnlyintheDFfileandtoretrievefilesthatareimportedfromotherDFfiles./wistheinverseof/r:onlyfilesthatarenotmarkedReadOnlyorimportedareretrieved.Finally,/ucausesBringOvertoretrieveafileifaversionisalreadyonthelocaldiskandtheversionlistedintheDFfilediffersfromtheversiononthelocaldisk.The/foptioncausesBringOvertoignorelocalfileswhenitdecidestoretrieveaversionofafile,thus/f"forcesretrieval"offilesonthelocaldisk.OtherinformationaboutBringOverWhenthefilenameonalineinaDFfileisprecededbyatilde("~"),BringOverwillretrievetheindicatedversionifitisnotpresentonthedisk.Ifthereisalreadyaversiononthedisk,thenitwillnotbeoverwritten,regardlessofitscreatedate.BringOverlistensforControl-DEL.Whentyped,BringOverwillabortitself.BringOvercanhandleDFfileswithfewerthan500files.Shouldyouneedtosupplyaconnectnameandpassword,BringOverwillpromptyouforthem.Whenx&grHDgt _'&(L&)+19458:W?AC ]X %(?+06H8<>tC1DF [ # %(  Y]>X#u&'*g,28x9;Y]:NY]t="Y]=Y]?AC WTO^ x!W"Wt%W&?W(5*L 2>47=9;>?EfG/ VLKU 'A)-21?368;` SGl#&( *-25x7S82St; S;nS=@?3AG Qx@*C FX `l"!$& 179=;?CGR D U2{ "&$*14F8;9>4?C"Ew C qRU#%(2+,/14;679= Ab"$Y&+.136696<@VBDG% ?'| \#&=-%035=8[;=@D >0$* ; ?|(!#&-U/37?:{<?BQu 9t 6 .W> 2!&*1+/O2L68>B1CEH# 4 \F"#&e' .0.28u 2Tt 0 J "$(+n-0+2469A?B7C +  o8 "()),/2+8;BDG *:= "%(+%159w<?(B-EG ( #%)02<7?:\ BE`G & [  $*,349?AF %D  Bx7%D5%Dt"%D"%D$=&)+r./47:a<BE # fI#%(+:-x2#3#t9@#9#;ACq !c-#$=&(,)h.C/4692<?BUD N D.N %u'{)-!  #'(*-/445:<@BCF + L _ l"x  U*t 0 ""%m'-/@038J?.BG/ 3 x"$(*q. /4e5:s<>BJEF ? aR  S #  h$(/f25 I/A. I$':) ^f!$'-47;<$>AEw tTVm$DFFiles7aCRfortheconnectnameandaCRfortheconnectpasswordaretyped,BringOverwillaskifyouwanttouseadifferentloginnameoraborttheprogram.BringOvercanbegivenalistofDFfilesonthecommandline.Itwillbehaveasifeachfilehadbeengivenseparately.BringOvercanbeusedtoretrievefilesthatarenotlistedinDFfilesbyputtingthemonthecommandlineBringOver[Ivy]User.CM!3[Indigo]Lister>Lister.Bcdwillretrievethosetwofiles.Ifafileendsin".DF",BringOverwillretrievethecontentsaswell.IftheversionofafileonthelocaldiskisnewerthantheoneBringOverisretrieving,BringOverwillfirstrenamethelocalversionbyappending"$$"tothefilenameandthenretrievethelocalfile.Ifthefileendsin".Bcd",BringOverdoesnotbothertorenamethefile.SummaryofoptionstoBringOver:/aTransferfileswithoutrequestingconfirmation./bRetrieveonly"derived"files./fRetrievefilestothelocaldiskevenifcreatetimeoflocalcopyagreeswiththecreatetimeoftheremotecopy./oTransferonlythefollowingfiles(extensiondefaultsto".Mesa").ThelastfileinthelististheDFfile./pTransferonlythosefilesmarkedExportsorPublic./rTransferonlythosefilesmarkedReadOnlyorimportedfromotherDFfiles./sTransferonlythosefilesthatarenot"derived"./uTransferonlythosefilesthatarealreadyonthelocaldisk,butthelocalversiondiffersfromtheremoteversion(updatemode)./vVerifymode;NofilesaretransferredbutcheckstheDFfileforaccuracy./wTransferonlythosefilesnotmarkedReadOnlyandnotimportedfromotherDFfiles.SModelTheSModelcommand(SModelstandsfor"SimpleModeller")canbeusedtostorebacknewversionsoffilesyou'vechangedsinceyoulastrantheBringOvercommandtofetchfilesundercontrolofaDFfile.Forexample,ifyourDFfileiscalled"Poplar.DF"andyou'vealreadyrunthe"BringOver"command,thecommandSModelPoplar.DFwillexecuteasfollows:ThefileslistedinPoplar.DFarecheckedonthelocaldisk.IfanyhavedifferentcreatedatesSModelwillstorethemontheremoteserversspecifiedinPoplar.DF.ThenSModelcopiestheDFfiletooneendingin"$"(e.g.Poplar.DF$),andproducesanewPoplar.DFfilewiththenewcreatedatesandremotefilesystemversionnumbers(e.g.!4).IfafileonthelocaldiskislistedwithoutanycreatedateintheDFfile,SModelwillfillinthecreatedatefromtheversiononthelocaldiskandthenstorethefileoutontheremotedirectory.IfthefileislistedintheDFfilefollowedbya">"or"~=",thisfileisignoredandwillnotbetransferred.IftheDFfilecontainsareferencetoitself(e.g.System.DFlists"System.DF"asoneofthefilesyouwant),thenSModelwillalsostoreanewversionoftheDFfileontheremoteserver.SinceSModelhastowriteoutanewDFfilebeforeitcanstoretheDFfile,SModelcannotputtheIFSversionnumber(e.g.!5)ontheDFfilenameinthecaseofself-referencingDFfiles.However,BringOverwillx&grHDgt _/ 0 -"n$'@,q249A@BE]F ] Il<x!<$'; [ 4' J #%'.Q13b6:@C. UCu R)Zt PL 6' <#x%&)0y3$8$:?A M  Jb *#*$(,.y1679| @F L* W $()),9147<?BeEG/ J U? "z&(-x/x G3 B t CCSAM $ AATn @ @ ec" #'?(,/158|<?BVFi>a ~!$"' /a2U6<>Av !u t  h`;!#o*,a1359<>&@C _ o> "$x)-3_5 <@9E`  bI x$"= *-g3[47>y@D+F  x/@$*3-6  w *M$&*-/147T<?=AmC$E  Mjk!$'+-s/2H4I6;E ACeEH# F D.<8b!#(b+-m.369E;=  &!%9(U/2e :<?AYCF $/jkL #(*-/2;4V6;@Dc | c ["$T' *-/28 <?]AD =A(!N"%X(D)3649@-F TVm$DFFiles8alwaysgetthecorrectversionoftheDFfilesinceitwillusethecreate-dateoftheDFfileinstead.SModelwillpausebeforestoringeachfileandaskifitshouldgoahead.Youmayrespondwith"y","n","q",or"a"."y"meansgoaheadandstoreit,"n"meansdonotstorethisfileandkeeprunning,"q"meansdonotstorethisfileandstoprunningimmediately,and"a"islike"y"exceptsubsequentquestionswillnotbeasked,andthe"y"answerwillbeassumed.Youcangivethe"/a"optiononthecommandlinetoSModel,e.g.SModel/aPoplar.DFandallquestionswillautomaticallybeanswered"y".ReadOnlyfilesWhenyoudon'twantanyofthefilesinadirectorytobechangedbySModel,regardlessofanychangesyoumaymake,youcanindicatethefilesinthedirectoryareread-onlybyprecedingtheDirectorykeywordwithReadOnly.Forexample:ReadOnlyDirectory[Indigo]System>indicatesthefileslistedbelowshouldNEVERbestoredbackonSystem>.MaintainingConsistencyItisimportanttorememberthatSModelNEVERenumeratestheremotefilesystem,soSModelmaynotdetectthatcertainfileslistedinaDFfilearenotpresentonremoteservers.AcommonmistakeistoassumethatifyourunSModelonaDFfilesuccessfully,andthensimplychangeaDirectoryintheDFfile,thenallthefileswillbetransferred(again)tothenewdirectory.ThisisWRONG!AfterSModelhasbeenrunthefirsttimethecreatedateslistedintheDFfilewillagreewiththedatesofthefilesonthelocaldisk.SinceSModelchecksthecreatedateslistedintheDFfile,onthesecondinvocationSModelwillnotdetectthatanyfilesneedbetransferredEVENthoughtheDirectoryhasbeenchanged.Toresolvetheseproblems,SModelwilltakea/voption(/vstandsforverify.)Ifgiventhis/voption,SModelwillnotonlyapplythealgorithmdescribedabovetostorefiles,butifitdecidesafiledoesnotneedtobestored,itwilllookontheremotefileserverandcheckthatinfactthefiledoesnotneedtobestored.Ifthefileisnotontheremotedirectory,ortheversionlistedintheDFfileisnotontheremotedirectory,thenSModelwillstorethefile.InthiswaySModel/vwilltrytoforcetheremotedirectorytoagreewiththeDFfile.IncludeandImportsSModelwillinvokeitselfrecursivelyonDFfilesthatarespecifiedinIncludestatements(andnon-ReadOnlyDFfilesprecededby@.)SModelwillNOTinvokeitselfonDFfileslistedinImportsstatements(oronDFfileslistedinReadOnlydirectoriesprecededby@.)IftheIncludeorImportsstatementisnotfollowedbyanOfclause,SModelwillinsertsuchaclauseinitsoutputDFfilewithreplacedbythecreatedateofthefileonthelocaldisk.ReleaseOptionIfthe/poptionisgiven,SModelwillstoreallfileslistedintheDFfileonsubdirectoriesof[Indigo].ThesubdirectorywillbethesameasthesubdirectorygivenbytheReleaseAsstatement.IfthefileslistedintheDFfilearenormallystoredonaworkingdirectorythatisnot,thecopyoftheDFfileonthelocaldiskisnotrewrittedbySModel/p.Ifthenormalx&grHDgt _/QS  k"%`(*),/I1 8:^<?HA \%&"$x'<)+,1 37;>+CzF [  ; "$(=),025s8;|=@D Ye I!$")m 14|78;Y>Bf W%G `"'*B,4258?;.=@E(G/ VM6u St Q  S !'x MXt J ,| "#)z+-2d4T9 @!ADb H ?%:!$&)O/O18):S@xCfHDzHt G4xG4G4tG4dG4x DtBDD B={!B=!B=t%cB=&*B='T+w.0 x >  t ; ^  \%z#L;$4;t';(P;.1H58N=>DG 9 P=!J#&(|-P/V3 7} s3!#n&J).W0147 >AE 5x55t5!5_.!#&0)+- 49:=? Fu 4.z l4. 4.t 4.4.k5 #Q%(+._2v69;> @C&E 2 dT!%a).A259<@8ADCF 0 O !q"A$) +.15U7j z>0?C0tB60B0Gx /8t/8/8 , L"%&(,/\35;<@PBD +9S~#)-/26=8:;v@VACG )n Mr{!%(,..257R:BDG '   $ +,/D479<>ABEG/ &  ^ #&)l+O.06/8':=!>BtD $xl0x !)it c "%2(/+.17x9:gt?2?F^ 3x 3 3t,3L3 $5)tz,23-3t/)3/337&9@;>BxD\3D3t  tb x t&&& ,24  x txMtx ?!$M*,x.!/Ay0J0t45L98>zA<EHe i"t'),T0V3[57t9;>CAx t  m!d$o(+*z-1369 G $LY "q%Q'v* -/22 :K>3@dxB$C$t } c!#&v(.3V56,then/nisequivalentto/v.OtherOptions1.The"/n"optioninstructsSModeltodoeverythingitwouldnormallydoBUTitnevertransfersanyfiles.Forexample,SModel/nPoplar.DF2.Ifyougivethe"/s"optiontoSModel,itwillstoreontotheremoteserver(s)allthefilesyou'velistedintheDFfile,exceptthosemarkedReadOnly,whetherornotlocalcreatedatesmatchtheonesintheDFfile.Forexample,SModel/sPoplar.DF3.Ifthe/roptionisgiven,thenSModelwillstorefilesitdecidesshouldbestoredbytheabovealgorithmevenifthedirectorytheyarestoredontoinmarkedReadOnly.GettingStartedwithSModelNewusersareoftenconfusedabouttherelationshipoftheentriesinaDFfiletothelocalandremotedirectories,andwhatSModelwilldoincertaincases.TheeasiestwaytounderstanditisthatSModelassumes1)thattheDFfilewasanaccuratedescriptionoftheremotedirectoryatsomepointinthepastand2)fileswithdifferingcreatedatesthatitfindsonthelocaldiskarethe"Truth"andthatitshouldtransferanyfilesthataredifferent.However,assumption#1allowsSModeltoassumethatfileswiththesamecreatedateintheDFfileandonthelocaldiskALSOexistontheremoteserver.ThisassumptionisoftennottruewhenanewDFfileisbeingcreated.Togetstarted,thereareatleastthesethingsyoucando:1.MakeaDFfileofjustfilenames(nocreatedates)andrunSModelonit.Thefileswillbetransferredandthecreatedateswillbefilledin.2.UseVerifyDF(seebelow)toautomaticallygenerateaDFfile,edittheDFfileasyouneedto,andusethe/soptiontostoreallthefilesoutontoremoteservers.3.Ifyouhaveacompleteconsistentworldoutonremoteservers,simplyretrieveallthosefilesontothelocaldiskandmakeaDFfilewithalltheirfilenamesbutnocreatedates.RunSModelwiththe/noptiontogettheDFfilefilledinwithallthecreatedates.(/nwillnotneedlesslymakeextracopiesofthefilesonyourremotedirectories).Ifyouaremaintainingasystemforothers,youmayneedtohaveentriesintheDFfilethatareReadOnly(suchasforDefs>,etc.)Fillinginallthecreatedatesbyhandispainful,soyoumaycombinethe/rand/noptionstofillinallthecreatedatesintheDFfilebutnottransferanyofthefiles!Forexample,SModel/r/nFoo.DFwillfillinallthecreatedatesforfilesinFoo.DFbutnonewillbestored.CameFromhandlingSModelnormallychangesentrieslikeDirectory[host2]CameFrom[host1]intolineslikeDirectory[host1]ReleaseAs[host2]x&grHDgt _/C- ("%& .U1{3v4 ;=?x [ t X }Y "z$ +N,068<1=A[F V au Tnt Q r G#n$'c*-0=4:[AE PK b_x ePK!cPKt&LPK'0PK,.O048";?BDEzG/ N w8u L(t I _  ?2>"Q$(%*,605^75;?=!?gCOy Ht H cH` #I$x)H*Ht/Hx Dt Ag ; k" *T,.v2458[:<|>B+D ?  T!"'\+.257 >@ADc >-fdI$ +-V/4F: ;?!BDWF %@CE :  "&l -0j49;@CqFt 9" },`v!^$G&~),/4&79>@B 1 :+ /5 a &Y+-"/25[7:a<>AYDF - ay.!#&+i + t  E$-&(-D2*6;=~ADG/ )k IM%F w"~%,.049y<AEG 'D5!#&*.~036 <@:CG & K9?{" # V /  E#&G)2,v. 1:57(9o;>2@xC##D!#t ! ` +"L$&(r,02#57)@C R N V1$!%)*-,/2&47"<0>@BF u 0t  l\H!s#!(a*.T12x et x t9xt%&  x t 9 x  t%< % TVm$|DFFiles10andchangesImportslikeImports[host1]file.DFOfCameFrom[host2]intoImports[host1]file.DFOfsincetheCameFromisinsertedbytheReleaseTool.IfyouwanttopreventSModelfrommakingthesechanges,giveSModelthe/foption.OtherInformationaboutSModelSModellistensforControl-DEL.Whentyped,SModelwillabortitself.SModelhandlesConnectusernamesandpasswordsexactlyasBringOverdoes(seeabove).Ifafileistransferred,theRemoteFileNameproperty(seeabove)isaddedtotheleaderpageofthefileonthelocaldisktorecordwherearemotecopycanbefound.SummaryofoptionstoSModel:/aStorefileswithoutaskingtheuserforconfirmation./cTrytowriteDFfilesthatarecompatiblewithAltoDFsoftware.(Nowarningsaregivenifthisisimpossible.)/fDonotswitchCameFromclausestoReleaseAsclausesanddonotdeleteCameFromclausesfromImports./nDoeverythingitwouldnormallydoBUTnevertransferanyfiles./pStorefilesonthedirectoryforthenextCedarrelease./rIgnoretheReadOnlyattributewhendecidingtostorefiles./sStoreallthefilesintheDFfile,evenifthecreatedatesarecorrect./tDonotinvokeSModelrecursivelyoninner,includedDFfiles.OnlyexaminethetopDFfilegiven./vVerifymode:Checkeveryentrytoseeifitiscorrect.Fileswillbestoredontoremotedirectoriesifnecessary.VerifyDFVerifyDFattemptstoanswerthequestion:DoesthisDFfilehaveentriesforallthefilesIneedtorebuildthisprogram?VerifyDFwillanalyzea.Bcdfileandcomparethefilesrecordedinthe.BcdwithentriesinaDFfile.Ifafileenteredinthe.BcdisnotintheDFfile,VerifyDFwillgiveawarningmessageabouttheomittedfile(s).TotheSimpleExecutive,type>VerifyDFDFFile.DFPackage.BcdwhereDFFile.DFissupposedtobeacompletedescriptionofallthesourcefilesthatwerecompiledandboundtoproduce"Package.Bcd",andalltheobjectfilesproducedwhilebuilding"Package.Bcd".VerifyDFwillanalyze"Package.Bcd"andgivewarningmessagesaboutthosefilesneededtobuildPackage.BcdnotlistedinDFFile.DF.IfPackage.BcdwasproducedbytheBinder,VerifyDFwillcomplainifthe.Configfileorifanyoftheimplementationmoduleslistedinthe.Configarenotalsolistedin"DFFile.DF".IfPackage.BcdwasproducedbytheCompiler,VerifyDFwillcomplainifthe.MesasourcefileoranyoftheDefinitionsFiles(.Bcd's)itdependsonarenotlisted.(Alistoffilesx&QgrG~gt _/ x_/T_/t_/G_/x \t\%\x!$\"D\t#6\#\xoZ9tZ9Z9 Wx UCtUC%UCx!$UC"DUCt#6UC#UC R UxRRtRR@1!&*, .2 38=A'F Q!q^x M wLt JF "'#,O.2 H# #*.0^7:= E s  yAE>E t$E%E*-Y13K7u9);?CDG% C R4$m'*J,;x @ Bt =H=Ho]i # &(B ;Z;Zr". #C *V-s039s7tD7E76x766t6 4040/ Iw%H'N*.366 2B2Bo]c #7)+F-04 0T0T5x0T0Tt0T0T#'E,.1 .f.fo_Z"E%(L), 035 ,x,xBW &(,2k5 8<}B D|G*9 ((8*"%'*2+-G.48:;=5AD'< ~ s #t I~%)k,*.1Z49M;=@4C?DfG E  %&),-.4m69?\ACXFt Pp2ozM!#&)A*-I/ 1~46=E@CDB C% - s u ]c t 7w" "=(@ /m1B3M5:2=;@%C  !K "$&)>-h0g6:^? jT{ "$(+-37;>DE A  #8$ -%06o8;H@eF jK!@# %x /g48:s<AD=F  j   "%]+-06<?EG/ KnX %(-/469;@ZByDF[TVm$7DFFiles11omittediswrittentothescreenandtoafile"MissingEntries.DFFile.DF$".Similarly,.Mesa,.Bcd,and.Configfilesthatarenotactuallyrequiredtobuild"Package.Bcd"arelisted.)OnceithasanalyzedPackage.Bcd,VerifyDFwillthenanalyzeany.Bcd'sneededbyPackage.Bcd(describedabove).Thisanalysiswillcontinueuntilall.Bcd'sthatarereferencedintheclosureofthedependenciesamong.Bcd'sareanalyzed.IftheDFfileisomitted,VerifyDFwillputalistofthetop-leveldependenciesonto"MissingEntries.DF$",whichcanthenbegivenamoresuitablenameandVerifyDFcanbeinvokedagain.ThisisasimplewaytobootstrapacompleteDFfileforapackage.VerifyDFwilllookonremotefileserversforthecorrectversionofaBcdfileandwillusetheLeafprotocoltoreaditpagebypage,sotheBcdsdonotnecessarilyhavetobeonthelocaldiskforVerifyDFtodoitsjob.OtherInformationaboutVerifyDF:TheDFfilethatdescribesapackagemayoptionallyhaveentriesprecededbya"+".IfVerifyDFisinvokedwithouta.BcdfileitwilllookinsidetheDFfileandassumethatanyfilenameprecededbya"+"isatop-levelBcdandproceedtoanalyzeitandallitsdependencies,asdescribedabove.Morethanone.Bcdmaybeprecededbya"+"sign.Forexample,ifDFFile.DFhadanentryoftheform+Package.BcdthenVerifyDFDFFile.DFwillanalyze"Package.Bcd"andallitsdependencies.TheDFfile(s)involveddonotneedtobeonthelocaldisk.Forexample,ifDFFile.DFwerestoredon[Indigo]Top>,VerifyDF[Indigo]Top>DFFile.DFisequivalenttoretrievingDFFile.DFandinvokingVerifyDFonthelocalcopy.VerifyDFhastwooptions:Whengiven/f,VerifyDFwillwriteoutasingleDFfilecontaining(1)thecontentsofthetop-levelDFfile,and(2)theentriesthistop-levelDFfilereferstousingImportsandIncludestatements.Thus/f"flattens"thetop-levelDFfile.(ThisisusefulforgeneratingDFfilestoinputtoadhocDFparsers,suchastheCedarcross-referenceprogram,etc.)Whengiven/a,VerifyDFwillretrieveanyDFfilesreferencedbytheDFfilebeingverifiedwithoutaskingforconfirmation.If/aisnotgiven,thentheuserwillbeaskedtorespondwitheither"y","n","a","l",or"q"."y"meansretrievetheDFfile,"n"meansskiptheDffile,"a"islike"y"butsubsequentDFfilesareretrievedasif"y"hadbeentyped,"l"meansusethecopyoftheDffileonthelocaldiskinplaceoftheversionlistedintheDFfile,and"q"meansstoprunningimmediately.VerifyDFlistensforControl-DEL.Whentyped,VerifyDFwillabortitself.SummaryofoptionstoVerifyDF:/aRetrieveDFfilestothelocaldiskwithoutconfirmation../fWriteoutasingleDFfilecontainingallthepartsincludedandimportedbythetop-levelDFfile.x&QgrG~gt _'s(:v 0!# %x8 >CXF ]Yo#%)M 24 [ }@> '^*X-35:A?XA Y\ Ip!-&*>,?0S335 /@EdG/ W kE U9 G &k!P#$&(V*0 8p;y SJ$ '*03w5r:?ZBCE* Q r# "# OoMU}F$&)c.346'9;>zAGCF_ MG-`I!%')e 0,3_468;>KA&CP L   {x H wLt E p!M$a *.?28:;@AAH# C.:dJ"&(q*-f047:V<@FiHe B2 I  "')+-/ 8:@E @  $+'*0f19;=A?BEW > ;u 9Et 6  v!P 4! rd'!"$&)f,03g9I:B Ek 2y u /Et - X  !%#)/1407w ++L (qrS"%=&b*H,/3 58 :e?AC &T1GN! &)},/1x5&6&t:&;W&x=&> &tB}&C& %<4 ( I"&2)+B/c1 8j:=?C^yE%<E%<Gt #88iw(. !Wx@$.&)7, 2469x;?D r5 =!#'*-#0 248:N?BF a4~!&)M+.1q58;/=[@+BD?F #: n\$-%'S),04Y6:={?CCEGr |>k^rG !$h)W-'.14479<A8DX  Y+Y $(6.u1!4x   Bt T{#!&+  \L! (*-*06n9@?NAdC $[ 2TVm$JDFFiles12SummaryofcommandlinesforPilotVerifyDF:VerifyDFDFFile.DFPackage.Bcd--analyzePackage.BcdVerifyDFDFFile.DF--analyzefilesprecededby"+"VerifyDFPackage.Bcd--analyzePackage.BcdandconstructaDFfileDFDiskDFDiskwillproduceafile"Disk.DF"thatdescribesanentirePilotvolume.ItlistsmostofthefilesonthePilotvolume(exceptfilesendingin$andafewkindsoflogfiles).IfpresenttheRemoteFileNamepropertyisusedtogivearemotehostanddirectorywherethefilemaybefound.Notereadingleaderpagesisslow,evenonaDorado,soexpectDFDisktotakeabouttwominutes.DFDiskismostusefulwhenusedtoprintouttheRemoteFileNamepropertyandwhentryingtosaveallthefilesonyourClientvolumebeforeyoure-initializethevolume.DFDisklistensforControl-DEL.Whentyped,DFDiskwillabortitself.DFDiffDFDiffwilltaketwofilesspecifiedonthecommandlineandcomparethem.Ifafileispresentinthefirstbutnotthesecond,itsaysthefileisdeleted.Ifafileispresentonthesecondbutnotthefirst,itsaysthefilehasbeenadded.IfthecreatedatesdifferforafilelistedinbothDFfilesDFDiffwillprintamessagetothateffect.Forexample,ifOldPoplar.DFandNewPoplar.DFarerespectivelyoldandnewversionsofthePoplarsystem,DFDiffOldPoplar.DFNewPoplar.DFwillcomparethetwo.ThisismostusefulwhenusedwithDFDisk,beforeandaftermajorchanges,andifthefileoutputbyDFDisk(thefirsttimeitisrun)iscopiedtosomeotherfilenamelike"SaveDisk.DF".ThenDFDiskDFDiffSaveDisk.DFDisk.DFwillcomparethetwoDFfilesandtellyouwhatyou'veaddedordeleted.DFDifflistensforControl-DEL.Whentyped,DFDiskwillabortitself.DeleteAllTheDeleteAllcommandwilldeleteanyfileonthelocaldiskthatdoesnotmatchonespecifiedinanexceptionlist.Ifinvokedwithnoarguments,DeleteAllusesanexceptionlistonBasicClientVolumeFiles.DForBasicCoPilotVolumeFiles.DF(storedon[Indigo]DFFiles),dependingonwhichvolumeDeleteAllisrunfrom.IfDeleteAllisgiventhe/nswitch,itwillskiptheBasic...VolumeFiles.DFexceptionlist.Usersmaythemselvesspecifyexceptionlists.ThesimplestwayistolistthefilesyoudoNOTwantdeletedonthecommandline.Ifyouhaveafileoffilenames(onelocalfilenameperline)oraDFfileyoucanuseitasanexceptionlistbytypingitsfilenameprecededbya'@(i.e.quote,at-sign).Forexample,DeleteAll/nFoo.Mesa'@Schmidt.DF'@OtherFiles.ListwilldeleteallfilesonthevolumeexceptthosespecifiedineithertheDFfileortheotherfilelist.InthecaseofDFfiles,DeleteAllwillincludethecontentsofnestedDFfilesintheexceptionlist.x&QgrG~gx _, K t [) y)[+/ t Yay)Ya+/28T:/t V y)V+/ 8:@yAD"s St PG2(K!$r*S,<0!3`9:=B@BJDG N Fj. "K#z&,'P)-/N157P<>x L4!$]*1.K0368<@uEl KQ #y =$)+.2c5 HE&K U!$')r 4:<=@DF G/ ;)/kw#&} -0 D9g #'D,/<2s Adt >@/!$S*-m0%5:';<??@EG/ CF' 9 N4!" +.| 7:9 ACF 7w8Qu 4  t 2 2 0 & N&*]-!0j4m9<>1@CG .^9eL#%l(,/25r @u + )g t & 2=m!$',E0i2- $pW "&,D.2s !!t  K j#%'*-w0w3V69=T@EG *1kO#z& .59<D;G {0 527 !#i&*P+23789;@2AD=G/ 4y!%( /4|:>pATF  W CFM K%'%)/3w47:<>@AFj  8\Z #E%(O)+^-T357<=C > O>u ; *2t G 6,#'5,.257:-;>jBDG  K:~$&,Q. 2Z479;BTVm$DFFiles13DeleteAllwilllisteachfilenoteliminatedbyanentryintheexceptionlistandasktheusertotype"y"orCRforyes,deleteit,"n"forno,skipit(don'tdeleteit),and"q"toquit.IfDeleteAllisgiventhe/aoptionitwilldeleteallnon-eliminatedfileswithoutfurtherconfirmation.Forexample,DeleteAll/a'@Schmidt.DFwilldeleteallfilesnotintheexceptionlistonBasic...VolumeFiles.DFandnotintheDFfileSchmidt.DF.Use/averyCAREFULLY!WithinCSLandISLitiscommonpracticetoDeleteAll/aonpublicDoradostodeleteprevioususer'sfilesortocleanupafteryouarefinished.DFDeleteDFDeleteisthereverseofDeleteAll.GivenalistofDFfiles,DFDeletewillreadinallDFfiles(andnestedonestoo)andproducealistofallthefilenamesintheDFfilethatappearonthelocaldisk(subjecttotworestrictions.)YoumaythenexecutetheDelete.~commandtodeletethesefilesandfreeupthespacetheyoccupyonthelocaldisk.DFDeletewillnotaddtothelistoffilesyoushoulddelete(1)anyfilethatismarkedReadOnly,oranyfileappearinginaDFfilenestedinanotherwheretheouterDFfilemarkedtheinnerDFfileReadOnly(asinVerifyDF)(2)anyfilelistedintheDFfilewithanexplicitcreate-datewhosecopyonthelocaldiskdoesNOTagreeincreate-date.DFDeletetakesoneoption(/r):DFDelete/rPackage.DFwilllistallthefilesinPackage.DFincludingthosemarkedReadOnly.RemoteDeleteAllRemoteDeleteAllshouldbeusedtocleanupoldfilesfromreleasedirectories.Itchoosesasacandidatefordeletionanyfilethatisontheremotedirectorybutisnotlisted(withthesamecreate-date)inasetofDFfiles.Todothis,ittakesadirectorynameandalistofDFfilesandthenenumeratestheremotedirectory.Twolistsarewritteninfilesonthelocaldisk:alistoffilesthatwillnotbedeletedandalistofcandidatesfordeletion.Itthenliststhecandidatefilesontheterminalandtheuserisgivenachancetotype"y"todeleteit,"n"or"CR"toskipit(notdeleteit),and"q"toquit.Forexample,RemoteDeleteAll[Ivy]B>[Ivy]B>B.DF!5[Ivy]B>C.DF!6wouldoffertodeleteallfileson[Ivy]B>thatarenotenteredinthesamenameandcreatedateasthoselistedin[Ivy]B>B.DF!5and[Ivy]B>C.DF!6.ShouldafilelistedinaDFfilebelistedwithoutacreatedate(suchaswith~=or>),thennoversionsofthatfilewillbedeleted.Theusermayalsoenter"a"whenaskedwhethertodeletethisfile.Whengiven"a,"RemoteDeleteAllwillaskifyouaresureyouwanttogoaheadandthendeletetheremainingcandidatefileswithoutpausingforconfirmationforeachfile.ReleaseToolTheReleaseToolshouldberunbytheCedarReleaseMaster.Contactmeformoreinformation.OtherInformationx&QgrG~gt _/5 #%'+O,/Z57:<?FB>CF ] MSi  #z$(-/7146c:5;ACrG/ [ !w"0 #&+0H 9H;u Ye t V }pErK!e#%t36x8:f<?Aj UB   #&)>*+16u Rt PK -jx!$')+<0^36Q8s Lt I]1 !%')`+-07g:=6>@ClF^ H^ T "$'"-m/=14k69>@C9F F^N !$)+189=A/DF D ^#<! B;Xy0>| 5#"%*U ?ax??t"?#?%L'*@02:3Y589<~>!C"G/ >MA@ >"x%3>&0>t+>,>-/t ;a`Y 8#I%/) 058V:R<?BE 9W 7zXu 4E t 2 $ k%)x.2/2t42s /3t +2N#~%'*.,2 :";@B8CY *= *xR&#),"-037D9=" DFHGr ( "=$(Y+ ,,.c025~8/;N BD & ic !#&M),.0K147:S<>C|F-GQ %G Hz!$*H-*/%1y69;>@5CD # @V!"%&)-0257-:=u !$ %#4Qt (Nigbv %(*-t2w436:+=@DG  U!.35 7;j=>>A?CE Z"$)"$N&Uy){Z*9Zt+nZ,Z02s5A7:V 7 G9!d#x'*x-14u;ArD ? ds @ t   !&+057:;= s   TVm$tDFFiles14YoucanfindallthecommandsinCedar.Bcdformon[Indigo]DFFiles>.Allprograms,excepttheRemoteGetTool,willrunintheCedarViewersandCedarUserExecworld.YoumayretrievethenewestreleasedversionsoftheseCedarDFprogramsbyrunningBringOver/p[Indigo]Top>DFFiles.DFfollowedbyRunBringOver.BcdtoloadinthenewversionofBringOver.Also,youmayfindnewer,experimentalversionson[Indigo]Top>*.DF.Usetheseatyourownrisk!Alloftheseprogramslistenforcontrol-DEL.Whentyped,theywillabortthemselves.Shouldyouneedtosupplyaconnectnameandpassword,anyoftheseprogramswillpromptyouforthem.WhenaCRfortheconnectnameandaCRfortheconnectpasswordaretyped,theseprogramswillaskwhetheryouwouldliketologinusingdifferentlogincredentialsoraborttheprogram.Ifyougetamessagethatbeginswith"Schmidt'sDebugging:"youmaysafelyignoreit--thesemessagesareusuallyduetocertainobjectsinmemorynotbeingfreedproperly.CedarReleaseProcedures[ThefollowingsectionisaneditedversionofasetofmessageswrittenbyRoyLevinandsenttoCedarimplementorsinSeptember1981.AlthoughtheproceduresdescribedbelowarerequiredofCedarimplementors,manyoftheextensionsaddedtoDFfileswillbehelpfulfornon-Cedarusersaswell.AlthoughitrepresentsarestrictiononDFfileusage,Irecommendnon-Cedarusersfollowthisstyleasmuchaspossible.]BackgroundReleasinglargesystemsisatrickybusiness.SDDhasknownthisforalongtimeandhasdevelopedelaboratereleaseprocedurestocopewiththematter.We'reonlyjustdiscoveringhowmessedupthingscanget.However,sincewehavemanyfewerhumancyclestoexpendonthisproblemthanSDDdoes,itisimperativethatwedevisenatural,easy-to-use,andefficient(ofpeopletime)proceduresforourreleasesofCedar.ReleaseProceduresThe[Indigo]directorywillbeusedexclusivelyforCedarreleases;thatis,afilewillappearonthisdirectoryifandonlyifitisapartofa(reasonablycurrent)Cedarrelease.Therewillbea"releasemaster"(initiallyLevin)whoisresponsibleforinsuringthisinvariant.Onlythereleasemasterwillbepermittedtocreateordeletefilesonthereleasedirectory.Inthefuture,weexpecttousesystemmodellingfacilitiestodescribeandissuereleases.Untilthenecessarysoftwareisinservice,wewilluseDFfilesandanumberofmanually-executedconventionstoachieveasimilareffect.TheproceduresIwilldescribehavethevirtuethat:(1)theyplaceonlyaslightadditionalburdenontheindividualimplementor,(2)theyenablethereleasemastertoinsurethereleaseinvariantwithoutbuildingthereleasefilesfromtheoriginalsources,and(3)theyareamenabletosubstantialautomation.Thesoftwareneededtoperformthisautomationisnearlycomplete.SincetheDFfileisthesoledescriptivemechanismpresentlyatourdisposal,wewilluseitinastylizedwayasa"poorman'ssystemmodel".Cedarimplementorswillobservethefollowingconventionsinx&QgrG~gt _' raR#i&)+<>E? ] K z $6)l,#0<6e [ ^!1&}(6+/2b8u:qu Xt V u S t Q Xm& N Xsy #R(*> ADFT L  Jx ? >{ &q*.14s8 G4o!%g(0.1I36<?DGR FUJ_ G#t&('N),.l39z;?C| D O4# &,Z/ 68u<>t B2 h\ ' 0%259=@0C @ ?X| *%( +/ks =< t 9 %6;)W$%&)*05Y7R:J>3@CEw 8E  a&)O 06;4=CEw 6  L "&Q(*-0279@D}FJ 4j  !$6&*+3h:G=BDG 3O q x 0 t ,C\&),?0357,:]=@jB + U T 9#L%*.14z ;>ClEv )b t2V"a&(*.0k5<7?9?]BF ' j 7" *P-/259=q DG &x " t u !$ +.(2N7:<=@;BG  \q=!#h$ +1#59:>AAC1DY &   $' ,/2 59k;@jDG 8 #'  usn#) /I1%69=#CdG/ \m{Tv"$'),-24@P G h "#&i+.1U5C8;>ADE  Xe  (M*i-m148<>BE  f2~">%e)+06I9:;>ArG   !'%',/ 68APilot>PilotMesaPublic.dfOf~=intheDFfile.ThereareseveralconvenientDFfilesofthissortavailable,e.g.,[Indigo]Pilot>PilotMesaPublic.dfPilotMesaFriends.dfComSoftPublic.df[Indigo]Tajo>TajoPublic.dfTajoFriends.dfandothersmayappearsoon.(5)The"endresult"ofbuildingacomponentisusuallyasingleBCDthatimplementsthecomponent.Youshoulduseaprogram,namedVerifyDF,whichtakesaBCDandaDFfileanddetermineswhetherornotthelattermentionsallthefilesnecessarytobuildtheformer.Forthepurposesofcheckingthecompletenessofareleasecomponent,itisusefultohaveaDFfileindicatetheBCD(s)namedwithinitthatrepresent(s)the"endresult".TheDFfilesyntaxwillallowthecharacter"+"toappearimmediatelybeforeafilename.BringOver,SModel,etc.allignorethischaracter,buttherelease-checkingsoftwareusesittopreparetheinputforVerifyDF.All"top-level"BCDsinaDFfiledefiningareleasecomponentshouldbemarkedwitha"+"(morethanoneperDFfileispermitted).Theauthor/maintainerofacomponentshouldapplyVerifyDFtoitbeforesubmittingittothereleasemaster.(6)Whenthecomponenthasbeenbuilt,the(non-ReadOnly)DirectoryheadingsintheDFfileidentifythelocationofthefilesintrinsictothecomponent.However,whenthecomponentisreleased,thislocationischangedto(anappropriatesubdirectoryof)thereleasedirectory.TheDFx&QgrG~gt _/z &c #{%4'+ \W%%h'}(+c.=2d57:>'?CFJ [ ' $&G(*0 Xq!'2)6 046;=ADzG/ Vp x '*-1|3L5; C| UBzw &i,38f:3<?\BhEV S%a!(n) 26!7=ACG Q& x!$ )*,{-158;?+DxG/ PL?  " *:-@/24;|= ?vAD N) w" L)Iy?!$&W(03c59<6@CFH J^"G$'x+J,Jt1J1J69;x?RJ@PJtE9JFuJ HK  Z$'+-E25 <&=@BPDG% G3aB"%,.035:?xC#G3D!G3 EtEExE E%t+E,E1N46}:=D+G; C y #&'x*C+C12t7C8JC<@EC| B=x> ?* "(d)/]1Q37 +!#6 + 24658;? F DuG/ \d  $S%'+ 24?59;@>v?B Db !a!9 (+".47p:7@H# S,!"% , 4d68=} D+G TVm$DFFiles16filesyntaxhasbeenextendedtoenableDirectoryheadingstoidentifybothlocations,e.g.,Directory[Indigo]Levin>SpyBuildReleaseAs[Indigo]Spy>ThereleaseautomationsoftwareusesthisinformationtomovethefilesunderthisheadingtotheindicatedplaceonthereleasedirectoryandtoupdateDFfiles(includingothersthatreferencetheoriginaldirectorywithReadOnly)accordingly.TheReleaseAsclauseisonlyappropriatefornon-ReadOnlyDirectoryheadings,andallDFfilesinvolvedinareleasemusthaveReleaseAsclausesinalloftheirnon-ReadOnlyDirectoryheadings.(7)ItishighlydesirabletohaveasingleDFfileidentifywhichofthefilesthatcompriseareleasecomponentareofinteresttotheclientofthecomponentandwhichfilesareofinteresttotheimplementor.SeveralsyntacticchangestoDFfilesandtheBringOvercommandlinetogetherprovidethefacilitiestodothis.Theyarebestexplainedbyanexample.ConsiderthefollowingfragmentofaDFfilefortheSpy:--Spy.dfExports[Ivy]SpyBuild>ReleaseAs[Indigo]Top>Spy.bcdSpyNub.bcdSpyClient.bcdDirectory[Ivy]SpyBuild>ReleaseAs[Indigo]Spy>Spy.dfSpyImplA.bcdSpyImplA.mesa...Imports[Indigo]CoPilot>CoPilot.dfOfNowsupposethatauseroftheSpywantstoretrievethepublicfilesoftheSpy.Theusertypes:BringOver/p[Ivy]SpyBuild>Spy.dfThe/pmeans"exportsonly"andwillcauseSpy.bcd,SpyNub.bcd,andSpyClient.bcdtoberetrieved(assumingtheyaren'talreadyonthelocaldisk).ThesearetheonlyfileswhoseDirectoryheadingsincludeExports.SinceCoPilot.dfisimportedbutnotexported,neitheritnoranyofitscontentsareretrieved.SupposeinsteadthattheimplementorwantstomakeachangetotheSpy.Hetypes:BringOver[Ivy]SpyBuild>Spy.dfSinceno/pappears,allfilesinSpy.dfwillberetrieved(unless,ofcourse,theyarealreadypresentincorrectversionsonthelocaldisk).ThisincludesCoPilot.dfand,sinceitscontentsareimported,BringOverwillrecuronthecontentsofthisDFfile.However(thenestedinstanceof)BringOverwillretrieveonlythefilesinCoPilot.dfthatappearunderExportsheadings.Thus,theimplementoroftheSpywillgetalloftheSpy'sfiles,butonlytheexportedportionsofCoPilot(whichisappropriatesincetheSpyisaclientofCoPilot).Tosummarize:ExportsinplaceofaDirectoryheadingidentifiesfilesthatareofinteresttotheclient,i.e.,thosefilesthatwillberetrievedbyx&QgrG~gt _,[- x%)_,&=_,t+R_,,_,1 27; A!xo\t\\x$T\%R\t*\+O\ X. }!$& .`0 36a9`=t@'EpG/ V@K;%').03 :0>YA-G/ U?;xU?U?t!U?"U? +x/U?/U?t5U?6U?:b<&? GR SxoSmStSS!$`&5(+v0237;Kx>vS?tStDSES Q\LKx Q Qyt$Q%iQ OuS1g5!$"K&4(+"054@58S;=> CE  MrOS%!%'k)148<>|@YE]G/ L& ) &`(F+ ..13:A=D+ J@ y!9$'=*5024;A C| HCmayoF\xoCtCCx"C#Ct)GC)C1Ae12Ae1> 12>1!!tC!!D!! zxzzt:zz "-#),A.49;=@iB4D   3 $8()-|.3N47\:=Duot emj `$'i)\/$45:=?D Z5:$'5, 3,6:9;@CD >p&A#%(+*.46;A@B J;Fu $'\+x/0t45;R?Aj BC- w$U'*-06<)> C^H# H  W#_%&+- x5 H6 Ht; H;j H<@fB.xCf HDz Ht  &;1 "')h+0.269<?AGTVm$/DFFiles17BringOver/p.ImportscausesBringOvertomodifyitsbehaviorwhenrecurringtoretrieveonlyfilesidentifiedasExports.If/pisomitted,allfilesareretrieved,exceptthat,onceBringOverenters"exportsonly"mode,allnestedretrievalsofDFfileswillbeexportsonly,regardlessofthesubsequentappearanceofIncludestatementsinnestedDFfiles.Thishasthenatural,intuitivebehavior.(8)Aseachimplementorcompletesacomponentneededforanupcomingrelease,he/shesendsamessagetothereleasemastercontainingthenameoftheDFfilethatdefinesthecomponent.Theimplementorthenmustleavethecomponent'sconstituentfilesundisturbeduntilthereleasemasternotifieshim/herthatthefileshavebeensafelymovedtothereleasedirectory.ThefollowingsummaryofqualifiersthatappearinDFfilesmaybehelpful:QualifierInterpretedbyIgnoredby----------------------------------------------ReadOnlySModel,VerifyDF,ReleaseToolBringOverExportsBringOverSModel,VerifyDF,ReleaseToolImportsBringOverSModel,VerifyDF,ReleaseToolIncludeBringOver,VerifyDF,ReleaseTool,SModelReleaseAsReleaseToolBringOver,VerifyDF,SModelGuidelinesforDateSpecificationsWithinaDFfilethatisintendedtoconformtotheguidelinesforrelease:(a)filesthatareanintrinsicpartofthecomponentdefinedbytheDFfile(i.e.,thoseappearingundernon-ReadOnlyDirectoryheadings)shouldspecifyexplicitdates,(b)fileswhichthecomponentimports(i.e.,thoseappearingunderReadOnlyDirectoryheadingsorthoseimportedDFfiles)shouldspecify"#"(orequivalently"~=").However,thereisanimportantexceptionto(b).Itoccasionallyhappensthatasinglepersonisconcurrentlydevelopingboththeimplementationofaninterfaceandaclientofthesameinterface.(Example:acollectionofBCDmanipulationfacilitiesisimportedbyboththecompilerandthebinder.EdSatterthwaiteistheimplementoroftheBCDfacilitiesaswellasthesetwoillustriousclients.WhendevelopinganewversionoftheBCDstuff,Edfrequentlyandrapidlyswitchesbetweenhisrolesasimplementor-of-BCD-packageandimplementor-of-client-of-BCD-package.)Insuchsituations,specifying"#"intheclient'sDFfilewillcausethewrongthingtohappen;itwastoaccommodatethissituationthatthe">"formofdatespecificationwasoriginallyaddedtoDFfiles.Implementorswhofindthemselvesinthispredicamentshoulduse">"insteadof"#"wherenecessary.ItshouldalsobeunderstoodthatwhentheReleaseToolisconstructingtheDFfilestobestoredonthereleasedirectory,itwilluniformlyreplace"#"and">"specificationsbyexplicitdates.Thisisimportantforarelease,sinceitisintendedtobeasnapshotofthestateofthefilesatsomeinstantoftime,andtheloosebindingimpliedby"#"and">"isinappropriate.Duringthedevelopmentprocess,however,these"dynamicallybound"datespecificationsareveryuseful,anditisunreasonableandunnecessarytoexpectpeopletoperformthemanualtranslationtospecificdateswhenreleasetimearrives.How,then,doesthistransformationofdatesfitinwiththeongoingdevelopmentprocess?Whenanimplementorfindsitnecessarytochangeacomponentfollowingarelease,he/shehasthechoiceofstartingfromtheDFfileonthereleasedirectoryorfromtheoneusedtobuildthecomponentinpreparationfortherelease.(Ofcourse,thelattermayvalidlydisappearaftertherelease;onlytheDFfileonthereleasedirectoryisguaranteedtoberetained.)Intheformercase,themaintainerwillhavetoeditthereleasedDFfiletomakeitconvenientforsubsequentdevelopment,e.g.,byadjustingDirectoryheadingstoreferenceworkingdirectoriesandbyreplacingspecificdateswith"#"or">".Inthelatterx&QgrG~gt _/x_/)_/t_/w_/ 9'(-/59l?ASFu ] xN]5]t](] !'?)+.? 4N8;>E [ | %d&)Y,.0l58c >@.Bf Z9 xZ9Z9twZ9Z9!1"'/)-035r:}? Wd{ #N$}+0z24;%@DHe V  %(+-/2l47 F To a!I )N 0V3D :>9@E R3!"g%).*/286 N_  #c'),#/24 KK .(K- Ii Ii1Iix FtF" 1Fx EFtEF1EF7g= x CtC1C7g= x AtA  # +x @Pt@P 1@P 8?x = G t 9H V%') 0j2 77P^!#&-c2479AC-  6 lV7x 2"/#e)#*-T02V479a=ACNF G I'!$o% /836[ >C  n  &$(p+w/235C =@G G <f! ')z.d15:(=M } V^ "&6( )- /5 =MCkG  ;Yo$B%,3%4y9>=@CgG .){>#)+/|2 48P:-=@G  W "%<(+0s69` 'r) 0 9;=xCf 8Dz 8t OI #G%'-26O9f<>iACE TVm$NDFFiles18case,theDFfileisalready(still)suitablefordevelopmentwork.Ifaparticularcomponentisfrequentlychangedandusuallybythesameperson,thelatterapproachwilllikelybefollowed.Ifthecomponentisinfrequentlymodifiedorifmanydifferentpeoplehaveoccasiontochangeit,theformerapproachwillbelesserror-prone.Thechoiceshouldbemadeonapackage-by-packagebasis.CompleteSyntaxDescriptionofDFFilesDirectory[host]Exports[host]ReadOnly[host]AnyoftheabovecanbefollowedbyReleaseAs[host]orCameFrom[host].Exports,ReadOnly,andDirectorycanbecombinedononeline.(PublicisasynonymforExports.)filenameMultiplelinesconsistingoffilenamesand(optionally)createdatesmayfollowExports,ReadOnly,andDirectoryheadings.filenamemaybeprecededby"+","@",and/or{PublicOnly}.Thefilenamemayhaveadirectorypath(butnohost),ashortfilename,possiblyfollowedbyaversionnumber.Thecanhavetheusualform,"~=","#",">",orbeomitted.Include[host]file.df!versionOfTheIncludestatementmaybefollowedbyaReleaseAs[host]orCameFrom[host]statement.TheOfisoptional.Imports[host]file.df!versionOfUsing[listoffilenames,separatedbycommas]TheImportscanbeprecededbyExports,theOfandUsing[]canbeomitted,andtheUsingclausemaybeprecededbyaCameFromstatement.SemanticsofDFFilesAllDFprogramsinthissetuseaconsistentviewofwhatalineinaDFfilemeans.Insummary,hereisalistofwaystospecifyfilesinaDFfile:filename!versAnyfileontheremotedirectorywithcreatetime.Ifnecessary,DfprogramslikeBringOverwillenumeratetheremoteserverlookingforsuchafile.Theversionnumbervers(ifpresent)isusedasahint.filename!vers>filename!vers#filename!vers~=Thehighestversion(!H).If~=or#isgiven,aprogramlikeBringOverwillretrievefilenamefromtheremotedirectoryifitscreatetimediffersfromthatofthefileonthelocaldisk.Theversionnumbervers(ifpresent)isusedasahint.>islike~=exceptthatthefilewillberetrievedonlyifitscreatetimeisnewer.filename!versWhennodateispresent,andaversion#isgiven,thenthisreferstothefilefilenameontheremoteserverwithversionnumber!vers.filenamex&QgrG~gt _' '{Y #%G -l13%4D :nAB ]_5#%)/2<57>}@Bg [ I %/),2I38:!M<?M<y?M<@uM<tBRM<CM<xDM<DM<tHM<xoKtVK3KxKKtKK!#)+.1x2)K3Kt6mK6K79>xAKBKtEKF K| IxBI| IxItoG,( "(+ 38 <?sxDG,DG,tHG,xoEtVEExEEt EE! Ey'E(Et-E.E03D9;?CGoCx CCtCrCyCCt C"C#'(<.14 69:>RDBoB6!*b7#Zy&@B6&B6t*B6+9B6-7026:r?&BEGo@x >t>y>tP>>yc>>t>y>x!>"8>y#*>#>to<&xD<&<&t<&<&O P"=')x*<&+<&t1<&y1<&t4U<&4<&y5h<&6<&t7<&9'<&x:<&;<&tA<&yBW<&tD<&E<&yE<&F}<&tHZ<&o: xY:y:yk::t: :!'x 8t8y%8t88y8K8t(8y8x!O8"o8y#b8$8x6y66 %',to4nxI4n4nt_4n4n!x#4n$4nt(`4n)?4nx+4n,4ny-4n.d4nt24n24nx44n54nt84n94n:=?DwG0xo2te22}r"Z$Vx%2&s2t,2-2s /xt ,* >*F %:(t*,-.1h34?692>Q@ Ft * X x "p| ( m(t %j  #'y+ %+%t.%0+%1 8 :$@1B #nHz!&(,>-}038y=#>#t@#AJ#BH# ">|  m H mH  mt Rz]"%$&'+,25g<:?yDRDRt <!%>(-035e7:}<?1BF ly*tI ^!$&'+g,-03|7:<??AC \(+|  t f $|&O'+.1D568y;Ff;ft@fAbfBD yB  t | CTVm$DFFiles19Whennodateandnoversionnumberispresent,thenitistreatedlike~=.(ExceptbySModel,whichfillsinthelocalcreatetime.)ThecasesforDFfilesthatareincludedorimportedareexactlyanalogous.Forexample,Directory[Indigo]Top>Spy.Bcd!21-Jan-8211:11:11Referstoafilecreatedon1Jan82.Version#isahint.Spy.Bcd!3~=Referstothehighestversiononthedirectory.Theversion#isignored.Spy.Bcd!4Referstoversion4.Spy.BcdReferstothehighestversiononthedirectory.x&QgrG~gt _'%&+/0269}<AD  ]gt [ 7t"$y*l,1\ X x VtV9VoS/Sy1Q`9 8"+#_%(+-"/0s1toN/Ny1L"`Q#%y' -0}568btoIy1G,`toDy1B6`Q#%y' TVm$ TIMESROMAN TIMESROMAN TIMESROMAN TIMESROMAN TIMESROMAN HELVETICALOGOGACHA TIMESROMAN TIMESROMANY HELVETICA HELVETICA HELVETICA    ( 4 "> PI #R [ d m v R ?Aj/ DFFiles.tioga 8-Jun-83 18:40:30