CEDAR 5.0 RELEASE
Cedar 5.0 Release
This release is a major revision of the operating system for Cedar. All interfaces have been recompiled. There are many functional changes, especially in the file system. Users should read and follow the installation procedure (described below) carefully.
There are two global documentation files that you may find useful. They are available through Cedar5.0.df, and their full names are:
[Indigo]<Cedar>Documentation>Cedar5.0.tioga -- this release message
[Indigo]<Cedar>Documentation>Catalog.tioga -- the package catalog
The openr command can be used to open a viewer on any source file in the release given only its short name. For example, openr Cedar5.0.tioga would open a viewer on this release message. This command is particularly useful for browsing through documentation. A companion command, findr, can be used to find all source files in the release whose short names match a pattern (the first letter of the pattern cannot be *).
**** Known Problems ****
Dandelions - are not supported for Cedar 5.0. We expect to be able to support them in early January 1984. In the meantime, Cedar 4.4 should be used for Dandelions.
MakeBoot - is not ready for Cedar 5.0. Clients who need to make boot files must use Cedar 4.4 until a PostCedar version of MakeBoot is available.
WalnutSend - There is a potential deadlock during sending. If you wish to close a sender while it is sending, either use right-click (to automatically close the viewer), or wait until the date and from fields have appeared in the sender.
RefText - AppendRope is declared with start: NAT instead of start: INT. This can cause a bounds fault in other packages, notably ViewerIO.
IO - UnsafeGetBlock has been observed to fail for large byte counts (> LAST[NAT]).
DFPackage - If you need to import (in the DF sense) a file that is private to Tioga (interface or implementation), do not do so from Tioga.df; use instead the appropriate inner DF file (TBase, TEdit, etc.) There is a bug in BringOver that may cause a file not to be retrieved if referenced through Tioga.df.
Missing messages - There were no release messages for AMEvents, AMProcess, BasicLoadState, BasicTime, BcdStuff, BootTool, CedarRuntime, ColorPackage, Communication, DebugTool, DFPackage, DFTool, Disk, DiskTool, File, Germ, GrapevineUser, HeadsCommon, HeadsD0, HeadsDorado, Iago, Idle, Installer, Loader, LoadState, Lupine, LupineStubs, Maintain, MesaRuntime, Peanut, PeekMail, Pup, Rollback, RPCRuntime, SafeStorage, ShowPress, SimpleTerminal, STP, Tentacles, Terminal, Tioga, UserCredentials, Viewers, VM, or WorldVM. The release master does not feel responsible for this lack, but has tried to generate reasonable substitutes. These components are marked with "(no message)" to indicate that the information about changes is at least partially guesswork.
**** Installation Procedure ****
The installation information is graciously provided by Jim Donahue.
Cleaning up
Save your private files on a server
Before you proceed with the installation instructions given below, first clean up your old world and move the files you want to save to a file server. You can use DFDisk to make sure that you have got them all. (The files that haven't been SModel'ed to a file server are listed at the end of Disk.df under [Unknown]<Unknown>.)
Make a new user profile
One of the changes in Cedar 5.0 is that it uses a user profile entry to decide what DF files to bring over during booting. The boot looks in your user profile for an "Installation.Bringover" entry, which can be any list of DF Files; only the exported components of these DF files are fetched.
What if you're just getting started and don't even have a user profile on your local disk? In this case, the booting machinery will try to find a user profile in a reasonable place. First, if you have a directory on Ivy, it will be searched for a <UserName>.profile; if this fails, then the default profile is taken from [Indigo]<Cedar>Top>User.Profile.
You cannot boot Cedar 5 correctly with a Cedar 4.4 user profile. So, if you have an old profile stored on [Ivy]<UserName>UserName.profile, you should either
delete it (in which case the standard User.profile will be used), or
change it to make it suitable for 5.0. The easiest way to do this is to retrieve the profile stored on [Indigo]<Cedar>Top>User.profile, make whatever modifications you want, and then store the result on [Ivy]<UserName>UserName.profile. Unless you really know what you're doing, don't change the Installation.Bringover option that is specified there.
There have been a large number of changes in the user profile options for Cedar 5, so if you plan substantial modification of the default profile, first look in
[Indigo]<Cedar>Documentation>UserProfileDoc.tioga
Doing the conversion
Now that you're ready to reformat your disk for the great leap into 5.0, here's how to do it:
Ò First, get to the CedarNetExec by triple-booting holding down the BS, RETURN and X keys.
Ò Type Cedar. A Cedar 5.0 screen will eventually appear.
Ò Log in.
Ò Then you will be asked if you want to initialize your disk from scratch; answer Yes. (If you say no, you will be asked if you want to use Iago. This would allow you to do the installation yourself, but you don't want to.)
Ò After saying yes, you will be asked questions to determine what operations must be performed to initialize your disk:
õ How many Alto partitions? Usually you want 0 or 1 partitions (roughly 20K pages) for Alto emulation. Dolphin users actually are asked how many semipartitions to use (semipartitions are also known as Model 44's for historical reasons).
õ Is your disk is already formatted? Read the instructions carefully, but the most likely answer is yes. You don't want to reformat if you don't have to -- it's expensive.
õ Do you want a Debugger volume? Dorado users do, Dolphin users don't.
õ Whether the boot files should be fetched from the Cedar or the PreCedar directory: you want the Cedar ones.
Ò After answering all of these questions, the list of the operations to be performed is printed and you will be asked for confirmation. If you made a mistake or changed your mind about how you would like the disk structured, don't worry -- nothing has been done and you can just repeat the sequence of questions and answers. Only after you give confirmation will the actions be performed.
Ò Once the initialization has been confirmed, you can go get a cup of coffee (or two) while the volumes are initialized; no further confirmations are necessary.
Ò Once your Cedar world has finished booting, you should make a checkpoint (use the Checkpoint button at the top of your screen).
Moving Around
After doing all this, you will find that triple-booting the machine will get you into the 5.0 world (even if you have an Alto partition). You can get from the Cedar partition to the Debugger partition by typing control-swat. If you have an Alto partition you can get there with the BootTool or by triple-booting with the M switch. Note: To boot with a particular switch, either use the BootTool and set the Switches field, or hold the appropriate key down until 845 appears on the control panel after beginning the booting.
Booting and Rollback
Booting a 5.0 volume with no switches will perform a rollback unless there is no checkpoint file. Only if you boot with the F switch will you get the full boot sequence.
Warning about sticky checkpoints: Installing and booting a new boot file does not destroy your old checkpoint; your old checkpoint includes the old boot file, which you were presumably trying to get rid of by booting. So the very next thing to do after installing a new boot file and booting -- with the F switch -- is to take a new checkpoint.
The Difference Between a 5.0 and a 4.4 Disk
After going through the installation process, you will have the following volumes on your disk:
1. (required) a Cedar volume
2. (optional) a Debugger volume,
3. (optional) an Alto volume
The Booter and the Othello volume have gone away in Cedar 5.0. The Booter volume previously held a special boot file that, when booted, would look for a checkpoint and, if one existed, would perform a rollback; otherwise it would perform a full boot. This is now the default behavior when booting. Othello has been replaced by Iago, a program contained in the boot file. Booting a 5.0 boot file with the "L" switch will get you to Iago. The Iago operations are familiar to anyone who has used Othello; type "?" for a list of them.
**** Significant Changes in this Release ****
There are two documents that should help you with converting Cedar 4.4 programs to Cedar 5.0 programs. They are available through Life Support.df, and their full names are:
[Indigo]<Cedar>Documentation>Cedar5Conversion.tioga
[Indigo]<Cedar>Documentation>IOConversion.tioga
FS
There is an entirely new file system for Cedar 5.0, FS. It is described from the Cedar programmer's point of view in FSDoc.tioga. Below is a brief description of the major changes from the user's point of view.
Instead of copying, attachments
One of the major changes that you will see after you boot is that many more files seem to be on your disk than you are used to in Cedar 4.4. (Type `List *Doc.tioga' in a CommandTool to see how many more documentation files there are!) No, your disk hasn't gotten bigger nor has Cedar become greedy and left you with no room to work. Instead, the DF software has made use of FS attachments to give local names to many of the files stored on [Indigo]<Cedar>. To explain what this means, you need to know something about the way FS names files.
Names for FS files are called ``FNames.'' An FName consists of (in order) a server, a root directory, zero or more subdirectories, a simple name, and a version. Both FTP bracket syntax and CIFS slash syntax for FNames are accepted; the following constructs are equivalent:
[server]<rootDirectory>subDirectory>simpleName!version
/server/rootDirectory/subDirectory/simpleName!version
A named server like [Ivy] or /Indigo/ is a remote file server. The names of files on remote servers are called ``GNames,'' for global names.
An unnamed server, [] or //, means the local server (your disk). The names of files on the local server are called ``LNames,'' for local names.
In a GName, the rootDirectory is the directory on the server.
In an LName, the rootDirectory is the name of the logical volume. []<> or /// means the current logical volume. For example, if you are using the Debugger volume, ///foo.mesa means the foo.mesa file in the Debugger, while //Cedar/foo.mesa means the foo.mesa file on the Cedar volume. If you are using the Cedar volume, ///foo.mesa means the foo.mesa file on the Cedar volume, while //Debugger/foo.mesa means the foo.mesa file on the Debugger volume. There is no need for special tools to move files around between volumes (you don't need the ClientFileTool anymore.)
All FNames, both GNames and LNames, have version parts. For example, the following are complete FNames:
[Indigo]<Cedar>Documentation>FSDoc.tioga!478
[]<>FS.mesa!3
///FS.mesa!3
[]<Debugger>Temp>DebugTool.bcd!12
//Debugger/Temp/DebugTool.bcd!12
An attachment in FS is an association of an LName to a GName; for instance, after you boot there will be an attachment from the local name ///WalnutDoc.tioga!1 to the global name [Indigo]<Cedar>Documentation>WalnutDoc.tioga!H. When you do a Bringover, the only effect is to establish the attachments of the local names to the global names -- no copying of the contents of any of the global files is done.
The good part of attachments is that they are cheap; you can have many LNames in your local file system without giving up all your disk to the system. The less good thing about attachments is that files are transferred as they are referenced - there may be long pauses at unexpected times, and the unavailability of Indigo may cause Cedar to hang, crash, or otherwise misbehave.
Partial names and working directories
An FName that does not start with a server part is called a partial name and will be interpreted relative to a working directory. If you type a file name in a CommandTool, it will be interpreted relative to the working directory that appears in the CommandTool herald line; the default is ///, pronounced root. Working directories aren't fully implemented in Cedar yet, but if you'd like to get some idea of how they will be able to help you in the future, go read Cedar5LocalDirectories.tioga.
Caching and cache management
When you open a file using an LName that is an attachment to a GName or if you open a file using a GName directly, FS has to copy the bits of the file from the server to the local file cache. Because of this copying, you will often see some delays when you open a file; in the worse case the open may fail because the server is dead. This is the price you pay for keeping things remotely and leaving your local disk uncluttered.
Another effect of the caching is that your disk space (as measured by Watch) will normally hover around 1000 free pages. That sounds like a small amount, but it really isn't. Most of the space on the disk is being managed by the FS cache; if you need space, the FS cache manager can allocate space to your local files by removing from the cache files stored on remote servers.
Instead of $ files, versions
Because all file names now have explicit versions, Tioga no longer produces a $ file when you save a file you have been editing. Instead, it makes a new file with the next higher version number. The default in Cedar 5.0 is to keep at most two versions of each .tioga file, so the previous version will be not be destroyed.
Most of the time a version number is not necessary as part of an FName -- FS will use either the most recent or least recent version as is appropriate. You can name a particular version of a file by using either a version number or the version variables !L, meaning the lowest existing version number, or !H, meaning the highest existing version number. The most recent version of Foo.tioga is Foo.tioga!H and (using the default of keeping two versions) the previous version is Foo.tioga!L.
Instead of a FileTool
DFTool
To do a bringover or smodel, use either the DFTool or DFCommands. To get an instance of the DFTool, type ``DFTool'' to the CommandTool.
You should check the DFTool user profile options described in UserProfileDoc.tioga.
List and Copy
Because of FS, special tools are not required to list, fetch, or store files on remote servers. The List command can be given patterns using remote paths and the Copy command can be used to retrieve and store files on remote servers; descriptions of the List and Copy commands are given in ListDoc.tioga and CopyDoc.tioga.
Instead of a UserExec
The CommandTool
To get a new CommandTool, click ``Cmd'' in the upper right hand part of the screen. CommandToolDoc.tioga gives a general introduction to the use of the command tool. The CommandTool gives you a much more limited set of buttons than you used to have with the UserExec (although more can be added, see CreateButtonDoc.tioga). To set a breakpoint, for instance, you need to use the InterpreterTool.
The InterpreterTool
To get a new InterpreterTool, type ``Interpreter'' to a CommandTool. InterpreterToolDoc.tioga gives a general introduction to the use of the InterpreterTool.
Debugger user profile entries
So that you can use the same user profile on both the Cedar volume and the Debugger volume, you can now precede any user profile entry with "Debugger." to have it take effect only on the Debugger volume. For instance, two reasonable PreRun lines would be:
PreRun: /Indigo/Cedar/Clock/Clock.bcd /Indigo/Cedar/Watch/Watch.bcd /Indigo/Cedar/DFTool/DFTool.bcd /Indigo/Cedar/BootTool/BootTool.bcd /Indigo/Cedar/Top/Compiler.bcd /Indigo/Cedar/Top/Binder.bcd /Indigo/Cedar/Reminder/Reminder.bcd
Debugger.PreRun: /Indigo/Cedar/Clock/Clock.bcd /Indigo/Cedar/Watch/Watch.bcd /Indigo/Cedar/DFTool/DFTool.bcd /Indigo/Cedar/BootTool/BootTool.bcd /Indigo/Cedar/MCross/MCross.bcd
Notice that FNames are used here to guarantee that the latest version is fetched from the server. !H is the default.
Walnut
Your mail database must be on Alpine. Your log file may be local, but we strongly recommend that it be on Alpine. See Karen Kolling for an Alpine account if you do not already have one.
**** Component Summary ****
The following is a complete list of the system components included in this release. Details about the relationship of each component to the previous release and pointers to documentation and DF files appear in the Summary of Release Components section, below.
The field after the package name indicates what has changed. It can take the following values:
new component is new for this release
minor component only has minor bugs fixed and/or simple conversion
major component has significant changes
The next field indicates where the package resides. It can take the following values:
Basic component is in BasicCedarD*.boot
Cedar component is in CedarD*.boot
Tool component is covered by Tools.df, but all or part is not in any boot file
other component is not in one of the above categories
** Umbrella DF files **
AbstractMachine new Cedar
BasicCedar major Basic
LifeSupport new Cedar
Nucleus new Basic
Tools new Tool
UserInterface major Cedar
** Packages of general interest **
BasicPackages new Cedar
BasicTime new Basic
Binder minor Tool
BootTool major Tool
BTree minor Basic
Celtics new other
Chat minor Tool
Clock minor Tool
ColorPackage minor other
CommandTool new Cedar
Compiler minor Tool
CompNeeds new other
Cypress major other
DebugTool major Tool
DFCommands new other
DFIncludes new other
DFTool new Tool
ExecHacks new other
Forms minor other
FS new Basic
Graphics minor Cedar
InterpreterTool major Cedar
IO major Basic
Maintain minor other
MesaRuntime major Basic
Peanut minor other
PeekMail minor other
Real minor Basic
Reminder minor other
Rope minor Basic
SafeStorage major Basic
Scaled minor other
Set minor other
ShowPress minor other
SpellingTool new other
Spy minor Tool
Squirrel minor other
StructuredStreams new other
Terminal new Basic
Tioga major Cedar
TSetter minor other
UserCredentials new Basic
UserProfile minor Cedar
Viewers minor Cedar
VM new Basic
VTables minor other
Walnut major other
Watch major Tool
Waterlily minor other
** Packages of limited interest **
AlpineUser minor other
AMEvents minor Cedar
AMModel major Cedar
AMProcess major Cedar
AMTypes major Cedar
BasicLoadState new Basic
BcdStuff new Basic
BTreeTest new other
CedarRuntime new Basic
CollectibleVM new other
CoFork minor other
Communication minor Basic
DFPackage new Cedar
Disk new Basic
DiskTool new other
File new Basic
FileStream new Basic
FileStreamTest new other
FormatDisk new Basic
FSUtil new other
Germ minor other
GoodTimes new other
GrapevineUser minor Basic
HeadsCommon minor Basic
HeadsD0 minor Basic
HeadsDorado minor Basic
Iago new Basic
Idle new other
IFSFile minor other
IOTest new other
Inscript minor Cedar
Installer new Cedar
Interpreter major Cedar
Lister major other
Loader major Basic
LoadState major Basic
Lupine minor other
MCross minor other
MicrocodeD0 new other
MicrocodeDorado new other
OnlineMergeSort minor other
Othello minor other
PlotPackage minor other
PrintTV new Cedar
ProcessProps minor Basic
Pup minor Basic
Pupwatch minor other
ReadEvalPrint minor Cedar
RedBlackTree minor other
RedBlackTreeRef minor other
ReleaseTool new other
Rollback new Basic
RPCRuntime minor Cedar
Sequin minor other
SimpleTerminal new Basic
SirPress minor other
STP minor Basic
Tentacles new Basic
TIP minor Cedar
VersionMap minor Cedar
VersionMapBuilder major other
WorldVM minor Cedar
** Boot file summary **
BasicCedar*
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
Cedar*
AMEvents, AMModel, AMProcess, AMTypes, BasicPackages, CommandTool, DFPackage, Graphics, ColorPackage, Inscript, Installer, Interpreter, InterpreterTool, PrintTV, ReadEvalPrint, RPCRuntime, Tioga, TIP, UserProfile, VersionMap, Viewers, WorldVM
**** Release Components ****
Note: In the descriptions that follow the DF file or files for a component are located on [Indigo]<Cedar>Top> unless otherwise specified. If the documentation file name is not a path, it is assumed to be accessible using the DF file name and BringOver, i.e.,
BringOver /o DocFileName DFFileName
In general, documentation for Component is stored on one of
[Indigo]<Cedar>Documentation>Component.tioga
[Indigo]<Cedar>Documentation>ComponentDoc.tioga
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].
All components of Cedar 5.0 are listed below. Unless otherwise indicated, questions about changes in individual components should be addressed to their maintainers.
AlpineUser
DF files: AlpineUser.df
Documentation: AlpineDoc.tioga, WalnutOnAlpineDoc.tioga
Maintainer: Kolling, Taft
No significant changes.
AMEvents
DF files: AMEvents.df
Documentation: AMEvents.mesa, FastBreak.mesa | see maintainer
Maintainer: Birrell, Rovner
No known changes (no message).
AMModel
DF files: AMModel.df
Documentation: AMModel.mesa, AMMiniModel.mesa
Maintainer: Rovner
Conversion to 5.0, bug fixes, interface cleanup.
AMProcess
DF files: AMProcess.df
Documentation: AMProcess.mesa | see maintainer
Maintainer: Birrell, Rovner
No known changes (no message).
AMTypes
DF files: AMTypes.df
Documentation: AMTypesDoc.tioga (out of date) | AMTypes.mesa, AMBridge.mesa
Maintainer: Rovner
Conversion to 5.0, bug fixes, interface cleanup.
BasicLoadState
DF files: BasicLoadState.df
Documentation: BcdDefs.mesa, BcdOps.mesa, Table.mesa, TimeStamp.mesa | see maintainer
Maintainer: Levin
New for Cedar 5.0 (no message).
BasicPackages
DF files: BasicPackages.df
Documentation:
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.
BasicTime
DF file: BasicTime.df
Documentation: BasicTime.mesa | see maintainer
Maintainers: Birrell, Levin
New for Cedar 5.0 (no message).
BcdStuff
DF file: BCDStuff.df
Documentation: see maintainer
Maintainers: Levin, Maxwell, Rovner
Replaces Bcd.df from Cedar 4.4 (no message).
Binder
DF file: Binder.df
Documentation: Mesa language manual (outdated)
Maintainer: Rovner
No significant changes.
BootTool
DF file: BootTool.df
Documentation: see maintainer
Maintainer: Levin, Rovner
No known changes (no message).
BTree
DF file: BTree.df
Documentation: BTreeDoc.tioga
Maintainer: Taft
There have been some minor interface changes
BTreeTest
DF file: BTreeTest.df
Documentation: BTreeDoc.tioga
Maintainer: Taft
New component (formerly part of BTree.df). A test and performance measurement program for the BTree package.
Celtics
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.
Chat
DF file: Chat.df
Documentation: ChatDoc.tioga
Maintainer: Stewart
No significant changes.
Note: Chat uses ">logfile" to redirect output, not "> logfile" which does nothing.
Clock
DF file: Clock.df
Documentation: see maintainer
Maintainer: Atkinson
Mostly minor conversion changes. 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.
CoFork
DF file: CoFork.df
Documentation: CoForkDoc.tioga
Maintainer: Sturgis
No significant changes.
CollectibleVM
DF file: CollectibleVM.df
Documentation: CollectibleVM.mesa
Maintainer: Taft
This is a new 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.
ColorPackage
DF file: ColorPackage.df
Documentation: ColorWorld.mesa, ColorMap.mesa | see maintainer
Maintainers: Wyatt, Stone
No significant changes for clients. The implementation was converted to use the new Terminal interface.
CommandTool
DF file: CommandTool.df
Documentation:
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.
Communication
DF file: Communication.df
Documentation: see maintainer
Maintainer: Birrell, Levin
No known changes (no message).
Compiler
DF file: Compiler.df
Documentation: Cedar Language Reference Manual
Maintainer: Rovner
The compiler no longer gives (or needs to give) the warning: Long REF-containing arg/result record is unsafe.
CompNeeds
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.
Cypress
DF file: Cypress.df
Documentation: [Indigo]<CedarDocs>Database>CypressDoc.press
Maintainer: Cattell.pa
Get on CedarDatabase^ or see maintainer for details of changes.
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.
DebugTool
DF file: DebugTool.df
Documentation: see maintainer
Maintainer: Birrell
Conversion changes, perhaps others (no message).
Dependencies
DF file: Dependencies.df
Documentation: Dependencies.mesa
Maintainer: Rovner
New for 5.0. 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.
DFCommands
DF file: DFCommands.df
Documentation: BringOverDoc.tioga, SModelDoc.tioga, VerifyDFDoc.tioga
Maintainer: vanLeunen
DFCommands provides a command-line interface to the DFTool. These commands do not interact with the user; that is, in terms of Cedar 4.4's versions of these commands, "/a" (auto-confirm) is now the only behavior available.
DFIncludes
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.
DFPackage
DF file: DFPackage.df
Documentation:
DFOperations.mesa, DFOperationsQueue.mesa, DFUtilities.mesa | see maintainer
Maintainer: Levin
New for Cedar 5.0 (no message). This package supports the manipulation of DF files.
DFTool
DF file: DFTool.df
Documentation: see maintainer
Maintainer: Levin
New for Cedar 5.0 (no message). Provides interactive replacement for BringOver, SModel, and VerifyDF commands of Cedar 4.4.
Disk
DF file: Disk.df
Documentation: Disk.mesa | see maintainer
Maintainer: Birrell, Levin
New for Cedar 5.0 (no message).
DiskTool
DF file: DiskTool.df
Documentation: see maintainer
Maintainer: Birrell
New for Cedar 5.0 (no message).
ExecHacks
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.
File
DF file: File.df
Documentation: File.mesa | see maintainer
Maintainer: Birrell, Levin
New for Cedar 5.0 (no message).
FileStream
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.
FileStreamTest
DF file: FileStreamTest.df
Documentation: see maintainer
Maintainer: Hagmann
This is a bunch of test software for the filestream package. It probably should not be cataloged nor mentioned in the release.
FormatDisk
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.
Forms
DF file: Forms.df
Documentation: SampleSheet.tioga
Maintainer: Beach
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.
FS
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.
FSUtil
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.
Germ
DF file: Germ.df
Documentation: see maintainer
Maintainer: Taft
No known changes (no message).
GoodTimes
DF file: GoodTimes.df
Documentation: see maintainer
Maintainer: Atkinson
GoodTimes is a simple program that measures and reports elapsed times for various Cedar computations.
Graphics
DF file: Graphics.df
Documentation: Graphics.mesa
Maintainer: Wyatt
No significant changes.
GrapevineUser
DF file: GrapevineUser.df
Documentation: see maintainer
Maintainer: Birrell, Schroeder
No known changes (no message).
HeadsCommon
DF file: HeadsCommon.df
Documentation: see maintainer
Maintainer: Taft
No known changes (no message).
HeadsD0
DF file: HeadsD0.df
Documentation: see maintainer
Maintainer: Taft
No known changes (no message).
HeadsDorado
DF file: HeadsDorado.df
Documentation: see maintainer
Maintainer: Taft
No known changes (no message).
Iago
DF file: Iago.df
Documentation: see maintainer
Maintainer: Birrell
New for Cedar 5.0 (no message).
Idle
DF file: Idle.df
Documentation: Idle.mesa | see maintainer
Maintainer: Levin
New for Cedar 5.0 (no message).
IFSFile
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.
Inscript
DF file: Inscript.df
Documentation: InscriptDoc.tioga
Maintainer: Rovner
No significant changes.
Installer
DF file: Installer.df
Documentation: see maintainer
Maintainer: Levin
New for Cedar 5.0 (no message).
Interpreter
DF file: Interpreter.df
Documentation: Interpreter.mesa
Maintainer: Rovner
New for 5.0.
InterpreterTool
DF file: InterpreterTool.df
Documentation: InterpreterToolDoc.tioga
Maintainer: Rovner
Conversion to 5.0, bug fixes, enhancements.
IO
DF file: IO.df
Documentation: IOConversionDoc.tioga, IODoc.tioga, EditedStream.mesa, IOClasses.mesa
Maintainer: MBrown
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.
Convert.AppendTime, Convert.RopeFromTime, and other procedures that obviously share this code do not implement time zone printing (the includeZone parameter is ignored).
The STREAM produced by ViewerIO.CreateViewerStreams (part of the Tioga component) does not create a true edited stream (as defined by the EditedStream interface); in particular, the DeliverWhenProc is always passed NIL for the "buffer" parameter. This works fine for simple DeliverWhenProcs, such as EditedStream.IsACR (the default). Use of the default DeliverWhenProc is highly recommended. More ambitious DeliverWhenProcs must call ViewerIOExtras.GetBuffer to obtain the current buffer. Calling this on every invocation of a DeliverWhenProc will result in very poor performance.
IOTest
DF file: IOTest.df
Documentation: see maintainer
Maintainer: MBrown
New component. A test program for the IO package.
Lister
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)
Loader
DF file: Loader.df
Documentation: Loader.mesa | see maintainer
Maintainer: Levin, Schroeder
No known changes (no message).
LoadState
DF file: LoadState.df
Documentation: LoadState.mesa | see maintainer
Maintainer: Birrell, Levin, Rovner
New for Cedar 5.0 (no message).
Lupine
DF file: Lupine.df
Documentation: LupineUsersGuide.press
Maintainer: Birrell
No known changes (no message).
Maintain
DF file: Maintain.df
Documentation: see maintainer
Maintainer: Birrell, Schroeder
No known changes (no message).
MCross
DF file: MCross.df
Documentation: MCrossDoc.tioga
Maintainer: Rovner
No significant changes.
MesaRuntime
DF file: MesaRuntime.df
Documentation: see maintainer
Maintainer: Levin
New for Cedar 5.0 (no message). Exports Basics, MesaRuntimeInit, PrincOps, PrincOpsUtils, Process, ProcessExtras, RuntimeError.
MicrocodeD0
DF file: MicrocodeD0.df
Documentation: see maintainer
Maintainer: Fiala
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.
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.
MicrocodeDorado
DF file: MicrocodeDorado.df
Documentation: [Indigo]<DoradoDocs>DoradoBooting.press
Maintainer: Taft
NOTE: Names have changed since Cedar 4.4 in order to conform to the standard <componentName><machineName>.<extension> style.
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.
OnlineMergeSort
DF file: OnlineMergeSort.df
Documentation: ListSort.mesa
Maintainer: MBrown
No significant changes.
Peanut
DF file: Peanut.df
Documentation: see maintainer
Maintainer: Wyatt
A Tioga-based mail reading and sending package. New for Cedar 5.0; formerly included in the ISL release. No significant changes from the Cedar 4.4 version.
PeekMail
DF file: PeekMail.df
Documentation: see maintainer
Maintainer: Birrell
New for Cedar 5.0 (no message).
PrintTV
DF file: PrintTV.df
Documentation: PrintTV.mesa, BackStop.mesa
Maintainer: Rovner
Conversion to 5.0, bug fixes, inclusion of a "BackStop" interface.
ProcessProps
DF file: ProcessProps.df
Documentation: ProcessProps.mesa
Maintainer: Atkinson
No significant changes.
Pup
DF file: Pup.df
Documentation: see maintainer
Maintainer: Birrell, Levin
No known changes (no message).
PupWatch
DF file: PupWatch.df
Documentation: see maintainer
Maintainer: Birrell
No significant changes. PupWatch is a tool for viewing and recording all Pup packets to and from a particular host on the directly attached Ethernet. Very useful when debugging protocols.
ReadEvalPrint
DF file: ReadEvalPrint.df
Documentation: ReadEvalPrint.mesa | see maintainer
Maintainer: Stewart, Rovner
Internal cleanup of catch phrases. They will do what you want more often.
Real
DF file: Real.df
Documentation: MesaFloat60.bravo | Real.mesa | Ieee.mesa | see maintainer
Maintainer: Levin, Stewart
No significant changes.
RedBlackTree
DF file: RedBlackTree.df
Documentation: OrderedSymbolTable.mesa
Maintainer: MBrown
No significant changes.
RedBlackTreeRef
DF file: RedBlackTreeRef.df
Documentation: OrderedSymbolTableRef.mesa
Maintainer: MBrown
No significant changes.
ReleaseTool
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>).
Reminder
DF file: Reminder.df
Documentation: Reminder.mesa
Maintainer: Rovner
No significant changes.
Rollback
DF file: Rollback.df
Documentation: see maintainer
Maintainer: Birrell
New for Cedar 5.0 (no message).
Rope
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.
RPCRuntime
DF file: RPCRuntime.df
Documentation: LupineRuntime.mesa, RPC.mesa, RPCLupine.mesa, RPCWatch.mesa | see maintainer
Maintainer: Birrell
No known changes (no message).
SafeStorage
DF file: SafeStorage.df
Documentation: SafeStorage.mesa, SafeStorageDoc.tioga (outdated) | see maintainer
Maintainer: Rovner
Various changes (no message). The SafeStorage package exports Atom, List, SafeStorage, and UnsafeStorage. Note that finalization must be enabled for every finalizable object, not just for the type. The implementation has fewer arbitrary limits - RC table overflow is now handled by expanding the table, rather than crashing. Pinned reference counts can not occur. Allocation and reference counting operations are now (roughly) twice as fast.
Scaled
DF file: Scaled.df
Documentation: Scaled.mesa
Maintainer: Plass
No significant changes.
Sequin
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.
Set
DF file: Set.df
Documentation: SetDoc.tioga
Maintainer: Rovner
No significant changes.
ShowPress
DF file: ShowPress.df
Documentation: see maintainer
Maintainer: Beach, Wyatt
No known changes (no message).
SimpleTerminal
DF file: SimpleTerminal.df
Documentation: SimpleTerminal.mesa
Maintainer: Levin
New for Cedar 5.0 (no message).
SirPress
DF file: SirPress.df
Documentation: SirPress.mesa | see maintainer
Maintainer: Plass
No interesting changes.
SpellingTool
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.
Spy
DF file: Spy.df
Documentation: SpyDoc.tioga
Maintainer: Maxwell
The Cedar 5.0 Spy has some minor improvements over the Cedar 4.4 Spy.
Squirrel
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.
STP
DF file: STP.df
Documentation: STP.mesa | see maintainer
Maintainer: Birrell, Levin
No known changes (no message).
StructuredStreams
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.
Tentacles
DF file: Tentacles.df
Documentation: see maintainer
Maintainer: Birrell, Levin
New for Cedar 5.0 (no message).
Terminal
DF file: Terminal.df
Documentation: Terminal.mesa | see maintainer
Maintainers: Levin, Wyatt
New for Cedar 5.0. The Terminal interface replaces the Cedar 4.4 interfaces UserTerminal and ColorDisplay.
Tioga
DF file: Tioga.df
Documentation: TiogaDoc.tioga
Maintainer: TiogaImplementors^.pa
Tioga now reads files with RopeFile, so it may hold a read lock on large files. Operations which load a file into a viewer now distinguish between a request for a specific version (a "!" in the file name) and a request for the latest version (no "!" in the file name). You can see the difference in the viewer caption: specific versions include the version number in the file name; latest versions show the version number in parentheses. Viewers showing the latest version of a file will be reloaded whenever a newer version is created. (If such a viewer has been edited, a warning message will be posted instead.)
TIP
DF file: TIP.df
Documentation: TIPDoc.tioga
Maintainer: TiogaImplementors^.pa
No significant changes.
TSetter
DF file: TSetter.df
Documentation: TSetterDoc.tioga
Maintainer: Beach, Plass
— Underlined tabs now work.
— TSIncludePress from the PostCedar version has been folded in.
— Using "*" instead of a server name will now cause TSetter to display the press file on your screen.
UserCredentials
DF file: UserCredentials.df
Documentation: UserCredentials.mesa | see maintainer
Maintainer: Levin
No known changes (no message).
UserProfile
DF file: UserProfile.df
Documentation: UserProfileDoc.tioga
Maintainer: Donahue
No significant changes in this package. However, there are numerous new or changed options for the entries in the user profile.
VersionMap
DF file: VersionMap.df
Documentation: VersionMap.mesa | VersionMapDefaults.mesa | see maintainer
Maintainer: Atkinson
The disk format for stored version maps now contains an index that accelerates short name lookup (for the openr and findr commands). The implementation also uses RopeFile to reduce VM usage.
VersionMapBuilder
DF file: VersionMapBuilder.df
Documentation: see maintainer | see catalog entry
Maintainer: Atkinson
The Cedar 5.0 VersionMapBuilder is a major rework of the way that version maps are built. VersionMapBuilder now uses the top-level DF file for the release to build the maps, rather than a remote directory enumeration.
Viewers
DF file: Viewers.df
Documentation: ViewerDoc.tioga (incomplete and out of date)
Maintainer: Wyatt
Viewers now includes an implementation of Sliders. John Maxwell has rewritten the DeskTops implementation. Captions show the version number in parentheses for "latest version" files.
ViewRec
DF file: ViewRec.df
Documentation: ViewRecDoc.tioga | see maintainer
Maintainer: Spreitzer
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.
VM
DF file: VM.df
Documentation: VM.mesa, VMStatistics.mesa
Maintainer: Birrell, Levin
New for Cedar 5.0 (no message).
VTables
DF file: VTables.df
Documentation: VTables.mesa | see maintainer
Maintainer: Atkinson
No significant changes since Cedar 4.4.
Walnut
DF file: Walnut.df
Documentation: WalnutDoc.tioga
Maintainer: <Willie-Sue> Orr
This is a minimal rework of the Walnut of the Cedar 4.4 world. A major change is that the user's mail database must be on Alpine. Please see the documentation for details.
Another change: If Walnut forces the user to do a scavenge, or automatically does a scavenge becaue the database is empty, the user is given the option of setting the start position for the next expunge to the current end of the log file. If one has started with a relatively "clean" log file (an expunge done recently), this is a reasonable option to take.
An annoying bug in WalnutSend has been fixed. If the input focus is in some other viewer when the send is finished, WalnutSend will no longer grab the cursor. Instead, it will display a blank form; when the user clicks in the sender, it will finish filling in the form.
There is a potential deadlock during sending. If you wish to close a sender while it is sending, either use right-click (to automatically close the viewer), or wait until the date and from fields have appeared in the sender.
Watch
DF file: Watch.df
Documentation: WatchDoc.tioga
Maintainer: Atkinson
The 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.
Waterlily
DF file: Waterlily.df
Documentation: help message in the UserExec or Commander
Maintainer: Kolling
No changes since Cedar 4.4.
WorldVM
DF file: WorldVM.df
Documentation: AMProcessBasic.mesa, WorldVM.mesa | see maintainer
Maintainer: Birrell
No known changes (no message).