Cedar Catalog
Version 5.0
Release as [Indigo]<Cedar>Documentation>Catalog.tioga, .press
Came from
 [Indigo]<PreCedar>Documentation>Catalog.tioga, .press
Last edited By Russ Atkinson on December 21, 1983 7:53 pm
Abstract This catalogue is a list of "interesting" Cedar packages and tools. Each component is described by a maintainer-supplied entry.
In general, all the source, bcds and other files relevant to a package named X can be gotten through the file [Indigo]<Cedar>Top>X.df.
[If you are reading this document on-line, we suggest that you use the Tioga Levels and Lines menus to initially browse the top levels.]
XEROX   Xerox Corporation
    Palo Alto Research Center
    3333 Coyote Hill Road
    Palo Alto, California 94304
DRAFT — For Internal Xerox Use Only — DRAFT
Cedar System Structure
The Cedar system has two levels: Nucleus, which is the level of Cedar required for loading and running programs, and Life Support, which is the level of Cedar necessary for program development. The Life Support level contains the Nucleus level, but has few "creature comforts." The region outside of Life Support (but inside Cedar) contains many user-accessible tools and interesting packages.
The Nucleus may be thought of as the kernel of the operating system for Cedar. It provides low-level access to devices such as the display (Terminal), disk (Disk), and Ethernet (Communication, Pup). The Nucleus also provides virtual memory support (VM), a file system (File, FS), and basic stream facilities (IO, STP). The Nucleus also provides the basic support necessary for loading and running programs (BasicLoadState, Loader, LoadState, MesaRuntime). The components in the Nucleus (and in the BasicCedar*.boot files) are:
BasicLoadState, BasicTime, BcdStuff, BTree, CedarRuntime, Communication, Disk, File, FileStream, FormatDisk, FS, GrapevineUser, HeadsCommon, HeadsD0, HeadsDorado, Iago, IO, Loader, LoadState, MesaRuntime, ProcessProps, Pup, Real, Rollback, Rope, SafeStorage, SimpleTerminal, STP, Tentacles, Terminal, UserCredentials, VM
Life Support
The Life Support level of Cedar includes the Nucleus level, and adds more sophisticated packages and tools. It provides user interaction facilities such as a screen manager (TIP, Viewers), a text editor (Tioga), and command and expression interpreters (CommandTool, InterpreterTool). Program creation and management tools are also included (Binder, Compiler, DFTool).
The components in the Cedar*.boot files, but not in Nucleus, are:
AMEvents, AMModel, AMProcess, AMTypes, BasicPackages, ColorPackage, CommandTool, DFPackage, Graphics, Inscript, Installer, Interpreter, InterpreterTool, PrintTV, ReadEvalPrint, RPCRuntime, Tioga, TIP, UserProfile, VersionMap, Viewers, WorldVM
Other components of the Life Support level are:
Binder, BootTool, Chat, Clock, Compiler, DebugTool, DFTool, Spy, Watch
In general, all the source, bcds and other files relevant to a package named X can be gotten through the file [Indigo]<Cedar>Top>X.df. If that is not the case, the df file is mentioned in the Documentation column. The BringOver command of the DF Tool with Access: public should obtain what you need to run the program (it may bring over more files than strictly necessary). A common convention is that the "principal" interface of a component has the same name as the component and its DF file.
The documentation directory is [Indigo]<Cedar>Documentation> unless otherwise specified.
Complaints are the precursors of improvement. Please send suggestions for improving the form or content of this Catalog to the current Cedar Release Master, or to Jim Horning if you don't know who that is. Send comments about any particular entry to its maintainer, with copies to Jim Horning <Horning.pa> and Mary-Claire van Leunen <vanLeunen.pa>.
Alphabetical Summary
In this summary, each component is named and characterized according to what kind of component it is and where it resides. The kind field can have any combination of the following values:
P for a package, which is intended for use by programs
T for a tool, which is intended for use by people
U for an umbrella, which is a grouping of components
The access field can have any of the following values:
Basic for a component in a BasicCedar* boot file
Cedar for a component in a Cedar* boot file, but not in BasicCedar*
Tool for a tool listed in Tools.df
other for all other release components
 DF name kind access
 AbstractMachine  U Cedar
 AlpineUser  P other
 AMEvents  P Cedar
 AMModel  P Cedar
 AMProcess  P Cedar
 AMTypes  P Cedar
 BasicCedar  U Basic
 BasicLoadState  P Basic
 BasicPackages  U Cedar
 BasicTime  P Basic
 BcdStuff  P Basic
 Binder  T Tool
 BootTool  T Tool
 BTree  P Basic
 BTreeTest  T other
 CedarRuntime  U Basic
 Celtics  T other
 Chat  T Tool
 Clock  T Tool
 CoFork  P other
 CollectibleVM  P other
 ColorPackage  P other
 CommandTool  T Cedar
 Communication  P Basic
 Compiler  T Tool
 CompNeeds  T other
 Cypress  P other
 DebugTool  T Tool
 DFCommands  T other
 DFIncludes  T other
 DFPackage  P Cedar
 DFTool  T Tool
 Disk  P Basic
 DiskTool  T other
 ExecHacks  T other
 File  P Basic
 FileStream  P Basic
 FileStreamTest  T other
 FormatDisk  P Basic
 Forms  U other
 FS  P Basic
 FSUtil  P other
 Germ  P other
 GoodTimes  T other
 GrapevineUser  P Basic
 Graphics  P Cedar
 HeadsCommon  P Basic
 HeadsD0  P Basic
 HeadsDorado  P Basic
 Iago  T Basic
 Idle  P other
 IFSFile  P other
 Inscript  P Cedar
 Installer  P Cedar
 Interpreter  P Cedar
 InterpreterTool  T Cedar
 IO  P Basic
 IOTest  T other
 LifeSupport  U Cedar
 Lister  T other
 Loader  P Basic
 LoadState  P Basic
 Lupine  T other
 Maintain  T other
 MCross  T other
 MesaRuntime  P Basic
 MicrocodeD0  P other
 MicrocodeDorado  P other
 Nucleus  U Basic
 OnlineMergeSort  P other
 Peanut  T other
 PeekMail  T other
 PlotPackage  P other
 PrintTV  P Cedar
 ProcessProps  P Basic
 Pup  P Basic
 Pupwatch  T other
 ReadEvalPrint  P Cedar
 Real  P Basic
 RedBlackTree  P other
 RedBlackTreeRef  P other
 ReleaseTool  T other
 Reminder  T other
 Rollback  P Basic
 Rope  P Basic
 RPCRuntime  P Cedar
 SafeStorage  P Basic
 Scaled  P other
 Sequin  P other
 Set  P other
 ShowPress  T other
 SimpleTerminal  P Basic
 SirPress  P other
 SpellingTool  T other
 Spy  T Tool
 Squirrel  T other
 STP  P Basic
 StructuredStreams  P other
 Tentacles  U Basic
 Terminal  P Basic
 Tioga  PT Cedar
 TIP  P Cedar
 Tools  U Tool
 TSetter  PT other
 UserCredentials  P Basic
 UserInterface  U Cedar
 UserProfile  P Cedar
 VersionMap  P Cedar
 VersionMapBuilder  PT other
 Viewers  P Cedar
 VM  P Basic
 VTables  P other
 Walnut  T other
 Watch  PT Tool
 Waterlily  T other
 WorldVM  P Cedar
Release Components
In general, documentation is stored on one of:
[Indigo]<Cedar>ComponentName>*.mesa -- when the interface is the best documentation
but there are occasional exceptions. For brevity, we do not list Component.Press if Component.Tioga exists, and we do not include [Indigo]<Cedar>Documentation> in the file name if that is the prefix. If not specified, the host is assumed to be [Indigo].
Given the number of changes for Cedar 5.0, all components are listed below. Unless otherwise indicated, questions about changes in individual components should be addressed to their maintainers.
DF files: AlpineUser.df
Documentation: AlpineDoc.tioga, WalnutOnAlpineDoc.tioga
Maintainer: Kolling, Taft
The basic interface for programs using the Alpine file server. Some user commands are accessible through interpreter calls.
DF files: AMEvents.df
Documentation: AMEvents.mesa, FastBreak.mesa | see maintainer
Maintainer: Birrell, Rovner
AMEvents is the part of the Cedar abstract machine concerned with interaction between executing programs and the debugger: uncaught signals, breakpoints, and interpreted procedure calls. Normal access to these facilities is through the InterpreterTool. Consult a wizard before calling AMEvents directly.
DF files: AMModel.df
Documentation: AMModel.mesa, AMMiniModel.mesa
Maintainer: Rovner
AMModel.df includes the components of the Cedar "abstract machine" that deal with loaded programs, frames, their object modules and source modules, and interdependencies. Its major public interfaces are AMModel.mesa and AMMiniModel.mesa.
DF files: AMProcess.df
Documentation: AMProcess.mesa | see maintainer
Maintainer: Birrell, Rovner
AMProcess is the component of the Abstract Machine that manipulates processes.
DF files: AMTypes.df
Documentation: AMTypesDoc.tioga (out of date) | AMTypes.mesa, AMBridge.mesa
Maintainer: Rovner
AMTypes.df includes the part of the Cedar "abstract machine" that deals with types, values and variables. Its major public interfaces are AMBridge.mesa and AMTypes.mesa.
DF files: BasicLoadState.df
Documentation: BcdDefs.mesa, BcdOps.mesa, Table.mesa, TimeStamp.mesa | see maintainer
Maintainer: Levin
New for Cedar 5.0 (no catalog entry).
DF files: BasicPackages.df
Commander.mesa, CommandToolDoc.tioga, PriorityQueue.mesa, Random.mesa, RefTab.mesa, Resource.mesa, RopeFile.mesa, SymTab.mesa
Maintainer: Atkinson, MBrown, Rovner, Stewart
BasicPackages is a bootfile component that combines several unrelated components. All of them were present in earlier releases, and all but Random and RopeFile were part of the boot file in earlier releases. Combining things in this way may not be a good idea, for several reasons, and we may split them apart in some later release. You may avoid some df-file editing by referring to the pieces of BasicPackages via LifeSupport.df.
Commander - provides a central command registry that is used by most programs with text commands (as contrasted with tools that provide interaction through viewers).
PriorityQueue - A PriorityQueue object is a collection of items where items can be inserted in any order, and removed in best-first order, where "best" is determined by a user-supplied predicate. This package can be used to sort in O(N log N) time.
Random - is a module that produces a sequence of random INTs; RandomCard generates random CARDINALs, and RandomInt generates random INTEGERs. These generators all use the same algorithm, which produces very good sequences and is quite fast.
RefTab - provides an alternative to property lists for associating information with unique keys in a -global fashion using specific structures (hash tables). RefTab includes procedures for creating a new table, fetching a value for a particular key, storing a new key-value pair, deleting a key-value pair, and enumerating the pairs in a given table.
RopeFile - is a module that implements ropes backed by files. The ropes need not take up much virtual memory, which can either improve or degrade performance, depending on the pattern of Rope operations used.
SymTab - provides symbol table objects, which can be used to associate ropes with REFs. SymTab has insertion, lookup, deletion, and enumeration operations.
DF file: BasicTime.df
Documentation: BasicTime.mesa | see maintainer
Maintainers: Birrell, Levin
BasicTime provides access to the various kinds of system-maintained time, such as time of day and high resolution time. Conversions to and from Pup (Alto) time format and NS (product standard) time formats are provided.
DF file: BCDStuff.df
Documentation: see maintainer
Maintainers: Levin, Maxwell, Rovner
New for Cedar 5.0 (no catalog entry).
DF file: Binder.df
Documentation: Mesa 5.0 language manual (outdated)
Maintainer: Rovner
The Mesa Binder.
DF file: BootTool.df
Documentation: see maintainer
Maintainer: Levin, Rovner
This tool provides a means to checkpoint or rollback, or to boot other volumes using button clicks. For those with special needs, a more elaborate tool is provided to support booting different files, or booting with unusual parameters.
DF file: BTree.df
Documentation: BTreeDoc.tioga
Maintainer: Taft
This Cedar package maintains an ordered collection of objects as a BTree. The objects may be of different sizes, and there may be a large number of them (tens or hundreds of thousands). The amount of virtual memory required does not depend on the size of the BTree, and the cost of finding, inserting, and deleting objects increases only very slowly as the BTree gets larger. The package makes very few assumptions about the representation of the objects being stored or about the properties of the storage itself.
DF file: BTreeTest.df
Documentation: BTreeDoc.tioga
Maintainer: Taft
A test and performance measurement program for the BTree package.
DF file: Celtics.df
Documentation: CelticsDoc.tioga
Maintainer: Atkinson
The Celtics package contains two debugging tools: Celtics and BreakTool. Celtics is used to set low-cost counting breakpoints. These breakpoints can even be set in very sensitive code, such as the allocator or page fault handling, since incrementing the count is entirely performed with resident code. BreakTool, on the other hand, permits the setting of conditional or logging breakpoints, where an expression is evaluated at every breakpoint. These breakpoints are much more powerful, but the user is cautioned against setting them in places required for the handling of breakpoints.
DF file: Chat.df
Documentation: ChatDoc.tioga
Maintainer: Stewart
Tool for talking to file servers. A command line of simply "Chat" will create an iconic Chat viewer. A command line like "Chat maxc" will create an open chat viewer, connect to Maxc, and log in the current Cedar user.
DF file: Clock.df
Documentation: see maintainer
Maintainer: Atkinson
Clock is a graphic display of the current time. It uses Graphics and Viewers to present a circular clock face with hands. It is a good example program as well as an attractive timepiece. The ChangeOffset button now changes the time by hours (left-click), minutes (middle-click) or seconds (right-click). Holding the Shift key during the mouse click causes the time to appear to go forward, otherwise time appears to go backward. Holding Control for any click causes the displayed time to be the actual time.
DF file: CoFork.df
Documentation: CoForkDoc.tioga
Maintainer: Sturgis
Provides for the convenient start up and shut down of coroutines that use Mesa PORTS.
DF file: CollectibleVM.df
Documentation: CollectibleVM.mesa
Maintainer: Taft
CollectibleVM is a package for obtaining chunks of raw VM that are reclaimed automatically. This is useful for applications requiring storage that is page-aligned or has other properties obtainable from VM but not from the normal Cedar allocator.
DF file: ColorPackage.df
Documentation: ColorWorld.mesa, ColorMap.mesa | see maintainer
Maintainer: Wyatt
This package is the set of programs outside of CedarGraphics and Viewers required to run color viewers. It exports:
ColorMap.mesa for clients who want to change the color map in the color display.
ColorWorld.mesa for Viewers.
DF file: CommandTool.df
CommandToolDoc.tioga, Cedar5LocalDirectories.tioga, CreateButtonDoc.tioga |
CommandTool.mesa, FileNames.mesa, RopeList.mesa
Maintainer: Stewart
The CommandTool has been extensively rewritten for Cedar 5. You are strongly encouraged to read CommandToolDoc.tioga. CommandToolStructureDoc.tioga is less interesting.
The Cedar 5 CommandTool is a stream-oriented "glass teletype" command-line processor. It is a place to invoke Cedar subsystems. It is sufficiently like any other executive so that you can probably get by, but you should read CommandToolDoc.tioga and some of the documentation files for the various commands.
Interesting interfaces:
CommandTool.mesa -- command line parsing and so forth.
FileNames.mesa -- processing of file names beyond that available from FS
RopeList.mesa -- a version of List that deals with LIST OF Rope.ROPE.
DF file: Communication.df
Documentation: see maintainer
Maintainer: Birrell, Levin
The Pilot communication package implements the basic communication protocols - up to the level of byte streams. There are two flavors of protocol available: "OISCP," described in the Pilot Programmers' Manual, and "PUP." At present, only the PUP protocols are used within CSL. These are all "unsafe" interfaces. See also the STP package for FTP transfers, and Lupine for remote procedure calls.
DF file: Compiler.df
Documentation: Mesa 5.0 language manual (outdated) | Cedar Language Reference Manual
Maintainer: Rovner
The Cedar language compiler.
DF file: CompNeeds.df
Documentation: CompNeedsDoc.tioga
Maintainer: Spreitzer
CompNeeds examines source files to determine compilation and binding dependencies and produces a command to compile and bind whatever is necessary to produce up-to-date BCDs for a given set of goal modules.
DF file: Cypress.df
Documentation: [Indigo]<CedarDocs>Database>CypressDoc.press
Maintainer: Cattell.pa
Cypress is the the database management package for Cedar. It is accessed through the interface DB.mesa, or via application programs such as Walnut. The Squirrel application (see separate catalog entry) provides some general-purpose database tools.
If interested in the Cedar data base work, use Maintain to place your name on the distribution list CedarDatabase^.
DF file: DebugTool.df
Documentation: see maintainer
Maintainer: Birrell
(no catalog entry).
DF file: Dependencies.df
Documentation: Dependencies.mesa
Maintainer: Rovner
The "Dependencies" command produces a cross reference that lists for each bcd file in or under a specified DF file the other bcd files that depend on it. Dependencies takes the name of a df file as a parameter and produces two text files: Dependencies.txt and Dependencies.log. Dependencies.txt has the cross reference; Dependencies.log contains a copy of the stuff printed on the commandtool typescript as Dependencies runs. This package was produced by copying Roy Levin's implementation of VerifyDF and modifying it.
DF file: DFCommands.df
Documentation: BringOverDoc.tioga, SModelDoc.tioga, VerifyDFDoc.tioga
Maintainer: vanLeunen
DFCommands provides a command-line interface to the DFTool. These commands (BringOver, SModel, VerifyDF) do not interact with the user; that is, in terms of Cedar 4.4's versions of these commands, "/a" is now the only behavior available.
DF file: DFIncludes.df
Documentation: in catalog entry
Maintainer: MBrown
The command line "DFIncludes XXX.df" produces a file DFIncludes.txt with lines of the form "shortFileName containingDfFile directory", sorted by shortFileName. There is one line for each source file included (in the DF sense) in XXX.df. Both containingDfFile and directory are stripped of redundant information (like "/Indigo/Cedar/Top/") to keep the lines short. Warnings are written to DFIncludes.log.
DF file: DFPackage.df
Documentation: DFOperations.mesa | DFOperationsQueue.mesa | DFUtilities.mesa | see maintainer
Maintainer: Levin
DFPackage is the basic Cedar support for reading and writing DF files.
DF file: DFTool.df
Documentation: see maintainer
Maintainer: Levin
DFTool provides an interactive tool for BringOver, SModel, and VerifyDF commands.
DF file: Disk.df
Documentation: Disk.mesa | see maintainer
Maintainer: Birrell, Levin
New for Cedar 5.0 (no catalog entry).
DF file: DiskTool.df
Documentation: see maintainer
Maintainer: Birrell
New for Cedar 5.0 (no catalog entry).
DF file: ExecHacks.df
Documentation: See catalog entry.
Maintainer: Plass
A revival of a Scott McGregor hack to put some handy menu buttons in the CommandTool. Adds some handy menu buttons to CommandTool viewers: "Compile" and "Redo". "Compile" deduces a filename from the selection, and then does a "Compile", "Bind", or "@" with the root of the filename, depending on the extension. It is purely textual, and extracts just the root of the file name because the Compile command doesn't accept fNames (as of this writing). So watch your working directories. "Redo" is a simple replay of the last command.
DF file: File.df
Documentation: File.mesa | see maintainer
Maintainer: Birrell, Levin
New for Cedar 5.0 (no catalog entry).
DF file: FileStream.df
Documentation: FileStreamDoc.tioga
Maintainer: Hagmann
FileStream is a separate package for Cedar 5.0. It is a generic file stream package, and currently its clients are FS and Alpine file streams. It is a higher performance implementation of its predecessor, FileIO. All parameters in stream creation to FileStream are now used; previously some were ignored. Two streams (one read and one write stream) may now reference the same open file. Sequential reading of a stream will cause the package to pre-read data ahead when sufficient buffers exist. Write behind (the parallel writing of dirty buffers) is also performed.
DF file: FileStreamTest.df
Documentation: see maintainer
Maintainer: Hagmann
This is test software for the filestream package.
DF file: FormatDisk.df
Documentation: FormatDisk.mesa
Maintainer: Taft
Performs machine-dependent disk initialization operations, principally formatting and initial microcode installation. Iago is the only intended client.
DF file: Forms.df
Documentation: SampleSheet.tioga
Maintainer: Beach
This is the beginning of a collection of Tioga forms useful for the creation of various kinds of documents within Cedar. SampleSheet.tioga contains examples of all the principal Looks and Formats of Cedar.style. Form.memo approximates the old Bravo memo.form.
For Cedar 5.0 - New message forms: CSLNotebookMsg.form, LibraryRequest.form, PostCedarRelease.form, PreCedarRelease.form, BootFileRelease.form. New Mesa.form and Help.template. Minor updates to Slides.form, BlueAndWhite.Style and CSLBusinessLetter.form.
DF file: FS.df
Documentation: FSDoc.tioga
Maintainer: Schroeder
FS is a file system for use on a Cedar workstation. It provides access both to remote file servers and to the local disk. Remote files accessible from FS must reside on a file server that supports the FTP protocol, in particular IFS's and Alpine servers. These file servers may be accessed from many Cedar instances on different workstations at the same time. Local files are accessed through an abstraction called the local server. The local server is the set of logical volumes on the local disk of a Cedar instance. One of these logical volumes may be designated the system volume. FS provides a directory for each volume, and a cache for remote files on the system volume.
FS also defines a generic abstraction, the FS.OpenFile, of which the workstation file system is only one class. The generic operations provide access to the data pages and properties of files. Other packages may create their own classes of FS.OpenFile's, upon which these generic FS operations also may be performed. For example, direct page-at-a-time access to Alpine servers is provided through this mechanism.
FS also contains facilities for creating IO.STREAM's on files, for binding local names to remote files, for finding the version of a file that was created at a particular time, and for limiting the number of extant versions of local files.
DF file: FSUtil.df
Documentation: FSUtilDoc.tioga
Maintainer: Schroeder
This package includes commands for listing the set of FS.OpenFiles, FS.ActiveFiles, and IO.STREAM's of class $FileStream that exist in a Cedar instance. It also contains commands for listing the FS cache LRU chain, listing statistics of the FS cache flusher, exercising the cache flusher, and forcing FS.OpenFiles to be closed. All these commands will be of interest to experts only.
DF file: Germ.df
Documentation: see maintainer
Maintainer: Taft
(no catalog entry).
DF file: GoodTimes.df
Documentation: see maintainer
Maintainer: Atkinson
GoodTimes is a simple program that measures and reports elapsed times for various Cedar computations.
DF file: Graphics.df
Documentation: Graphics.mesa
Maintainer: Wyatt
The basic low-level display package; provides device independent graphics and text operations.
DF file: GrapevineUser.df
Documentation: see maintainer
Maintainer: Birrell, Schroeder
GrapevineUser is the package for interfacing to the Grapevine mail and registration services. The Cedar interfaces to Grapevine are GVBasics.mesa, GVNames.mesa, GVSend.mesa and GVRetrieve.mesa. GrapevineUser is included in the Cedar boot file.
DF file: HeadsCommon.df
Documentation: see maintainer
Maintainer: Taft
(no catalog entry).
DF file: HeadsD0.df
Documentation: see maintainer
Maintainer: Taft
(no catalog entry).
DF file: HeadsDorado.df
Documentation: see maintainer
Maintainer: Taft
(no catalog entry).
DF file: Iago.df
Documentation: see maintainer
Maintainer: Birrell
The Cedar replacement for Othello. This tool manages physical and logical volumes on the local system disk.
DF file: Idle.df
Documentation: Idle.mesa | see maintainer
Maintainer: Levin
Low-level support for putting Cedar to sleep.
DF file: IFSFile.df
Documentation: IFSFile.mesa | see maintainer
Maintainer: Atkinson
IFSFile supports Leaf protocol access to IFS. Leaf access is primarily useful for low overhead random access to pages of a file. There are no functional changes since Cedar 4.4, although there is a greater use of SafeStorage facilities.
DF file: Inscript.df
Documentation: InscriptDoc.tioga
Maintainer: Rovner
The basic keyboard input subsystem.
DF file: Installer.df
Documentation: see maintainer
Maintainer: Levin
New for Cedar 5.0 (no catalog entry).
DF file: Interpreter.df
Documentation: Interpreter.mesa
Maintainer: Rovner
The programming interface to the Cedar/Mesa expression interpreter. It is used by the InterpreterTool and by the "←" command.
DF file: InterpreterTool.df
Documentation: InterpreterToolDoc.tioga
Maintainer: Rovner
The user interface to the Cedar/Mesa expression interpreter.
DF file: IO.df
Documentation: IOConversionDoc.tioga, IODoc.tioga, EditedStream.mesa, IOClasses.mesa
Maintainer: MBrown
The IO component exports the IO, EditedStream, IOClasses, IOUtils, and Convert interfaces. The first four interfaces define the STREAM type and the generic operations on streams, contain procedures for creating streams from objects of other types, and provide stream-oriented scanning and printing. The Convert interface gives input/output conversions between several Cedar types and both ROPE and REF TEXT.
Cedar 5.0 - There have been many changes in IO; see IOConversionDoc.tioga for a description of interesting changes since Cedar 4.4. The IO, EditedStream, IOClasses, IOUtils, and Convert interfaces are exported by this component.
DF file: IOTest.df
Documentation: see maintainer
Maintainer: MBrown
IOTest is a test program for the IO package.
DF file: Lister.df
Documentation: ListerDoc.tioga
Maintainer: Atkinson
The Cedar 5.0 Lister is a major rewrite of the old Lister.
Lister is a program to produce human readable files from bcd files produced by the Compiler and Binder. Lister registers a variety of commands, each of which produces a different set of information from a given list of bcd files. These commands include:
BcdLister lists contents of a bcd file
BodyLister lists the bodies of a bcd file (single module)
CodeLister lists the code of a bcd file (single module)
ExportsLister lists the exports of a bcd file
FGTLister lists the fine grain table of a bcd file (single module)
GlobalFramesLister lists the fine grain table of a bcd file
RTBcdLister lists the runtime types information of a bcd file
SymbolLister lists the symbols of a bcd file (single module)
UnboundLister lists the unbound exports of a bcd file
UsingLister generates a DIRECTORY clause for a bcd file (single module)
DF file: Loader.df
Documentation: Loader.mesa | see maintainer
Maintainer: Levin, Schroeder
The basic program loader.
DF file: LoadState.df
Documentation: LoadState.mesa | see maintainer
Maintainer: Birrell, Levin, Rovner
New for Cedar 5.0 (no catalog entry).
DF file: Lupine.df
Documentation: LupineUsersGuide.press
Maintainer: Birrell
Lupine is a program that allows you to make inter-machine "Remote Procedure Calls" ("RPC"). This allows you to write what look like ordinary Mesa procedure calls to invoke operations on another machine on the Pup internet. Lupine and its supporting RPCRuntime are intended to make network communication very easy, very fast, and very cheap. Secure communication facilities are included.
DF file: Maintain.df
Documentation: see maintainer
Maintainer: Birrell, Schroeder
Maintain provides a tool for interrogating and updating the Grapevine registration database.
DF file: MCross.df
Documentation: MCrossDoc.tioga
Maintainer: Rovner
Creates a textual cross-reference for the identifiers that appear in a specified collection of Cedar source files. It is happy to accept other source files (like .cm and .config ) too.
DF file: MesaRuntime.df
Documentation: see maintainer
Maintainer: Levin
Runtime support for the Mesa language. Exports these interfaces: Basics, MesaRuntimeInit, PrincOps, PrincOpsUtils, Process, ProcessExtras, RuntimeError.
DF file: MicrocodeD0.df
Documentation: see maintainer
Maintainer: Fiala
This component consists of microcode files that Dolphin users must install on their disk in order to run Cedar. The installation is ordinarily done automatically by Iago when you create your Cedar world. If you issue the Iago commands manually, the files you install are:
Install Cedar Microcode: CedarD0.eb
Install Initial Microcode: InitialPilot.eb
If you want to boot Cedar with the boot button, OR
Install Initial Microcode: RubiconInitialAltoD0.eb
If you want to boot the Alto emulator with the boot button.
Cedar 5.0 - This version implements new reference counting and storage allocation opcodes used by Cedar 5.0. This version is not upward-compatible from the 4.4 version.
DF file: MicrocodeDorado.df
Documentation: [Indigo]<DoradoDocs>DoradoBooting.press
Maintainer: Taft
This component consists of microcode files that Dorado users must install on their disk in order to run Cedar. The installation is ordinarily done automatically by Iago when you create your Cedar world. If you issue the Iago commands manually, the files you install are:
Install Cedar Microcode: file CedarDorado.eb
Install Initial Microcode: file InitialEtherCedarDorado.eb
If you want to boot Cedar with the boot button, OR
Install Initial Microcode: file InitialEtherAltoMesaDorado.eb
If you want to boot the Alto emulator with the boot button.
Cedar 5.0 - Names have changed since Cedar 4.4 in order to conform to the standard <componentName><machineName>.<extension> style.
DF file: OnlineMergeSort.df
Documentation: ListSort.mesa
Maintainer: MBrown
A very efficient "polymorphic" list-sorting package. Sorts LISTs of T, where T (and a procedure for comparing two Ts) is defined in a DEFs module that parameterizes the ListSort interface. The package's implementation uses the "online merge sort" algorithm to sort an n-item list in time O(n log n). A user of the package creates a suitable DEFs module to parameterize ListSort, then compiles ListSort and OnlineMergeSortImpl.
DF file: Peanut.df
Documentation: see maintainer
Maintainer: Wyatt
New for Cedar 5.0. A Tioga-based mail reading and sending package.
DF file: PeekMail.df
Documentation: see maintainer
Maintainer: Birrell
New for Cedar 5.0 (no catalog entry).
DF file: PlotPackage.df
Documentation: Plotter.mesa, RealEvent.mesa, RealVec.mesa, RefAnyStream.mesa, Timer.mesa | see maintainer
Maintainer: Rovner
A Viewers-based facility for dealing with vectors of REALs, clock-driven interval timers, streams of "events", and simple 2-d graphs of (x,y) coordinate sequences. It features automatic axis labelling and repainting. It provides a good prototype showing how fairly impressive graphic applications can built quickly and easily using existing packages.
DF file: PrintTV.df
Documentation: PrintTV.mesa, BackStop.mesa
Maintainer: Rovner
PrintTV provides for textual output of Abstract Machine values.
DF file: ProcessProps.df
Documentation: ProcessProps.mesa
Maintainer: Atkinson
ProcessProps provides a safe association of <key, value> pairs with processes. It is similar to LISP-style dynamic binding.
DF file: Pup.df
Documentation: see maintainer
Maintainer: Birrell, Levin
This implements the basic PUP communication protocols - up to the level of byte streams. Most public interfaces are in Communication.df, but EFTP is in Pup.df. Higher level protocols are available through the STP package (for file transfer) and Lupine (for remote procedure calls).
DF file: PupWatch.df
Documentation: see maintainer
Maintainer: Birrell
Running Pupwatch.bcd from Pupwatch.df creates a viewer that allows you to watch Pup packets in transit on the local Ethernet. Pupwatch will display packets from or to a particular host, which you specify by NLS name or network address. The pupwatch viewer gives you a brief summary of each packet. The "Write Log" button writes a file giving more details about each packet. Pupwatch understands most common Pup packet types. If you run Pupwatch on a Dolphin, it is liable to miss packets because of lack of processing power; on a Dorado it should miss no packets.
DF file: ReadEvalPrint.df
Documentation: ReadEvalPrint.mesa | see maintainer
Maintainer: Stewart, Rovner
ReadEvalPrint provides a framework for programs that interactively execute commands, interpret expressions, or otherwise use the form of {accept input line; perform action based on the input; print the results; repeat}.
DF file: Real.df
Documentation: MesaFloat60.bravo | Real.mesa | Ieee.mesa | see maintainer
Maintainer: Levin, Stewart
Real is the Cedar support for IEEE 32-bit floating point numbers.
DF file: RedBlackTree.df
Documentation: OrderedSymbolTable.mesa
Maintainer: MBrown
A package for maintaining symbol tables with an ordering among keys. The ordering allows the table to perform searches such as "find the smallest item in the table that is larger than this one," as well as exact-match searches. A table stores items of type I with keys of type K, where I and K are defined in a DEFs module that parameterizes the OrderedSymbolTable interface. The package's implementation uses a binary tree representation of 2-3-4 trees, called "red-black" trees; this means that any search, insertion, or deletion from a table of n items takes O(log n) time. A user of the package creates a suitable DEFs module to parameterize OrderedSymbolTable, then compiles OrderedSymbolTable and RedBlackTreeImpl.
DF file: RedBlackTreeRef.df
Documentation: OrderedSymbolTableRef.mesa
Maintainer: MBrown
A variant of the above package that stores items of type REF ANY, and takes a item-comparison procedure as a parameter at the time a table is created.
DF file: ReleaseTool.df
Documentation: see maintainer
Maintainer: Atkinson
The ReleaseTool is a new component for Cedar 5.0. The ReleaseTool is used to verify the completeness and consistency of releases, and to ship the files from the staging directory (normally [Indigo]<PreCedar>) to the release directory (normally [Indigo]<Cedar>).
DF file: Reminder.df
Documentation: Reminder.mesa
Maintainer: Rovner
This is a simple program for managing a personal reminder calendar, in lieu of the more complete facilities of Hickory, which is not yet released.
DF file: Rollback.df
Documentation: see maintainer
Maintainer: Birrell
New for Cedar 5.0 (no catalog entry).
DF file: Rope.df
Documentation: RopeDoc.tioga | see maintainer
Maintainer: Atkinson
The Rope package, which is new for Cedar 5.0, exports the familiar old interfaces Ascii, ConvertUnsafe, RefText, and Rope. The most notable changes for Cedar 5.0 are
In Cedar 5.0, the RefText interface has changed in the following way: all procs that append to a REF TEXT return a REF TEXT value, as in AppendChar: PROC [to: REF TEXT, from: CHAR] RETURNS [REF TEXT]. The result TEXT is the same REF as the parameter to, unless to.length = to.maxLength when AppendChar is called. In this case, a longer TEXT is allocated and the current contents of to are copied into it. It is considered an error to pass NIL as the value of to (PointerFault will be raised). The same convention is followed by all procs that append to a REF TEXT in the RefText interface. The IO and Convert interfaces follow the same conventions.
Rope now includes several procedures formerly in RopeInline, which has disappeared. RopeDoc.tioga has been revised to reflect the minor changes in Rope.
DF file: RPCRuntime.df
LupineRuntime.mesa, RPC.mesa, RPCLupine.mesa, RPCWatch.mesa | see maintainer
Maintainer: Birrell
Runtime support for Remote Procedure Call.
DF file: SafeStorage.df
Documentation: SafeStorage.mesa, SafeStorageDoc.tioga (outdated) | see maintainer
Maintainer: Rovner
Cedar runtime support for reclaimable reference-counted storage. The SafeStorage package exports the interfaces Atom, List, SafeStorage, and UnsafeStorage.
Atom - contains procedures for creating atoms, and for storing and retrieving information on property lists. Property lists are lists of name value pairs that are usually associated with an atom, but can also be manipulated directly using procedures in this interface, e.g., the data field in a Viewer is usually a property list so that various clients can associate data with a viewer without getting in each others way.
List - contains various useful procedures for dealing with LIST OF REF ANY, e.g., Append, Member, NthTail, Union, Reverse, Sort, etc. For applications that traffic in LIST OF particular REF, e.g., LIST OF ATOM, it is necessary (but acceptable) to LOOPHOLE the list into a LIST OF REF ANY and then use a procedure in this interface. (For those procedures that return a LIST OF REF ANY value, it may be necessary to LOOPHOLE this value back into the LIST OF particular REF).
DF file: Scaled.df
Documentation: Scaled.mesa
Maintainer: Plass
Supports scaled fixed-point numbers.
DF file: Sequin.df
Documentation: Sequin.mesa | see maintainer
Maintainer: Atkinson
Sequin supports a full-duplex sequential stream of packets on the Ethernet. It is primarily used to support IFSFile (Leaf access to IFS). There are no functional changes since Cedar 4.4, although there is a greater use of SafeStorage facilities.
DF file: Set.df
Documentation: SetDoc.tioga
Maintainer: Rovner
This package is intended for dealing with "sets" of REFs, i.e., variable length collections of elements in which there are no duplicates. Elements are REF ANYs
DF file: ShowPress.df
Documentation: see maintainer
Maintainer: Beach, Wyatt
(no catalog entry).
DF file: SimpleTerminal.df
Documentation: SimpleTerminal.mesa
Maintainer: Levin
New for Cedar 5.0 (no catalog entry).
DF file: SirPress.df
Documentation: SirPress.mesa | see maintainer
Maintainer: Plass
SirPress is a module for writing Press files.
DF file: SpellingTool.df
Documentation: SpellingToolDoc.tioga
Maintainer: Nix
The Spelling Tool is an efficient, lightweight tool for checking spelling in text. It is used much like a string search command; however, rather than locating the next piece of text that matches a particular pattern, it locates the next misspelled word. The Tool also provides facilities that assist in correcting misspelled words and that retrieve definitions from the Dictionary Server.
DF file: Spy.df
Documentation: SpyDoc.tioga
Maintainer: Maxwell
The Spy is the standard performance tool. It allows the programmer to monitor CPU usage, page faults, allocations, or user defined resources.
DF file: Squirrel.df
Documentation: SquirrelDoc.tioga
Maintainer: Cattell, Donahue
Squirrel provides general-purpose database tools. It is intended for debugging database applications, and for building special databases for which no special application code is necessary or desirable. Squirrel implements whiteboards, used for Cedar documentation. Experimental whitepages facilities are now available, as well.
DF file: STP.df
Documentation: STP.mesa | see maintainer
Maintainer: Birrell, Levin
No known changes (no catalog entry).
DF file: StructuredStreams.df
Documentation: StructuredStreams.mesa | see maintainer
Maintainer: Spreitzer
This is a kind of output stream. It is a filter that inserts white space to do pretty-printing. StructuredStreams.Mesa defines the calls peculiar to pretty printing. This is an IO.STREAMs interface to Greg Nelson's UnparserBuffer, which is also in the DF file.
DF file: Tentacles.df
Documentation: see maintainer
Maintainer: Birrell, Levin
New for Cedar 5.0 (no catalog entry).
DF file: Terminal.df
Documentation: see maintainer
Maintainer: Levin
Terminal provides a facility for multiplexing virtual terminals on a single physical terminal.
DF file: Tioga.df
Documentation: TiogaDoc.tioga
Maintainer: TiogaImplementors^.pa
The standard Cedar text editor.
DF file: TIP.df
Documentation: TIPDoc.tioga
Maintainer: TiogaImplementors^.pa
TIP is the middle-level keyboard and mouse event parser. TIP is the source of input events for Viewers and Tioga. The source of primitive events for TIP is Inscript.
DF file: TSetter.df
Documentation: TSetterDoc.tioga
Maintainer: Beach, Plass
The TSetter tool provides a convenient way of driving the Tioga typesetter or creating press files to containing the current contents of the screen. Start it with the TSetter command, and use the middle mouse button on the menu items to find out what they do. The first parameter to the TSetter command is the server, and the rest of the line is a list of files to typeset.
DF file: UserCredentials.df
Documentation: UserCredentials.mesa | see maintainer
Maintainer: Levin
UserCredentials provides centralized management of the credentials of the user at the terminal.
DF file: UserProfile.df
Documentation: UserProfileDoc.tioga
Maintainer: Donahue
UserProfile provides centralized user option handling for the rest of Cedar.
DF file: VersionMap.df
Documentation: VersionMap.mesa, VersionMapDefaults.mesa | see maintainer
Maintainer: Atkinson
VersionMap provides two fast maps: from version stamps to long names, and from short names to long names. This facility is used for debugging.
DF file: VersionMapBuilder.df
Documentation: see maintainer
Maintainer: Atkinson
VersionMapBuilder provides facilities for building version maps from DF files. The Cedar 5.0 VersionMapBuilder is a major rework of the way that version maps are built.
DF file: Viewers.df
Documentation: ViewerDoc.tioga
Maintainer: Wyatt
The Cedar window package.
DF file: ViewRec.df
Documentation: ViewRecDoc.tioga | see maintainer
Maintainer: Spreitzer
ViewRec is intended for quick and easy user interface construction. Given a record, or the name of a DEFINITIONS module, it will construct a Viewer on the components of that record that are simple enough (numbers, ROPEs, enumerations, subranges of simple enough, records of simple enough stuff, procedures that take simple enough stuff, or explicitly bound by the client). The procedures may be invoked, and the data may be edited.
Cedar 5.0 - You now have the option of allowing your RecordViewers to dynamically relayout to fit the current viewer width. More Cedar aggregate classes supported (ARRAYs and SEQUENCEs). Numerous small changes.
DF file: VM.df
Documentation: VM.mesa, VMStatistics.mesa | see maintainer
Maintainer: Birrell, Levin
New for Cedar 5.0 (no catalog entry).
DF file: VTables.df
Documentation: VTables.mesa | see maintainer
Maintainer: Atkinson
VTables is a package that provides a Viewer class for tabular organization of viewers. It supports rectangular organization with optional borders, automatic sizing, and addition, deletion, and swapping of rows and columns of viewers.
DF file: Walnut.df
Documentation: WalnutDoc.tioga
Maintainer: <Willie-Sue> Orr
This is the mail system for Cedar. Please read the documentation before trying to use Walnut.
Cedar 5.0 - A major change is that the user's mail database must be on Alpine. Please see the documentation for details.
DF file: Watch.df
Documentation: WatchDoc.tioga
Maintainer: Atkinson
This Tool runs in background and cheaply monitors various kinds of resource usage (storage allocation, CPU load, page fault rate, free VM pages, largest run of free VM pages, free MDS pages, etc.) The VM run is calculated twice per minute, but will be calculated immediately if you click the "Sample" button. Other information is sampled at a rate given after the "Interval" button. Red-clicking the "Interval" or "GC Interval" button doubles the parameter associated with the button, blue-clicking halves the parameter.
Cedar 5.0 - Watch has been changed to give better statistics on the inner workings of the system. The DiskIO line in the bar graph now indicates what percentage of the time there was a queued disk request. The extensive WatchDoc.tioga is new.
DF file: Waterlily.df
Documentation: help message in the UserExec or Commander
Maintainer: Kolling
Waterlily compares two (local or remote) source files. Various switches are available to specify the format of the source files and other options, but in most cases the defaults will be sufficient. The long help message via the CommandTool describes the switches. Comment nodes are not seen when input files are specified to be Tioga format (the default).
DF file: WorldVM.df
Documentation: AMProcessBasic.mesa, WorldVM.mesa | see maintainer
Maintainer: Birrell
Provides low-level access to address spaces for local, world-swap, and remote debugging.