Date: 1 Dec. 1982 11:18 pm PST (Wednesday) Sender: Levin.PA Subject: Cedar 3.5 release (part 1 of 2) From: Release Master To: CedarUsers↑, CedarImplementors↑ cc: CedarCoordinators↑ Reply-To: Levin Cedar 3.5 is released. Most major interfaces above the Pilot level have been recompiled, including IO, Viewers and Tioga interfaces, and UserExec. Consequently, most client programs will need to be rebuilt. The Compiler and Binder are unchanged from Cedar 3.4.1. This release announcement differs somewhat in organization from previous announcements. It consists of five parts: Installation Procedure Significant Changes in this Release Known Problems List of System Components Summary of Release Component Changes since Cedar 3.4.1 This message contains the first three sections, which should be read and understood before attempting to use this release. A subsequent message holds the last two sections of the release announcement, which are quite long. These latter sections can be treated as reference material and need not be read before acquiring and using the release. Installation Procedure --------------------- This procedure assumes you have a machine with Cedar 3.4.1 installed. (Note to alpha-testers of Cedar 3.5: this procedure works for you also. Don't attempt any shortcuts.) Otherwise, refer to the "Setting Up Your Disk" section of [Indigo]<Cedar>Documentation>Introduction.press for further information. (Be sure you have the version corresponding to this release.) 1) Get to Othello, either through the MesaNetExec or by booting your Othello volume. 2) It is strongly recommended that you erase your Client volume before installing Cedar 3.5. Doing so will improve performance (by eliminating fragmentation) and failure to do so can result in peculiar failures at unpredictable times, for which the only cure is erasing the volume. If there are any files on the Client volume that you wish to save, save them before proceeding. You may wish to use DFDisk (see documentation of DFFiles component). To erase the Client volume, type Erase<CR> to Othello. You will be prompted for the volume name, type Client<CR>. Confirm as necessary. 3) Type @<CR> to Othello. You will be prompted for a command file name. Type either [Indigo]<Cedar>Top>DoradoRelease.cm or [Indigo]<Cedar>Top>D0Release.cm as appropriate. New boot files will be fetched for all volumes, as well as new microcode and germ files. 4) On Dorados, Cedar will automatically be booted upon completion of the command file. (Actually, the CoPilot volume will first be booted, after which a physical volume boot will occur, causing Cedar to be booted. Be patient.) On Dolphins, the Alto partition will be booted; hold down the "P" key and press the boot button to boot Cedar. 5) During the installation dialogue, you will be asked if you wish to use a personal DF file. If your personal DF file includes a personalized user profile (many do), you should answer "No" to this question, since a profile acceptable to Cedar 3.4.1 will almost certainly be unacceptable for Cedar 3.5. There are significant changes in the options available through the user profile (see below) that should be carefully considered. After installing Cedar 3.5 with the default user profile but before making a checkpoint, you can edit your personal profile suitably and the changes will be noticed automatically. As with previous releases, once the automatic installation procedure completes, you may then optionally acquire lots of additional useful files by typing BringOver /a CedarClientFat.df (Note: NOT /p) to the UserExec. This will fetch the exported contents of most of the major packages, whether released as part of the boot file or as separate BCDs. Users with limited disk space probably shouldn't do this. Once you have brought over all the desired files, you may wish to make a checkpoint, using the button at the top of the screen. Before beginning to use this release, you should read the remaining sections of this message. Significant Changes in this Release ---------------------------------- This section documents important changes in the user interface or major components and briefly describes significant new components. The descriptions here are incomplete and intended only to provide sufficient information to avoid surprises and confusion. Users should consult the more complete descriptions in the "Summary of Release Component Changes" section of this release announcement. 1. Viewers and Tioga: a) The "Grow" menu command is now a toggle, restoring the state of previously opened viewers if clicked again after growing a viewer to the full size of the column. b) Clear, Get, GetImpl, PrevFile, and Save are no longer guarded. c) "Unsaved" Documents Cache. It is not uncommon to forget to save the contents of a viewer before destroying it or loading something else into it. However this is not a disaster since Tioga holds onto "unsaved" documents so you can reload them with edits preserved. The number of such documents that Tioga will remember is set by a profile entry (UnsavedDocumentsCacheSize); the default is four. Whenever there are unsaved documents, Tioga creates a special viewer listing their names. Unsaved documents are put into the cache by Destroy, Clear, Get, GetImpl, and PrevFile. They are not put in by Reset. If the cache is already full when a new entry arrives, the oldest entry is discarded. Whenever a file is needed for Get, GetImpl, or PrevFile, the cache is checked to see if an unsaved version is available. "No Name" documents are not put into the cache. d) Automatic Mesa formatting via CTRL-M. During typein, it is now possible to apply Mesa formatting without reselecting the recently-typed characters. If CTRL-M and the current selection is a single character or less, the entire caret node will be reformatted. 2. UserExec: All Action area commands are now implemented by stuffing characters into the executive. This means that everything you can do with buttons you can type, and further means that there are no synchronization problems, i.e. you can click set and then click proceed without waiting for the set to complete, because the proceed won't happen until the set finishes. Feel free to button ahead all you like. Note that it is still the case that clicking source or set break will grab your input focus when the operation completes, so you can't, say, click "set" and then start typing ahead. But you can click ahead all you want. 3. Editable typescripts: Typescripts can now be edited as Tioga documents. (Actually, this is primarily supported by enhancements to the IO package and interface.) You can adopt the following simple rule for understanding how this works: If the typein point is at the end of the typescript and there is a point selection, then the program using the typescript will process the typein. Otherwise, Tioga will process the typein and the program will not see it. Users will probably notice this feature first in the UserExec typescripts. Here is an example of how it might be used: Suppose a user types the following to the UserExec bringover userprofile io and then realizes he has forgotten the /o switch, and wants to add .bcd after userprofile. He simply points between "bringover" and "userprofile", types "/o", yellow selects "userprofile" nearer to the right end, types ".bcd", hits the "next" key, and types carriage return. This facility is also very useful in conjunction with ESC (or redo ↑X), which will produce a previously typed line, but not complete the input operation. The user can then quickly edit that line to insert or remove characters and then complete the operation. As a result of the typescript being editable, simply pointing at some place in the typescript and starting to type will not have the same effect it used to: the characters will be inserted at the place you selected. You must point at the end of the typescript (or point anywhere and then use the "Next" key). For example, in the UserExec typescript, typing "DEL" to cancel a partially-typed command will only work if there is a point selection at the end of the typescript (otherwise, it will simply delete the selected characters, if any). This may take a little getting used to. 4. Walnut: All Walnut actions are serialized, preventing previous anomalous behavior and uncaught signals. Database commits run at background priority. The Walnut control window has been re-arranged. NewForm appears in the menu. Message Set buttons work differently: red-click deselects all and then selects that one; blue-click "extends" the selection; control-blue deselects that one. A Quit button has been added; the viewers' Destroy button does nothing. Blue-clicking CloseAll makes the control window one-line high. 5. Checkpoints: The checkpoint file is now a permanent file. This means that you can no longer get rid of a checkpoint simply by booting. The approved way to do so is to invoke CedarSnapshot.Delete from the interpreter. Booting the Booter volume with the "S" switch will have the same effect. 6. IO interface: The IO interface has been heavily edited using Tioga node structure so as to provide documentation. IO.Comments and PF.Comments have been merged in. Use level clipping to suppress detail when viewing it simply to jog your memory. 7. Pilot interfaces: PilotInterfaces now supplies a provisional "informational signal" mechanism. An informational signal is just like a standard Mesa SIGNAL except that, if caught, it must be RESUMEd or REJECTed, and if the signal propagates to the base of the call stack, it is implicitly resumed instead of triggering an uncaught signal action in the debugger. Note that a catch phrase for ANY also catches an informational signal, which may not be what you had in mind. Consult the description of the PilotKernel component for more details before attempting to use this facility. 8. Runtime.df: Runtime.df has been withdrawn and replaced by three new DF files: a) SafeStorage.df replaces part of Runtime.df that exported the following interfaces: AtomsPrivate, RCMapOps, RTBases, RTLoader, RTOS, RTOSExtras, RTProcess, RTRefCounts, RTStart, RTStorageAccounting, RTStorageOps, RTTypesBasic, RTTypesBasicPrivate, RTZones, SafeStorage, UnsafeStorage b) AMTypes.df replaces the part of Runtime.df that exported RTTypes and related interfaces. It now exports the following interfaces: AMBridge, AMTypes, RemoteRope, RTTCache, RTFiles, RTSymbols, RTSymbolsPrivate, RTTBridge, RTTypes, RTTypesExtras, RTTypesPrivate, RTTRemoteBridge, RTTypesRemotePrivate, SymbolTable c) AMModel.df replaces the part of Runtime.df that exported RTMiniModel.bcd, and now exports the following interfaces: AMMiniModelPrivate, AMModel, AMModelBridge, AMModelLocation, AMModelPrivate, RTMiniModel Significant new packages: 9. NewStuffImpl: This package comprises a collection of facilities that generally fall under the category of creature comforts for Cedar: they are not essential, but they make life more pleasant. These facilities are enabled by running NewStuffImpl.bcd, e.g. by including "run newstuffimpl" in the CommandsFrom entry in your user profile. They currently include (1) extensions to abbreviation expansion that enable the construction of "fill-in forms" for various types, e.g. user types Rope.Find{CTRL-E} producing Rope.Find[s1: ROPE, s2: ROPE, pos1: INT ← 0, case: BOOL ← TRUE]; (2) automatic creation/updating of date of last edit comments at the front of a document; (3) automatic creation/updating of change log entries at the end of a document (only works for documents that employ node structure). NewStuffImpl.bcd is fetched to the local disk as part of the automatic installation procedure. For more details, see [Indigo]<Cedar>Documentation>NewStuff.tioga. 9. ViewRec is a package intended for quick and easy user interface construction. Given a record, or the name of a DEFINITIONS module, it will construct a Viewer on the components of that record that are simple enough (numbers, ROPEs, enumerations, subranges of simple enough, records of simple enough stuff, procedures that take simple enough stuff, or explicitly bound by the client). The procedures may be invoked, and the data may be edited. 10. FlushUnneededTempFiles is a utility program that combs the disk for orphaned temporary files and reclaims the disk space they occupy. These files result from repeated rollbacks and can eventually consume many hundreds of pages of disk space. It takes only a minute or so to execute, and thus is more efficient of user time than booting, which accomplishes the same thing. 11. ScanZones is a utility for gathering and printing (on the file named Storage.log) information about the utilization of collectible storage. Known Problems ---------------- The following problem/glitch is known to exist in Cedar 3.5. You will get an unbound imports message from the UserExec when you run Print. This is because of some mail-file processing stuff that was removed from the config a few releases back; don't worry about it. Don't try to use Print while TSetter is sending something to the printer. The Release Master