Heading:qjk40(635) Mesa 6.0 Binder Updatey756qjk40\b22B Page Numbers: Yes X: 527 Y: 10.5"qjk40 Copyright c Xerox Corporation 1980z18592l4445y45c\10f3 1f0 Inter-Office Memorandumz18592l4445y762\f5b To Mesa Users Date October 27, 1980z18592l4445d2998e21(0,65535)(1,4445)(5,11684)(6,14146)\f7 2f0t2 1t0 10t6 1f7t0 4f0t7 1t0 From Brian Lewis, Ed Satterthwaite Location Palo Altoz18592l4445d2998y716e25\f7 4f0t2 1t0 29t6 1f7t0 8f0t7 1t0 Subject Mesa 6.0 Binder Update Organization SDD/SS/Mesaz18592l4445d2998e25\f7 7f0t2 1t0b22t6B1f7t0 12f0t7 1t0 XEROX z18592l508y644e14(2116)\f2 5f0 Filed on: [Iris]Doc>Binder60.bravo (and .press)e30(0,16264)(1,65535)(5,65535)(6,65535)\f7 53f1 x2e12(2116) This memo describes changes to the C/Mesa language and the Binder that have been made since the release of Mesa 5.0 (April 9, 1979).x2e12jk40(1799) Definitions of syntactic phrase classes used but not defined in this document come from the Mesa Language Manual, Version 5.0, Section 7.7.x2e12jk40\92i33I Compatibilityx2e24k80\f5b13B Because of changes in BCD formats, you must rebind all your existing Mesa configurations after obtaining recompiled versions of their components. There is one potential incompatibility:x2e12jk40\22f7 3f0 Some of the quoted file names that appear in DIRECTORY clauses have different interpretations. Text inside angle brackets is no longer ignored; it is treated as the name of a local subdirectory (but we do not recommend using local subdirectories for Mesa programs at the present time).l3916x2e6jk40\45f7 9f0 A number of bugs have been fixed. As usual, the list of Binder-related change requests closed by Mesa 6.0 will appear separately as part of the Software Release Description. The most notable involvex2e12jk40 correctly checking the types of interfaces when positional notation is used,l3916x2e6jk40 proper treatment of named imports or exports of a configuration,l3916x2e6jk40 proper identification of object files that have been renamed.l3916x2e6jk40 Because of bug fixes, the Binder may reject previously acceptable configuration descriptions or may issue new warning messages. A number of error or warning messages now use symbolic names whenever the corresponding symbol tables are available.x2e12jk40 New Language Featuresx2e24k792\f5b21B Bracket Symbolsx2e18k80\b15B The bracket pair { } can be used in place of BEGIN END.x2e12k80\47f7 5f0 1f7 3f0 1i Syntaxx2e6jk40\i6I CBody ::= BEGIN CStatementSeries END | { CStatementSeries }l3916x2e6k80\f6 6f0 5f7 5f6 18f7 3f6 6f0 1f6 18f0 Multiple Control Modulesx2e18k80\b You can now specify an ordered list of control modules for any configuration.x2e12k80 Syntaxx2e6jk40\i6I ControlClause ::= CONTROL IdList | emptyl3916x2e6k80\f6 13f0 6f7 7f6 IdList ::= identifier | IdList , identifierl3916x2e6k80\f6 7f0 5f6 20f0 3f6 10f0 When a (sub)configuration is started, either explicitly or as the result of a start trap (see the Mesa Language Manual, Version 5.0, Section 7.8.4), each of the modules named in the ControlClause is started in order.x2e12jk40\98i33I51f6 13f0 Note that, if there are calls from a control module to one of its successors in the list, the order of starting will not necessarily follow the order of the ControlClause. In starting a configuration, any control modules that have already been started are skipped.x2e12jk40\157f6 13f0 Operational Changesx2e24k80\f5b19B The Binder is now available only as a .bcd file; you must have Mesa.image to run it. When compressing symbols, SymbolCompressor.bcd must be loaded first; see the description of the /x switch below.x2e12jk40\38f8 4f0 21f8 10f0 13f1 26f7 20f1 50f7 2f1 14f0 User Interfacex2e18k80\b14B The Binder now reads commands only from the Alto Executive's command line; it no longer supports interactive input. At the start of the first binding, the message "Bind" is displayed in the cursor. 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 errors and you have requested the Binder to pause. Typing Shift-Swat aborts the executive's current command sequence; Ctrl-Swat invokes the Mesa Debugger; any other character causes normal exit from the Binder.x2e12jk40\447f8 10f0 50f8 9f0 A summary of binder commands is written on the file Binder.log (formerly Mesa.typescript).x2e12jk40\52f8 10f0 11f8 15f0 1f6 1f0 Commandsx2e18k792\b8B The Mesa 6.0 Binder allows you to control the names and contents of various output files when you invoke it; it accepts a series of commands, each of which usually has one of the following forms:x2e12jk40 inputFile/switchesl3916x2e6k40\f8 18f0 outputFile _ inputFile/switchesl3916x2e6k40\f8 31f0 [key1: file1, ... keym: filem] _ inputFile/switchesl3916x2e6k40\f8 4f7o252 1f8o0 6f7o252 1f8o0 9f7o252 1f6o0 1f8 5f7o252 1f8o0 22f0 (It is also possible to control the association between included modules and configurations and their file names; this is described below.) In the last form, key is one of bcd, code, or symbols.x2e12jk40\159f8 3f0 11f8 3f0 2f8 4f0 5f8 7f0 The string inputFile names the file containing the source text of the configuration description, and its default extension is .config.x2e12jk40\11f8 9f0 106f8 7f0 There is a principal output file, the name of which is determined as follows:x2e12jk40\11i9I If you use the first command form, it is inputRoot.bcd, where inputRoot is the string obtained by deleting any extension from inputFile.l3916x2e6jk40\41f8 13f0 8f8 9f0 55f8 9f0 If you use the second form, it is outputFile, with default extension .bcd.l3916x2e6jk40\34f8 10f0 25f8 4f0 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.l3916x2e6jk40\30f8 3f7o252 1f0o0 4f8 3f0 8f8 4f7o252 1f0o0 25f8 4f0 If the Binder detects any errors, the principal output file is not written, and any existing file with the same name is deleted.x2e12jk40 You may also request that the code and/or symbols of the constituent modules be copied to an output file, as follows:x2e12jk40 You request copying of code by specifying the /c switch or by using the third command form with keyword code. Code is copied to the principal output file unless you use the third form and keyi is code, in which case the code is copied to a file named filei, with default extension .code.l3916x2e6jk40\46f8 2f0 8i2I46f8 4f0 81f8 3f7o252 1f0o0 4f8 4f0 51f8 4f7o252 1f0o0 25f8 5f0 You request copying of symbols by specifying the /s or /x switch or by using the third command form with keyword symbols. Symbols are copied to the file inputRoot.symbols unless you use the third form and keyi is symbols, in which case they are copied to a file named filei, with default extension .symbols. Compressed symbols are copied if the /x switch is specified.l3916x2e6jk40\49f8 2f0 4f8 2f0 8i2I46f8 7f0 34f8 17f0 35f8 3f7o252 1f0o0 4f8 7f0 48f8 4f7o252 1f0o0 25f8 8f0 40f8 2f0 Any warning or error messages are written on the file outputRoot.errlog, where outputRoot is the string obtained by deleting any extension from the name of the principal output file. If there are no errors or warnings, any existing error log with the same name is deleted at the end of the bind.x2e12jk40\54f8 17f0 8f8 10f0 When more than one Binder command is given on the command line, the commands must be separated by semicolons. However, you may omit a semicolon between any two successive identifiers (file names or switches), or between a ] and an identifier (but not between an identifier and a /). Note that any required semicolon in an Alto Executive command must be quoted.x2e12jk40\280f8 1f0 Switchesx2e18k792\b8B The optional switches are a sequence of zero or more letters. Each letter is interpreted as a separate switch designator, and each may optionally be preceded by - or ~ to invert the sense of the switch.x2e12jk40\13f8 8f0 141f8g1f0G4f8 1f0 The Binder recognizes the switches:x2e12jk80 /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)l4268x2e6jk40(0,5024)\f8 2f0t1 1t0 13f8 2f0t1 1t0 15f8 2f0t1 1t0 26f8 2f0t1 1t0 54f8 2f0t1 1t0 20f8 6f0 4f8 4f0 6f8 2f0t1 1t0 The Mesa 5 Binder switch /o (output file) is no longer available.x2e12jk80(1799)\25f8 2f0 In earlier versions of the Binder, copying symbols was an error if not all of the symbol files were available at bind time. The Binder now copies all symbols that it can find, leaves the symbol table references for the other modules in the original (unavailable) files, and issues a warning.x2e12jk40 The switches /c and /s are interpreted differently in Mesa 6 than they were in Mesa 5. The following table outlines these changes. x2e12jk40\13f8 2f0 5f8 2f0 Mesa 6 Mesa 5 meaningl4269x2e12jk40(0,65535)(12,10592)(13,13856)\i6t13 1t0 6t14 1t0 7I file/c file/c code to file.bcdl4269x2e6jk40\f8 6t13 1t0 6f0t14i1t0I file/cs file/c file/s code to file.bcd; symbols to file.symbolsl4269x2e6jk40\f8 7t13 1t0 13f0t14i1t0I18i1t14 1t0I [symbols: file.bcd] _ file/c file/cs code and symbols to file.bcdl4269x2e6jk40\f8 28t13 1t0 7f0t14i1t0I Note that file/cs has quite a different meaning in Mesa 6 than before. Also, the common Mesa 5 command sequence file/c file/s will bind file twice in Mesa 6, the first time copying only code and the second time only symbols. x2e12jk40(1799)\10f8 7f0 96f8 13f0 11f8 4f0 1i5I Compressed symbols are copied with the /x switch. In this mode, only the following symbols are included: all procedures, and the signals declared at the top level of modules. Symbols for their parameters 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 copy compressed symbols, SymbolCompressor.bcd must be loaded ahead of the Binder. Thus x2e12jk60(2116)\39f8 2f0 365f8 20f0 >Mesa.image SymbolCompressor.bcd Binder.bcd MySystem/xl4269x2e12jk60\f8 54f0 will create MySystem.bcd and MySystem.symbols (compressed).x2e12jk40(1799)\12f8 12f0 5f8 16f0 Global switches are set by a command with an empty file name. In the form /switches, each letter designates a different switch. The switches to copy code (/c), to copy symbols (/s), and to compress symbols (/x) may now be given as global switches, and hence apply to all source files thereafter. Unless a command to change the global switch settings comes first in the sequence of commands, it must be separated from the preceding command by an explicit semicolon. x2e12jk40\75f8 9f0 73f8 2f0 20f8 2f0 28f8 2f0 Associating File Names with Modules and Configurationsx2e18k792\b54B The Binder now lets you control the association between file names and modules or subconfigurations when you call it. This is done by specifying a list of component identifier-file name pairs inside brackets after the input file name. For example, the commandx2e12jk40 MySystem[Test: UnpackedTest]l3916x2e6k40\f8 28f0 will bind MySystem.config using the previously bound configuration Test that is stored on the file UnpackedTest.bcd. A command that includes one of these optional component-file name lists will have one of the forms: x2e12jk40\10f8 15f0 42f6b4f0B28f8 16f0 inputFile[id1: file1, ... idn: filen]/switchesl3916x2e6k40\f8 12f7o252 1f8o0 6f7o252 1f8o0 8f7o252 1f8o0 6f7o252 1f8o0 10f0 outputFile _ inputFile[id1: file1, ... idn: filen]/switchesl3916x2e6k40\f8 25f7o252 1f8o0 6f7o252 1f8o0 8f7o252 1f8o0 6f7o252 1f8o0 10f0 [key1: file1, ... keym: filem] _ inputFile[id1: file1, ... idn: filen]/switchesl3916x2e6k40(0,65535)(11,12992)(12,65535)(13,65535)\f8 4f7o252 1f8o0 6f7o252 1f8o0 9f7o252 1f6o0 1f8 5f7o252 1f8o0 16f7o252 1f8o0 6f7o252 1f8o0 7t12 1t0 2f7o252 1f8o0 6f7o252 1f8o0 10f0 The module or configuration named by idi in the configuration description will be read from the file filei; .bcd is the default extension.x2e12jk40(1799)\37f8 2f7o252 1f0o0 61f8 4f7o252 1f0o0 2f8 4f0 l4269x2e12jk40 Distribution: Mesa Users Mesa Group SD Support (635)