Bugs To Fix AlpineUser AlpineCmdsImpl does not recover well from some aborts. In particular, in AlpineCmdsImpl.KernelCopy: CloseFile[toFile]; CloseFile[fromFile]; IF ((transHandle.Finish[requestedOutcome: commit, continue: FALSE] # commit) AND (AlpineFileType[toFile])) THEN ERROR; [Murray] Indigo dependencies 1) The spelling tool gets its bitTable from [Indigo]SpellingTool.BitTable. This file should probably be put into the release. 2) ShowPress looks for [Indigo]Fonts.widths. This is done by ShowPressImpl.Open. This should go away when the Imager replaces Graphics. Communication stats & Watch Stats for packets sent/recvd: Needs an interface and another pair of bars in the watch tool. [Murray] FS (& others) We need to take advantage of pseudo-servers in various places that try to open critical files. [Atkinson] How should the pseudo-server stuff interact with the server state information cached in FSFileLookupImpl? [Wyatt] GVAnswerImpl I inadvertantly clicked Answer on a new message I had just composed (using Peanut), and ended up in this loop in GVAnswerImpl: EXITS badIndex => {UNTIL GetNextChar[] = '\n DO NULL; ENDLOOP}; Of course GetNextChar[] was returning endOfInput, over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and . . . [Plass] Iago We need to write code to set up pseudo-servers. [Atkinson] IdleImpl Make the ^Swat watcher enabled if the I switch has been used to boot the machine (useful for possibly buggy servers placed in Idle). Should we also use a UserProfile option here? [Atkinson] CommandTool Destroying a split CommandTool viewer does not work well. The original viewer should be protected from destruction, I guess, when there is a split. [various] FS Just now I suffered the following anxiety producing attack for the second time: with the Watch Tool open enough to see the "Flushing" line, I see it take off and start flushing with wild abandon, even though the amount of free disk long ago went above 1000 (where it normally stops flushing). This time, at something above 6000 free pages, I went to the world-swap debugger, and immediately proceeded to get back; upon return, the flushing ceased. Even now, there are 7320 free pages. I don't remember how/why it stopped the other time, but I think I recall it was also non-disastrous. [Spreitzer] ProcessorFace (HeadsCommon.df) The motivation here is that if there is a pending error handler that the machine should be prevented from executing PowerOff, since that would destroy the evidence we might need to find the bug. [Atkinson] DisablePowerOff increments a count of processes requesting that PowerOff be disabled EnablePowerOff decrements a count of processes requesting that PowerOff be disabled (pins at 0) PowerOff as before, but does not power off if the count is > 0 (no-op instead) IO (IO.df) IO.Put1 {IOPrintImpl.Put1} (IO.df) make this public to allow people to code more efficient calls to Put IO.PutF1 {IOPrintImpl.PutF1} (IO.df) make this public to allow people to code more efficient calls to Put change to ATOM literals [Spreitzer] Scanner.Atom (Compiler.df) allow $"..." as an atom literal LogPack.PrintOperand (Compiler.df) print $"..." correctly if non-alphanumeric in name or alpha does not start name ? IOScanImpl (IO.df) allow $"..." as an atom literal PrintTVImpl (PrintTV.df) print $"..." correctly if non-alphanumeric in name or alpha does not start name new Rope implmentation [Atkinson] mostly for efficiency; from NewRope Bugs Fixed & Features Installed January 8, 1985 - Spy Removed infrequent page fault with interrupts disabled caused by dereferencing global frames (in SpyKernelImpl). [Atkinson] January 8, 1985 - Watch Added power off code when the system has been idle for a while. The default is to power off machines after 7 pm after 10 minutes of no activity (no disk, no allocations, no substantial CPU load). See WatchDoc for details. {note: Watch is close to needing to be split} [Atkinson] January 4, 1985 - EditorComforts Replacement for NewStuff. Mostly the same (or better) functionality, including copyright notices. Should be more robust. [Atkinson] December 19, 1984 - SafeStorage Added more statistics to RCMicrocodeImpl.ASSIGNREF to support some Dragon decisions. Also turned off cross-jumping in the compilation to make it more debuggable. [Atkinson] December 14, 1984 - VersionMapBuilder Tried to make it more robust when the server is flakey (heavily loaded). Hard to test, though. [Atkinson] December 13, 1984 - AMEvents Turned off recursive uncaught signal handling by default, since it was more trouble than it was worth. This feature can be enabled by interpreting AMEventsImpl.crashOnRecursiveAppearance _ TRUE. [Atkinson] December 3, 1984 - Waterlily Bad file name parsing, make it use CommandTool stuff. [Atkinson] December 3, 1984 - CommandTool In CommandToolParseImpl, fixed bugs in NextArgument, GetParseRecord; cleaned up some formatting. [Atkinson] November 27, 1984 - FS Changed FSFileLookupImpl.SetState to record noResponse, as well as noSuchPort, in the ServerInfo. This makes FSRemoteFile.Lookup behave as advertised: it returns noResponse immediately if the server failed to respond to a recent Lookup attempt. Also changed FSRemoteFileImpl.Info to notice whether it got noResponse from all servers; in this case it reports an error immediately, without calling STPInfo. These changes make VFontsImpl behave much more reasonably, without all those one-minute timeouts. [Wyatt] November 19, 1984 - CedarRelease.df Edited CedarRelease.df to refer to ~= version of CurrentCedar.df. Included CedarStatus.tioga (this document) in CedarRelease.df. Fixed a few typos in ReleaseCoordinator.tioga. [Wyatt] November 16, 1984 - Interpreter EvaluateImpl did the wrong thing for NEW[Type _ init], since it could fail to coerce the initialization expression to the right type. Mike Spreitzer helped to find this. [Atkinson] November 15, 1984 - AMTypes RTTypesBridgeImpl.SetTVFromLI got a bounds fault when setting a cardinal to a number in (LAST[INTEGER]..LAST[CARDINAL]]. Mike Spreitzer helped to find this. [Atkinson] November 7, 1984 - FS Numerous ENTRY procedures were given ENABLE UNWIND clauses, since an undertermined bug in FSFileLookupImpl left its monitor locked without other trace. [Atkinson] November 7, 1984 - IO IOScanImpl now accepts '| as a legal Cedar token. Howard Sturgis discovered this. [Atkinson] November 6, 1984 - TIP Refurbished TipTableBuilder as an outcome of fixing a bug that caused overly frequent remoteCheck = TRUE. As a side benefit, the code is 15% smaller (saving about 2 pages), and probably slightly faster as well. [Atkinson] November 5, 1984 - ReadEvalPrint Rewrote this crock to be more comprehensible and to be more bulletproof, especially to repeated requests for STOP! The behavior may be slightly different in some cases, although I have not seen anything but improvement yet. [Atkinson] November 5, 1984 - ViewerIO Properly (I think) implemented ViewerIOImpl.ViewerReset, which now flushes typeahead and sets the looks to their ground state (blank). The absence of a special reset for this class was the cause of not being able to stop by hitting STOP! in a CommandTool viewer. [Atkinson] November 5, 1984 - CommandTool Fix to CommandToolImpl so that commands ending in & (which directs their output to a viewer) now invent better names for their viewers. Suggested by Rick Beach. [Atkinson] November 2, 1984 - Real Minor bug fixed in "improved" versions. [Atkinson] November 1, 1984 - Pup PupSockets.PupSocketKick kicked the wrong instance, leading to occaisional hangups & bogus wakeups (and sometimes address faults when NIL was returned when not expected). Other potential bugs in PupSockets were also fixed (using the SDD sources). PupPktHot.InputPacket had an occaisional address fault due to a missing RETURN statement. PupPktHot was also reformated, especially to get rid of "OPEN him", which obscured where the variables were sited. [Atkinson] October 30, 1984 - Real In RealFnsImpl, Sin & Cos sped up by a factor of 2, accuracy improved. [Atkinson] October 30, 1984 - VM Minor bug fixed in recovering from bad pages encountered on writing to the backing file. [Atkinson] October 29, 1984 - VersionMap Minor bug fixed in processing names from user profile. [Atkinson] October 26, 1984 - Real RealFns.SqRt is now the fastest method for square root calculations. RealFns.SqRt (48 usec) is faster than RealOps.SqRt (201 usecs), which is faster than Real.SqRt (216 usec). They all use the same algorithm. [Atkinson] October 25, 1984 - DFPackage The last fix to the DFPackage made it more ambitious about looking for Imports, since there were files it was missing. Unfortunately, this made it too ambitious, so duplicates started to be found, which cut off the Bringover too soon, because completion of Using clauses was determined by keeping a count of the files found, rather than a set. I think that this is now fixed, so that Bringover is both ambitious and correct about Imports clauses. Doug Wyatt helped find this. [Atkinson] October 25, 1984 - EditTool Fixed bounds fault that came up when sorting lines that came up to the end of the document. Included Beach's AnnotateProperties fix from the PostCedar5.2 version; recompiled Plass's Sort fix in case it was done with the bad Compiler. [Plass, Wyatt] October 24, 1984 - Real New (I claim more accurate) impls for RealFns.SinDeg, CosDeg, and family. [Plass] October 24, 1984 - CommandTool Fixed ListCommandImpl to properly deal with relative path names for files. [Atkinson] October 23, 1984 - InterpreterTool Cosmetic cleanup of InterpreterCommandsImpl. [Atkinson] October 23, 1984 - BCDStuff Fixed TypeStringsImpl, which had a bug that caused bad type strings to be created for the Cedar5.3 compiler that existed between 09-Oct-84 16:52:40 PDT and 23-Oct-84 15:45:49 PDT. Remade Compiler & AMTypes to include this version. Also remade FS, SafeStorage, Maintain and CommandTool to eliminate bad type strings (ProcessProps was OK). Willie-Sue Orr helped find this. [Atkinson] October 23, 1984 - SafeStorage Fixed up TypesBasicImpl to more uniformly use type keys, instead of type strings, and to get rid of unused code. Also fixed TypeHashImpl to never return the null type key. The utility of these changes is not known, although they appear to work OK. [Atkinson] October 22, 1984 - FS A tentative pseudo-server facility was installed that allows the translation of a single imaginary server name to a single real write server, or multiple real read servers. An attempt has been made to distinguish between pseudo servers that represent replicated files (as in the Cedar release), and pseudo servers that offer alternative paths. See the FSPseudoServers interface. [Atkinson] October 22, 1984 - ProcessProps A hashing bug was fixed, although it is believed that no software in the release was affected. [Hagmann] October 22, 1984 - CommandTool The Open and OpenR commands now behave much more like the Tioga Get button. OpenR was moved from its home in InterpreterTool to its more correct home in CommandTool. Also, the "?" command now does not examine the file system when looking for registered commands, although the "??" command retains the old, expensive search. [Atkinson] October 15, 1984 - Maintain Changed to use common instance of GrapevineUser instead of binding in separate instance. This reduces MDS load & is generally a better idea. [Atkinson] October 9, 1984 - BCDStuff Fixed TypeStringsImpl to allow more definitions within a definition. The previous limit was 30, which was demonstrably too small. Also removed several other bogus limits. This caused a remake of both the Compiler and AMTypes. [Atkinson] September 7, 1984 - DFPackage Fixed BringOverImpl to look at non-exported items from an Imported file if there is an explicit Using list. The theory is that one should be able to import anything in the closure of a DF file if one requests it by name. This may slightly slow down DF file processing, but not by much (I think). [Atkinson] August 29, 1984 - Maintain Added the ability to take lists of names as arguments. [Atkinson] July 26, 1984 - PupWatch Fixed bug in Looker that could get a bounds fault for some Pups. [Atkinson] July 23, 1984 - Lister A bug in ListRTBcdImpl caused bounds faults on subranges with negative origins. This has been fixed. [Atkinson] July 23, 1984 - Compiler A bug in TypeStringsImpl caused record types containing copied opaque types to have different type strings, even though those type strings should have been the same. This has been fixed. [Atkinson] July 20, 1984 - FS FS enumeration of file names for Nebula used to omit the "<>" after the "[Nebula]". This is a bug, since FS treats such names as having bad syntax. This has been fixed. [Atkinson] July 20, 1984 - TIP In TIPTableBuilder, TIP now looks for TIP files in the working directory, the root directory, and the remote release directory, in that order. TIP also puts all of its tipC files ("compiled" version of tip files) into the ///TipC/ directory, with the create dates of the tipC files being 1 second later than the tip files to ensure that tipC files will correspond to the tip files that created them. [Atkinson] July 20, 1984 - CommandTool CommandTool now includes the KillExcessVersions and CacheKillExcessVersions commands that used to be in RussHacks. These commands help to prune garbage from disks before the FS cache flusher would get to these excess files. [Atkinson] July 19, 1984 - WorldVM Fixed AMProcessBasicImpl to use BootFileChanges.IsVacant instead of PrincOpsUtils.IsVacant. This bug caused local machine process freezing to fail. [Atkinson] July 19, 1984 - AMTypes Minor cleanup of AMTypesBImpl & RTTSupportImpl. RTTSupportImpl.errList has list of types for which symbols could not be found (useful for debugging). [Atkinson] July 17, 1984 - CommandTool Installed a new list command, with new features including sorting by date or size. Also cleaned up FSFileCommandsImpl. [Atkinson] July 16, 1984 - SafeStorage AllocatorImpl.NewHeapObject was fixed such that requests with size >= MediumHeapThreshold are forced to use the large allocator. This is particularly intended for use by Alpine, where the recommended value is MediumHeapThreshold = 256. Some day we may be able to completely fix the medium allocator to use a more suitable algorithm. [Atkinson] July 16, 1984 - Viewers VFontsImpl There is a simple error in [indigo]Viewers>VFontsImpl.mesa The code for LoadFont checks for the size of a new font file, and ERRORS if it is > 20 pages: pages _ FS.GetInfo[file].pages; IF pages >= 20 THEN ERROR; -- <<<<<<<<<< space _ VM.Allocate[count: pages]; font _ NEW[FontObject]; font.address _ VM.AddressForPageNumber[space.page]; FS.Read[file: file, from: 0, nPages: pages, to: font.address]; Initialize [font]; The fonts on indigo can be larger, and I wish to load one which is 81 pages, so I suggest this limit be changed to 100 pages. [TWilliams] Fixed to use the variable VFontsImpl.maxFontSize (initially 256) as the bound. This allows tuning to get a truly large font loaded if necessary. [Atkinson] July 16, 1984 - Installer InstallerImpl? I had the following problem when F booting: - I got several messages of the form - Foo.bar can't be retrieved because the server is unavailable, indicating (I assume) that Indigo was heavily loaded. All files were eventually retrieved. - A message then informed me that I had indeed booted with switch F. - I was then asked if I wanted to use [Ivy]5.2>BootEssentials.df. Being on the phone at the time, I ignored it for a while. It then answered its own question with yes and, of course, couldn't find any such file. I was then again asked if I wanted to use [Ivy]5.2>BootEssentials.df to which I answered no. I was then informed that we couldn't go on without a BootEssentials file and "I give up". - On rebooting, everything went fine. However, this time Indigo was less heavily loaded (apparently) since all files were retrieved immediately. - Wyatt theorizes that the above problem occured when, because of Indigo's swampedness, the default BootEsentials.df couldn't be immediately retrieved. That then got me into this other path from which there apparently is no return. [Crow] I fixed the installation dialogue to always ask for BootEssentials.df from the system directory. This will cut down on the confusion, although the root problem of a missing Indigo is not addressed. [Atkinson] July 16, 1984 - AMTypes AMBridge.TVToLC was fixed to behave properly when the size of the TV was not quite the same as the type of the field. This was observed for variant records where the variant was embedded in an argument record, and the field described the entire slot in the argument record, which was large enough for the max variant, and the TV properly described only the first word. A similar bug was removed (I think) from SetTVFromLC. A cleanup pass was performed on RTTypesBridgeImpl, RTTypedVariablesImpl, and AMVariablesImpl to make the code clearer, smaller, and more robust. Several minor bugs were removed, especially from SetTVFromLI (sign problems, of course). I hope that more bugs were removed than entered. [Atkinson] July 16, 1984 - IO CommandToolUtilitiesImpl.Insulate (setting looks does not work for the command tool typescript) [Kupfer] It's not your fault, it's a "feature" of the CommandTool. Specifically, I believe the culprit is CommandToolUtilitiesImpl.Insulate. It layers a new stream on top of the output stream that feeds the typescript, but fails to give the new stream a PFProc that passes along the looks information. The situation gets even worse if you use any of the CommandTool's fancy input/output redirection stuff (< and >). Sorry, I don't know any easy workaround. [Wyatt] IOPrintImpl.LooksRoutine (NOT CommandToolUtilitiesImpl.Insulate) was fixed to chain up the backingStream chain, looking for a non-NIL proc registered under 'L. This has been tested with the command tool typescript. [Atkinson] July 16, 1984 - Spy SpyViewerImpl There is a directory-related bug in SpyViewerImpl.mesa. Routine Split does the old "search for first period" trick so ///Users/Bier.pa/Solidviews/Somefile.mesa gets broken up into ///Users/Bier and .pa/Solidviews/Somefile.mesa. Since the later is not ".mesa" LocationFromSelection thinks I am selecting a filename. It attempts to Split this filename, getting an error from Rope.Flatten since there is no dot in my selection. This is really two bugs since it ought not to crash so badly even if I do select a malformed file name. [Bier] Fixed to both scan backwards for the dot, and to syntactically validate the file name. [Atkinson] July 16, 1984 - Interpreter Calling Foo[NIL] when Foo is remote used to not be allowed because the interpreter assumed that remote reference-counting was required (it is not). This has been fixed. Interpreting DefsName.component used to yield a result that was always evaluated with respect to the local world. This has been fixed, but the bad news is that remote interface records are not supported, so you will have to find the implementor by hand. [Atkinson] July 11, 1984 - IO If you call SkipWhitespace[flushComments: TRUE] on a stream that has only one character left in it, a dash, it does the wrong thing. What it should do is return charsSkipped=0 and leave the dash as the next character to be read. What it actually does is return charsSkipped=0, but the dash has been read (leaving an empty stream). The bug is easy to spot (in IOScanImpl.SkipWhitespace). When it's handling comments and it goes to read the next character after the first dash, if it gets IO.EndOfStream, it does the usual end-of-stream processing. This is wrong; some special code is needed here. [Spreitzer] July 11, 1984 - CommandTool CommandTool Run: PUBLIC PROC [bcdName: Rope.ROPE, runEvenIfAlreadyRun: BOOL _ FALSE, runEvenIfUnbound: BOOL _ FALSE] RETURNS [errMsg: Rope.ROPE _ NIL, error: BOOL _ FALSE]; Now one could reasonably expect that if the asked-for file is not found that error would be reported TRUE. FALSE!!! There are the appropriate catch phrases in the implementation, but the code that sets error to TRUE is in the wrong place. [Willie-Sue] Fixed. [Atkinson] ÞCopy /Indigo/Cedar5.3/Documentation/ _ CedarStatus.tioga Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. Russ Atkinson, January 8, 1985 3:00:44 pm PST Doug Wyatt, November 27, 1984 5:22:11 pm PST ʘ™8Jšœ Ïmœ7™BJšœ-™-Jšœ,™,—headšœ ˜ šœ ˜ Iblockšœd˜d˜Icodešœ'˜'Mš Ïkœ:žœ žœ#žœÐbkœ˜~—Lšœ˜—šÏb˜Lšœ‘˜‘Lšœ‘˜‘—š ˜Lšœf˜f—š  ˜ Lšœj˜jLšœr˜r—šœ ˜ ˜~šž˜Mš œ žœžœžœžœ˜:——Lšœ—˜——š ˜Lšœ;˜;—š ˜Lšœ¿˜¿—š  ˜ LšœŸ˜Ÿ—˜LšœÚ˜Ú—˜LšœÎ˜Î˜Iindent˜D—˜N˜P—˜N˜E——˜ ˜"N˜D—˜$N˜D——˜#˜N˜—šœ"˜"N˜Q—˜N˜—˜N˜O——˜!L˜#——šœ˜šœ˜Lšœ|˜|—šœ˜Lšœš˜š—šœ ˜ Lšœ†˜†—šœ˜Lšœ®˜®—šœ%˜%Lšœk˜k—šœ˜LšœÏ˜Ï—šœ˜LšœA˜A—šœ˜Lšœl˜l—šœ ˜Lšœ‚˜‚—šœ ˜#Lšœº˜º—šœ  ˜Lšœ¶˜¶—šœ ˜Lš œYžœžœžœžœ4˜©—šœ ˜Lšœ žœžœžœq˜£—šœ ˜Lšœ^˜^—šœ ˜Lšœdžœw˜ß—šœ ˜ Lšœì˜ì—šœ˜Lšœ“˜“—šœ˜Lšœ­˜­—šœ˜Lšœ3˜3—šœ˜Lšœ†žœ¸žœFžœA˜Ò—šœ˜LšœR˜R—šœ˜Lšœd˜d—šœ˜LšœB˜B—šœ˜LšœÞ˜Þ—šœ˜Lšœê˜ê—šœ˜LšœnÏtœz˜ú—šœ˜LšœR˜R—šœ˜LšœV˜V—šœ"˜"Lšœ8˜8—šœ˜Lšœ˜—šœ˜Lšœ…˜…—šœ˜Lšœˆ˜ˆ—šœ˜Lšœi˜i—šœ˜LšœÑ˜Ñ—šœ˜Lšœ™˜™—šœ˜Lšœð˜ð—šœ˜Lšœµ˜µ—šœ˜LšœB˜B—šœ˜LšœL˜L—šœ˜Lšœq˜q—šœ˜LšœÇ˜Ç—šœ˜Lšœ¶˜¶—šœ˜Lšœœ˜œ—šœ˜Lšœì˜ì—šœ˜Lšœ ˜ —šœ˜Lšœ¢˜¢—šœ˜Lšœƒ˜ƒ—šœ˜LšœÚ˜Ú—šœ˜šœ ˜ LšœD˜Dšœ]˜]Mšœžœ˜Jšžœ žœžœ˜(Jšœžœ˜"Jšœžœ ˜Jšœžœ"˜3Jšžœ<˜>J˜—Lšœ}˜}Lšœ ˜ —Lšœ˜—šœ˜˜Lšœ+˜+LšœÀ˜ÀLšœD˜DLšœ›˜›Lšœ‘˜‘Lšœè˜èLšœ˜—LšœÆ˜ÆLšœ ˜ —šœ˜Lšœ¨˜¨L˜œLšœ ˜ —šœ˜šœ!˜!LšœG˜GLšœÌ˜Ì—Lšœ×˜×Lšœ ˜ —šœ˜šœ ˜ Lšœ«˜«Lšœg˜gLšœ˜—LšœV˜VLšœ ˜ —šœ˜Lšœ žœš˜©Lšœþ˜þLšœ ˜ —šœ˜LšœÌ˜ÌLšœŠ˜ŠLšœ ˜ —šœ  ˜šœ ˜ šÏnœžœž˜Mš œžœžœžœžœžœ˜WMš žœžœžœ žœžœ˜7—Lšœð˜ðL˜ —Lšœ˜L˜ ———…—PzXX