Date: 1 Dec. 1982 11:19 pm PST (Wednesday) Sender: Levin.PA Subject: Cedar 3.5 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. *AMEvents *New* Implementation in boot file AMModel *New* Implementation in boot file AMTypes *New* Implementation in boot file *BasicHeads *Changed* Implementation in boot file BBV *Changed* Implementation in boot file *BCD Binder BravoToTioga *Changed* *BTrees *Changed* BugBane *Changed* Implementation in boot file *CedarControl *Withdrawn* Subsumed by CedarRoot *CedarDB *Changed* CedarReals Implementation in boot file CedarRoot *New* Implementation in boot file CedarSnapshot *Changed* Implementation in boot file Chat *Changed* CIFS *Changed* Implementation in boot file CoFork *Changed* ClientFileTool *New* Clock *Changed* *ColorPackage *Changed* Implementation in boot file *Communication Implementation in boot file *CompatibilityPackage *Changed* Implementation in boot file Compiler *D0Microcode DateAndTime *Changed* Implementation in boot file DFFiles *Changed* *DLionMicrocode *DoradoMicrocode *FileSystemCommands *Changed* FileTool *Changed* Implementation in boot file FlushUnneededTempFiles *New* Forms *Germ Separate boot file GrapevineUser Implementation in boot file Graphics *Changed* Implementation in boot file *IFSFile IncludeChecker *Changed* *Inscript *Changed* Implementation in boot file IO *Changed* Implementation in boot file *Lister ListsAndAtoms *Changed* Implementation in boot file *Loader *Changed* Implementation in boot file Lupine *Changed* Maintain *Changed* *MakeBoot *Changed* MCross *Changed* *MesaScanner *Changed* Modeller *Changed* OnlineMergeSort Othello *Changed* Separate boot file *Packager PerfStats *Changed* *PGS PilotBootToEtherBoot *Withdrawn* Subsumed by MakeBoot *PilotKernel *Changed* Implementation in boot file *Pine PlotPackage *Changed* Poplar *Changed* PressPackage *Withdrawn* Subsumed by TSetter PressScreen *Withdrawn* Subsumed by TSetter Print *Changed* PriorityQueue *Changed* Pup *Changed* Implementation in boot file *Pupwatch *Changed* Random RedBlackTree *Changed* RedBlackTreeRef *Changed* Reminder *Changed* Rigging *Changed* Implementation in boot file *RPCRuntime *Changed* Implementation in boot file Runtime & RuntimeTypes *Withdrawn* See SafeStorage, AM* SafeStorage *New* Implementation in boot file SampleTool *Changed* ScanZones *New* *Sequin Set *Changed* SirPress *Changed* *SpecialTerminal *New* Implementation in boot file Spy *Changed* Squirrel *Changed* STPServer *Changed* *TerminalMultiplex *Changed* Implementation in boot file TJaMGraphics *Changed* TSetter *Changed* *TTYIO *Changed* UECP *Changed* Unique *Changed* UserCredentials *Changed* Implementation in boot file UserExec *Changed* Implementation in boot file *VersionMap *Changed* Implementation in boot file *VersionMapBuilder *Newly Released* Viewers & Tioga *Changed* Implementation in boot file ViewRec *New* VTables *Changed* Walnut *Changed* WalnutSend *Changed* Watch *Changed* Waterlily *Changed* *WorldVM *Changed* Implementation in boot file Summary of Release Components ------------------------------- Note: In the descriptions that follow, unless otherwise specified, the DF file or files for a component are located on [Indigo]Top>. 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. AMEvents ---------- DF file: AMEvents.df Documentation: None - consult implementor before using Implementor: Andrew Birrell New package, replacing ClientEvents AMModel ---------- DF file: AMModel.df Documentation: (See AMModel.mesa) Implementor: Rovner AMModel.df replaces the part of Runtime.df that exported RTMiniModel.bcd, which is now included in AMModelPackage.bcd. This exports the following interfaces, accessible thru AMModel.df: AMMiniModelPrivate, AMModel, AMModelBridge, AMModelLocation, AMModelPrivate, RTMiniModel AMTypes ---------- DF file: AMTypes.df Documentation: RTTypes.tioga, .press (NOT up to date yet) Implementor: Rovner AMTypes.df replaces the part of Runtime.df that constituted RTT.bcd, which has been renamed to AMTypesPackage.bcd. This exports the following interfaces, accessible thru AMTypes.df: AMBridge, AMTypes, RemoteRope, RTTCache, RTFiles, RTSymbols, RTSymbolsPrivate, RTTBridge, RTTypes, RTTypesExtras, RTTypesPrivate, RTTRemoteBridge, RTTypesRemotePrivate, SymbolTable Clients of RTTypes should start to use AMTypes instead. AMTypes includes all of the operations of RTTypes (with a few obscure exceptions and changes). RTTypes will go away with the next release. Clients of RTTBridge and RTTRemoteBridge should start to use AMBridge instead. AMBridge includes all of the operations of RTTBridge and RTTRemoteBridge (with a few obscure exceptions and changes: TVForFrame replaces TVForFHReferent; TVForRemoteFrame replaces TVForRemoteFHReferent; ContextPC replaces BytePC). RTTBridge and RTTRemoteBridge will go away with the next release. BasicHeads ---------- DF file: [Indigo]Heads>BasicHeadsCommon.df [Indigo]Heads>BasicHeadsDorado.df [Indigo]Heads>BasicHeadsD0.df [Indigo]Heads>BasicHeadsDLion.df Documentation: none Implementor: Taft Minor bug fixes only. BBV ---- DF file: BBV.df Documentation: BBV.doc Implementor: Atkinson Most users should avoid the BBV viewer and use the UserExec through Work Areas instead. BBV now handles remote debugging. Clients of BBVOps and BBVForUserExec routines will notice remote debugging related changes in these interfaces. BCD ---- DF file: BCD.df Documentation: contact implementor Implementor: Satterthwaite Unchanged from previous release. Binder ------ DF file: Binder.df Documentation: see Mesa 5.0 Reference Manual and Mesa User's Handbook Implementor: Satterthwaite Unchanged from previous release. BravoToTioga ------------- DF file: BravoToTioga.df Documentation: See interfaces or contact implementor Caretaker: Bill Paxton Recompilation only. BTrees ------ DF file: BTrees.df Documentation: contact implementor Implementor: Levin Minor changes. BugBane -------- DF file: BugBane.df Documentation: BugBane.doc Implementor: Atkinson BugBane now supports remote debugging, although this facility is not yet documented or fully debugged. Changes to the internals of BugBane to allow remote debugging have resulted in some loss of performance in handling breakpoints in Cedar 3.5. Numerous minor bugs have been fixed (numerous minor bugs remain). CedarDB --------- DF file: CedarDB.Df Documentation: see Cattell Implementor: Cattell Performance improvements only (only?!) Cedar Reals ----------- DF file: CedarReals.df Documentation: none Implementor: Stewart Unchanged from previous release. CedarRoot --------- DF file: CedarRoot.df Documentation: None Implementor: Levin This package replaces CedarControl and contains two miscellaneous interfaces related to Cedar initialization, CedarInitOps and CedarVersion. These interfaces have changed only slightly since Cedar 3.4; the changes are upward compatible. The installation procedure has changed considerably, though only a few changes are visible to the user: 1) Cedar initialization recognizes two boot switches, D and L. D is intended primarily for system development and should not be mentioned by normal users. L invokes the "long dialogue", which permits semi-arbitrary control of the installation procedure, and should be invoked only by knowledgeable users, at least until adequate documentation is available. 2) A number of "wired-in" parameters relating to the initialization of public machines can be invoked by answering the "Is this a public machine?" question affirmatively. 3) The size of the Cedar VM backing file is now preset at initialization and cannot be influenced by the user. However, the algorithm for its allocation is now more intelligent and capable of dealing with fragmented disks (including disks fragmented by bad pages). CedarSnapshot -------------- DF file: CedarSnapshot.df Documentation: See comments in CedarSnapshot.mesa Implementor: Levin No interface changes have been made. Checkpoint formats have changed slightly, so new versions of Othello and CedarSnapshotD*.boot files are required. There are three significant functional changes. 1) The checkpoint file is now a permanent file. This has two major consequences: a) 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. Someday someone might want to provide a more attractive user interface. b) You can make a checkpoint for the installed boot file, then boot from another boot file (e.g., BasicCedarDorado) without destroying the checkpoint. A subsequent rollback will restore your state relative to the installed boot file. This is primarily of interest to Cedar implementors during the development cycle. 2) Checkpoint now calls RollbackProcs to cleanup after an unsuccessful checkpoint attempt. In the past, it didn't do so and lockups were possible if Checkpoint was invoked when insufficient disk space was available. However, the error recovery in this situation still isn't perfect, and won't be until the CedarSnapshot interface can next be changed. 3) Booting from the Booter volume now deals with multiple volumes of type "normal" in a (semi-)intelligent way. It will rollback the first volume that appears to have a valid checkpoint. If no such volume exists, it will boot the first volume that appears to have an installed boot file. If no such volume exists, it will contemplate its navel, displaying an appropriate maintenance panel code. Chat ---- DF file: Chat.df Documentation: contact implementor Implementor: Teitelman (not really but I touched it last) Recompilation only. CIFS ---- DF file: CIFS.df Documentation: CIFSManual.(tioga press) Implementor: Gifford, Schroeder The default free disk pages has been up-ed from 300 to 1000. ClientFileTool -------------- DF file: ClientFileTool.df Documentation: none Last touched by: Andrew Birrell A trivial translation of the Copilot ClientFileTool into Cedar, intended for 4.0 Clock ----- DF file: Clock.df Documentation: Clock.mesa Implementor: Atkinson The date is now displayed when the clock is open (non-iconic). CoFork ------- DF file: CoFork.df Documentation: none Implementor: Sturgis Recompilation only. ColorPackage ------------- DF file: ColorPackage.df Documentation: See interfaces or contact implementor Implementor: Maureen Stone Bug fixes only. Communication --------------- DF file: Communication.df Documentation: Pilot Programmers' Guide and Pup package documentation Implementor: Birrell Unchanged from previous release. CompatibilityPackage -------------------- DF file: CompatibilityPackage.df Documentation: None Implementor: Levin Rebuilt to include new Pup package. Compiler -------- DF file: Compiler.df Documentation: Cedar7T11.press Implementor: Satterthwaite Unchanged from previous release. D0Microcode ------------ DF file: D0Microcode.df Documentation: none Implementor: Fiala Unchanged from previous release. DateAndTime ------------- DF file: DateAndTime.df Documentation: See comments in DateAndTime.mesa Implementor: Levin Bug fixes only. DateAndTimeUnsafe.df has gone away, and the interface it formerly exported, DateAndTimeUnsafe.mesa, is now available through DateAndTime.df DFFiles ------- DF file: DFFiles.DF Documentation: DFFilesRefMan.Press Implementor: Schmidt One bug fixed: BringOver uses less resident VM now. The DF software no longer allocates a single 256-page space; you are less likely to run out of VM when starting DF programs. DLionMicrocode --------------- DF file: DLionMicrocode.df Documentation: See implementor Implementor: Sturgis Unchanged from previous release. DoradoMicrocode ---------------- DF file: DoradoMicrocode.df Documentation: [Indigo]DoradoBooting.press Implementor: Taft Unchanged from previous release. FileSystemCommands -------------------- DF file: CIFSCommands.df Documentation: CIFSManual.(tioga press) Implementor: Gifford, Schroeder Recompilation only. FileTool -------- DF file: [Indigo]Top>FileTool.df Documentation: Cedar 3.2 documentation Implementor: Stewart No user visible changes. Small bug fixed. FlushUnneededTempFiles ------------------------- DF file: FlushUnneededTempFiles.df Documentation: None Implementor: Levin This is a new facility 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. To invoke this program, run FlushUnneededTempFiles.bcd from the Executive. Because of various possible races, it is best to do this only when nothing else is going on -- don't edit files or load windows when this program is running (it only takes a minute or so). Forms ------ DF file: Forms.df Documentation: Internal Implementor: Horning Unchanged from previous release. Germ ----- DF files: GermDorado.df, GermD0.df Documentation: "Pilot User's Handbook" Implementor: Taft Unchanged from previous release. GrapevineUser -------------- DF file: GrapevineUser.df Documentation: [Indigo]Docs>Grapevine.press and Interface.press Implementor: Birrell Unchanged from previous release. Graphics -------- DF file: Graphics.df Documentation: see comments in Graphics.mesa Implementor: Wyatt Minor bug fixes only. IFSFile ------ DF file: IFSFile.df Documentation: contact implementor Implementor: Levin Unchanged from previous release. IncludeChecker --------------- DF file: IncludeChecker.df Documentation: (SDD documentation) Implementor: Rovner Recompilation only. Inscript ------- DF file: Inscript.df Documentation: InscriptImplAppendix.memo; InscriptImplementation.memo, .press Implementor: Maureen Stone, Dan Swinehart Recompilation only. IO, FileIO, UserProfile ---------------------- DF file: IO Documentation: See interfaces IO.mesa, FileIO.mesa, UserProfile.mesa. Now heavily commented with some examples. Implementor: Teitelman, MBrown Changes to IO: IO.PutThisSignal now called IO.PutSignal. IO.RS (synonym for CreateInputStreamFromRope) now called RIS. ROS is defined as a synonym for CreateOutputStreamFromRope. PutBack is now called Backup. New procedure CreateFilterCommentsStream which takes an input stream and returns another input stream which filters out all comments, where comments are defined in the usual fashion. The 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. Note that CreateViewerStreams, which calls ViewerIO.CreateViewerStreams, will now return an input stream that is an edited viewer stream, which means that the user can edit characters that have been typed but not yet read using the standard Tioga editing operations. For more details, see ViewerIO release message. Changes to FileIO: The transaction parameter to FileIO.Open now defaults in a way that is semantically identical to the old default, but does not force clients to import the Pilot Transaction interface. A significant performance bug has been fixed in SetIndex. A reminder: if you write a file using FileIO, the changes to the file are not guaranteed to reach the disk unless you call stream.Flush or stream.Close. If you do not call stream.Close, then the virtual memory allocated to the stream buffer will be lost. There is a documented limitation in the common software directory package such that file names cannot be longer than 40 characters. If you try to create such a file, either by calling FileIO.Open directly, or via the exec copy or rename command, you will get an uncaught signal FileIOCommonImpl.OpenFailed. A similar problem can occur if your file name is long enough so that adding SysDir> to the front causes an overflow. The manifestation here is that anything involving spelling correction or pattern matching will fail to find the file. The moral is stay away from very long file names until we get fully into CIFS. Changes to UserProfile: The userprofile package now builds a data structure when it parses the user's profile, which it does once during booting, following a rollback, or when the profile is edited. Any errors encountered are written to userprofile.log and the user is alerted via the messagewindow. Open and Close are no longer implemented because access to the data structure is relatively efficient, i.e. no disk reads or parsing is going on. The user profile is now insensitive to leading trailing spaces in an entry, and permits comments to be inserted at any point. Lister ----- DF file: Lister.df Documentation: Lister.txt Implementor: Satterthwaite Unchanged from previous release. ListsAndAtoms -------------- DF file: ListsAndAtoms Documentation: See comments in Atom.mesa, List.mesa Implementor: Teitelman List.NthTail and List.NthElement now take INTs as aruments. Negative numbers mean count from end of the list, e.g. NthElement[l, -1] is the last element of the list. New procedure CopyTopList. Loader ------ DF file: Loader.df Documentation: contact implementor Implementor: Maxwell The loader has been completely rewritten. It now builds and maintains interface records. Lupine ------- DF file: Lupine.df Documentation: LupineUsersGuide.press Implementor: Bruce Nelson (meanwhile, Andrew Birrell) Recompilation only. Maintain --------- DF file: Maintain.df Documentation: Introduction to Cedar, [Indigo]Docs>Interface.press. Implementor: Andrew Birrell Recompilation only. MakeBoot --------- DF file: MakeBoot.df Documentation: MakeBoot.press Implementor: Levin This version is mostly bug fixes and performance improvements. The following are user-visible changes: 1) The /E switch is now available and eliminates the need for the PilotBootToEtherBoot utility progam. See documentation for details. 2) MakeBoot can now accept multiple BCDs as input when building a germ file (/G). 3) BCDs loaded into the boot file now have separate swap units on the BCD proper and RT extension. This should help improve loader performance at runtime. MCross ------- DF file: MCross.df Documentation: MCross.doc Implementor: Rovner Recompilation only. MesaScanner ------------ DF file: MesaScanner.df Documentation: MesaScanner.mesa Implementor: Atkinson Hex literals are supported. Minor bugs fixes only. Modeller -------- DF file: Modeller.DF Documentation: ModelRefMan.Press and see Ed Satterthwaite or implementor Implementor: Schmidt Recompilation only. No other changes. OnlineMergeSort ---------------- DF file: OnlineMergeSort.df Documentation: see comments in ListSort.mesa Implementor: MBrown Unchanged from previous release. Othello ------- DF file: [Indigo]Othello>Othello.df Documentation: Introduction to Cedar; Pilot User's Handbook Implementor: Taft 1. Initial Microcode Fetch is permitted even if you booted with the n switch. 2. RollBack correctly finds the Cedar checkpoint even if there is more than one volume of type "normal". Packager -------- DF file: Packager.df Documentation: Pilot User's Handbook Implementor: Levin Unchanged from previous release. PerfStats -------- DF file: PerfStats.df Documentation: PerfStats.press Implementor: MBrown Recompiled. PGS ---- DF file: [Indigo]PGS>PGS.df Documentation: contact implementor Implementor: Satterthwaite Unchanged from previous release. PilotKernel ---------- DF file: PilotInterfaces.df, [Indigo]Pilot>PilotKernel.df and UtilityPilotKernel.df Documentation: Pilot Programmer's Manual Implementor: Levin There are two functional enhancements and several subtle bug fixes: 1) Space.GetWindow now works on a subspace of a mapped space. Previously, it raised Space.Error[noWindow], which was the documented behavior but less than ideally useful. I don't think anyone was depending on this error, but let me know if this change will affect you adversely. 2) A provisional informational signal mechanism has been implemented. An informational signal is just like a standard Mesa SIGNAL except: a) If caught, it must be RESUMEd or REJECTed. This outlaws GOTOs (or their disguises: CONTINUE, EXIT, LOOP) out of the catch phrase. b) 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. The present implementation follows these semantics but has several deficiencies, since there is no language support for informational signals yet. We expect to correct all of these deficiencies eventually (but not before Cedar 5.0): a) An informational signal is presently raise by the procedure TemporarySignals.InformationalSignal[signal: SIGNAL], rather than a language construct. This means it is still possible to say, for such a signal, "SIGNAL signal" or "ERROR signal". Both of these are likely to be programming mistakes, but the compiler can't presently notice them. b) Informational signals cannot presently take parameters or return values. c) There is no compile-time detection of an attempt to transfer out of catch phrases for informational signals. It will be detected at runtime, however, and treated like REJECT. If you decide to declare informational signals in interfaces, I suggest the following form: SignalName: --INFORMATIONAL-- SIGNAL; 3) A long-standing bug in the file system that tended to strike during compilation has now been fixed. The manifestation of this bug was a trip to CoPilot with the message "SetSize bug" (or something like that). This should no longer happen. 4) RuntimeInternal.EnterGlobalFrame is now properly synchonized with the loader. 5) VMHelperProcess and WriteFaultProcess no longer take embarassing page faults while reporting address and write protect faults. Pine ---- DF file: Pine.df Documentation: contact implementor Implementor: MBrown Unchanged from previous release. PlotPackage ----------- DF file: PlotPackage.df Documentation: (see interfaces) Implementor: Rovner Recompilation only. Poplar ------ DF file: Poplar.DF Documentation: Poplar.Press, EASPL.Press Implementor: Schmidt Recompilation Only. Print ----- DF file: Print.df Documentation: Print.doc Implementor: Plass Recompilation only. Known problems: 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. PriorityQueue ------------- DF file: PriorityQueue.df Documentation: PriorityQueue.mesa Implementor: Atkinson Recompilation only. Pup ---- DF file: Pup.df (most public interfaces are in Communication.df) Documentation: [Ivy]*Pup.press Implementor: Andrew Birrell Handles 256 networks (3.4.1 handled only networks [0..127]) Pupwatch --------- DF file: Pupwatch.df Documentation: [Indigo]Pupwatch>Pupwatch.press Implementor: Andrew Birrell Minor changes Random ------- DF file: Random.df Documentation: Random.doc, Random.press Implementor: MBrown Unchanged from previous release. RedBlackTree ------------- DF file: RedBlackTree.df Documentation: OrderedSymbolTable.press Implementor: MBrown DuplicateKey is now declared as an ERROR instead of a SIGNAL, and releases the package monitor when raised. RedBlackTreeRef ---------------- DF file: RedBlackTreeRef.df Documentation: OrderedSymbolTableRef.press Implementor: MBrown DuplicateKey is now declared as an ERROR instead of a SIGNAL, and releases the table monitor when raised. The parameters of an OrderedSymbolTableRef.CompareProc are now named. Reminder --------- DF file: Reminder.df Documentation: (See Reminder.mesa) Implementor: Rovner Recompilation only. Rigging ------- DF file: Rigging.df Documentation: Rope.tioga Implementor: Atkinson Recompilation only. RPC Runtime ------------- DF file: RPCRuntime.df Documentation: LupineUsersGuide.press Implementor: Birrell Unchanged from previous release. SafeStorage ----------- DF file: SafeStorage.df Documentation: SafeStoragePrimer.tioga, .press AND SafeStorage.tioga, .press Implementor: Rovner SafeStorage.df replaces the part of Runtime.df that constituted RT.bcd, which has been renamed to SafeStoragePackage.bcd. This exports the following interfaces, accessible thru SafeStorage.df: AtomsPrivate, RCMapOps, RTBases, RTLoader, RTOS, RTOSExtras, RTProcess, RTRefCounts, RTStart, RTStorageAccounting, RTStorageOps, RTTypesBasic, RTTypesBasicPrivate, RTZones, SafeStorage, UnsafeStorage SampleTool ----------- DF file: [Indigo]Documentation>SampleTool.df Documentation: Self-documenting, with additonal comments in the Cedar Examples. Implementor: McGregor Recompilation only. ScanZones ---------- DF file: ScanZones.df Documentation: See ScanZones.mesa Implementor: Rovner ScanZones is a new utility based on Russ Atkinson's CheckRT and LogStorage stuff for gathering and printing (on the file named Storage.log) information about the utilization of collectible storage. Use the UserExec to run it, then use the interpreter to invoke it, as follows: _ ScanZones.ShowStorage[wordsCutoff: 100, append: FALSE, specifiedZone: NIL]. Sequin ------ DF file: Sequin.df Documentation: contact implementor Implementor: Levin Unchanged from previous release. Set --- DF file: Set.df Documentation: Set.doc Implementor: Rovner Recompilation only. SirPress ------- DF file: SirPress.df Documentation: see comments in SirPress.mesa, PressPrinter.mesa Implementor: Plass The internal organization has been rearranged to lift the arbitrary limits, and an unsafe procedure has been added for faster treatment of sampled images and bitmaps. SpecialTerminal --------------- DF file: SpecialTerminal.df Documentation: See implementor Implementor: Levin This is a new package that permits TTY-style access to the "special" virtual terminal, the one used by Cedar initialization. The facilities formerly available through CedarControl (CedarInitOps and CedarInitPrivate) for using this virtual terminal are now collected in the interface SpecialTerminal.mesa. However, this is still a facility intended primarily for wizards; consult the implementor before attempting to use this interface. Spy --- DF file: Spy.df Documentation: Spy.doc Implementor: John Maxwell All of the Pilot Spy code has been removed. Output now includes source indices. There are now low level facilities for tracing executions (see implementor). Squirrel ------- DF file: Squirrel.Df Documentation: none Implementor: Cattell et al This package is not yet for general use by Cedar clients, it is contained within Walnut. It is included in the release for completeness. No major changes. STPServer --------- DF file: STPServer.DF Documentation: see package catalog Implementor: Schmidt Recompilation only. TerminalMultiplex ------------------ DF file: TerminalMultiplex.df Documentation: See comments in TerminalMultiplex.mesa Implementor: Levin No interface changes. One functional extension has been made: it is now possible to cause a world-swap to a remote debugger, even if a local world-swap debugger exists. The following table summarizes the key combinations recognized by TerminalMultiplex's keyboard watcher: Control + Meaning LeftShift+RightShift Swap virtual terminals Swat Invoke world-swap debugger ("interrupt") LeftShift+Swat Invoke world-swap debugger; worry mode Look+Swat Invoke remote debugger ("interrupt") Look+LeftShift+Swat Invoke remote debugger; worry mode If there is no locally installed world-swap debugger, the Look key in the combinations above has no discernable effect, i.e., all debugger transfers are to a remote debugger. Note to users of the debugger invocation keys: the transfer to the debugger will occur as soon as both Control and Swat are down. You can therefore avoid inadvertent transfers to the wrong place by always hitting Swat last. TJaMGraphics ------------- DF file: TJaMGraphics.df Documentation: contact implementor Implementor: Stone Recompilation only. TSetter ------ DF file: TSetter.df Documentation: TSetterDoc.Tioga, [Indigo]TSetter>TSViewer.mesa Implementor: Plass  Underlining and strikeout now work.  PressScreen functionality has been incorporated into the TSetter tool.  The information windows in the tool are now scrollable logs that grow when the tool does.  Unknown fonts are handled more gracefully.  The Stop button no longer aborts the transmission of files to the printer; use the new StopSending button instead.  Multi-column and/or landscape output can now be done. TTYIO, ViewerIO ----------------- DF file: TTYIO Documentation: Contact implementor Implementor: Teitelman Changes to ViewerIO: CreateViewerStreams now creates an Edited Viewer Stream if its editedStream argument is TRUE (the default). The client program will detect no difference in this stream from the previous type of edited stream which simply buffered its characters in a rope (which can be obtained by specifying editedStream: FALSE, and then calling IO.CreateEditedStream directly). From the user's standpoint, the stream is still editable in the usual way, i.e. he can type control-a or control-w to delete characters provided the characters have not yet been read, i.e. are still in the buffer (typically this means no carriage return has been typed). However, since the buffer for this stream is actually the characters that appear in the underlying tioga document, the user can also edit what has been typed but not yet read, exactly as he edits a tioga document, i.e. he can make selections and delete or insert material. Repositioning the input focus at the end of the document (which can be done conveniently simply by hitting the next key) allows him to continue typing in the normal fashion. When he finally completes his input, e.g. types a carriage return, the corresponding characters, as edited, will be delivered to the client program. For example, suppose a program, e.g. a userexec, is reading from a viewer edited stream and the user types bringover userprofile io and then realizes he has forgotten the /o switch, and wants to add .bcd after userprofile. you can simply point between bringover and userprofile, type /o, yellow select userprofile nearer to the right end, type .bcd, hit the next key, and type 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. Note that as a result of your 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). This may take a little getting used to. Note also that there is no mechanism to prevent the user from editing characters in the document that have already been read. Of course this has no effect on the client of the stream. ViewerIO also includes a new procedure, CreateEditedViewerStream which takes a viewer stream and makes an edited viewer stream. This allows specifying a DeliverWhenProc other than the default. The DeliverWhenProc can also be changed after the stream has been created via IO.ChangeDeliverWhen. UECP ----- DF file: UECP.df Documentation: None Implementor: Gifford, Stewart Recompilation only. Unique ------- DF file: Unique.Df Documentation: Unique.Doc Implementor: Schmidt Recompilation only. UserCredentials -------------- DF file: UserCredentials.df Documentation: See comments in UserCredentials.mesa Implementor: Levin There is a new LoginOption, "alwaysPrompt", that forces Login to ask the user to login. See details in the interface. UserCredentialsUnsafe.df has gone away, and the interface it formerly exported, UserCredentialsUnsafe.mesa, is now available through UserCredentials.df. UserExec -------- DF file: UserExec Documentation: some in cedar introduction. Also see comments in UserExec.mesa, Spell.Mesa, UserExecUtilities.mesa. Contact implementor Implementor: Teitelman Editable Typescripts: Are the default. See the ViewerIO release message. Action Area changes: 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. So 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 for example click set and then start typing ahead. But you can click ahead all you want. This restriction will hopefully be eliminated in 3.6.. Break at entry, break at exit now work. Break at entry is indicated by yellow clicking the Set menu button, and break at exit by blue clicking. If the selection is a point or character selection, a breakpoint is inserted at the entry/exit of the procedure containing the selection. Otherwise, the selected material is treated as the name of the procedure to be broken, e.g. IO.GetRope, ViewerOps.FindViewer, etc. Blue clicking clear will clear the breakpoint associated with the action area. Red clicking clear will clear the selected breakpoint. (If you always click source before clicking clear, it doesn't matter which you click.) performance improvements: A cache of the files on your local disk is automatically built. As a result, if you have the first character of a file name correct, spelling correction will be on the average 13 times as fast. Similarly for pattern matching operations such as list userexec*. A cache of the global frames is automatically built. The cache is updated when you run bcds. As a result, if you have the first character of the frame name correct (case does not matter), spelling correction is much faster. Miscellaneous: run now takes a sequence of files. The CommandsFrom command should be used in your userprofile in place of PreRun, which has been deimplemented. Most reported bugs have been fixed. The individual that reported the bug has been messaged. NewStuffImpl.bcd 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). For more details, see [Indigo]Documentation>NewStuff.tioga. VersionMap ----------- DF file: VersionMap.df Documentation: VersionMap.mesa Implementor: Atkinson Recompilation only. VersionMapBuilder ------------------ DF file: VersionMapBuilder.df Documentation: See implementor. Implementor: Atkinson Minor changes to improve version map building. Viewers and Tioga ------------------ DF file: ViewersAndTioga.df Documentation: TiogaDoc.tioga, ViewerDoc.tioga (incomplete), TIP.documentation Implementor: TiogaImplementors^.pa Viewers Changes: The internal workings have been largely restructured, but the new implementations should not require any source changes in client code. * 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. (Thanks to Warren). * MBQueue is a new package that allows a client to serialize menu and button input. See the interface for details. Tioga Changes: * Clear, Get, GetImpl, PrevFile, and Save are no longer guarded * "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. * Edit Tool addition to search a list of files You can use the EditTool to look through a list of files for one in which the current search specifications are satisfied. This can be accomplished by clicking the "SearchEachFile" button after filling in the "Files" field with the file names (or "@" followed by the name of a file that holds the list of file names). When you click SearchEachFile, a new viewer is created, and one-by-one the files will be loaded and searched until a match is found. The list of files will be updated when a match is found, so that when you are finished with one file you can click SearchEachFile again to look for the next one. You can hit the "Stop" button at the top of the EditTool to interrupt the search, but you should not try doing other operations while the search is in progress since it resets the selection each time it loads a file. * Edit Tool Sort Line/Branch ignores leading blanks now. * Normalize If the document in this viewer does not contain the selection, scrolls to the start of the document. Otherwise scrolls to make the selection visible  click LEFT to scroll to the start of the selection, RIGHT to scroll to the end, or MIDDLE to scroll to the caret. * Automatic Mesa formatting via CTRL-M As a convenience during typein, the entire caret node is reformatted by CTRL-M if the selection is a single character or less. * Select "visible"  expand selection to blanks * CTRL-V expands the selection to include the nonblank characters on the left and right ends. (Mark Brown's suggestion) * Changing levels when you scroll Scroll up and show more levels  hold SHIFT down when click LEFT to scroll Scroll up and show all levels  hold CTRL down when click LEFT to scroll Scroll up and show first level only  hold SHIFT and CTRL down when click LEFT to scroll * User profile changes for Tioga: DefaultTiogaMenus -- This entry specifies which menus, if any, should automatically be displayed when you create a new Tioga viewer by clicking one of the buttons in the upper right corner or by giving an Exec command. OpenFirstLevelOnly -- If set to true, documents will be opened with only their first level showing. Default is false. (Warren Teitelman's suggestion) ExtensionStyles -- This entry specifies the default style to be used with documents that do not explicitly name a style. The style is determined by the extension in the file name. (Karen Kolling's suggestion) UnsavedDocumentsCacheSize -- This controls the number of unsaved documents the system will remember. ShowUnsavedDocumentsList -- If this is true, a viewer will be created holding an up-to-date list of the unsaved documents that can still be reloaded. * Underline and strikeout are now implemented * New User Exec Commands for Tioga: WriteMesaPlain: Same as WritePlain, except inserts double dashes at start of comment nodes. DoTiogaOps: Expects a command line containing operations in the same format as in the EditTool operations field. Among other things, you can use this to initialize various EditTool choices such as IgnoreCase or MatchWords. * Did you know that ... You can extend a selection into a split viewer. Clicking MIDDLE on Find, Word, Def, and Search causes them to look both after the selection and before it. You can use NEXT (middle blank key on right) to move to the next text field in tools like the File Tool. Shift-NEXT goes to the previous one. Tioga will warn you when you save a file if there is a newer version on the disk than the one you read. When you Rollback, Tioga automatically does a Reset on any viewer for which the file on the disk has a newer create date than the time of the Checkpoint. You don't need to reselect the document for an EditTool search or substitute. (In order to do a search or substitute, you will typically need to fill in the Target or Replacement fields in the Edit Tool. Naturally, this changes the selection, and before you can do the operation, you must restore the selection to the place where you actually want it to take place. The system helps you with this by saving the primary selection if it is not in the Edit Tool when you click either the Target or the Replacement button. The commands along the top of the Edit Tool  Seach, Substitute, Yes, No, Replace, and Count  restore the saved selection if the primary selection is in the Edit Tool when they are clicked. The net effect is that if you start out with the selection in the right place, you can click the Target or Replacement buttons, fill in the needed information, and then directly click one of the commands without needing to reselect since the system will do it for you.) Warren's suggestion. ViewRec --------- DF file: ViewRec.DF Documentation: ViewRec.Doc Implementor: Spreitzer ViewRec is intended for quick and easy user interface construction. Given a record, or the name of a DEFINITIONS module, it will construct a Viewer on the components of that record that are simple enough (numbers, ROPEs, enumerations, subranges of simple enough, records of simple enough stuff, procedures that take simple enough stuff, or explicitly bound by the client). The procedures may be invoked, and the data may be edited. VTables -------- DF file: VTables.df Documentation: VTables.mesa Implementor: Atkinson Recompilation only. Walnut ------- DF file: Walnut.df Documentation: HowToUseWalnut.tioga, .press Implementor: Willie-Sue Haugeland All Walnut actions are serialized, preventing previous anomolous 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. Blue-clicking Send in a message sender viewer will cause a new form to be displayed after the message has been delivered. WalnutSend ------------ DF file: WalnutSend.df Documentation: HowToUseWalnut.tioga, .press Implementor: Willie-Sue Haugeland Recompilation only. Watch ------ DF file: Watch.df Documentation: none Implementor: Andrew Birrell Displays count of words allocated and page faults; displays number of disk requests. Waterlily --------- DF file: Waterlily.df Documentation: via the "?" facility in the UserExec. Implementor: Kolling Recompilation only. WorldVM --------- DF file: WorldVM.df Documentation: None - consult implementor before using Implementor: Andrew Birrell The users know what changed! Unless otherwise indicated above, questions about changes in individual components should be addressed to their implementors. The Release Master