FS
There is an entirely new file system for Cedar 5.0, FS. It is described from the Cedar programmer's point of view in FSDoc.tioga. Below is a brief description of the major changes from the user's point of view.
Instead of copying, attachments
One of the major changes that you will see after you boot is that many more files seem to be on your disk than you are used to in Cedar 4.4. (Type `List *Doc.tioga' in a CommandTool to see how many more documentation files there are!) No, your disk hasn't gotten bigger nor has Cedar become greedy and left you with no room to work. Instead, the DF software has made use of FS attachments to give local names to many of the files stored on [Indigo]<Cedar>. To explain what this means, you need to know something about the way FS names files.
Names for FS files are called ``FNames.'' An FName consists of (in order) a server, a root directory, zero or more subdirectories, a simple name, and a version. Both FTP bracket syntax and
CIFS slash syntax for FNames are accepted; the following constructs are equivalent:
[server]<rootDirectory>subDirectory>simpleName!version
/server/rootDirectory/subDirectory/simpleName!version
A named server like [Ivy] or /Indigo/ is a remote file server. The names of files on remote servers are called ``GNames,'' for global names.
An unnamed server, [] or //, means the local server (your disk). The names of files on the local server are called ``LNames,'' for local names.
In a GName, the rootDirectory is the directory on the server.
In an LName, the rootDirectory is the name of the partition. []<> or /// means the current partition. For example, if you are in the Debugger partition, ///foo.mesa means the foo.mesa file in the Debugger, while //Cedar/foo.mesa means the foo.mesa file on the Cedar partition. (So you don't need the ClientFileTool anymore.)
All FNames, both GNames and LNames, have version parts. For example, the following are complete FNames:
[Indigo]<Cedar>Documentation>FSDoc.tioga!478
[]<>FS.mesa!3
///FS.mesa!3
[]<Debugger>Temp>DebugTool.bcd!12
//Debugger/Temp/DebugTool.bcd!12
An attachment in FS is an association of an LName to a GName; for instance, after you boot there will be an attachment from ///WalnutDoc.tioga!1 to [Indigo]<Cedar>Documentation>WalnutDoc.tioga!H. When you do a Bringover, the only effect is to establish the attachments of the local names to the global names -- no copying of the contents of any of the global files is done. Attachments are cheap in FS, making it possible to have many LNames in your local file system without giving up all your disk to the system.
Partial names and working directories
An FName that does not start with a server part is called a partial name and will be interpreted relative to a working directory. If you type a file name in a CommandTool, it will be interpreted relative to the working directory that appears in the CommandTool herald line; the default is ///, pronounced root. Working directories aren't fully implemented in Cedar yet, but if you'd like to get some idea of how they will be able to help you in the future, go read Cedar5LocalDirectories.tioga.
Caching and cache management
When you open a file using an LName that is an attachment to a GName or if you open a file using a GName directly, FS has to copy the bits of the file from the server to the local file cache. Because of this copying, you will often see some delays when you open a file; in the worse case the open may fail because the server is dead. This is the price you pay for keeping things remotely and leaving your local disk uncluttered.
Another effect of the caching is that your disk space (as measured by Watch) will normally hover around 1000 free pages. That sounds like a small amount, but it really isn't. Most of the space on the disk is being managed by the FS cache; if you need space, the FS cache manager can allocate space to your local files by removing from the cache files stored on remote servers.
Instead of $ files, versions
Because all file names now have explicit versions, Tioga no longer produces a $ file when you save a file you have been editing. Instead, it makes a new file with the next higher version number. The default in Cedar 5.0 is to keep at most two versions of each .tioga file, so the previous version will be not be destroyed.
Most of the time a version number is not necessary as part of an FName -- FS will use either the most recent or least recent version as is appropriate. You can name a particular version of a file by using either a version number or the version variables !L, meaning the lowest existing version number, or !H, meaning the highest existing version number. The most recent version of Foo.tioga is Foo.tioga!H and (using the default of keeping two versions) the previous version is Foo.tioga!L.
Instead of a FileTool
DFTool
The only way to do a bringover or smodel is with the DFTool. To get an instance of the DFTool, type ``DFTool'' to the CommandTool.
You should check the DFTool user profile options described in UserProfileDoc.tioga.
List and Copy
Because of FS, there is no longer any need for special tools to list, fetch, or store files on remote servers. The List command can be given patterns using remote paths and the Copy command can be used to retrieve and store files on remote servers; descriptions of the List and Copy commands are given in ListDoc.tioga and CopyDoc.tioga.
Instead of DFDisk, `List -ur *!H'
The DFDisk program no longer exists. Instead, the -u (unbackedup) option of the list command will list only those files that are not FS attachments, meaning that they are not backed up anywhere. If the current working directory is root (///), then `List -ur *!H' gives a list equivalent to the [Unknown]<Unknown> entries produced by DFDisk (the r switch forces '* to match '/ and '>, so subdirectories will be searched). Note that List -u * means List -u *!*, which will likely also include unbacked-up old versions of files (which you probably don't care about).
Debugger user profile entries
So that you can use the same user profile on both the Cedar partition and the Debugger partition, you can now precede any user profile entry with "Debugger." to have it take effect only on the Debugger partition. For instance, two reasonable PreRun lines would be:
PreRun: /Indigo/Cedar/Clock/Clock.bcd /Indigo/Cedar/Watch/Watch.bcd /Indigo/Cedar/DFTool/DFTool.bcd /Indigo/Cedar/BootTool/BootTool.bcd /Indigo/Cedar/Top/Compiler.bcd /Indigo/Cedar/Top/Binder.bcd /Indigo/Cedar/Reminder/Reminder.bcd
Debugger.PreRun: /Indigo/Cedar/Clock/Clock.bcd /Indigo/Cedar/Watch/Watch.bcd /Indigo/Cedar/DFTool/DFTool.bcd /Indigo/Cedar/BootTool/BootTool.bcd /Indigo/Cedar/MCross/MCross.bcd
Notice that FNames are used here to guarantee that the latest version is fetched from the server. !H is the default.