Copyright c Xerox Corporation 1980Inter-Office MemorandumToMesa UsersDateOctober 27, 1980FromBrian Lewis, Ed SatterthwaiteLocationPalo AltoSubjectMesa 6.0 Binder UpdateOrganizationSDD/SS/MesaXEROX Filed on: [Iris]Doc>Binder60.bravo (and .press)This memo describes changes to the C/Mesa language and the Binder that have been made sincethe release of Mesa 5.0 (April 9, 1979).Definitions of syntactic phrase classes used but not defined in this document come from the MesaLanguage Manual, Version 5.0, Section 7.7.CompatibilityBecause of changes in BCD formats, you must rebind all your existing Mesa configurations afterobtaining recompiled versions of their components. There is one potential incompatibility:Some of the quoted file names that appear in DIRECTORY clauses have differentinterpretations. Text inside angle brackets is no longer ignored; it is treated as the name of alocal subdirectory (but we do not recommend using local subdirectories for Mesa programs atthe present time).A number of bugs have been fixed. As usual, the list of Binder-related change requests closed byMesa 6.0 will appear separately as part of the Software Release Description. The most notableinvolvecorrectly checking the types of interfaces when positional notation is used,proper treatment of named imports or exports of a configuration,proper identification of object files that have been renamed.Because of bug fixes, the Binder may reject previously acceptable configuration descriptions or mayissue new warning messages. A number of error or warning messages now use symbolic nameswhenever the corresponding symbol tables are available.!pX qp]g~ri cs]pX -s7Bp ]s]p-s7Bp Ys]t-s 7Bp Sup N#sF5 Gp:! F( B[v A p ;r 8psp"# 6[L4^G-spHL2S L1[L/h ,L *rI (L&OLL#@L!Y=  J cB 7p=d Mesa 6.0 Binder Update2New Language FeaturesBracket SymbolsThe bracket pair { } can be used in place of BEGIN END.SyntaxCBody::=BEGIN CStatementSeries END|{ CStatementSeries }Multiple Control ModulesYou can now specify an ordered list of control modules for any configuration.SyntaxControlClause::=CONTROL IdList|emptyIdList::=identifier | IdList , identifierWhen a (sub)configuration is started, either explicitly or as the result of a start trap (see the MesaLanguage Manual, Version 5.0, Section 7.8.4), each of the modules named in the ControlClause isstarted in order.Note that, if there are calls from a control module to one of its successors in the list, the order ofstarting will not necessarily follow the order of the ControlClause. In starting a configuration, anycontrol modules that have already been started are skipped.Operational ChangesThe Binder is now available only as a .bcd file; you must have Mesa.image to run it. Whencompressing symbols, SymbolCompressor.bcd must be loaded first; see the description of the /x switch below.User InterfaceThe Binder now reads commands only from the Alto Executive's command line; it no longersupports interactive input. At the start of the first binding, the message "Bind" is displayed in thecursor. If there are any warnings, "Warning" is displayed, and if there are errors "Errors" is shown.At the end of binding, the message "Type Key" is displayed in a flashing cursor if there are errorsand you have requested the Binder to pause. Typing Shift-Swat aborts the executive's currentcommand sequence; Ctrl-Swat invokes the Mesa Debugger; any other character causes normalexit from the Binder.A summary of binder commands is written on the file Binder.log (formerlyMesa.typescript). ftG ari ]tX Zfp/spsp WvLUpw p'sws Sw'pwp Ot LXpM IvLGbw p'sw E'LC@ p'wpw ?pbv >Jp.w p < 9T=) 75w p# 6; 0ri -zp xpx p y +sy-sy 'tX $ap: "R !U kM x p xp" u '4x p xpw 8>RMesa 6.0 Binder Update3CommandsThe Mesa 6.0 Binder allows you to control the names and contents of various output files when youinvoke it; it accepts a series of commands, each of which usually has one of the following forms:inputFile/switchesoutputFile _ inputFile/switches[key1: file1, ... keym: filem] _ inputFile/switches(It is also possible to control the association between included modules and configurations and theirfile names; this is described below.) In the last form, key is one of bcd, code, or symbols.The string inputFile names the file containing the source text of the configuration description,and its default extension is .config.There is a principal output file, the name of which is determined as follows:If you use the first command form, it is inputRoot.bcd, where inputRoot is the stringobtained by deleting any extension from inputFile.If you use the second form, it is outputFile, with default extension .bcd.If you use the third form and keyi is bcd, it is filei, with default extension .bcd;otherwise, it is obtained as described for the first form.If the Binder detects any errors, the principal output file is not written, and any existing file withthe same name is deleted.You may also request that the code and/or symbols of the constituent modules be copied to anoutput file, as follows:You request copying of code by specifying the /c switch or by using the third command formwith keyword code. Code is copied to the principal output file unless you use the third formand keyi is code, in which case the code is copied to a file named filei, with defaultextension .code.You request copying of symbols by specifying the /s or /x switch or by using the thirdcommand form with keyword symbols. Symbols are copied to the fileinputRoot.symbols unless you use the third form and keyi is symbols, in which casethey are copied to a file named filei, with default extension .symbols. Compressedsymbols are copied if the /x switch is specified.Any warning or error messages are written on the file outputRoot.errlog, where outputRootis the string obtained by deleting any extension from the name of the principal output file. If thereare no errors or warnings, any existing error log with the same name is deleted at the end of thebind.When more than one Binder command is given on the command line, the commands must beseparated by semicolons. However, you may omit a semicolon between any two successiveidentifiers (file names or switches), or between a ] and an identifier (but not between an identifierand a /). Note that any required semicolon in an Alto Executive command must be quoted. ftG b ^pC ](ZLZxLX2LUU*sUxU*sUxU*sUwxU*sUx Rp_ P2xp xpxpxp M xp. Kxp H vp9LF$)x pxp LD}(xpLB"x pxpL?x>s?pxpx>s?pxpL=: :n\ 8 5x? 3L1U-xpvpL/ xpGL.x-zs.pxp )x-zs.p L,< xpL)1xpxpvpL(xp L&sxpx%s&spxpL$x$s$pxp L"xp , xpx p\ @R  JK K F TxpQ B  =UqMesa 6.0 Binder Update4SwitchesThe optional switches are a sequence of zero or more letters. Each letter is interpreted as aseparate switch designator, and each may optionally be preceded by - or ~ to invert the sense ofthe switch.The Binder recognizes the switches:/c- copy code/s- copy symbols/x- copy compressed symbols/p- pause after binding if there are errors or warnings/r- run the specified .image or .run file/g- (has no effect; retained for compatibility with Mesa 5)The Mesa 5 Binder switch /o (output file) is no longer available.In earlier versions of the Binder, copying symbols was an error if not all of the symbol files wereavailable at bind time. The Binder now copies all symbols that it can find, leaves the symbol tablereferences for the other modules in the original (unavailable) files, and issues a warning.The switches /c and /s are interpreted differently in Mesa 6 than they were in Mesa 5. Thefollowing table outlines these changes. Mesa 6Mesa 5meaningfile/cfile/ccode to file.bcdfile/csfile/c file/scode to file.bcd;symbols to file.symbols[symbols: file.bcd] _ file/cfile/cscode and symbols to file.bcdNote that file/cs has quite a different meaning in Mesa 6 than before. Also, the common Mesa5 command sequence file/c file/s will bind file twice in Mesa 6, the first time copying onlycode and the second time only symbols. Compressed symbols are copied with the /x switch. In this mode, only the following symbols areincluded: all procedures, and the signals declared at the top level of modules. Symbols for theirparameters and results are not copied. This option allows limited but often adequate debugging,and substantially reduces the size of the symbols file (typically by more than 50%). To copycompressed symbols, SymbolCompressor.bcd must be loaded ahead of the Binder. Thus >Mesa.image SymbolCompressor.bcd Binder.bcd MySystem/xwill create MySystem.bcd and MySystem.symbols (compressed).Global switches are set by a command with an empty file name. In the form /switches, eachletter designates a different switch. The switches to copy code (/c), to copy symbols (/s), and tocompress symbols (/x) may now be given as global switches, and hence apply to all source filesthereafter. Unless a command to change the global switch settings comes first in the sequence ofcommands, it must be separated from the preceding command by an explicit semicolon. ftG b ^p xpI ](Cxpxp [ X2#Uxp Txp RhxpPxp5OxpxpxpMrxp9 J#xp& F Y E-22 C[ @7 xpxpE >(;Av)`6 8x)`6 p6Kx)` 6 p 6 4p2)x)`6 p . xpG -3x p xpvp +' (=xp6 &X $ R #GI !xp"Qx6 p x pxp Jxp  1xpxp exp. +6 T ` =W<;Mesa 6.0 Binder Update5Associating File Names with Modules and ConfigurationsThe Binder now lets you control the association between file names and modules orsubconfigurations when you call it. This is done by specifying a list of component identifier-filename pairs inside brackets after the input file name. For example, the commandMySystem[Test: UnpackedTest]will bind MySystem.config using the previously bound configuration Test that is stored on thefile UnpackedTest.bcd. A command that includes one of these optional component-file namelists will have one of the forms: inputFile[id1: file1, ... idn: filen]/switchesoutputFile _ inputFile[id1: file1, ... idn: filen]/switches[key1: file1, ... keym: filem] _ inputFile[id1: file1, ...idn: filen]/switchesThe module or configuration named by idi in the configuration description will be read from thefile filei; .bcd is the default extension.Distribution: Mesa Users Mesa Group SD Support ftG bX6 ^pGQ ](#@ [OLYx Upxp*zp Txp 8 Rh%LOx O`sOxO`sOxO`sOxO`sOx LMMsMxMsMxMsMxMsMx LK>JsK>xJsK>xJsK>wxJsK>xJsK>xJsK>x2IsHsIsxHsIsx FHp$xEsFHp7 D}xCsD}pxp ? >JX < ;A  9v=. TIMESROMAN MATH  TIMESROMAN  HELVETICA TIMESROMAN LOGO TIMESROMAN  HELVETICA GACHA   TIMESROMAN  HELVETICA 8 'j/&*Binder60.bravo SDD - wickOctober 28, 1980 5:27 PM