Richard E. Sweet
[Igor]<Sweet>Performance80.bravo
1.Compiler Development -- The most significant activity in this area was the completion and debugging of the major cleanup of the code generators. With around five thousand lines of new and modified code, this amounted to a virtual rewrite of the Mesa Compiler code generators. Not only are the new code generators better suited to the language and capable of generating superior code, they are considerably cleaner; the Cedar programmers at PARC have successfully modified them for their special needs. A number of new language features in Mesa 6 required new design work for code generation, including sequences, storage allocation, packed arrays, and others.
2.Packager -- I was involved in the design and implementation of the Packager from the beginning. I helped formulate what was meant my packaging, I helped design the syntax of packaging descriptions, and I helped design the overall strategy of the Packager program. I fully designed and implemented the "back end" of the program which does the actual copying of procedure bodies (code) from a collection of modules. I designed it in such a way that it would run on memory-starved Altos, and could later be recoded to run in the larger virtual memory of Pilot. I also spoke at Crosstalks about the Packager in Palo Alto and El Segundo.
3.General Support -- I wrote a number of utilities (mostly small, but a few large ones) to aid myself and others in the development process, occasionally on request, but usually when I perceived a need.
a.XXDebug -- This is a debugger UserProc similar to the CGenDebug UserProc that I wrote last year. XXDebug was used to debug the new Mesa 6 Debugger. The debugging of the Mesa 6 Debugger would have been significantly slower had XXDebug not been available.
b.Lister -- I added a number of commands to the Lister. Some were for internal use, like the ability to make code listing from packaged code. A rather large number (see the Mesa 6 Utilities Update) were for the benefit of the user community at large, such at the cross reference by caller/callee command used by persons writing packaging descriptions.
c.MungeIndex -- I made numerous changes to this program, our imperfect by only extant index generation program. Many of these were made quickly to simplify the production of the index for the Mesa Processor Principles of Operation. Others were made for the benefit of the Pilot documention and the Mesa 6 documentation.
d.General -- I helped in the implementation of the Debugger in the sections that deal with some of the data structures that changed between Mesa 5 and Mesa 6. I wrote a UserProc for finding all unbound procedures in a running system. I consulted with numerous users.
4.Documentation -- I edited several of the Mesa 6 documents, including the Mesa System Documentation and the Mesa Users’ Handbook. Given the changes in user interface between Mesa 5 and Mesa 6, editing of the Mesa Users’ Handbook was essentially a rewrite. Several chapters were supplied by other members of the Mesa group, but they typically needed editing to bring them into a consistent style with the remainder of the document. I spent a number of late evenings working on the indexes for the Mesa Processor Principles of Operation in order to help John Wick finish it by the deadline.
5.Analysis of Instruction Set -- I have started to lay the groundwork for a new round of instruction set analysis, including a program to extract code sequences from object files, and a compiler option to generate code assuming a larger stack.
6.General Xerox Activities -- I participated in several off site activities, including a meeting at Diablo Systems to discuss character printer needs for the product program, a day spent recruiting a Stanford, and a meeting at Intel discussing their development environment. I spent a week at a UC Extension course studying classical compiler optimization techniques.