A.Cedar
The Cedar project is intended to provide a new programming environment for CSL, based upon D-machines. The project is best viewed as three levels of activity:
9 the core which consists of the microcode, operating system, and language
9 fundamental tools which consists of the editor, debugger, and system modeller, all using a new display metaphor—the DOC
9 packages most notable of which are the data base and graphics packages, reported on elsewhere.
During the past six months we have begun to see use of Cedar. Approximately ten programmers have been using the core facilities and five have begun to use the tools. A significant amount of effort has been spent converting all the parts of the system to run on the Pilot operating system and all programmers to using the PreCascade environment; we no longer use the Alto system.
Activities
In January, we held a week-long review of the project for a panel drawn from various groups in Palo Alto. The reviewers’ basic conclusions were that a significant amount of good work had been done on the many building blocks and it was time to pull a system together that could be used by programmers. [Morris, Ayers (SDD), Baskett, Deutsch (LRG), Geschke (ISL), Warnock (ISL), Wick (SDD)]
Microcode and Operating System: We converted the Dorado Mesa microcode and machine-dependent software to the Rubicon release of Pilot. We have assimliated SDD’s Dolphin microcode and have worked on garbage collector acceleration. Design of operating system support for the concurrent garbage collector was completed. [Levin, Taft, Fiala]
Language: We completed the design to provide fast turn-around for small program changes, and started on the implementation.
The typed value part of the abstract machine interfacehas been documented and has undergone extensive use. An extension of the interface to cover intermodule connections has been designed. A facility for saving typed values between sessions has been designed and is being implemented. The performance and robustness of the allocators, garbage collector, and basic runtime type system has been improved. Critical parts of the allocator and REF ANY discrimination machinery were microcoded on the Dorado, completing the planned Dorado microcode support for Cedar. An empirical study of reference-counting activity was done.
The compiler’s parser was made into a subroutine for use by the simple interpreter. The compiler was extended to provide unified treatment of the ISTYPE, NARROW, and SELECT constructs, extension of object notation to record types, support for Ropes (a new form of character string), and content-based object file version stamps.
[Rovner, Atkinson, Haugeland, Maxwell, Satterthwaite]
Fundamental Tools: As a result of feedback from the initial users of DOCs and the simple interpreter, considerable effort was expended on smoothing the interfaces and on making the packages more robust. Performance enhancements, using cached bitmaps, have been accomplished.
New classes of DOCs were implemented, including bitmap documents which allow an implementor to operate as though he has access to the full screen. This facilitiy will accommodate programs whose display component was not implemented using Cedar Graphics, e.g. Laurel. We wrote the facilities for converting mouse coordinates into the coordinate system of the appropriate DOC, and have begun design and implementation on a primitive window manager and menu facility. We progressed on the design of a generic editing interface to all documents, and have used this interface to implement edited document streams.
The abstract machine interface has been extended to accommodate variant records and sequences. A facility for inserting break points into user programs was designed and implemented.
A system modeller has been completed and is in use to control its own development. Its first major use will be to control changes to the software comprising CoPilot. Virtually all Cedar programmers now use DF files, an interim file management tool. A database containing information about all Mesa source and object files on the community fileserver was built.
[Teitelman, Swinehart, Schmidt]
Packages: The Ropes package is the standard support for sequences of characters in Cedar. This package now enjoys substantial support from the compiler and runtime, and the implementation has been made more efficient. [Atkinson]
Plans
Our immediate goal is to create an environment that is preferred to the Mesa/PreCascade system. It will not dominate that environment in all respects; but the temporary lack of certain features will be overcome by other aspects of Cedar: garbage collection, run-time types, graphics facilties, DOCs facilities, system modelling, and fast turnaround for small program changes. The first version of this system will employ ISL’s Tioga editor for editting programs, but will depend upon CoPilot for many debugging facilites. Other Cedar goals such as representing programs as data and concurrent garbage collection are being deferred until this goal is met.