TheEVALServer--APUPNetworkInter-CommunicationsFacilityforInterlisp-DFile:<Lispusers>EvalServer.pressRevised:Feb21,1983andFeb17,1984,byJonLWhiteThefileEVALSERVER.DCOMcontainsroutinestofacilitatecommunication,overtheEtherNet,betweentwoormoreD-machinesrunningInterlisp-D.Insimpleusage,oneormoreD-machines(Dolphin,Dorado,orDandelion)arestartedupwith"servers"running,anda"client"oftheservicemerelyrequests(viatheethernet)thataserverEVALuatesomeform,andreturntheresults.Ausermaydirecthis"remote"evaluationrequesttoaspecificserver,ormaybroadcastitonhisdirectly-connectednetwork;inthelattercase,atmostoneoftheserverswillbegiventhego-aheadtoperformtheservice,butpossiblyinthefuturetherewillbeanextensiontopermitresultsfrommanydiverseserversofabroadcastrequest.(Likelyarequestforservicewillbecoupledwithafunctiontobeappliedtoanyresultsthatcomeback).Startingupthe"server"sideThefunctioncall(EVALSERVER<duration.minutes><clientslst><gaggedclientslst>)willinitiateabackgroundprocessnamed"EvalServer.Listening"Allargumentsareoptional,andhavethefollowingmeaning:<duration.minutes>--ifnon-null,willruntheserviceforonlythenumberofminutesspecified;otherwiseitwillrunindefinitely.<clientslst>--alistofetherhostnames(ornumbers)whomtheserveriswillingtoservice:ifTisonthislist,itwillserviceanyrequestaddressedtothisspecifichost(called,"flirtatious"mode),ifNILisonthelist,itwillserviceanyrequestbroadcastontheconnectednetwork(called,"promiscuous"mode).Defaultforthislist,NIL,isconvertedintotheunionof"flirtatious"and"promiscuous"modes.<gaggedclientslst>--alistofhostsforwhomservicewillnotbeperformed;NILonthislistmeansnoserviceforbroadcastrequests;Tonthislistmeansnoservicefor"myself"(i.e.attemptsbysomeprocessrunningconcurrentlyontheserverhosttosenda"remote"evaluationrequesttothesamehost,willberejected).Inanycase,theglobalvariablesEvalServerClientHostsandEvalServerGaggedHostswillbedynamicallyconsultedforthesameinformation;thisissothatyoumaytailortheclientscreeningprocesswhiletheserverisrunning.The"gags"alwayshaveprecedenceoverthe"hosts"lists.Whiletheserverisrunning,acallto(EVALSERVER.ABORT<transaction><guiltyparty><errorflg>)willstopacurrentlyrunningprocess,suchasonethatisinaloop,orthatis"poaching"moretimeofftheserverthanisdesireable;seebelowunderEVALSERVER.STATUSforadefinitionoftheidentificationterms.<transaction>maybeeitheraninteger,the"identification"numberofsomeservice,oraconsoftheidnumberandthehost;the"cons"formmayberequirediftherearetwoormoreservices,fromseparaterequestinghosts,withco-incidentallythesameidnumber.<guiltyparty>permitsrecordingwhyaservicewasstopped;itisoptional,andthedefaultrecordingis"AbortedLocallybyError/Quit".<errorflg>isoptional,andifnon-NIL,willcauseanERRORtooccurifthereisnotransactionasspecifiedby<transaction>orofthetransactionseemstobewedged.��pÓ
ÍÔc/Ó
ÚÔb6qÓ
¯Ôb6Ó
ÚÔ`fiÓNÓÅÓbÓÁ�ÓïÓÒÓ&©Ó8LÓ?€ÓBfÔ`fiÓ
ÚÔ_ÜÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓbÓ9ÓÓÁÓæÓïÓlÓCÓÓÒÓ »Ó!üÓ"v
Ó+πÔ_ÜÓ
ÚÔ^.Ó
¯Ô^.Ó
ÚÔ\÷ÓËÓfiÓ+ëÔ\÷Ó
ÚÔ[~ÓÅÓfiÓ:ÓñÓ…Ó#%Ó&ÅÓ)›Ó.ÁÓ1lÓ5üÓ9ÿÔ[~Ó
ÚÔZ&Ó
¯ÔZ&Ó
ÚÔXŒÓËÓDÓwÓ$ÁÓ,vÓ4Ó6ä	Ó>ˆÔXŒÓ
ÚÔWv
ÓãÓæÓÓ'ÄÓ.8Ó1îÓ4Ó8L	Ó@∏ÔWvÓ
ÚÔVÓ™ÓïÓlÓÒÓ%“Ó+≥Ó/Ó1îÓ5«	Ó>3ÔVÓ
ÚÔT∆ÓXÓÓï	Ó%“Ó).Ó/ÊÓ2kÓ6ûÓ>3ÔT∆Ó
ÚÔSnÓÅÓ›�ÓãÓÓ!üÓ$˚Ó+≥Ó,äÓ2kÓ9˙Ó>-Ó@∏ÔSnÓ
ÚÔRÓXÓã�Ó9ÓÓ&©Ó*‹Ó/ÊÓ3BÓ9#Ó<ÓC=ÔRÓ
ÚÔPæÓ…�Ó
wÓ™ÓÓÁÓCÓ%“	Ó/Ó5«Ó8L�Ó9˙Ó@∏ÔPæÓ
ÚÔOfÓ™Ó/ÓãÓÒÓ"vÓ$˚Ó(WÓ8LÓ?€ÓAèÔOfÓ
ÚÔNÓNÓ/Ó9ÓæÓÒÓ#MÓ%“Ó).Ó/ÊÓ4Ó6ûÓ;®Ó>3ÔNÓ
ÚÔL∂ÓÅÓÓæÓÓ&©Ó*Ó1îÓ4Ó7uÓ=VÓAèÔL∂Ó
ÚÔK^Ó%Ó™Ó/ÓïÓÓ$˚Ó+≥Ó/ÊÓ4Ó:—ÓAâÓDÓDÔK^Ó
ÚÔJ�Ó†ÓÓïÓlÓ$$�Ó%“Ó,äÓ/ÊÓ6ûÓ:—Ó=VÓDÓDÔJÓ
ÚÔHÆÓ%�Ó”ÓbÓÁÓlÓ$$Ó&©Ó*Ó0ΩÓ4Ó9#Ó?Ó?€Ó?·ÔHÆÓ
ÚÔGVÓ
¯ÔGVÓ
ÚÔE˛Ó
¯ÔE˛Ó
ÚÔD¶Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓbÓ9ÓÓÁÓ"vÓ$˚Ó(WÓ/ÊÓ3HÔD¶Ó
ÚÔCNÓ
¯ÔCNÓ
ÚÔAˆÓNÓ›ÓÓÔAˆÓ
ÚÔ@ûÓ…Ó†Ó
wÓN
ÓbÓ(WÓ3BÓC=Ô@ûÓ
ÚÔ?FÓ%Ó¥�Ób	Ó!üÓ(WÓ-aÓ.8Ó@∏Ô?FÓ
ÚÔ=ÓÓNÓ¥ÓÓ"vÓ%“Ó*Ó-aÓ5«Ó<ÖÔ=ÓÓ
ÚÔ<ñÓ…Ó†ÓïÓlÓÒÓ »Ó#MÓ+≥Ó/ÊÓ3BÓ6ûÓ=VÓ?·Ô<ñÓ
ÚÔ;>Ó…Ó†Ó
wÓNÓÅÓ›ÓæÓCÓ$˚	Ó.8Ó6ûÓ9#Ó=VÓ?·Ô;>Ó
ÚÔ9ÊÓ…Ó†Ó
wÓNÓ?Ô9ÊÓ
ÚÔ8éÓ…Ó†Óã�Ó9�ÓÁÓæ�ÓlÓ!üÓ$$Ó).Ó-aÓ2kÓ5«Ó=VÓ@∏Ô8éÓ
ÚÔ76Ó…Ó†Ó
wÓNÓ™ÓãÓÓ »Ó#MÓ*‹Ó+≥Ó.8�Ó/ÊÓ2kÓ4Ó9#Ó>-Ó?·Ô76Ó
ÚÔ5fiÓ…Ó†Ó
wÓNÓÅÓ9ÓïÓ#MÓ+≥Ó.8Ó2kÓ9˙Ó=\Ô5fiÓ
ÚÔ4ÜÓ…Ó†Ó
wÓNÓ›Ó!üÓ'ÄÓ*Ó-aÓ/ÊÓ2kÓ5«Ó:—Ó=VÓ@∏Ô4ÜÓ
ÚÔ3.Ó…Ó†Ó
wÓNÓÓbÓÓ'ÄÓ*Ó-aÓ5«Ó<ÓC=Ô3.Ó
ÚÔ1÷Ó…Ó†Ó
wÓNÓÓÒÓ »Ó!üÓ(WÓ+≥Ó/ÊÓ4Ó9#Ó;®ÓC=Ô1÷Ó
ÚÔ0~Ó…Ó†Ó
wÓNÓÅÓ›ÓÁÓlÓ).Ó,äÓ8LÓ=\Ô0~Ó
ÚÔ/&Ó…Ó†ÓïÓ�Ó »Ó$˚Ó'ÄÓ,äÓ/ÊÓ4Ó:—Ó?ÓAèÔ/&Ó
ÚÔ-ŒÓ…Ó†Ó
wÓNÓ”	ÓÓlÓÒÓ$$Ó(WÓ-aÓ/ÊÓ6ûÓ9˙ÓAèÔ-ŒÓ
ÚÔ,vÓ…Ó†Ó
wÓNÓ¥�ÓbÓÁÓÓ#MÓ(WÓ*‹Ó1îÓ4Ó<Ó@∏Ô,vÓ
ÚÔ+Ó…Ó†Ó
wÓNÓ›ÓbÓïÓ#MÓ*Ó4Ó7uÓ:—Ó?·Ô+Ó
ÚÔ)∆Ó…Ó†Ó
wÓNÓÅÓÓ9�ÓÁÓ"v	Ó+≥Ó2kÓ4Ó8LÓ<Ó@∏Ô)∆Ó
ÚÔ(nÓ…Ó†Ó
wÓNÓÅÓ	ÓrÔ(nÓ
ÚÔ'Ó
wÓ”Ó›Ó9ÓÓ'ÄÓ9˙Ó<ÖÔ'Ó
ÚÔ%æÓlÓ!üÓ$$
Ó.8Ó6ûÓ9˙Ó=VÓ@∏Ô%æÓ
ÚÔ$fÓ›ÓÓïÓÓ#MÓ&©Ó*Ó/ÊÓ3BÓ9#Ó@∏Ô$fÓ
ÚÔ#Ó™Ó¥ÓÓÒÓ"vÓ*Ó*‹Ó.8Ó4Ó9˙Ó=\Ô#Ó
ÚÔ!∂	Ó/ÓbÓæÓ"vÓ'ÜÔ!∂Ó
ÚÔ ^Ó
¯Ô ^Ó
ÚÔÓ
¯ÔÓ
ÚÔÆÓ¸ÓXÓ9ÓæÓ#M�Ó$˚Ó).Ó*‚ÔÆÓ
ÚÔVÓ…Ó†ÓæÓ'ÄÓ3B
Ó<ÖÔVÓ
ÚÔ˛Ó%ÓX�ÓÓlÓ$$Ó+≥Ó/ÊÓ2kÓ5«Ó9˙Ó<Ó?�Ó?·Ô˛Ó
ÚÔ¶Ó¸ÓÅÓ¥Ó9	Ó"vÓ&©Ó*‹Ó.8Ó1îÓ7uÓ;®Ó=\Ô¶Ó
ÚÔN
ÓÓbÓlÓ"vÓ1îÓ4�Ó6û	Ó?
ÔNÓ
ÚÔˆÓ
wÓ”
ÓlÓ"|ÔˆÓ
ÚÔûÓ…Ó†ÓbÓæÓCÓ$$Ó&©Ó.8Ó1îÓ?
ÔûÓ
ÚÔFÓ…Ó†Ó
wÓNÓ/Ó¥ÓÁÓ"vÓ$˚�Ó&©Ó*‹Ó-aÓ0ΩÓ3BÓ9#Ó<Ó?
ÔFÓ
ÚÔÓÓ…Ó†Ó
wÓNÓXÓ¥ÓïÓ »Ó$$Ó&©Ó.8Ó0ΩÓ5«Ó9#Ó<Ó?ÓBfÔÓÓ
ÚÔñÓ…Ó†Ó
wÓNÓ¥ÓÁÓ"v	Ó+≥Ó1îÓ5«ÓBfÔñÓ
ÚÔ>Ó…Ó†Ó
wÓNÓ™Ó›ÓbÓIÔ>Ó
ÚÔÊÓ…Ó†ÓbÓÓ'ÄÓ*‹�Ó,äÓ3BÓ6ûÓ>-Ó@≤ÓBfÔÊÓ
ÚÔ
éÓ…Ó†Ó
wÓNÓ¥ÓÓlÓ$$Ó,äÓ/Ó6ûÓ=VÓ?
Ô
éÓ
ÚÔ6Ó…Ó†Ó
wÓNÓ9Ó?Ô6Ó
ÚÔ
fiÓ…Ó†	Ó›ÓbÓ »Ó$$Ó&©Ó.8Ó2kÓ7uÓ9˙Ó?Ó@∏Ô
fiÓ
ÚÔ	ÜÓ…Ó†Ó
wÓNÓXÓ›ÓÁÓlÓÒ
Ó*Ó,äÓ4Ó7uÓBfÔ	ÜÓ
ÚÔ.Ó…Ó†Ó
wÓNÓ”ÓXÓ¥
Ó »Ó%“Ó(WÓ*‹Ó0√Ô.�������
–����
Íq?Ä[«]��������������������������������������������������������������������������������������������������������������������Whiletheserverisrunning,acall(EVALSERVER.STATUS<wherependingflg><id>)willreturnalistofinformationassociatedwiththestateofcurrently-runningservices,already-completedservices,andrequestsstillintheinputqueue.A"service"isidentifiedbyaconsofatransactionnumberandahostnumber;thetransactionnumberisinfactthepacketidinthePUPusedtocommunicateovertheEtherNet(asimilarideawilleventuallybeusedwhentheserverisimplementedinNSprotocols).<wherependingflg>--selectsoneormoreoftheinformationliststobeoutput,asfollows:DONE(orCOMPLETEDorFINISHED)addsintheremnantsofthelistofcompletedservices(whichlistispruneddownfromtimetotimebythe"cleanup"processmentionedabove.Aglobalvariable,\ES.PURGEINTERVAL.SECS,controlsthefrequencyofthe"cleanup"actions,andalsothemaximumtimeforwhicholdcompletedservicerecordsarekept);RUNNING(orCURRENT)addsinthedataforcurrentlyexecutingevaluationsrequests;INPUT(orINPUTQUEUE)addsinthedataforPUP'sstillwaitingforservice.TactsliketheunionofDONEandRUNNING;ALLactslikeaunionofallthreeofDONE,RUNNING,andINPUT;NIL,andnoargument,defaulttosameasALL.<id>--ifnon-null,thenonlyrecordswiththatidentificationnumberwillbeincludedintheresult.Similarly,acall(EVALSERVER.STATUS.WINDOW<optional-region>)willputupawindowwhichcontinuouslymonitorsanddisplaystheaboveinformation.Themiddlemousebuttonisactiveinthisstatuswindowtodeletethevariousitems;deletingaRUNNINGorINPUTrequestisthesameascallingEVALSERVER.ABORTonit.Atracefacilitymaybeenabled/disabledbyafunctioncall:(EVALSERVER.TRACE<flg><region>)where<flg>,ifnon-null,enablestraceing;disablesifnull.<region>,ifnon-null,shouldbea"region"andmarksaregionforthetracewindow;ifnull,theuserispromptedto"mouse"aregion.Boththeleftandmidlemousebuttonsare"active"inthetracewindow:LEFTtogglesa"flg"whichturnstraceingonoroff,andMIDDLEdoesaquickclearofthetracewindow.TheClient:UsingaremoteEvalServerThebasicuseofEVALataremotehostisinvokedby:(REMOTEVAL<form><serverhost><multiple.responses?>)TheS-expression<form>isshippedviatheethernettothehost<serverhost>,whereitisEVALuatedbyanEvalServerandshippedbackIf<serverhost>isNILor0,thentherequestisnotdirectedtoapartricularserver,butismerelybroadcastonthenetwork;ifanyserveriswillingtoservicesucharequest,thenitwill"handshake"withtherequestoranddoso.Iftheremoteevaluationcausesanerror,thenthaterrorwillbe"broughtback"locally,andanerrorwillresultwhichwillincorporatetheremotemessage(ofcourse,thestackandenvironmentoftheremotehostisnot"broughtback").AcurrentlimitationisthatthePRIN4formof<form>,andthatoftheresult,mustfitwithinonePUP--about530bytes.���Ó
ÍÔc8Ó
ÚÔb6qÓ
¯Ôb6Ó
ÚÔ`fiÓ
¯Ô`fiÓ
ÚÔ_ÜÓ¸ÓXÓ9ÓæÓ#M�Ó$˚Ó(]Ô_ÜÓ
ÚÔ^.Ó…Ó†ÓïÓ+≥Ó/ÏÔ^.Ó
ÚÔ\÷Ó%Ó�Ó¥ÓÁÓl
Ó'Ä	Ó0ΩÓ4Ó8LÓ=VÓ?
Ô\÷Ó
ÚÔ[~ÓÓ"vÓ1îÓ9˙Ó<ÖÔ[~Ó
ÚÔZ&ÓÅÓãÓÓlÓ"vÓ(WÓ).�Ó*‹Ó3BÓ5«	Ó?ÓAâ�ÓBfÔZ&Ó
ÚÔXŒÓ%Ó™�ÓX
ÓlÓ#MÓ&©�Ó(WÓ,äÓ3BÓ4Ó7u
Ó@∏ÔXŒÓ
ÚÔWvÓ”ÓXÓ›ÓÓlÓCÓ$$Ó&©Ó).Ó,äÓ/ÊÓ4Ó6û
Ó?·ÔWvÓ
ÚÔVÓ%ÓÅÓÓïÓ#MÓ'ÄÓ+≥	Ó4Ó7uÓ;®Ó<Ó@≤ÓC=ÔVÓ
ÚÔT∆Ó”ÓX
ÓlÓÒÓ"v
Ó+πÔT∆Ó
ÚÔSnÓ…Ó†Ó
wÓïÓÓ%“Ó).Ó+≥Ó/ÊÓ2kÓ5«
Ó?
ÔSnÓ
ÚÔRÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó›ÓbÓÁÓ!üÓ$$Ó+≥Ó+πÔRÓ
ÚÔPæÓ…Ó†Ó
wÓNÓ%Ó¸Ó”ÓÓbÓ »Ó#MÓ+≥Ó/ÊÓ2kÓ5«Ó=VÓ?€ÓBfÔPæÓ
ÚÔOfÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓ¥Ó9Ó!üÓ).Ó/Ó3BÓ5«Ó;®Ó?€ÓC=ÔOfÓ
ÚÔNÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓ¥Ó9ÓlÓÒÓ#MÓ+≥Ó2kÓ:—Ó@≤ÓAâÓB`�ÓC=ÔNÓ
ÚÔL∂Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓbÓ »Ó4Ó<Ó?
ÔL∂Ó
ÚÔK^Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓÁÓlÓ »Ó).Ó0ΩÓ4Ó8LÓ;®ÓAèÔK^Ó
ÚÔJÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓ¥ÓÓÓ"vÓ*‹Ó1îÓ8LÓ;®ÓAâÓAèÔJÓ
ÚÔHÆÓ…Ó†Ó
wÓNÓ%Ó¸Ó”ÓãÓÁÓ"vÓ&©Ó).Ó,äÓ0ΩÓ4Ó<ÓDÔHÆÓ
ÚÔGVÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅ
ÓïÓ$˚Ó%ÔGVÓ
ÚÔE˛Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó›Ó9
Ó#MÓ'ÄÓ*Ó-aÓ1îÓ4Ó9˙Ó?ÓDÎÔE˛Ó
ÚÔD¶Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓ›ÓlÓCÓÓ ÔD¶Ó
ÚÔCNÓ…Ó†Ó
wÓNÓ%Ó¸Ó”�ÓÅÓXÓãÓæÓÓ$$Ó&©Ó*‹Ó.8Ó5«Ó5ÕÔCNÓ
ÚÔAˆÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó/ÓbÓï�ÓCÓ#MÓ%“Ó).Ó.8Ó0ΩÓ5«Ó=VÓ?·ÔAˆÓ
ÚÔ@ûÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓbÓ9Ó?Ô@ûÓ
ÚÔ?FÓ…Ó†Ó
wÓNÓ%Ó¸Ó”ÓÓbÓÁÓ#MÓ$$Ó*‹Ó-aÓ1îÓ4Ó7{Ô?FÓ
ÚÔ=ÓÓ…Ó†Ó
wÓ™Ó/ÓÓãÓÒÓ$$Ó(WÓ/Ó3BÓ6§Ô=ÓÓ
ÚÔ<ñÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™
ÓCÓ$$Ó(WÓ*‹Ó2kÓ4Ó8LÓ?Ó?
Ô<ñÓ
ÚÔ;>	Ó/�Ó›Ó?Ô;>Ó
ÚÔ9ÊÓ…Ó†Ó"vÓ1öÔ9ÊÓ
ÚÔ8éÓ%ÓÅÓ�Ó¥ÓïÓ!üÓ,äÓ4Ó7uÓ>3Ô8éÓ
ÚÔ76ÓNÓXÓCÓÓÒÓ#MÓ).Ó.8Ó4Ó6ûÓ<Ó?ÓBfÔ76Ó
ÚÔ5fiÓ”Ó¥Ó9ÓÓ"vÓ).Ó/Ó/ÊÓ7u�Ó9#Ó?€ÓAèÔ5fiÓ
ÚÔ4ÜÓ¸Ó¥Ó9ÓïÓ »Ó#MÓ*Ó8LÓ:—Ó=\Ô4ÜÓ
ÚÔ3.Ó
¯Ô3.Ó
ÚÔ1÷Ó
¯Ô1÷Ó
ÚÔ0~�Ó†Ó™Ó9ÓïÓÓ-aÓ/Ê�Ó1îÓ9#Ó=\Ô0~Ó
ÚÔ/&Ó…Ó†ÓæÓ »Ó(]Ô/&Ó
ÚÔ-ŒÓ+Ô-ŒÓ
ÚÔ,vÓ…Ó†ÓÅÓÓlÓ$$Ó,äÓ4Ó6ûÓ:◊Ô,vÓ
ÚÔ+Ó…Ó†ÓÓãÓÒÓ%“Ó(W�Ó*Ó1îÓ4Ó9˙�Ó;®Ó@∏Ô+Ó
ÚÔ)∆Ó…Ó†Ó
wÓNÓ™ÓÓÓ »Ó#MÓ(WÓ+≥Ó/ÊÓ2kÓ9˙Ó<ÓBfÔ)∆Ó
ÚÔ(nÓ…Ó†Ó
wÓN�Ó¸Ó„Ô(nÓ
ÚÔ'Ó%ÓÅÓ¥Ó�ÓæÓÒÓ$˚Ó+≥Ó/Ó6ûÓ9#Ó<Ó@∏Ô'Ó
ÚÔ%æÓ™Ó›Óï�ÓCÓ#MÓ(WÓ-aÓ4Ó7uÓ9˙Ó>-Ó@∏Ô%æÓ
ÚÔ$fÓ”ÓÓ›�ÓãÓïÓ!üÓ$$Ó'ÄÓ,äÓ2qÔ$fÓ
ÚÔ#Ó
¯Ô#Ó
ÚÔ!∂Ó
¯Ô!∂Ó
ÚÔ ^Ó
¯Ô ^Ó
ÚÔÓ
¯ÔÓ
ÚÔÆÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓÓ »Ó%“�Ó'ÄÓ-aÓ1îÓ6§ÔÆÓ
ÚÔVÓ
¯ÔVÓ
ÚÔ˛Ó
¯Ô˛Ó
ÚÔ¶ÓNÓXÓ¥Ó9ÓlÓÒ�Ó!üÓ'ÄÓ+≥Ó.8Ó4Ó7{Ô¶Ó
ÚÔNÓ…Ó†	Ó›ÓæÓ&©Ó9)ÔNÓ
ÚÔˆÓNÓ9ÓÓ!üÓ(WÓ+≥Ó/Ó4Ó7uÓ9˙Ó=VÓ@∏ÔˆÓ
ÚÔûÓ¥ÓæÓCÓ »Ó).Ó+≥Ó.8	Ó7uÓ:—Ó@∏ÔûÓ
ÚÔFÓ%Ó¸ÓÅÓlÓÒÓ#MÓ%“Ó(WÓ,äÓ/ÊÓ6ûÓ9#Ó<ÓC=ÔFÓ
ÚÔÓÓ
w�Ó%
Ó9ÓÒÓ#MÓ%“Ó+≥Ó4Ó6ûÓ9˙ÓAâÓC=ÔÓÓ
ÚÔñÓNÓ/Ó¥ÓlÓÒÓ&©Ó*‹�Ó,äÓ4Ó8LÓ:—Ó>3ÔñÓ
ÚÔ>
ÓÓ9ÓïÓ$˚Ó(WÓ*‹Ó.8Ó/Ó1îÓ4Ó:—	ÓC=Ô>Ó
ÚÔÊÓ”ÓXÓ9ÓlÓ!üÓ&©Ó*‹Ó-aÓ4Ó9˙Ó@∏ÔÊÓ
ÚÔ
éÓNÓ”Ó›ÓÓÒÓ$˚Ó).
Ó3BÓ6ûÓ<ÓBfÔ
éÓ
ÚÔ6ÓNÓÓbÓlÓ »
Ó*‹Ó-aÓ0ΩÓ6ûÓ:—Ó=VÓ?·Ô6Ó
ÚÔ
fiÓÅÓ9Ó�ÓæÓ"v	Ó+≥Ó.8Ó2kÓ5«Ó:—Ó?ÓAâÓHAÓHGÔ
fiÓ
ÚÔ	ÜÓNÓÅÓÓbÓÓ#MÓ&©Ó,äÓ/ÊÓ3BÓ5«Ó:—Ó>-ÓDÓDÂÓDÎÔ	ÜÓ
ÚÔ.ÓËÓÓÔ.ˇ�������	—����
Íq?Ä[«k������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Theargument<multiple.responses?>cancurrentlybeonlyeither0or1(NILdefaultsto1);if0,thentheREMOTEVALfunctionwillnotwaitaroundfortheresultfromtheremotehost,butwillreturnassoonastherehasbeenanacknowledgementthattheserviceisbeingperformed;itsvalueinthiscasewillbetheidentifiernumberuseforthattransaction.Thisisespeciallyusefulwheninvokingalengthytaskwhichisdoneprimarilyfor"effect"ratherthanvalue.Alsoitmaybeusefulewhen"broadcasting"someevaluationwhichwilllaterdirectlysendanotebacktotheinitiator;thusthereisnoneedtogothroughtheseveral"handshake"packets,andgeneral"broadcast"time-consumingprotocols.Also,(REMOTEAPPLY<fun><arglist><serverhost><multiple.responses?>)invokesasimilarremoteuseofAPPLY(asopposedtoEVAL)Perhapsonemaywanttoseehowsomeserverisprogressingonitstasks:(REMOTEVAL'(EVALSERVER.STATUS'ALL)<server>)willgetthelistdocumentedabove.Ifonedecidestocancelsomerequest,then(REMOTEABORT<transaction><serverhost>)providesaconveniententryintotheEVALSERVER.ABORTfunctionattheremotehost.<transaction>iseitheranidnumber,oracons,asdescribedaboveforEVALSERVER.ABORT;however,ifonlytheidnumberisgiven,itiscons'dwiththelocalhostnumberbeforesendingtotheserver.Ifalengthycomputationisinitiatedonaserverwhichisnotrunningmultipleprocesses,itwouldbeagoodideaforittochecktheinputqueuefromtimetotime,sayby(EVALSERVER.STATUS'INPUT),andexplicitycall(EVALSERVER1)whentherearewaitingrequests;foritmaybethatoneofthesewaitingrequestsisanabortforthecurrentprocess.Considertheexamplebelow,whereeachtimethroughthePROGloop(whichisbeingsentforremoteevaluation)thereisacheckforpossibleinputs,andashortcalltoEVALSERVERfromthatcodeitself,toinsurethatsubsequentcallswillhaveachancetorun.74_(REMOTEVAL'(PROG((CNT0))LP(DISMISS10000)(addCNT1)(AND(EVALSERVER.STATUS(QUOTEINPUT))(EVALSERVER1))(GOLP))'PLAZA0)5575_(REMOTEVAL'(EVALSERVER.STATUS'ALL)'PLAZA)((Completed.Transactions:((ID#.ClientHost:54BuickoSaurus)(HowStop.#Seconds:COMPLETED127)))(CurrentlyRunning.Transactions:((ID#.ClientHost:56BuickoSaurus)(Process:RUNNING))((ID#.ClientHost:55BuickoSaurus)(Process:RUNNING))))77_(REMOTEABORT55'PLAZA)ABORTEDNotethatthetransactionidforthis"lengthy"processwasreturnedbythecalltoREMOTEVAL,sincewerequestednowaitingaroundfortheresult(thirdargof0).ThenwhentheremoteEVALSERVER.STATUSwasdone,boththattransaction,andtheone��Ó
ÍÔc8Ó
ÚÔb6qÓNÓ›Ó(WÓ+≥Ó4Ó6ûÓ:—Ó@≤�ÓAèÔb6Ó
ÚÔ`fiÓ
w�Ó%ÓXÓÁÓlÓ »Ó#MÓ%“Ó*Ó-aÓ5«Ó=VÓ@∏Ô`fiÓ
ÚÔ_ÜÓNÓÅÓbÓæÓÓ$˚Ó).Ó,äÓ2kÓ7uÓ:—Ó>3Ô_ÜÓ
ÚÔ^.Ó”ÓXÓãÓÓÓ"vÓ&©Ó).Ó6ûÓ:—Ó=\Ô^.Ó
ÚÔ\÷Ó™Ó/Ó9	Ó"vÓ%“Ó*‹Ó-aÓ1îÓ5«Ó9˙Ó<Ó?
Ô\÷Ó
ÚÔ[~	Ó/ÓÓlÓ »Ó$˚Ó/ÊÓ0ΩÓ4Ó7u	Ó?·Ô[~Ó
ÚÔZ&Ó”ÓÓï�ÓCÓ$˚Ó).Ó.8Ó0ΩÓ4Ó=VÓ?·ÔZ&Ó
ÚÔXŒÓÅÓbÓïÓ"vÓ#MÓ$$Ó(WÓ*‹Ó.8Ó0ΩÓ7uÓ;®
ÓGpÔXŒÓ
ÚÔWvÓ%	ÓbÓlÓ!üÓ&©Ó.8Ó2k�Ó4Ó8LÓ<Ó?ÓAèÔWvÓ
ÚÔV	Ó/ÓbÓlÓÒÓ"vÓ&©Ó).Ó+≥Ó2kÓ5«Ó<
ÓE¬ÔVÓ
ÚÔT∆ÓÅÓ›Óï
Ó&©
Ó3B	Ó;ÆÔT∆Ó
ÚÔSnÓ
¯ÔSnÓ
ÚÔRÓ+ÔRÓ
ÚÔPæÓ…Ó†Ó
wÓbÓlÓ%“Ó0ΩÓC=ÔPæÓ
ÚÔOfÓ™�ÓXÓÓÒÓ#MÓ%“Ó*‹Ó.8Ó4Ó7uÓ;ÆÔOfÓ
ÚÔNÓ
¯ÔNÓ
ÚÔL∂Ó
¯ÔL∂Ó
ÚÔK^Ó™ÓÓbÓïÓÓ"vÓ%“Ó*Ó/ÊÓ2k
Ó<Ó?ÓAèÔK^Ó
ÚÔJÓ”Ó™Ó∞ÔJÓ
ÚÔHÆÓ…Ó†	Ó›Ó&©Ó+≥Ó4Ó4ÔHÆÓ
ÚÔGVÓ%ÓÅÓ›Ó	Ó#MÓ).Ó*Ó*‹Ó-aÓ0ΩÓ7uÓ9˙Ó?€ÓC=ÔGVÓ
ÚÔE˛ÓÅÓ¥Ó∫ÔE˛Ó
ÚÔD¶Ó…Ó†ÓãÓ#MÓ/Ó/ÔD¶Ó
ÚÔCNÓÅ�Ó/	ÓlÓ"vÓ&©Ó*Ó8LÓ?€ÓAèÔCNÓ
ÚÔAˆÓNÓ/Ó9ÓÓ%“Ó(WÓ.8Ó0ΩÓ3BÓ9˙Ó<�Ó>-ÓBfÔAˆÓ
ÚÔ@ûÓ
wÓ›ÓÁÓCÓ-aÓ4Ó7uÓ;®Ó?Ó@∏Ô@ûÓ
ÚÔ?FÓ”ÓXÓ9ÓæÓCÓ$$Ó(WÓ+≥Ó0ΩÓ4Ó:—Ó?·Ô?FÓ
ÚÔ=ÓÓ™Ó/ÓãÓrÔ=ÓÓ
ÚÔ<ñÓ
¯Ô<ñÓ
ÚÔ;>Ó
w�Ó%Ó›
ÓÒÓ"vÓ*‹Ó-a�Ó/Ó4Ó9˙Ó<Ó?
Ô;>Ó
ÚÔ9ÊÓ™Ó9	Ó"vÓ$˚Ó*Ó,ä�Ó.8Ó2kÓ6ûÓ9˙Ó<Ó?ÓC=Ô9ÊÓ
ÚÔ8éÓNÓXÓbÓïÓ »Ó#MÓ(WÓ+≥Ó.8Ó/Ó>3Ô8éÓ
ÚÔ76ÓÅÓ›ÓCÓ"v
Ó,äÓ2kÓ7uÓ:—Ó@∏Ô76Ó
ÚÔ5fiÓXÓ¥Ó9ÓïÓÓ#MÓ&©Ó).Ó.8Ó4Ó<Ó?Ó@∏Ô5fiÓ
ÚÔ4ÜÓ¸ÓXÓ¥ÓlÓ$˚Ó%“Ó&©Ó.8Ó1îÓ8LÓ>-ÓBfÔ4ÜÓ
ÚÔ3.Ó%ÓXÓÓlÓ!üÓ%“Ó+≥Ó.8Ó3BÓ7uÓ:—Ó?·Ô3.Ó
ÚÔ1÷
ÓÓÓï�ÓCÓ#MÓ&©Ó.8Ó4Ó8L�Ó9˙Ó?ÓBfÔ1÷Ó
ÚÔ0~Ó
w	Ó¥ÓÁÓÓ#MÓ*Ó,äÓ2kÓ6ûÓ7u	Ó?·Ô0~Ó
ÚÔ/&Ó¸Ó/Ób�ÓÓÒÓ"vÓ%ÿÔ/&Ó
ÚÔ-ŒÓ
¯Ô-ŒÓ
ÚÔ,vÓ…Ó†Ó
wÓ9Ó?Ô,vÓ
ÚÔ+Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓãÓïÓÒÓ˜Ô+Ó
ÚÔ)∆Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓãÓÓ$˚Ó%Ô)∆Ó
ÚÔ(nÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓæÓÓ!üÓ!•Ô(nÓ
ÚÔ'Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓæÓ+≥Ó1îÓ8LÓ8RÔ'Ó
ÚÔ%æÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓbÓ9ÓÓÁÓæ
Ó%“Ó(]Ô%æÓ
ÚÔ$fÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓÁÓIÔ$fÓ
ÚÔ#Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓãÓëÔ#Ó
ÚÔ!∂Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™Ó^Ô!∂Ó
ÚÔ ^Ó…Ó†Ó
wÓ+Ô ^Ó
ÚÔÓ…Ó†Ó
wÓ
}ÔÓ
ÚÔÆÓ…Ó†Ó
wÓ9Ó*Ó/Ó4ˆÔÆÓ
ÚÔVÓ…Ó†Ó
wÓ#MÓ#SÔVÓ
ÚÔ˛Ó…Ó†Ó
wÓNÓ%Ó¸Ó”ÓÒÓ"vÓ.8Ó.>Ô˛Ó
ÚÔ¶Ó…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ#MÓ+≥Ó0√Ô¶Ó
ÚÔNÓ…Ó†Ó
wÓNÓ).Ó)4ÔNÓ
ÚÔˆÓ…Ó†Ó
wÓNÓ%Ó¸Ó”ÓÒÓ"vÓ.8Ó.>ÔˆÓ
ÚÔûÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓæÓ$$Ó$*ÔûÓ
ÚÔFÓ…Ó†Ó
wÓNÓ%Ó¸Ó”ÓÒÓ"vÓ.8Ó.>ÔFÓ
ÚÔÓÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓæ
Ó%ÔÓÓ
ÚÔñÓ…Ó†Ó
wÓ
}ÔñÓ
ÚÔ>Ó…Ó†Ó
wÓÁÓl�ÓÓ$*Ô>Ó
ÚÔÊÓ…Ó†Ó
wÓ^ÔÊÓ
ÚÔ
éÓ
¯Ô
éÓ
ÚÔ6Ó%ÓXÓ¥Óã
Ó!üÓ$$Ó'ÄÓ+≥Ó4Ó:—Ó=\Ô6Ó
ÚÔ
fiÓÅÓÓbÓïÓ	Ó(WÓ-aÓ/ÊÓ8LÓ:—Ó@∏Ô
fiÓ
ÚÔ	ÜÓ”Ó/ÓãÓlÓ#MÓ&©Ó).Ó,äÓ-aÓ1îÓ5«Ó9#Ó>3Ô	ÜÓ
ÚÔ.ÓÓlÓ"vÓ&©Ó*‹Ó5«Ó9#Ó<Ó?
Ô.ˇ�������Ê����
Íq?Ä[«–����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������actuallycausingtheevalserverstatustoberead,showupasID's55and56.Asubsequentremoteabortfornumber55willstopit,andleavearecordthatitwasremotelyaborted.Ofcourse,thisisnotnecessaryiftheEVALSERVERisrunningunderthePROCESSWORLD.SomeImplementationDetails:Thesemi-well-knownsocketnumber668isusedforreceivingevalservicerequests.��Ó
ÍÔc8Ó
ÚÔb6qÓÅÓ9Óï	Ó%“Ó+≥Ó.8Ó0ΩÓ5«Ó9˙Ó<Ó?ÓBfÔb6Ó
ÚÔ`fiÓ
wÓ”Ó/Ó�Ó¥	ÓÒÓ%“Ó*‹Ó.8Ó/Ó4Ó7uÓ;®Ó?€ÓBfÔ`fiÓ
ÚÔ_ÜÓNÓX�ÓÓÁÓÓ!üÓ$˚Ó,äÓ4Ó4Ó5«Ó8LÓ?ÓBfÔ_ÜÓ
ÚÔ^.Ó
wÓ”Ó9ÓæÓ	Ó(WÓ*‹Ó1îÓ6ûÓ9)Ô^.Ó
ÚÔ\÷Ó„Ô\÷Ó
ÚÔ[~Ó
¯Ô[~Ó
ÚÔZ&Ó
¯ÔZ&Ó
ÚÔXŒÓ
¯ÔXŒÓ
ÚÔWvÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓbÓ9ÓÓÁÓæÓïÓlÓCÓÓÒÓ »Ó!üÓ"vÓ#MÓ$$Ó$˚Ó%“Ó&©Ó&ØÔWvÓ
ÚÔVÓ…Ó†Ó
wÓNÓ%Ó¸Ó”Ó™ÓÅÓXÓ/ÓÓ›Ó¥ÓãÓbÓ9ÓÓÁÓ
Ó+≥Ó2qÔVÓ
ÚÔT∆Ó
¯ÔT∆Ó
ÚÔSnÓNÓæÓ!üÓ'ÄÓ*‹Ó-aÓ1îÓ4Ó=VÓ@∏ÔSnÓ
ÚÔRÓ™Ó?ÔRˇ�������<����
Íq?Ä[«$����������������������������������������������������������������������������������������������������������������������������~GACHA����������������
�����~GACHA����������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:�����´�����º���#��=��%��fl����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������j/�(��&�ˇˇùµ'��ˇˇˇˇˇˇ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������({ERIS}<LISPCORE>LIBRARY>EVALSERVER.TTY;1�����������JONL.PA������������������������25-Jun-84 04:07:56���������������������������������������������������������������������������������������������������������������������������������������������������������