Date: 23 July 1982 6:40 pm PDT (Friday) Sender: Levin.PA Subject: Cedar 3.2 release (part 2 of 2) From: Release Master To: CedarUsers^, CedarImplementors^ cc: CedarCoordinators^ Reply-To: Levin System components ------------------- 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 components whose names are preceded by an asterisk can be ignored by the casual Cedar user. *BasicHeads *Newly Released* Implementation in boot file BBV *Changed* Implementation in boot file Binder *Changed* *BootClientFile *New* BravoToTioga *New* *BTrees *Changed* BugBane *Changed* Implementation in boot file *CedarControl *Changed* Implementation in boot file *CedarDB *Changed* CedarReals *New* Implementation in boot file CedarSnapshot *Changed* Implementation in boot file Chat *Changed* CIFS *Changed* Implementation in boot file *CIFSCommands *Changed* CoFork *Changed* *ColorPackage *New* *Communication *Changed* Implementation in boot file *CompatibilityPackage *Changed* Implementation in boot file Compiler *Changed* *CoPilot *Changed* *D0Microcode *Newly Released* DateAndTime *New* Implementation in boot file DFFiles *Changed* *DoradoMicrocode *Newly Released* FileTool *Changed* Implementation in boot file Formatter *Withdrawn* FTP *Withdrawn* *Germ *Newly Released* Separate boot file GrapevineUser *Changed* Implementation in boot file Graphics *Changed* Implementation in boot file *IFSFile *Changed* IncludeChecker *Changed* *Init *Newly Released* *Inscript *Changed* Implementation in boot file IO *Changed* Implementation in boot file *Lister *Changed* ListsAndAtoms *Changed* Implementation in boot file *Loader *Changed* Implementation in boot file Lupine *New* Maintain *Changed* *MakeBoot *Changed* MCross *Changed* *MesaScanner *Changed* Modeller *Changed* OnlineMergeSort *Changed* Othello *Newly Released* Separate boot file *Packager *Changed* PerfStats *Changed* *PGS *Changed* *PilotKernel *Changed* Implementation in boot file PilotReals *Withdrawn* *Pine *Changed* PlotPackage *Changed* PressPackage *Changed* PressScreen *Changed* Print *Changed* PriorityQueue *Changed* Pup *Changed* Implementation in boot file *Pupwatch *New* Random *Changed* RedBlackTree *Changed* RedBlackTreeRef *Changed* RefText *Withdrawn* Rigging *Changed* Implementation in boot file *RPCRuntime *New* Implementation in boot file Runtime & RuntimeTypes *Changed* Implementation in boot file *Sequin *Changed* Set *Changed* SirPress *Changed* Spy *Changed* STPServer *TerminalMultiplex *Changed* Implementation in boot file TJaMGraphics *Changed* *TTYIO *New* UECP *Changed* Unique *Changed* UserExec *Changed* Implementation in boot file *VersionMap *New* Implementation in boot file Viewers & Tioga *Changed* Implementation in boot file VTables *Changed* WalnutSend *Changed* Waterlily *Changed* *WorldVM *New* Implementation in boot file Summary of Release Components ------------------------------- Note: In the descriptions that follow, 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 is stored on [Indigo]Documentation>ComponentName.press but there are occasional exceptions. BasicHeads ---------- DF files: [Indigo]Heads>BasicHeadsDorado.df [Indigo]Heads>BasicHeadsD0.df [Indigo]Heads>BasicHeadsCommon.df Documentation: see interfaces Implementor: Taft 1. New BasicHeadsCommon interfaces: a) New interface MicrocodeVersion for obtaining the version number and release date of the currently-running microcode. b) New interface MicrocodeBooting, which provides program control over what microcode is to be booted. With the (forthcoming) ability to install microcode on your disk, TemporaryBooting.BootButton[] will revert to its original meaning "push the boot butoon" (3-push boot on the Dorado), as opposed to "boot the Alto volume" as it has (incorrectly) come to be considered in Cedar. The new procedure MicrocodeBooting.BootSpecificMicrocode allows the client to select the specific microcode to boot, which always comes from the Ethernet. c) Interfaces ColorDisplayFace, DESFace, and TrapSupport are unchanged, but are included under the Cedar release umbrella for the first time. 2. If an OutLoad file (installed CoPilot or Cedar checkpoint) is resumed on a machine different from the one on which it was created, the machine halts with 933 in the maintenance panel. This is intended to prevent confusion caused by duplicate Ethernet host addresses, etc. 3. The Heads now include trap support for the LocalBlkZ, LongBlkZ, and Version opcodes. BBV ---- DF file: [Indigo]Top>BBV.df Documentation: BBV.doc Implementor: Atkinson BBV has acquired several new features for Cedar 3.2. For a full explanation, see BBV.doc. Several bugs have been fixed, and feedback to the user has been improved. Here is a summary of the new features: 1: remote source through the Source button (uses CedarSource.VersionMap) 2: Entry, Exit, and 1-shot options for breakpoints 3: Next/Prev stack walking Binder ------ DF file: [Indigo]Top>Binder.df Documentation: see Mesa 5.0 Reference Manual and Mesa User's Handbook Implementor: Satterthwaite No user-visible changes, but considerable internal reorganization. This binder uses CIFS for access to the file system and will not run on a standard CoPilot volume. Use PilotBinder.bcd from the same DF file to bind in a non-Cedar 3.2 environment. BravoToTioga ------------------ DF file: [Indigo]Top>BravoToTioga.df Documentation: See Cedar Catalog Implementor: Jim Morris This is a new program. To convert the Bravo format file X to Y, the Tioga version, RunAndCall BravoToTioga X Y. If X has no extension, ".bravo" is assumed. If Y is omitted and X is U.V then U.doc is used for Y. This program preserves all the font information and roughly approximates the indenting of your bravo document. It does not attempt to produce a document that looks identical to the bravo one. It does not preserve leading, justification, or centering; it pretty easy for you to do these over again if Tioga's defaults don't suit you. It produces documents in the style Cedar.style. Tioga does not currently properly support tab stops, overstriking, or underlining. However, BravoToTioga does preserve underlining information by giving characters the "z" looks which Cedar.Style currently makes italic. There is also an interface, BToT, that supplies the procedure BravoToTioga. BootClientFile ------------- DF file: [Indigo]Top>BootClientFile.df Documentation: contact implementor Implementor: Levin This is a new tool that is intended for use by wizards. It permits you to boot from CoPilot a file on the Client volume. To use, simply acquire BootClientFile.bcd and type the following to the CoPilot SimpleExec: BootClientFile If has no extension, ".boot" is assumed. BTrees ------ DF file: [Indigo]Top>BTrees.df Documentation: contact implementor Implementor: Levin This package has no user-visible changes since the previous release. BugBane -------- DF file: [Indigo]Top>BugBane.df Documentation: BugBane.doc, BugBane.shorts, BugBane.wish Implementor: Atkinson BugBane has not changed very much externally for Cedar 3.2. Numerous minor bugs have been fixed, but the major shortfalls (see BugBane.shorts) have not changed much. Remote symbols access is handled through RTTypes using the VersionMap (CedarSymbols.VersionMap). A rudimentary LOOPHOLE is provided. CedarControl ------------ DF file: [Indigo]Top>CedarControl.df Documentation: contact implementor Implementor: Levin CedarControl implements the automatic installation mechanism, which has changed substantially since the previous release. The dialogue carried on with the user is intended to be self-explanatory, so no documentation is included here. However, some comments may be found in the "Introduction to Cedar (3.2)" document. Some of the more significant changes are as follows: 1) The microcode is checked to ensure compatibility with the boot file, and the microcode version and configuration is displayed in the installation "window". 2) If a personal DF file is to be brought over, its existence is verified before invoking Bringover, thereby permitting typing errors to be detected and corrected conveniently. 3) After installation, the file Init.log contains a transcript of the installation activities. Users should be aware that the scheme for installing credentials has changed and is incompatible with previous Cedar releases. The changes are subtle and not generally visible to users. However, if Grapevine is down or if the user has changed his password with Grapevine since the last time CedarControl prompted for credentials, things will now behave more intuitively. Changes to the public interfaces exported by CedarControl are as follows: 1) CedarVersion contains additional types and variables that define the machine type and microcode state. 2) The interface UserCredentials has been withdrawn. The only procedure of interest, BypassNextPrompt, has been moved and renamed CedarInitOps.BypassNextLoginPrompt. 3) CedarInitOps.Login now takes an optional Boolean parameter, useDisk, which defaults to TRUE. useDisk: TRUE means perform a login sequence precisely as it occurs during the installation dialogue. useDisk: FALSE means to perform a login sequence pretending that there are no installed credentials. The approved way of implementing an "uninstall credentials" operation is to call CedarInitOps.Login[useDisk: FALSE]. There have also been substantial changes to the dialogue that ensues if Cedar is booted with the D switch. This is also intended to be self-explanatory and is not documented here. The D switch is intended to be used by implementors only. CedarDB --------- DF file: [indigo]Top>CedarDB.df Documentation: Not yet completed. See implementor and DBView.mesa. Implementor: Cattell Several bug fixes and new features, previously announced in messages to CedarDatabase^.PA. Cedar Reals ----------- DF file: [Indigo]Top>CedarReals.df Documentation: none Implementor: Stewart This component replaces PilotReals.df, and all interfaces have been recompiled. There is a new component: [Indigo]Real>Cedar>CedarRealTest.df for Cedar 3.2 which should not be of interest to anyone except Floating Point implementors. All I've done is separate out the stuff which uses IO, Viewers etc. from the Bootfile stuff. CedarSnapshot -------------- DF file: [Indigo]Top>CedarSnapshot.df Documentation: see comments in CedarSnapshot.mesa Implementor: Levin The format of checkpoint files has been altered incompatibly. Consequently, users must not attempt to initiate rollbacks using previous versions of Othello or CedarSnapshotD*.boot. The version of Othello included in this Cedar release has a Rollback command that is compatible with the new checkpoint format. Users with "Booter" volumes must acquire and install new versions of CedarSnapshotD*.boot from [Indigo]Top>. The following functional changes have been made to the CedarSnapshot interface: 1) New error codes are returned by CedarSnapshot.Checkpoint, corresponding to illegal situations that were previously undetected. 2) Rollback now checks that all dynamically-loaded BCDs present in the checkpoint have not been overwritten since the time the checkpoint is made. An error code is returned. 3) Checkpoint now detects and complains (via an error code) about open transactions at the time a checkpoint is made. At the time of a rollback, all open transactions are aborted, and the transaction log at the time of the checkpoint is restored. 4) CedarSnapshotD*.boot used to interpret the "D" boot switch to mean "delete any installed checkpoint and boot instead". These actions are now invoked by the "S" switch instead. Significant additional bullet-proofing has been added to eliminate situations in which a checkpoint or rollback would otherwise fail gracelessly (e.g., by hanging). Several bugs have been fixed: 1) Checkpoint no longer produces a bogus file if insufficient disk space exists to produce a snapshot. 2) Rollback now checks to be sure that the installed boot file has not changed since the checkpoint was made. (i.e., the sequence "fetch new boot file", "rollback" from Othello is not permitted and will be detected) 3) CedarSnapshot.Register now works reliably. 4) Rollback and transactions now coexist harmoniously. Chat ---- DF File: [Indigo]Top>Chat.df Documentation: Ask almost anyone Implementor: Stewart Chat viewers now appear in the left column instead of the right. A chat viewer with an open connection now changes its herald to show where the connection goes. This works for iconic Chats too. Closing a chat viewer no longer closes an open connection. Closing with Blue instead of Red DOES close the connection. There is no longer a Save button. There is no direct way to create a typescript, but you can create an empty viewer and secondary select the entire Chat typescript by triple clicking. Perhaps Save will return one day. Backspace now works on an open connection, but as a consequence, you cannot use Backspace to edit in a Chat viewer which has no open connection. This has to do with TIP tables... A UserExec command line of simply "Chat" will create an iconic Chat viewer. A command line like "Chat maxc -l" will create an open chat viewer, connect to Maxc, and log in the current Cedar user. "Split" now works for Chat viewers. CIFS ---- DF file: [Indigo]Top>CIFS.df Documentation: CIFSManual.press Implementor: Gifford The CIFS interface was changed for 3.2 to provide explict FTP access for SModel. The following internal changes were also made: (1) Use of RTFiles.IsFileInUse (2) A new BTree directory system (3) More intelligent time-out of IFS connections (4) Changes to make the LSD more robust. CIFS Commands ------------------ DF file: [Indigo]Top>CIFSCommands.df Documentation: CIFSManual.press Implementor: Gifford Catalog was changed for 3.2 to work with the new BTree directory system. CoFork ------- DF file: [indigo]Top>CoFork.df Documentation: CoFork.doc, CoFork.press Implementor: Sturgis No implementation or interface changes. (Documentation converted to Tioga.) ColorPackage ------------- DF file: [Indigo]Top>ColorPackage.df Documentation: See interfaces Implementor: Maureen Stone This is a collection of modules relating to color viewers. ColorMap.mesa should be the only interface of interest to most clients. The ColorPackage is the repository for the set of programs above the Pilot Kernal and outside of CedarGraphics, Viewers and Inscript that are required to run color viewers. It contains the CedarGraphics style device for the color monitor (ColorDevice), a module and interface to implement the colormap functions (ColorMap), and a synchronizing module that turns things on and off in the right order (ColorWorld). The only function of interest to end users are those for manipulating the colormap. When you are drawing a picture in a colormapped mode, ColorDevice takes the full 24 bit color it receives from the GraphicsPackage and asks ColorMap for a frame buffer value. If the color is in the colormap, you will get it. Otherwise, some compromise will be reached. The current conventions for the standard colormap are described in the interface ColorMap.mesa. Communication --------------- DF file: [Indigo]Top>Communication.df Documentation: Pilot Programmers' Guide and Pup package documentation Implementor: Birrell Recompilation of implementation modules only CompatibilityPackage -------------------- DF file: [Indigo]Top>CompatibilityPackage.df Documentation: see Pilot Programmer's Manual, or see implementor Implementor: Levin There are no user-visible changes in this package. Compiler -------- DF file: [Indigo]Top>Compiler.df Documentation: Cedar7T11.press Implementor: Satterthwaite User visible changes: The symbol "~" can be used to construct a "binding," which is a pairing of a name with a value. In current Cedar, "~" can replace "=" in "constant" declarations (pi: REAL~3.14159) and can replace ":" in keyword constructors (Point[x~7.0, y~pi/2]). The symbol "~~" can replace ":" to bind a name to an implicit procedure (i.e., an expression reevaluated for each mention of the name) in OPEN (OPEN x~~a[i]^) or WITH ... SELECT. Each of these uses of "~" is just a notational extension (for compatibility with forthcoming documentation); the meanings are unaffected. The binary infix operators "~IN", "~<=", "~>=", "~#" are no longer accepted (use "NOT" or rewrite the expression to make "~" a unary negation operator). In another notational extension, the (newly) reserved word "TRASH" can replace "NULL" in default specifications or constructors. Hexadecimal literals are available. Such a literal must begin with a decimal digit (0 always works) and must end with an "H". The values 10-15 are denoted by A-F. Upper and lower case letters are equivalent within all forms of numeric literals. Examples: 0FFH 123ah. Arbitrarily long strings of digits may appear in REAL literals; values are rounded to 32-bit IEEE format with no warning for loss of precision. "+" is accepted as a unary prefix operator; ";" is now a separator, not terminator, of declarations. The default switch settings include /a (generate code that relies on address faults to do nil checking when possible). There are also a large number of internal improvements and changes. This compiler uses CIFS to access the file system and will not run on a standard CoPilot volume. Use PilotCompiler.bcd from the same DF file to compile in an environment other than Cedar 3.2. CoPilot ------- DF file: [Indigo]Top>CoPilotMaker.df Documentation: none Implementor: Atkinson The CoPilot boot files ([Indigo]Top>CoPilotDorado.boot & CoPilotD0.boot) have been remade for Cedar 3.2 to track load state and symbol table changes. We anticipate that this will be the last CoPilot made. The DF file has some version problems, but fixing them would mean rebuilding CoPilot, which we don't want to do again if we can help it! D0Microcode ------------ DF file: [Indigo]Top>D0Microcode.df Documentation: none Implementor: Fiala This DF file simply captures the microcode which you are already running. DateAndTime ------------- DF file: [Indigo]Top>DateAndTime.df Documentation: see comments in DateAndTime.mesa Implementor: Levin This is a new package that parses dates and times in most intelligible formats. It does not do context-dependent parsing (e.g., "next Tuesday", "the first full moon after my grandmother's birthday", etc.), but it tries to handle all variations that show up in message headers (there are quite a few). There are detailed comments in the interface that describe the formats the package claims to handle. The interface, DateAndTime, is exported by the Cedar boot file and is unsafe. Users who encounter plausible formats that the package will not handle are encouraged to contact the implementor for relief. DFFiles ------- DF file: [Indigo]Top>DFFiles.DF Documentation: DFFilesRefMan.Press Implementor: Schmidt These are mostly bug fixes, with these noticable changes: 1. You can say Bringover /o X.Mesa, y.Mesa Package.DF (note the ",", followed by a space that must be present). The trailing "," is ignored, allowing you to secondary-select from Using lists in other DF files. 2. When BringOver retrieves a file that overwrites a local copy of that file, and the local file is NEWER than the file being retrieved, BringOver renames the local copy by appending "$$" to the name, and BringOver gives you a warning. If the file ends in .Bcd, newer versions are not saved. 3. The error you get from SpaceImplA when running SModel after many edits is now caught (Space.InsufficientVM) -- and SModel suggests you rollback or boot. 4. The interface that gives clients access to DF contents has been improved. See comments in DFUser.Mesa for more info. Also: BringOver now uses CIFS to write files on the local disk. The RemoteGetTool has been eliminated since its functions are now provided by the File Tool. RemoteDeleteAll must be run in a viewers environment; it can no longer be run from CoPilot. DoradoMicrocode ------------------ DF file: [Indigo]Top>DoradoMicrocode.df Documentation: [Indigo]DoradoBooting.press Implementor: Taft This DF file simply captures the microcode which you are already running. All the bootable microcode (.eb) files, which you will soon be able to install on your disk if you wish, are released to [Indigo]Top>. FileTool -------- DF File: [Indigo]Top>FileTool.df Documentation: Ask almost anyone Implementor: Stewart The FileTool now includes the functionality of the RemoteGetTool (you can do form-fill-out Bringovers). There is a new field "DF File" which accepts a local or remote DF File name. Only the []<>> syntax is accepted. There is a new boolean button called Exports only which is essentially the /p switch. The Verify boolean button is used as the /a switch. If the Directory field of the FileTool is not empty, it is prepended to the DFFile field. The names of some fields have changed: Path is now Directory and Remote is now Filename(s). You can no longer type a full remote name into the Directory field, but must put that last component (the shortname) in the Filename(s) field. There is an additional List-Option called Pages, which works on Local-List only. It prints (in parens) the value returned by File.Size. In Pilot there is no single valued relation between a file's length in bytes and its length in pages. If asked to overwrite a file in use by the runtime system, the Filetool removes its directory entry and makes it temporary. GrapevineUser -------------- DF file: [Indigo]Top>GrapevineUser.df Documentation: [Indigo]Docs>Grapevine.press and Interface.press Implementor: Birrell Documentation for the Cedar interfaces exists only in the interface sources. GrapevineCedar.bcd is now included in the boot file, and should not be loaded explicitly or bound into other configs. The type GVBasics.Password is now the same as BodyDefs.Password, which is different from DESFace.Key. Germ ----- DF files: [Indigo]Top>GermDorado.df and GermD0.df Documentation: "Pilot User's Handbook" Implementor: Taft The boot files are now obtained from [Indigo]Top>Dorado.germ and [Indigo]Top>D0.germ, NOT from [Indigo]Dorado> and [Indigo]D0> as was previously the case. Graphics -------- DF file: [Indigo]Top>Graphics.df Documentation: see comments in Graphics.mesa Implementor: Wyatt The following changes have been made to the Graphics interfaces: 1) The GraphicsExtra interface has been removed; most operations formerly in GraphicsExtra have moved to GraphicsOps. A couple procedures have gone away: NewStrikeFont (use Graphics.MakeFont instead) DefaultStrikeFont (use GraphicsOps.DefaultFont instead). To avoid confusion, clients who formerly used GraphicsExtra should delete GraphicsExtra.bcd before recompiling. 2) The type Color has been redefined. Programs that use the constants Graphics.black and Graphics.white will still work, but those that supply other numerical values must change. GraphicsColor, a new interface, provides procedures for generating Color values. [The new procedure Graphics.SetStipple takes a an old-style Color parameter, interpreted as a 4 by 4 bit stipple pattern.] 3) Operations on a Graphics.Context now dispatch through an "object-style" vector of procedures associated with each context. Suitable INLINE procedures are provided so most clients should not notice the change. IFSFile ------ DF file: [Indigo]Top>IFSFile.df Documentation: contact implementor Implementor: Levin DF file changes only. IncludeChecker --------------- DF file: [Indigo]Top>IncludeChecker.df Documentation: SDD documentation Implementor: SDD, Paul Rovner Reconstruction only. Init --- DF file: [Indigo]Top>Init.df Documentation: see Introduction.doc Implementor: Morris The four cm files for initializing D0s and Dorado disks. Inscript ------- DF file: [Indigo]Top>Inscript.df Documentation: InscriptImplAppendix.memo inscriptimplementation.memo InscriptImplementation.press Implementor: Maureen Stone, Dan Swinehart Inscript now supports the mouse and cursor on the color display. Most changes were in Interminal.mesa and its implementation. Users who call procedures in UserTerminal.mesa and want to run with the color display should switch to using the procedures in Interminal.mesa instead. I made the necessary interface changes to support a pen and tablet device. The pen implementation is not included in this release, however. IO, FileIO, UserProfile ---------------------- DF file: [Indigo]Top>IO.df Documentation: see comments in IO.mesa, more detailed comments in IO.comments Implementors: Warren Teitelman, Mark Brown, Larry Stewart The following is a summary of the more important changes (for more comprehensive treatment, see IO.Changes which is referenced through IO.df): The name of the interface was changed from IOStream to IO. Similarly, ViewerIOStreams -> ViewerIO, FileIOStream -> FileIO, PrivateIOStream -> PrivateIO. IOStream.Handle is now called IO.STREAM (though Handle is defined for backwards compatibility).The IO interface is now in the safe language. Note that this means that procedures passed in as arguments, e.g. DeliverWhenProcs, BreakProcs, etc., must all be safe, and that catch phrases for errors and signals in the IO interface must also be safe. A number of procedures relating to Tajo have been deimplemented, e.g. CreateTajoSTream, GetPilotStream, and SetTTYCreate. The concept of a default input/output stream has been decommitted, along with the procedures GetDefaultIn, GetDefaultOut, GetDefaultError, SetDefaultStreams. Programs using these procedures should probably be taking a UserExec.execHandle as an argument instead, and obtaining the corresponding input/output stream from that handle. Put now takes only three value argument instead of five, in order to make it a fast procedure call. Use PutList to specify a call to Put with more than three items. PrintProcs have been split into two categories: RefPrintProcs and TVPrintProcs. AttachPrintProc has been replaced by AttachRefPrintProc and AttachTVPrintProc. For applications involving printprocs for refs, simply you can simply do a global substitution of RefPrintProc for PrintProc. Several new procedures have been defined, e.g. UserAbort which takes a stream and checks to see if the user has indicated an abort, ChangeDeliverWhen for changing the deliverWhen proc of an edited stream, WhiteSpace which is an IO.BreakProc which breaks on white space, NewLine which outputs a CR unless the previous character output to this stream was a CR. File Streams and Tioga Files: All of the file stream creation procedures in the FileIO interface take a new BOOL parameter, "raw". Creating a file stream with raw=FALSE specifies a check for the presence of Tioga formatting in the file. If a file is in Tioga format, then a stream created with accessOptions=read and raw=FALSE reads only the text in non-comment nodes of the file, not the text of comment nodes, or the formatting information at the end. If a file is in Tioga format, then an attempt to create a stream with raw=FALSE and accessOptions=write or append will raise IO.Error[CantUpdateTiogaFile]. Creating a file stream with raw=TRUE behaves as in previous version of the IO package, i.e. every character in the file, including formatting information, will be seen by input operations. Note that raw=FALSE is the default in the FileIO interface. The procedure IO.CreateFileStream does not take the new parameter, and always behaves as if raw=FALSE. UserProfile changes: The UserProfile interface is now part of the IOPackage. The UserProfile interface now includes the procedure CallWhenProfileChanges, which takes a UserProfile.ProfileChangedProc. Most applications that previously read the profile directly using UserProfile.Boolean, Number, or String should instead use CallWhenProfileChanges with a ProfileChangedProc which then accesses the profile. (An example is given in the UserProfile interface.) This will enable changes to the profile to be noticed at rollback, as well as immediately following editing of the users profile. The file UserProfile.doc, accessed through UserExec.Df contains a complete list of the currently available user profile options. Lister ----- DF file: [Indigo]Top>Lister.df Documentation: Lister.txt Implementor: Satterthwaite The program CL.bcd can now list individual procedures from a module. The command cl output _ input where input is a single identifier, produces a code listing for the module input.bcd on output.cl (input.cl by default). The command cl output _ input.proc where input and proc are single identifiers, produces a listing of all procedures with name "proc" in the module input.bcd. Output goes to output.cl (proc.cl by default). Note that the command cl output _ input.bcd is no longer correct (unless "bcd" is the name of a proc you want listed). See the documentation for further details and options. There are no user-visible changes to the other lister programs (Lister.bcd, BL.bcd, GL.bcd and SL.bcd). ListsAndAtoms -------------- DF file: [Indigo]Top>ListsAndAtoms.df Documentation: see comments in List.mesa, Atom.mesa, RefTab.mesa Implementor: Warren Teitelman All interfaces now in the safe language. Some name changes to arguments, e.g. name of argument to MakeAtom changed from ref to pName, etc. List.mesa now defines UniqueSort, which does a sort and eliminates duplicates. Exports three interfaces: Atom, RefTab, and List. Loader ------ DF file: [Indigo]Top>Loader.df Documentation: none Implementor: Paul Rovner The RuntimeLoader now exports a new interface named Loader. The goodies therein should be used instead of SubSys.Load, SubSys.Run, Runtime.LoadConfig, Runtime.NewConfig, Runtime.RunConfig, and Runtime.ConfigError. NOTE that Runtime.ConfigError is no longer exported; Loader.Error is the replacement. See Loader.mesa for more detail. The Pilot loadstate has been expanded. Lupine ------- DF file: [Indigo]Top>Lupine.df Documentation: LupineUsersGuide.press Implementor: Nelson (presently supported by Birrell) Cedar's RPC stub generator. Please read the documentation. Note that RPCRuntime (including LupineRuntimeImpl) is included in the 3.2 boot file. Maintain --------- DF file: [Indigo]Top>Maintain.df Documentation: [Indigo]Docs>Maintain.press Implementor: Birrell Recompilation only. MakeBoot --------- DF file: [Indigo]Top>MakeBoot.df Documentation: MakeBoot.press Implementor: Levin This release contains only small changes: 1) MakeBoot now supports the new, larger loadstate format. 2) Specifications in the command input of the form [ ... ] now work. 3) Certain file locking bugs (in the Tajo world only) have been fixed. 4) Specifications in the command input of the form CODE[ ... ] are now displayed properly in the loadmap file. MCross ------- DF file: [Indigo]Top>MCross.df Documentation: MCross.doc Implementor: Paul Rovner Reconstruction only. MesaScanner ------------ DF file: [Indigo]Top>MesaScanner.df Documentation: MesaScanner.mesa Implementor: Atkinson MesaScanner has not changed for Cedar 3.2, except to make the interface SAFE. MesaScanner is exported by the boot file. Modeller ------------ DF file: [Indigo]Top>Modeller.DF Documentation: ModelRefMan.Press and see Ed Satterthwaite or implementor Implementor: Schmidt Recompilation for 3.2. No other changes. OnlineMergeSort ---------------- DF file: [indigo]Top>OnlineMergeSort.df Documentation: see comments in ListSort.mesa Implementor: MBrown CEDAR interface. Othello ------- DF files: [Indigo]Othello>OthelloDorado.df [Indigo]Othello>OthelloD0.df [Indigo]Othello>SubOthello.df Documentation: "How to Use Cedar", "Pilot User's Handbook" Implementor: Taft 1. The boot files are now obtained from [Indigo]Top>OthelloDorado.boot and [Indigo]Top>OthelloD0.boot, NOT from [Indigo]Dorado> and [Indigo]D0> as was previously the case. 2. (OthelloDorado only) The Initial Microcode Fetch and Pilot Microcode Fetch commands have been reinstated, allowing Dorado microcode to be installed on the disk. (This will not be useful until a hardware change is made to each Dorado to enable it to boot microcode from its own disk. That conversion has not yet begun.) See [Indigo]DoradoBooting.press for full details. 3. Describe Physical Volumes now displays the name and creation date of any Initial or Pilot microcode that it discovers on the disk, and also indicates which logical volumes contain the physical volume boot file, germ file, etc. 4. A List Remote Files command has been added. 5. Bugs in command file processing and name/password input have been fixed. Packager -------- DF file: [Indigo]Top>Packager.df Documentation: Pilot User's Handbook Implementor: Levin There are no user-visible changes in this release. The packager has been upgraded to accommodate new versions of BcdDefs and related interfaces. PerfStats -------- DF file: [indigo]Top>PerfStats.df Documentation: PerfStats.doc, PerfStats.press Implementor: MBrown Recompiled; CEDAR interface. PGS ---- DF file: [Indigo]PGS>PGS.df Documentation: contact implementor Implementor: Satterthwaite Several restrictions on the size of PGS input have been relaxed. PGS will produce parsing tables with packing of fields chosen according to the size of the input grammar and will adjust the generated DEFINITIONS file appropriately. For the benefit of the DF software, both PGS and TableCompiler now produce BCD files containing complete information about the input files from which they were produced. PilotKernel ---------- DF file: [Indigo]Top>PilotKernel.df and UtilityPilotKernel.df Documentation: Pilot Programmer's Manual Implementor: Levin This release contains only minor changes: 1) A bug in VM allocation that tended to lead to excessive fragmentation has been fixed. 2) A mechanism for harmonious interaction of CedarSnapshot and transactions has been added (wizards only). 3) Internal changes to accommodate a larger loadstate have been made. This release also includes a new, upward compatible version of PilotInterfaces.df, located on the same subdirectory as the above. The new BasicHeadsCommon interface, MicrocodeVersion, is accessible through PilotInterfaces.df. Pine ---- DF file: [indigo]Top>Pine.df Documentation: contact implementor Implementor: MBrown Recompiled. PlotPackage ----------- DF file: [Indigo]Top>PlotPackage.df Documentation: (see interfaces) Implementor: Paul Rovner Reconstruction only. . PressScreen ----------- DF file: [indigo]Top>PressScreen.df Documentation: Run PressScreen to put button at top of screen. Red click => right half, blue click => full screen. Implementor: Cattell Margin at left side changed so that the first few bits on the screen aren't lost by the press printer. Print, PressPackage ------------------ DF file: [Indigo]Top>Print.df [Indigo]Top>PressPackage.df Documentation: Print.df Implementor: Plass Recompiled for 3.2 + bug fix by Schmidt. A User.profile line of the form "Hardcopy.Tab: n" sets tab stops every n columns; 8 is the default (4 is consistent with some commonly-used Tioga styles). PriorityQueue ------------- DF file: [Indigo]Top>PriorityQueue.df Documentation: [Indigo]PriorityQueue>PriorityQueue.mesa Implementor: Atkinson PriorityQueue has not changed for Cedar 3.2, except to make the interface SAFE. PriorityQueue is exported by the boot file. Pup ---- DF file: [Indigo]Top>Pup.df Documentation: [Ivy]Doc>Pup.press Implementor: Birrell A deadlock in the BSP implementation has been fixed. Pupwatch --------- DF file: [Indigo]Top>Pupwatch.df Documentation: [Indigo]Pupwatch>Pupwatch.press Implementor: Birrell This a straightforward conversion of the Alto program. It has two major advantages over the Alto version: it is able to watch the host it is running on, and it should miss no packets (because Pilot uses chained ethernet i/o requests). Unfortunately, the performance is probably inadequate on a Dolphin. The user interface should be obvious. Random ------- DF file: [indigo]Top>Random.df Documentation: Random.doc, Random.press Implementor: MBrown Recompiled; CEDAR interface. Module name changes: RandomLongInt -> Random, RandomLongIntImpl -> RandomImpl (so the "Random" interface traffics in Cedar-standard INTs, while "RandomInt" continues to traffic in INTEGERs.) Procedure name changes: InitRandom -> Init, Random -> Next (so, e.g., "Random.Next[]" returns a random INT.) RedBlackTree ------------- DF file: [indigo]Top>RedBlackTree.df Documentation: see comments in OrderedSymbolTable.mesa Implementor: MBrown CEDAR interface RedBlackTreeRef ---------------- DF file: [indigo]Top>RedBlackTreeRef.df Documentation: RedBlackTreeRef.doc, RedBlackTreeRef.press Implementor: MBrown Recompiled; CEDAR interface. A new procedure, DeleteAllItems, makes a table empty without destroying it. Rigging ------- DF file: [Indigo]Top>Rigging.df (& RiggingMaker.df) Documentation: Rope.tioga (Rope.press) Implementor: Atkinson Rigging has not changed much for Cedar 3.2. Some interfaces have become SAFE. RefText is now part of Rigging. Rigging interfaces are exported by the boot file. RPC Runtime ------------- DF file: [Indigo]Top>RPCRuntime.df Documentation: LupineUsersGuide.press Implementor: Birrell This provides the runtime facilities needed by Lupine stubs. It is included in the boot file and must NOT be loaded explicitly. Runtime and RuntimeTypes --------------------------- DF file: [Indigo]Top>Runtime.df Documentation: Runtime.press, RTTypes.press Implementor: Paul Rovner Much has changed in the Cedar runtime system since the last release. Leading terms are improved BugBane reliability, preparation for Cedar 4.0, better symbol table access, and better cooperation among the file system, loader, compiler, binder, bringover, the file tool, and BugBane. Many interfaces have changed, and all have been recompiled. RTBasic has been expanded to include definitions of Type, TypedVariable, TV and Index. RTBasic is now referenced by RTTypes. Interfaces that used to reference RTTypes for these definitions only should now reference RTBasic instead. This breaks some tiresome inter-interface dependencies (RTBasic will change much more slowly than RTTypes). The stuff in RTTypes that dealt with conversions between Cedar values and TV's have been moved to a new interface named "RTTBridge". Use of PROC ANY RETURNS ANY and ERROR ANY RETURNS ANY rather than PrincOps.ProcDesc and PrincOps.SignalDesc is made there. RTTBridge also includes a new "Loophole" procedure. RTTypes includes a new "IsMachineDependent" procedure. The MalformedTV ERROR in RTTypes has gone away. RTMiniModel includes a new procedure that returns a list of all of the defs modules exported by anything: GetLoadstateDefsNames: PROC RETURNS[LIST OF ATOM]; RTZones has been overhauled. Visible changes include deletion of re-definitions from RTQuanta (you should refer directly to RTQuanta) and the following name changes: MapQMz -> MapQZf MyZone -> ZoneFinger RealZone* -> Zone real -> prefixed (tag on ZoneFingers) The various SIGNALs defined in RTSymbols have been replaced by NoSymbols, which takes a RTSymbols.FailureReason as a parameter. Sequin ------ DF file: [Indigo]Top>Sequin.df Documentation: contact implementor Implementor: Levin DF file changes only. Set --- DF file: [Indigo]Top>Set.df Documentation: Set.doc Implementor: Paul Rovner Reconstruction only. SirPress ------- DF file: [Indigo]Top>SirPress.DF Documentation: see comments in SirPress.mesa Implementor: Plass Minor changes in SirPressImpl to allow larger entity lists in the output files. There is a a new interface called PressPrinter to allow the transmission of press files to servers. Since everything that SirPressImpl depends on is now in the boot file, SirPressPackage no longer exists; both SirPress and PressPrinter will be exported by TSetter. Spy --- DF file: [Indigo]Top>Spy.df Documentation: Spy.doc Implementor: Maxwell Post-processing in the Spy runs substantially slower now (2-3 minutes on a Dorado) because CIFS retrieves all of the symbols encountered by the Spy. This won't be fixed until the RTSymbols interface can be recompiled (probably two releases away). STPServer --------- DF file: [Indigo]Top>STPServer.DF Documentation: None Implementor: Schmidt Unchanged from previous release. TerminalMultiplex ------------------ DF file: [Indigo]Top>TerminalMultiplex.df Documentation: see comments in TerminalMultiplex.mesa Implementor: Levin It is now possible to unregister both InputController and TerminalSwapNotifier procedures, using the obvious procedures in the interface. These are intended to facilitate development of packages that do their own terminal management independent of Viewers and Inscript. TJaMGraphics ------------- DF file: [Indigo]Top>TJaMGraphics.df Documentation: See implementor Implementor: Maureen Stone The TJaMGraphicsPackage used to be exported from ViewersAndTioga.df. It now stands as a separate package. This is the link between the JaM interpreter and CedarGraphics. Many of you have seen this program in action during ISL demos. Loading this package and running (in the JaM sense) Graphics.jam creates a viewer and defines a large number of JaM commands that help you make pictures in that viewer. This is a very good way to become familiar with CedarGraphics because it is very easy to sit and experiment. To use the package: Run the TJaMGraphicsPackage. Type JaM to the user exec, which creates a JaM typescript (JaM is already running as part of Tioga). Type .getviewer to the JaM typescript to create the graphics viewer. Type (graphics.jam) .run to the JaM typescript to finish loading the rest of the graphics commands. There is some very out of date information on JaM and the graphics commands on [indigo]JaM.press. Still, it may be useful to those who have never used JaM. However, the truth is documented only in the code. Graphics.jam, TJaMGraphicsImpl.mesa and TJaMColorImpl.mesa are the most interesting files to look at. TTYIO ------ DF file: [Indigo]Top>TTYIO.Df Documentation: contact implementor Implementor: Warren Teitelman This package is new for this release. (It was previously included as part of IO and UserExec.) It includes the implementation of TTY in terms of IO (which will be disappearing one of these days), as well as the implementation of the interface ViewerIO, which contains the procedure CreateViewerStreams. (ViewerIO is not included in IO, which it logically is a part of, in order to prevent circular dependencies between IO.df and Viewer.df). UECP ----- DF File: [Indigo]Top>UECP.df Documentation: see interface Implementor: Stewart No changes. UECP.Parse is the only procedure. It parses a UserExec command line rope and returns a SEQUENCE of tokens and switches. Unique ------- DF file: [Indigo]Top>Unique.DF Documentation: Unique.Doc Implementor: Schmidt Recompilation for 3.2. No other changes. UserExec -------- DF file: [Indigo]Top>UserExec.Df Documentation: see comments in UserExec.mesa, Introduction.doc Implementor: Warren Teitelman All reported bugs have been fixed. Wipe your slate and start over. All of the user exec interfaces are now safe. In addition, the interfaces have been rearranged slightly: UserExec continues to define procedures for registering commands, dealing with name and password, checking for abort, etc. Other facilities that are stable and expected to be used for vanilla applications, but are not executive functions per se, are now provided through the interface UserExecUtilities. The interface UserExecExtras continues to provide for more esoteric applications involving the user executive, but you should know what you are doing. UserExecPrivate is still around, but probably should not be being used except for very specialized, and blessed, applications. It is liable to change without much advance notice. Changes to user profile are now noticed for most options when the profile is saved. UserProfile.doc contains a complete catalogue of currently available profile options. RegisteredCommands.catalogue contains a complete catalogue of available registered commands. (However, you are responsible for obtaining the corresponding bcds.) New registered commands are now specified by including a RegisteredCommands entry in your personal user profile, not by editing the file RegisteredCommands.profile, which has been retired. The interpreter can now be called in any executive. However, breakpoints and uncaught signals continue to be handled only in the original executive window. New commands: List: Prints size, creation date for the indicated files, e.g. List *.mesa$$. Use: Reexecute indicated event(s) substituting new parameters for old, e.g. &10 Bringover /o compile.bcd compiler>compiler &11 use binder for compiler For complete explanation, type use? to UserExecutive. Open: creates viewer(s) on existing files (Previously called Old). If several viewers are specified, the screen is not repainted until all are opened. Open also recognizes switches for opening a viewer on the left, right, or color column, iand full size, normal, or iconic. For complete explanation, type open? to user exec. New: like old, except if file does not exist, a new, empty viewer is created with corresponding name, rather than attempting spelling correction. New menu buttons for user executives: Destroy - destroys this exec. New - creates a new user exec Yes, No - used for confirming spelling correction Stop - same as typing control-del, except also works when input focus is elsewhere Compiler - compiles the indicated viewer/selection Miscellaneous new features; x*? and x*^X now work, e.g. Co*? will list all commands beginngin with Co. Rename will let you rename a file to an existing file. (it will save the original file on originalfile$$.) Compiler.log and binder.log viewers are destroyed following a successful compilation/bind. If there are errors or warnings, the corresponding log is opened iconic if the corresponding user executive is iconic, of if it no longer holds the input focus. In other words, if you start a compilation and then go off and start editing while waiting, when the compilation finishes, if there are errors/warnings, the log will be brought up iconic, and will blink every ten seconds until the icon is either selected, or opened. Automatic completion is provided for unambiguous commands, e.g. ren foo.mesa _ fie.mesa. If the command is ambiguous, an error message is printed. Changes to spelling corrector: The spelling corrector now divides its class of corrections into four different classes (in order of decreasing certainty): case errors, pattern completion (i.e. * expansion), those in which all characters are accounted for (i.e. only errors are transpositions or doubled characters), those involving some mistakes, e.g. extra or missing characters. The user, via user profile option, can specify for which corrections the user is to be informed, which corrections require confirmation, and which corrections are disabled entirely. For those corrections requiring confirmation, the user can also specify a timeout and defaultConfirmation value to be used in case the user does not respond. The default is to require confirmation and to inform on pattern matching, and to never timeout. However, most users will probably prefer to inform on pattern matching, but not to require confirmation, i.e. to require confirmation only on actual errors. For more details about modes, as well as description of procedures that can be called from client programs, see Spell.mesa VersionMap ----------- DF file: [Indigo]Top>VersionMap.df Documentation: VersionMap.mesa, VersionMapBuilder.mesa Implementor: Atkinson VersionMap is new for Cedar 3.2. It supports access to remote symbols and source. Most users will not need to use VersionMap directly. VersionMap.bcd is exported by the boot file (VersionMapBuilder.bcd is not). Viewers and Tioga ------------------ DF file: [Indigo]Top>ViewersAndTioga.df Documentation: Tioga and Typesetter documentation on [Indigo]Documentation>TiogaDoc.tioga and .press. Some Viewers documentation is in Introduction.doc; otherwise see implementor. Implementors: TiogaImplementors^ (Scott McGregor, Bill Paxton, Michael Plass) -------- User Interface Changes: The Tioga menu and keyboard commands have changed extensively. All users are strongly encouraged to read at least the user interface summary in the documentation. Note that the meaning of double-click selections have changed and that Red vs Blue clicking of the "find" menu buttons imply forward and backward search of the document respectively. Tioga and Viewers have been largely converted to use CIFS, allowing long path names in most interfaces. Remote files loaded into Tioga viewers are currently set up to be read-only. Many Tioga styles have been updated considerably. Contact a Tioga implementor if you have styles that you need to convert. There are some new fonts available; see [Indigo]StrikeFonts> for the complete list of display fonts. There is a new user interface for the typesetter which is documented with the Tioga editor. Icons now open with the Yellow mouse button and select with the Red button. Blue is a nop for the time being. A selected icon responds to single letter command as follows: DEL - delete, M - move, o - open. -------- Client Interface Changes Buttons Buttons.Create was modified to include a ViewerClasses.ViewerRec as a parameter (see changes to ViewerOps). Carets A mechanism was added to permit multiple carets and to allow for better synchronisation of caret blinking and screen repaints. Containers Containers.Create was modified to include a ViewerClasses.ViewerRec as a parameter (see changes to ViewerOps). Cursors Cursors.CursorArray is now defined as an Interminal.CursorArray as part of the color viewer conversion. Icons The Icons interface has been extensively changed to permit clients to specify a labelling rectangle for viewer names. Only those icons that are required for boot file components are now included in the standard icon file. Interfaces are provided to create new icon flavors from either a file or a procedure. Viewers.icons has become obsolete, replaced by Standard.icons, which has a new file format. IconsImpl has been completely converted to CIFS, so that you may specify remote path names when creating icon flavors from a client file. Icons.DrawIcon has been modified to include the labelling code for applications that wish to display icons inside a viewer. The logical file format for an icon is now included in the interface as a MACHINE DEPENDENT record for those wishing to build programs that manipulate icon files. InputFocus InputFocus.CaptureButtons now takes a TIPTable and a NotifyProc instead of a viewer in order to permit low-level applications to track mouse events. There is a new interface, InputFocus.ReleaseButtons to undo a InputFocus.CaptureButtons and restore the normal mouse handling. Labels Labels.Create was modified to include a ViewerClasses.ViewerRec as a parameter (see changes to ViewerOps). Note that the border is no longer defaulted to FALSE. Menus Menus.ReplaceMenuEntry now returns the MenuProc, clientData and fork information for the old entry. Rules Rules.Create was modified to include a ViewerClasses.ViewerRec as a parameter (see changes to ViewerOps). TypeScript TypeScript.Create was modified to include a ViewerClasses.ViewerRec as a parameter (see changes to ViewerOps). Note that the column is no longer defaulted "left". TypeScript.CreateChild has been subsumed by TypeScript.Create. ViewerClasses ViewerClasses.ViewerRec has had a number of defaults changed to permit use as a parameter to ViewerOps.CreateViewer (See changes to ViewerOps). Due to some compiler limitations, some fields that should be read-only or private to the window manager now only have comments to that effect; please heed them. The type WAlloc has been renamed Column and now has an additional value: color (yes, that means Cedar 3.2 should have color viewers up and running). ViewerOps ViewerOps.CreateViewer has been greatly simplified by passing a ViewerClasses.ViewerRec in as a parameter. This permits a client much more control over the initial state of the viewer at some cost to convenient defaults. All of the other interfaces that create viewers have been converted to accept a similar parameter for uniformity. Please heed the comments for ViewerClasses.ViewerRec regarding which fields a client may specify. ViewerOps.ToggleViewerPosition has been renamed to ViewerOps.ChangeColumn and now takes a Column argument. ViewerOps.UserToScreenCoords maps a viewer-releative set of coordinates to their screen-relative equivalent. ViewerOps.BlinkIcon is a new interface of use to clients wishing to draw visual attention to an icon. ViewerOps.RegisterSaveNotifyProc and ViewerOps.UnRegisterSaveNotifyProc allow a client to register a procedure that will be called any time a viewer is saved. ViewerTools The new interface ViewerTools.MakeNewTextViewer replaces ViewerTools.MakeNewTextBox and ViewerTools.MakeTextViewer. ViewerTools.EnableUserEdits is now added to complement ViewerTools.InhibitUserEdits. VirtualDesktops VirtualDesktops.EnumerateViewers has been added to permit a client to examine all viewers on all desktops. WindowManager WindowManager.StartColorViewers has been added to create another column for color viewers and to initialise the color display. WindowManager.StopColorViewers performs the inverse function. The boolean value WindowManager.colorDisplayOn hold the current state of the color viewers system. VTables -------- DF file: [Indigo]Top>VTables.df Documentation: VTables.mesa Implementor: Atkinson VTables has not changed for Cedar 3.2, except to make the interface SAFE. WalnutSend ------------ DF file: [Indigo]Top>WalnutSend.df Documentation: Contact implementor Implementor: Haugeland WalnutSend will only allow one sender viewer at a time. The menu changes depending on what state the sender is in; confirmation requests are now answered using menu items. Waterlily ------------------ DF file: [Indigo]Top>Waterlily.df Documentation: via the "?" facility in the UserExec. Implementor: Kolling The Tioga switch (the default) now results in double-null being seen as eof, thanks to the changes in the IO package. WorldVM --------- DF file: [Indigo]TeleDebug>WorldVM.df Documentation: none; interfaces are internal to RTTypes and BugBane Implementor: Birrell Provides access to world-swap and teledebug core images, for use by RTTypes and BugBane. Unless otherwise indicated above, questions about changes in individual components should be addressed to their implementors. The Release Master