Copyright c Xerox Corporation 1980Inter-Office MemorandumToMesa UsersDateOctober 27, 1980FromJohn WickLocationPalo AltoSubjectMesa 6.0 Change SummaryOrganizationSDD/SS/MesaXEROX Filed on: [Iris]Doc>Summary60.bravo (and .press)This memo outlines changes made in Mesa since the last release (Mesa 5.0, April 9, 1979). The firstsection lists references which should be consulted for more detailed information. The secondsection contains an overview of the changes. The final section describes operational differenceswhich you must know in order to use Mesa 6.0.For most programs, you should be able to begin converting to Mesa 6.0 after reading only thismemo; then consult the various updates when details of new features are required. If yourapplication relies on the extended memory support previously provided by XMesa, you willprobably need to read the System and XMesa updates before converting.ReferencesThe following documents can be found on Doc>. (In Palo Alto, the official Mesa release directoryis maintained on Iris (there is also a copy on Ivy); in El Segundo, it is on Isis. For other locations, consult your supportgroup.) In addition, the file Mesa60.press is a compilation of this and other material (about 75pages); hardcopy is available through your support group.Mesa 6.0 Change Summary. Summary60.pressMesa 6.0 Compiler Update. Compiler60.pressMesa 6.0 Binder Update. Binder60.pressMesa 6.0 System Update. System60.pressMesa 6.0 XMesa Update. XMesa60.pressMesa 6.0 Debugger Update. Debugger60.pressMesa 6.0 Utilities Update. Utilities60.pressMesa 6.0 Pup and Ftp Update. PupFtp60.pressThe above memos describe changes since the last release. The Doc> directory also includesnew versions of the following documents:Mesa System Documentation. System.pressMesa Debugger Documentation. Debugger.pressMesa User's Handbook. Muhb.pressMesa Pup Package Functional Specification. Pup.press!pX qp]g~ri cs]pX -s7Bp ]s]p-s7Bp Ys]t-s 7Bp Sup MsF6 GpI F$;" D}N B- ?%8 =D <8H :E 6Kr 2p'v pw2 1yF7 /pv p1 .M9*xXpv)xpv'#xpv %5xpv #Gxpv !Yxpvkxpv}xpv /p=v p (9xXpv Kxpv ]xpv ox)pv=d Mesa 6.0 Change Summary2Mesa Ftp Functional Specification. Ftp.pressIntegrated Mesa Environment. CommandCentral.press (in Utilities60.press)Performance Mesaurement Tool. PerformanceTool.pressControl Transfer Counting Tool. XferCounter.pressDebugger: Extended Features. XDF.press (in Debugger60.press)Because the language changes are upward compatible with Mesa 5.0, a new version of the MesaLanguage Manual will not be issued with this release; consult the Compiler Update and the BinderUpdate for information on additions to Mesa and C/Mesa.HighlightsThe primary emphasis in this release has been on the following areas:A number of significant new language features are included: extended defaults, floating pointsupport, machine dependent records and enumerated types, dynamic storage allocation, sequences,and exported types. Less major revisions and extensions have been made in the following areas:syntactic and semantic glitches, keyword array constructors, packed array representation, successorand predecessor operations, the DIRECTORY statement, implicitly imported interfaces, type TEXT, loopcontrol variables, extended NIL, the REJECT statement, and the ABORTED signal. The languagechanges are compatible with Mesa 5.0, and will not affect existing source code (there are some minorexceptions; see below). In addition, the Compiler's user interface and command line syntax havechanged substantially. See the Compiler Update and Appendix A of the Mesa User's Handbook fordetails.A Mesa source formatter is available with this release. It establishes a standard representation forsource text, and will produce both plain and formatted .bravo and .press files. Completedocumentation can be found in Appendix B of the Mesa User's Handbook.The Binder has been updated to agree with the Compiler's treatment of the DIRECTORY statementand its user interface and command line syntax. In addition, it now supports multiple controlmodules in a single configuration. See the Binder Update and Appendix C of the Mesa User'sHandbook for details.Support for extended memory beyond 64K, formerly provided by XMesa, is now part of thestandard system. The BasicMesa configuration has been abandoned in favor of facilities whichdynamically delete non-essential components of the system. Support for subdirectories, fastdirectory scanning, floating point, Pup checksums, and 3K RAMs have been added. (Appendix G ofthe Mesa User's Handbook details extensions made to RunMesa.) Other than memory allocationfacilities, changes to the System and Pup and Ftp interfaces are minor; see the updates for details.The Debugger has a new user interface, a new interpreter, and a simple cut and paste editor. TheDebugger's command language is essentially unchanged, but several extensions in windowoperations and source window facilities have been added. A description of the new FileTool isattached to the Debugger Update.Several new commands have been added to the Lister, and the IncludeChecker has been extensivelymodified to support large configurations more efficiently. A new package, CommandCentral, isavailable for use with the Debugger; it serves as a small executive for controlling the editing,compilation, binding, and debugging of applications software. This package greatly speeds up theeditcompilebinddebug cycle when small changes are involved. Documentation is attached tothe Utilities Update. ftGbxX!pv`0xpvpvp^Bxpv\TxpvZfxpvpvp WOx Upp2xpx Sp1 Or L5pE H1, G?1. EB CC BIsp1sp @spspsp  >Ow =Sp- ;xpxp : 6a 57vpvp 3g0xp 0/sp .qW ," x px +"p '"4 &,-0 $2* ":wp !6xpC ); @ U &O' 9yp Jxp 7( T8y p J S ^> xp X p=\oMesa 6.0 Change Summary3A new mode has been added to the Control Transfer Counting Tool which allows modules to beassigned to groups and information to be collected on cross group as well as cross module transfers.The performance measurement tools are documented separately as described in the first section ofthis memo.Operational ChangesThis section summarizes important operational differences which you must know in order to useMesa 6.0; do not begin to convert to Mesa 6.0 until you have read it. More complete information iscontained in the update memos listed in the first section of this document.GeneralOn large programs, performance of the Mesa 6.0 Compiler and Debugger on 64K Altos isconsiderably worse than in Mesa 5.0; an extended memory machine with a minimum of 128K isrecommended.Alto Operating System version 18 and Executive version 11 or later are required to run Mesa 6.0.The new file creation date standard is now supported. The compiler inserts the creation date of thesource file into the .bcd (as does the Binder), and the Debugger checks that the source and objectfile versions match. The IncludeChecker also makes use of these dates. Therefore, you must use aneditor and a file server that support the file date standard. If you use dump files, be sure you havethe latest version of Ftp.LanguageWith two exceptions, Mesa 5.0 source files are compatible with Mesa 6.0. In file names in theDIRECTORY statement, names inside angle brackets are no longer ignored; they are treated assubdirectories of the Alto file system (use of this feature is not recommended). The following newreserved words have been added: FREE, PRED, PROC, REJECT, SEQUENCE, SUCC, UNCOUNTED, andZONE.CompilerThe order of evaluating the items in constructors (including argument lists) and the operands ofinfix operators (except AND and OR) has been changed, particularly in cases involving embeddedprocedure calls; it is no longer always left to right. In particular, expressions of the form word _get[s]*256+get[s] are suspect, and probably incorrect.Except during initialization, constructors for records containing MONITORLOCKs, CONDITIONs, andPORTs are not allowed (to prevent unintentionally overwriting these fields with their default values).Such records must be assigned to fieldbyfield.For element sizes of four bits or less, the internal representation of packed arrays has changed.This is a potential problem in reading files containing packed arrays created by earlier versions ofMesa.The Compiler no longer supports interactive command input; it reads commands only from thecommand line, and does not use the keyboard or display (limited feedback is via the cursor). Thecommand language has been extended and switch processing has changed. The /c switch has beendeleted; global switches must now be specified with a null file name, e.g. Compile /p Defs Impl. ftG bpE `v5/ ^!? ]( Xr Up!< Sx]:Mesa 6.0 Change Summary4Switches are restricted to a single letter. Do not use complete switch names such as /pause (eachletter will be interpreted as a separate switch). Until you understand the full syntax of thecommand language, it is best to group all global switches at the beginning of the command linefollowing a single slash.The log is now written on Compiler.log, not Mesa.typescript; separate .errlog files arestill produced. The error log (if any) is deleted if the compilation is successful; conversely, if thecompilation fails, the .bcd (if any) is deleted.The implementation of floating point has changed considerably; the IEEE standard format is nowused, and the compiler generates calls directly to user-supplied microcode (this will produceundefined results if the proper microcode is not loaded). Calls to software floating point as in Mesa5.0 can be generated with the /-f switch. Do not use type REAL without first consulting with thesupplier of your floating point package.Because of bug fixes, previously acceptable programs may no longer compile.BinderThe Binder is now available only as a .bcd file; you must have Mesa.image to run it. Like theCompiler, the Binder takes commands only from the command line and does not use the keyboardor display; it writes its log file on Binder.log.The meaning of switches used to copy code and symbols has changed substantially; read the BinderUpdate if you use these options. Compressed symbols have been compressed still further to includeonly procedure and signal names (without parameters or results); this substantially reduces the sizeof these .symbol files.Because of bug fixes, previously acceptable configurations may no longer bind.SystemMesa 6.0 is compatible with XMesa 5.0 microcode version 39 (but some new features are notavailable with the old microcode; e.g., extended memory BITBLT).Features previously implemented by BasicMesa and XMesa are now a standard part ofMesa.image. MakeImage is no longer a part of the standard system; ImageMaker must beloaded or bound with the client configuration if it is needed.The standard system now supports only command line input; the MesaExec can be loaded toprovide interactive input. The command line switch /b can be used to convert the standard systemto a basic one. The /k switch will disable the allocation of space for the Debugger's bitmap onextended memory machines (see below).The default maximum numbers of processes (75) and modules (384) have been increased. Aversion of the System called SmallMesa allows 33 processes and 256 modules.Interface changes are described in the System Update. ftG bp+x)vp `vP ^%9 ]( Yv pvp vp X2*= Vvp S<^ Q2+ OG NFvp xsx" L( IPpK EQt Bp&vpv p @[B >&v p ;e;x 9pK 8d 6ovp 3 N /!t +p/* *+8sp &203! %5v pyp,y p #> ?-yp vp+ vp, I% T Syp% 'x p F =UN!Mesa 6.0 Change Summary5DebuggerThe Debugger has also been enhanced to take advantage of extended memory. If you have morethan two banks (128K) of memory, see the installation section of the Debugger Update for anexplanation of the options available; otherwise, the standard defaults will "do the right thing".The Debugger now requires a strike font named SysFont.strike or MesaFont.strike; aversion of Gacha10 is available on MesaFont.strike. Additional fonts are available on[Maxc]. (Strike fonts that include kerning are not supported.)The selection scheme and the assignment of function keys and mouse buttons has changed.Clicking RED once selects a character, clicking twice selects a word, three times a line, etc.; theselection can be extended to the left or right with BLUE. The menu button is now YELLOW(formerly BLUE). FL4 is no longer the stuff key; use FR4 (Spare2) or Keyset2.Scrollbars no longer occupy a dedicated part of the window, but instead come up on top of the leftedge. To obtain a scroll bar, move left just past the edge of the window, then move right slightly,back into the window.New source window menu commands have been added, and they have been factored into severalmenus. The Debugger's wisk window has been replaced by a more general Split menucommand. There are now also Normalize Insertion and Normalize Selection commands.The interpreter can now be used when in Display Stack and Display Process subcommandmode. Several commands now invoke the interpreter automatically (e.g., Octal Read: @p, n:SIZE[R]). The interpreter does procedure calls (the Interpret Call command has beendeleted).The constructs ABS, ERROR, LONG, LOOPHOLE, MAX, MIN, NIL, POINTER TO, PROC, PROCEDURE, SIGNAL,WORD, and open and half open intervals have been added to the interpreter's grammar. Typeexpressions following % must be enclosed in parentheses. The interpreter syntax Expression?replaces the Interpret Expression command.Each breakpoint is now assigned a unique number used for displaying and clearing it. There arenew commands for attaching conditions to break and tracepoints. Break/Tracepoints can no longerbe set by typing a source line, and the Break Module and Break Procedure commands andcorresponding Trace and Clear commands have been deleted; the menu commands must beused. Clear All Entries/Xits clears both break and tracepoints.Tracepoints now automatically invoke the normal Display Stack command processor (withsubcommand p(arameters), v(ariables), or r(esults) as appropriate). The q(uit)subcommand (not b(reak)) exits to the Debugger's command level; it no longer continuesexecution of the client.If the source window is loaded with the s(ource) subcommand of Display Stack, the windowwill remember the appropriate context for setting breakpoints. For an exit break, the s(ource)subcommand now displays the declaration line of the procedure.The Debugger no longer ignores case, and the case commands have been deleted; identifiers must betyped with their correct capitalization. ftG b ^p#8 ]( 7xp [a X2" v pvp Vvp$ Tvp9 Q? OspS NF.sps Lp spsp!spspsp IPE GR F B> A "%vp ?dvpvp <v pvp :n@v 8p.v p  7 3spspspspspspspspspspsp 2)sp L 0yp&y .p vp +P )F (=(v pvp & vpvp6 $vp# !0v p  v pv pvpv Qpvp?  ['vpv p 1&v  p> :x ( >ZtMesa 6.0 Change Summary6Distribution:Mesa UsersMesa GroupSDSupport ftG bp `vX ^ ](B \ *$ TIMESROMAN MATH  TIMESROMAN  HELVETICA TIMESROMAN LOGOGACHA  TIMESROMAN TIMESROMAN   HELVETICA   HELVETICA  ')j/,*&!Summary60.bravo SDD - wickOctober 28, 1980 4:51 PM