Date: 7 May 1982 10:31 pm PDT (Friday)
Sender: Schmidt.PA
Subject: Cedar 3.0 release
From: Release Master's Asst.
To: CedarUsers↑, CedarImplementors↑
cc: CedarCoordinators↑
Reply-To: Levin

Cedar 3.0 is released.

This release is a major change from Cedar 2.6, since it eliminates entirely the
Tajo user interface.  There are new versions of the Compiler and Binder;
however, client programs need not be rebuilt unless interfaces they depend upon
have changed.  Many of the system interfaces remain unchanged (see
component descriptions below), and compatibility with Tajo/Common Software
interfaces that do not involve the user interface is retained.

Since the Tajo user interface is no longer available, most Cedar users will find it
helpful to consult Jim Morris' "Getting Started In Cedar" memo, available on
[Indigo]<Cedar>Documentation>GettingStartedInCedar.press.  This document
contains complete installation procedures and an introduction to the facilities
available in the new user interface (Viewers and Tioga).  Many of these
facilities have changed substantially since Cedar 3.0, so users previously familiar
with this interface should consult the Viewers and Tioga entry in the "Summary
of Release Components" section of this message.

This release also contains a significant collection of new components.  Users are
strongly encouraged to consult the "System Components" section below and read
the descriptions and documentation of the items marked "new".

This release is stored exclusively on subdirectories of [Indigo]<Cedar>.  Other
directories (e.g., CedarLang, CedarLib) are NOT part of the release and their
contents should be treated with suspicion.  In general, users should access release
components using BringOver and the appropriate DF files; retrieving files with
the FileTool is likely to lead to version mismatches and confusion.  For this
release, all top-level DF files for release components that users are likely to need
are stored on [Indigo]<Cedar>Top>. 

Installation Procedure
---------------------

This release does not require new microcode for either Dorados or Dolphins.  
There are new Cedar boot files, but no new CoPilot boot files (i.e., the CoPilot
boot files from Cedar 2.6 are suitable for use with this release).  To install the
Cedar boot files, follow these instructions:

    1)  You should seriously consider erasing your volume.  It is possible for
    the automatic installation procedure to fail if your volume is too fragmented.

    2)  Get to Othello, either on the Othello volume or from the NetExec.

    3)  Fetch [Indigo]<Cedar>Top>CedarDorado.boot to the Client volume.

    4)  Boot the Client volume.  No switches are necessary, even for Dolphins
    without CoPilot volumes (formerly, the R switch was required).

The sequence of events that occurs after 990 appears in the maintenance panel
differs considerably from previous releases.  The cursor will become a small
Cedar tree and you will be prompted for your name and password.  You must
supply credentials that are acceptable to Grapevine; thus, the user name should
include a registry (if you don't provide one, ".PA" is assumed).  Once your
credentials have been validated, an installation dialogue begins.  The questions
should be largely self-explanatory, but here's an informal description of what's
going on:

    1)  The Cedar runtime likes to have a pre-allocated file to use for backing
    storage.  (This is the file that, in previous releases, was created by the utility
    program CreateCedarVM.)  If the installation procedure doesn't find this file
    on the disk, it will ask you how large a file is to be created.  The system will
    try to create a contiguous file of the size you indicate, and will ask you to
    try again with a smaller size if contiguous allocation is impossible.

    2)  In addition to the boot file, certain files must be on the local disk before
    Cedar can operate usefully.  The boot file "knows" where to find these files
    and will fetch them automatically.  You will see a long script being typed as
    the retrieval occurs; you needn't pay much attention to this.  You will also
    be asked if you want to have a personal DF file brought over after the
    standard release files have been retrieved.

    3)  After the files have been retrieved, you will be asked if you
    want to install your credentials on the disk.  This is a mechanism to offer a
    reasonable amount of protection against unauthorized inspection of your local
    disk (about the same amount as was afforded by "password protection" on Alto
    disks).  If you install credentials, you will be asked to supply your password
    whenever you enter the Cedar world from the Alto world or by pushing the
    boot button.  This is true whether or not you have an installed checkpoint.

After the installation dialogue is finished, the screen is cleared and the cursor
remains as a tree for a while.  Then, the screen changes to "background gray"
and the cursor becomes a functioning hourglass.  Shortly after, a "herald" line
appears at the top of the screen, "icons" appear at the bottom, and eventually
"Ready" appears in the herald line.  The cursor becomes an arrow and the system
idles, awaiting your input.  As with previous releases, 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.

Note to Cedar implementors who use the Tajo boot files:  This release includes
new versions of TajoD*.boot on [Indigo]<Cedar>Top>.  Even if you were using
these during pre-release testing of Cedar 3.0, you should refetch them now.

Known Problems
----------------

The following problems/glitches are known to exist in Cedar 3.0.  (This list is
courtesy of Mark Brown and makes no claim to completeness.)

1. The UserExec copy command has been observed to fail to concatenate files
properly (as in "copy a ← b c d e f g").  However, this has not been repeatably
produced.

2. The UserExec command "old foo" does not open file foo (it will open foo.mesa
if it exists).  This is not a problem for a file name with an extension, e.g. "old
foo.tioga" works fine.  The command "new foo" will open foo.

3. Some problems have cropped up in the UserExec with spelling correction; as a
result, spelling correction is disabled by default.  To turn it on, add
"SpellingCorrectionEnabled: TRUE" to your profile.  Complex compiler command
lines (such as "compile a ← b[c: d, e: f]") do not work if they contain blanks. 
The command "delete *.mesa$" is 'corrected' into "delete *.mesa".  ESC-completion
for command names is observed not to work (though this may be coupled to the
disabling of spelling correction).  When it does "work", it has been observed to
do undesirable things, e.g., it always leaves off the first char when there is no
space after "←".

4. FTP.bcd and Maintain.bcd do not work in the UserExec (they import old Tajo
interfaces).  Maintain will be fixed soon, but is not part of the release; the future
of FTP is unclear (in the meantime, use Bringover or the FileTool instead).

5. For now, the best way to find out the name of the currently logged-in Cedar
user on a machine (such as a public Dorado with a Viewers display up and
nobody sitting in front of it) is to type "Login<CR>" to the UserExec.  It will
prompt with something of the form "User Name: loggedInUserName.PA".  Then
type <DEL> to abort the Login command.

6. Plot viewers can't be destroyed.


Miscellaneous Operational Notes
-------------------------------

Cedar now remembers your credentials throughout a session.  A session ends
when you push the boot button on the keyboard or when you boot a volume
other than the Client by means of the "boot buttons" at the top of the screen. 
Note that a session does not end if you use the Client "boot button" or the
Rollback button, so Cedar will remember your credentials even after these
actions.  (Fine point:  the credentials it remembers are the ones in effect at the
time the button is pushed; if they don't match the installed credentials on the
disk or are unacceptable to Grapevine, you will be asked to login again.)

There is a button marked "Idle" in the extreme upper right corner of the screen. 
Pushing this button causes the screen to turn black and display a dancing "Type
Key" cursor.  This is the preferred way of ending a session without actually
leaving the Cedar world.  If you subsequently hit (almost) any key, you will be
asked to login, after which the screen will be restored to its state at the time that
"Idle" was invoked.


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.

BBV				*Changed*		Implementation in boot file
Binder			*Changed*
BTrees			*Changed*
BugBane			*Changed*		Implementation in boot file
CedarControl			*New*		Implementation in boot file
CedarDB			*New*
CedarSnapshot		*Changed*		Implementation in boot file
Chat				*New*
CIFS				*New*		Implementation in boot file
CIFSCommands		*New*
CoFork			*Changed*
Communication		*Changed*		Implementation in boot file
CompatibilityPackage	*New*		Implementation in boot file
Compiler			*Changed*
DFFiles			*Changed*
FileTool			*Changed*		Implementation in boot file
Formatter
FTP
GrapevineUser		*Changed*		Implementation in boot file
Graphics			*Changed*		Implementation in boot file
IFSFile
IncludeChecker		*Changed*		
Inscript			*Changed*		Implementation in boot file
IOStream			*Changed*		Implementation in boot file
Lister				*Changed*
ListsAndAtoms					Implementation in boot file
Loader						Implementation in boot file
MakeBoot			*Changed*
MCross			*Changed*
MesaScanner			*Changed*
Modeller			*Changed*
OnlineMergeSort		*Changed*
OnlineMergeSortRef	*Withdrawn*
Packager
PerfStats			*Changed*
PGS				*Changed*
PilotKernel			*Changed*		Implementation in boot file
PilotReals						Implementation in boot file
Pine				*Changed*
PlotPackage			*Changed*
PressPackage			*New*
PressScreen			*New*
Print				*Changed*
PriorityQueue		*Changed*
Random			*Changed*
RedBlackTree		*Changed*
RedBlackTreeRef		*Changed*
RefText			*New*
Rigging			*Changed*		Implementation in boot file
RunExecAndViewers	*Withdrawn*
Runtime & RuntimeTypes	*Changed*		Implementation in boot file
Sequin
Set				*Changed*
SirPress			*New*
Spy				*New*
STPServer			*New*
TajoCedarSwap		*Withdrawn*
TempCedarExec		*Withdrawn*
TerminalMultiplex		*New*		Implementation in boot file
UECP				*New*
Unique			*New*
UserExec			*Changed*		Implementation in boot file
Viewers & Tioga		*Changed*		Implementation in boot file
VTables			*New*
WalnutSend			*New*
Waterlily			*New*


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]<Cedar>Documentation>ComponentName.press

but there are occasional exceptions.

BBV
----
DF file:  [Indigo]<Cedar>Top>BBV.df
Documentation:  BBV.doc
Implementor:  Atkinson 

BugBane Viewer interface.  Cosmetic changes and bug fixes only.  BBV.doc is
new.

Binder
------
DF file:  [Indigo]<Cedar>Top>Binder.df
Documentation:  see Mesa 5.0 Reference Manual and Mesa User's Handbook
Implementor:  Satterthwaite 

This release includes a major rework of parts of the binder.  The external
interface is unchanged.  There are several major bug fixes and performance
improvements, the most notable of which are the following:

 - (Sub)configurations appearing in CONTROL lists are implemented correctly.
 - merging of information about runtime types, atoms and rope literals is much
   faster
 - larger configurations can be processed without overflow
 - output operations are faster
 - internal pointers to copied symbols are correct

BTrees
------
DF file:  [Indigo]<Cedar>Top>BTrees.df
Documentation:  contact implementor
Implementor:  Levin 

Bug fixes only.  BTree backing files may now be successfully copied with the
FileTool.

BugBane
--------
DF file:  [Indigo]<Cedar>Top>BugBane.df
Documentation:  BugBane.doc, BugBane.shorts, BugBane.wish
Implementor:  Atkinson 

The Cedar debugger.  See BugBane.doc for change info.  Mostly just bug fixes
and robustness additions.

CedarControl
------------
DF file:  [Indigo]<Cedar>CedarControl>CedarControl.df
Documentation:  see below
Implementor:  Levin 

The following new interfaces are exported by the boot file (of which
CedarControl is a part):

UserCredentials:

This interface provides a stand-alone mechanism for obtaining and validating
and installing credentials (name and password).  It is completely independent of
the normal Cedar facilities and, as such, is intended primarily for use by
initialization code and special system facilities.  Comments in the
UserCredentials.mesa are the only documentation.

CedarVersion:

The interface exports three numeric quantities that define the current version of
Cedar.   For the present release, CedarVersion.major = 3 and CedarVersion.minor
= CedarVersion.patch = 0.  This interface is the approved way of obtaining the
current release version number.  (The approved way of obtaining the date of the
released boot file is Runtime.GetBuildTime[].)

CedarInitOps:

This interface contains a few procedures that relate to installation and start-up
matters.  It is primarily intended to be used by system facilities and Viewers.

CedarDB
---------
DF file:  [Indigo]<Cedar>Top>CedarDB.df
Documentation:  see DBView.mesa and Cattell.pa
Implementor:  Cattell et al 

New component: the Cedar Database system exporting the "View" level interface. 
Several enhancements and bug fixes on version privately released to
CedarDatabase↑.PA users, including an order of magnitude performance
improvement on certain query operations.  Future releases will be described as
part of the Cedar release.  Add yourself to CedarDatabase↑.PA for more extensive
between-release discussion. 

CedarSnapshot
--------------
DF file:  [Indigo]<Cedar>Top>CedarSnapshot.df
Documentation:  see comments in CedarSnapshot.mesa
Implementor:  Levin 

No interface changes.  A number of insidious bugs have been fixed, most of
which showed up only on Dolphins.  Rollback should also be somewhat faster
(and Checkpoint somewhat slower) than in Cedar 2.6.

Chat
----
DF file:  [Indigo]<Cedar>Top>Chat.df
Documentation:  Type Chat? to UserExec
Implementor:  Stewart.pa 

Viewers chat tool.  Multiple instances are supported.

CIFS
----
DF file: [Indigo]<Cedar>Top>CIFSdf
Documentation:  CIFSManual.press
Implementor:  Gifford 

This is the first release of CIFS.

CIFS Commands
------------------
DF file: [Indigo]<Cedar>Top>CIFSCommands.df
Documentation:  CIFSManual.press
Implementor:  Gifford 

This is the first release of User Exec commands for CIFS.

CoFork
-------
DF file:  [indigo]<Cedar>Top>Cofork.df
Documentation:  CoFork.bravo, CoFork.press
Implementor:  Sturgis 

Unchanged (DF changes only).

Communication
---------------
DF file:  [Indigo]<Cedar>Top>Communication.df
Documentation:  see Pilot Programmer's Manual 
Implementor:  Birrell

DF file changes only.

CompatibilityPackage
--------------------
DF file:  [Indigo]<Cedar>Top>CompatibilityPackage.df
Documentation:  contact implementor
Implementor:  Levin 

This package contains the components of the Tajo/Common Software world that
can plausibly execute without the Tajo user interface.  It replaces the DF files

[Indigo]<Cedar>Top>ComSoftPublic.df
[Indigo]<Cedar>Top>TajoPublic.df
[Indigo]<Cedar>Top>TajoFriends.df

which are now obsolete.  Users of interfaces in these DF files should consult the
following list of interfaces supplied by CompatibilityPackage.df.  Interfaces
present in the above DF files but absent from this list are no longer supported.

Ascii, CmFile, CommonSoftwareFileTypes, Date, DCSFileTypes, Directory,
DirectoryExtras, ExtraCommonSoftwareFileTypes, FileStream, Format, HeapString,
LongStorage, LongString, NameAndPasswordOps (new, see below),
PropertyTypes, Segments (source: PilotSegments), SegmentsExtra, Storage, STP,
STPOps, STPReplyCode, Streams (source: PilotStreams), String, Time

The portions of Profile and TajoMisc that deal with the user name and password
have been merged into a new interface, NameAndPasswordOps, which is
included in CompatibilityPackage.df.  The items in this new interface have the
same names and types as their ancestors.

For convenience, the following compatibility interfaces are also included in
CompatibilityPackage.df, although no implementations are provided by this
package.  (The Cedar UserExec provides compatible implementations of Exec,
ExecOps, and TTY).  These interfaces were formerly available in TajoPublic.df
and TempCedarExec.df, both of which are now obsolete.

Exec, ExecOps, Feedback, TemporarySpecialExecOps, TTY

Unlike its predecessors, CompatibilityPackage.df mentions the source and object
for all of the above interfaces.  Clients should no longer need to reference
[Indigo]<APilot>MesaBasics> or [Indigo]<APilot>Tajo>.

Continued use by Cedar programs of the interfaces supplied by the compatibility
package is discouraged, particularly of those for which more appropriate Cedar
facilities exist (such as FileStream, Format, HeapString, LongStorage, LongString,
Streams, Storage, and String).

Compiler
--------
DF file:  [Indigo]<Cedar>Top>Compiler.df
Documentation:  Cedar7T11.press
Implementor:  Satterthwaite 

Minor bug fixes only.  The interface to the system modeller has changed.  If you
use the modeller, you must update your compiler and modeller at the same time.

DFFiles
-------
DF file:  [Indigo]<Cedar>Top>DFFiles.DF
Documentation:  DFFilesRefMan.Press
Implementor:  Schmidt 

All programs in this release (except the RemoteGetTool) can be run under any of

   1) the Cedar 3.0, UserExec world,
   2) the old Tajo, TempCedarExec world we know so well,
   3) the CoPilot, SimpleExec world.

The RemoteGetTool can only be run in the Cedar 3.0, UserExec world.  

There are these changes:

1) VerifyDF: now gives a warning for .Bcd, .Mesa, and .Config files that do not
appear to be necessary for the compilation and binding of files marked "+" in the
file.

2) BringOver: You can prefix a file on a line by the character "~", in which case
it will be retrieved if the file does not exist on the disk.  If it is present, then it
will not be retrieved.  

Also, you can now say

	BringOver [Indigo]<Cedar>Foo.Mesa [Indigo]<Cedar>Pkg>FooImpl.Mesa

to BringOver, and it will retrieve those files.  Files that end in .DF will be read
and their contents retrieved as usual.

You can now type "a" in addition to "y", "n", and "q" to BringOver and it will
behave as if /a was typed on the command line.

3) DFDisk now handles larger numbers of files on a volume.

4) There is now a client-callable interface to read DF files.  Contact the
implementor if you want to write programs that read, parse, and analyze DF
files.

5) The documentation has been revised slightly.

FileTool
--------
DF file:  [Indigo]<Cedar>Top>Filetool.df
Documentation:  Type FileTool? to UserExec
Implementor:  Stewart.pa 

User credentials are now aquired solely from the UserExec.  Typing in the
connect password field now echoes '*.  Delete buttons are guarded.

Formatter
---------
DF file: [Indigo]<Cedar>Top>Formatter.df
Documentation:  see Pilot User's Handbook
Implementor:  Levin

Unchanged from previous release.

FTP
----
DF file:  [Indigo]<Cedar>Top>FTP.df
Documentation:  [Indigo]<Cascade>Doc>FTP.doc 
Implementor:  Teitelman

Unchanged from previous release.

GrapevineUser
--------------
DF file:  [Indigo]<Cedar>Top>GrapevineUser.df
Documentation:  [Indigo]<Grapevine>Docs>Interface.press 
Implementor:  Birrell

A safe interface is now available; contact implementor for details.

Graphics
--------
DF file:  [Indigo]<Cedar>Top>Graphics.df
Documentation:  see comments in Graphics.mesa
Implementor:  Wyatt 

Minor bug fixes only.

IFSFile
------
DF file:  [Indigo]<Cedar>Top>IFSFile.df
Documentation:  see implementor 
Implementor:  Levin

Unchanged from previous release.

IncludeChecker
---------------
DF file:  [Indigo]<Cedar>Top>IncludeChecker.df
Documentation:  contact Paul Rovner
Implementor:  SDD, Paul Rovner

No changes, only reconstruction for Cedar 3.0.

Inscript
-------
DF file:  [Indigo]<Cedar>Top>Inscript.df
Documentation:  InscriptImplementation.press
Implementor:  Swinehart, McGregor 

Bug fixes and some minor features for the Cedar 3.0 terminal multiplexor.

IOStream
--------
DF file:  [Indigo]<Cedar>Top>IOStream.df
Documentation:  see comments in IOStream.mesa 
Implementor:  Teitelman

Bug fixes only.

Lister
-----
DF file:  [Indigo]<Cedar>Top>Lister.df
Documentation:  see Mesa User's Handbook
Implementor:  Satterthwaite 

There have been minor bug fixes in the Lister program.  The programs CL and
SL are unchanged from the previous release.  The program BL has some new
options for RT types wizards (see implementor).

There is a new program GL (also registered as GlobalLister).  Its purpose is to
point out global frames that could easily be made smaller and/or to discover
global state that should be protected by monitors.  It is invoked by a command of
the form
  GL file1 file2 ...
where file1, file2 ... are names of object files (extension .bcd assumed) produced
by either the compiler or binder.  The output is written to files file1.gl, file2.gl,
... unless you use the switch /t, which sends the output to the executive's
typescript instead.  Note that symbol tables for the component modules must be
available on your local disk to get useful information about a config.

For each module, the following information appears in the output:
  (1) the module name
  (2) the global frame size (in words)
  (3) the number of gfi slots required (if > 1)
  (4) a list of variables in the global frame, with the size of each (in words)
  (5) a message if the module contains any STRING literals or StringBody's in
	the global frame
  (6) the number of words in the global frame not attributable to the variables
	listed in (4) or to frame overhead.
If a module uses rope literals or atoms, a variable &refs will appear, with a size
equal to twice the number of rope literals plus atoms; if it provides or uses
runtime type information, a variable &types will appear, with a size equal to the
number of type codes required.

ListsAndAtoms
--------------
DF file:  [Indigo]<Cedar>Top>ListsAndAtoms.df
Documentation:  see comments in List.mesa and Atom.mesa 
Implementor:  Teitelman

Unchanged from previous release.

Loader
------
DF file:  [Indigo]<Cedar>Loader>Loader.df
Documentation:  none 
Implementor:  Rovner

Unchanged from previous release.

MakeBoot
---------
DF file:  [Indigo]<Cedar>Top>MakeBoot.df
Documentation:  MakeBoot.press
Implementor:  Levin 

The following changes have been made:

1)  The BCD[] specification is now implemented (see documentation).
2)  There is no limit on the number of input BCDs, other than the size of the
loadstate.
3)  More, and more useful, information appears in the loadmap file.

MCross
-------
DF file: [Indigo]<Cedar>Top>MCross.df
Documentation: MCross.doc
Implementor: Paul Rovner 

No changes, only reconstruction for Cedar 3.0

MesaScanner
------------
DF file:  [Indigo]<Cedar>Top>MesaScanner.df
Documentation:  see comments in MesaScanner.mesa
Implementor:  Atkinson 

DF file changes only.  No interface or implementation changes.

Modeller
------------
DF file:  [Indigo]<Cedar>Top>Modeller.DF
Documentation:  ModelRefMan.Press and implementor
Implementor:  Schmidt 

This is a viewers-based version of the modeller.  The user interface has been
changed extensively.  Contact implementor before using.

OnlineMergeSort
----------------
DF file:  [indigo]<Cedar>Top>OnlineMergeSort.df
Documentation:  see comments in ListSort.mesa
Implementor:  MBrown 

Unchanged (DF changes only).

OnlineMergeSortRef
-------------------
DF file: [Indigo]<Cedar>Top>OnlineMergeSortRef.df
Documentation:  OnlineMergeSortRef.press
Implementor:  M. Brown

This component is withdrawn.  Identical functionality is provided by the List
interface, which is exported from the boot file.

Packager
--------
DF file:  [Indigo]<Cedar>Top>Packager.df
Documentation:  see Pilot User's Handbook 
Implementor:  Levin

Unchanged from previous release.

PerfStats
--------
DF file:  [indigo]<Cedar>Top>PerfStats.df
Documentation:  PerfStats.bravo, PerfStats.press
Implementor:  MBrown 

Unchanged (DF changes only).

PGS
----
DF file:  [Indigo]<Cedar>PGS>PGS.df
Documentation:  contact implementor
Implementor:  Satterthwaite 

Recompilation only.

PilotKernel
----------
DF file:  [Indigo]<Cedar>Top>PilotKernel.df and UtilityPilotKernel.df
Documentation:  Pilot Programmer's Manual
Implementor:  Levin 

Two small, but operationally significant, changes have been made.  First, if you
have no CoPilot volume, Pilot will assume you want to use a remote debugger
and will act as if you had supplied the R switch at boot time, even if you
didn't.  This is significant to Dolphin users, who now need not bother with the
R switch and associated rigamarole on the Alto partition.  Second, (nearly) all
Pilot interfaces are now exported, making it easier for wizards and hackers to do
what they want/need.

PilotReals
---------
DF file:  [Indigo]<Cedar>Top>PilotReals.df
Documentation:  MesaFloat60.press 
Implementor:  Stewart

Unchanged from previous release.

Pine
----
DF file:  [indigo]<Cedar>Top>Pine.df
Documentation:  contact implementor
Implementor:  MBrown 

Unchanged (DF changes only).

PlotPackage
-----------
DF file:  [Indigo]<Cedar>Top>PlotPackage.df
Documentation:  see comments in Plotter.mesa, RealEvent.mesa, RealVec.mesa,
               RefAnyStream.mesa, Timer.mesa or contact Paul Rovner
Implementor:  Paul Rovner

No changes, only reconstruction for Cedar 3.0.

PressScreen
-----------
DF file:  [Indigo]<Cedar>Top>PressScreen.df
Documentation:  below
Implementor:  Cattell, Teitelman 

SirPressPackage is no longer incorporated within PressScreen, as SirPressPackage
is separately released.  The user must therefore run SirPressPackage before
PressScreen unless the Tioga typesetter is loaded (since it uses SirPressPackage
already).

Red-buttoning the PressScreen button that appears at the top of your screen
causes the left half of the screen to be sent to a press file (useful for readable
overhead slides), blue-buttoning causes the whole screen to be sent, PressScreen
tells you which in case you forget.  It also explains how to send its output to a
printer.       

Print, PressPackage
------------------
DF file:  [Indigo]<Cedar>Top>Print.df
	   [Indigo]<Cedar>Top>PressPackage.df
Documentation:  Print.df
Implementor:  Plass 

Print is the old standby program for printing things on a Press printer.  By
popular demand, I have bound PressPackage into Print.bcd, so it should work
as before.

Print now examines your profile for entries of the form
	Hardcopy.PressPrinter: Clover
	Hardcopy.Font: TimesRoman6
	Hardcopy.PrintedBy: Plass, Michael
	Hardcopy.Landscape: FALSE
	Hardcopy.Columns: 2
If the Hardcopy.PrintedBy entry is omitted or empty, the name of the currently
logged-in user will appear on the break page.  Hardcopy.Landscape defaults to
TRUE, and Hardcopy.Font defaults to Gacha6 for landscape or Gacha8 for
portrait.  Hardcopy.PressPrinter defaults to Clover for now.

PriorityQueue
-------------
DF file:  [Indigo]<Cedar>Top>PriorityQueue.df
Documentation:  see comments in PriorityQueue.mesa
Implementor:  Atkinson 

No changes for Cedar 3.0.

Random
-------
DF file:  [indigo]<Cedar>Top>Random.df
Documentation:  Random.tioga, Random.press
Implementor:  MBrown 

Unchanged (DF changes only).

RedBlackTree
-------------
DF file:  [indigo]<Cedar>Top>RedBlackTree.df
Documentation:  see comments in OrderedSymbolTable.mesa
Implementor:  MBrown 

Unchanged (DF changes only).

RedBlackTreeRef
----------------
DF file:  [indigo]<Cedar>Top>RedBlackTreeRef.df
Documentation:  see comments in OrderedSymbolTableRef.mesa
Implementor:  MBrown 

Unchanged (DF changes only).

RefText
-------
DF file:  [indigo]<Cedar>Top>RefText.df
Documentation:  see comments in RefText.mesa
Implementor:  MBrown 

The RefText interface includes some simple, generally-useful procedures for REF
TEXT (a mutable, garbage-collected sequence of characters).  As much as
possible, the operations parallel the Rope interface's operations on ROPE (Equal,
Fetch, Find, Length, Map, Match, SkipTo, SkipOver).  Unlike ROPE, there is a
destructive Append operation on REF TEXT.  The RefText interface also gives
access to a pool of preallocated TEXTs, for use by applications that frequently
allocate and discard scratch TEXTs. 

Rigging
-------
DF file:  [Indigo]<Cedar>Top>Rigging.df
Documentation:  Rope.press (from Rope.tioga)
Implementor:  Atkinson.PA 

No interface changes.

Rope.Compare has been fixed (it used to return 0 when one of the arguments was
NIL).

Documentation has been converted to Tioga.

RunExecAndViewers
--------------------
DF file: [Indigo]<Cedar>Top>RunExecAndViewers.df
Documentation:  see implementor
Implementor:  M. Brown

This component is withdrawn, since the functionality is now provided directly
in the boot file.

Runtime and RuntimeTypes
---------------------------
DF file: [Indigo]<Cedar>Top>Runtime.df
Documentation: Runtime.press, RTTypes.press
Implementor: Paul Rovner 

No changes, only reconstruction for Cedar 3.0

Sequin
------
DF file:  [Indigo]<Cedar>Top>Sequin.df
Documentation:  see implementor
Implementor:  Levin 

Unchanged from previous release.

Set
---
DF file:  [Indigo]<Cedar>Top>Set.df
Documentation:  Set.doc
Implementor:  Paul Rovner 

No changes, only reconstruction for Cedar 3.0.

SirPress
-------
DF file:  [Indigo]<Cedar>Top>SirPress.df
Documentation:  see comments in SirPress.mesa, or contact implementor
Implementor:  Plass.PA 

SirPress is a module for writing Press files.  It is functionally similar to the
output half of Maleson's PressIO package.

Spy
---
DF file:  [Indigo]<Cedar>Top>Spy.df
Documentation:  Spy.doc
Implementor:  Maxwell 

This is the first release of Cedar Spy.  SpyViewer has been incorporated into
Spy.bcd; you only need to load "Spy.bcd" to run the Spy.

STPServer
---------
DF file:  [Indigo]<Cedar>Top>STPServer.DF
Documentation:  None
Implementor:  Schmidt 

The STP server allows some other machine to retrieve from or store onto your
machine when running Cedar.  It is just like the Alto FTP server.  To use it,
type

	Run STPServer

to the User Exec.

TajoCedarSwap
--------------
DF file:  [Indigo]<Cedar>Top>TajoCedarSwap.df
Documentation:  see implementor 
Implementor:  Levin 

Tajo is no longer supported.  Similar functionality is available in the new
TerminalMultiplex interface.

TempCedarExec
---------------
DF file:  [Indigo]<Cedar>Top>TempCedarExec.df
Documentation:  none 
Implementor:  Levin 

As its name implies, this package was temporary.  Its functionality is now
available in the UserExec, which is part of the boot file.

TerminalMultiplex
------------------
DF file:  [Indigo]<Cedar>Top>TerminalMultiplex.df
Documentation:  see comments in TerminalMultiplex.mesa
Implementor:  Levin 

This is a new facility that replaces the old TajoCedarSwap interface.  It provides
for multiplexing of "virtual terminals" on the physical one.  Although the
interface is fairly general, certain of its facilities are effectively preempted by
code in the boot file; as a result, potential users of this interface should contact
the implementor before attempting to use it.

UECP
-----
DF file:  [indigo]<Cedar>Top>UECP.df
Documentation:  See uecp.mesa
Implementor:  Stewart/Gifford 

User Exec Command Line Parser.   New for Cedar 3.0.

Unique
-------
DF file:  [Indigo]<Cedar>Top>Unique.DF
Documentation:  Unique.Doc
Implementor:  Schmidt 

Unique parses various tokens and sorts them, eliminating duplicates.  For
example, you can give Unique an input filename and it will parse the contents
of the file, eliminating tokens that do not look like filenames (e.g. XX.XX), and
then will print out a sorted list of filenames with duplicates eliminated.

It can also sort by file name extension (e.g. .Mesa, .Bcd), by numbers, by words
(a sequence of letters sep. by white space), and by lines.  If an input file is not
given, Unique will use the current selection as input.

To run Unique, type

	Run Unique

to the UserExec.  Select {Files, Extensions, ...} as desired, give a filename or
select text to be processed, and push the "Go" button in the top menu.

The Unique program was written by Steve Hayes of SDD.  Send bugs to the
implementor.

UserExec
--------
DF file:  [Indigo]<Cedar>Top>UserExec.df
Documentation:  self-documenting 
Implementor:  Teitelman 

There is an extensive list of changes in [Indigo]<Cedar>UserExec>Release.msg; the
following areas have changed in some interesting or significant way:

1)  Two modes:  evaluation and command
2)  Copy and Rename commands now exist
3)  *, ↑X, and ESC expansion are now supported
4)  Multiple executive viewers
5)  Personalized profile
6)  Redo enhancements
7)  Registered command handling is different
8)  Programming interfaces have changed substantially
9)  Interpreter/DWIM behave differently

Viewers and Tioga
------------------
DF file:  [Indigo]<Cedar>Top>ViewersAndTioga.df
Documentation:  Tioga documentation on [Indigo]<Tioga>Documentation>.
	Contact implementors for additional information.
Implementors:  TiogaImplementors↑.pa

(This component contains: TIP, Viewers, Tioga, Clock, Watch, VBoot, TSetter,
EditTool, EditHistoryTool, End, JaM, and JaMGraphics.)

Major User Interface Changes

Buttons with a cross-bar pattern over the text are "guarded" and may only be
invoked when the button is clicked once to remove the "cover" and then again
while the cover is removed.

The new "Idle" button will turn off the display and post a random-walk cursor. 
If you type any key and then login, you'll get your screen back.

The "Boot" button doesn't actually boot, but instead displays a set of guarded
boot buttons.  You will not have to log in again if you boot the client volume or
do a "RollBack" from the buttons.

The Tioga TIP table has been changed in order to reduce errors during type-in. 
Some of the more important changes are listed below; Consult the Tioga
documentation for more information.

Function		Old			New

Cancel		BW			SHIFT-ESC
Look			Spare2		BW
Next Placeholder	COM P		Spare2
Next Viewer		CTRL V		COM V
	
Major Client Interface Changes

Buttons:  ButtonProcs are now ViewerClasses.ClickProcs, which are shared with
Menus.  You will have to edit your ButtonProcs to reflect the new arguments. 
Buttons may now be "guarded" in the fashion of Dan Swinehart's VBoot buttons,
by passing a parameter when the button is created.

Containers:  Now take a scroll parameter on creation.

Cursors:  User generated cursors are now "first-class" citizens in that they can be
used any place a system-defined cursor was used in the past.

Menus:  A number of new menu commands have been added to permit
modifying the menu of a particular viewer in less cumbersome ways than
before.  MenuProcs are now ViewerClasses.ClickProcs, which are shared with
Buttons.  You will have to edit your MenuProcs to reflect the new arguments.

TypeScript:  SetUserAbort is a new procedure that can be called to simulate the
user typing CTRL-DEL.  This is a low level interface for use by IOStream.

ViewerClasses:  The icon flavor and the TIPTable are now in the viewer
instance, and are initialised from the class when the viewer is created.  This
permits you to changes the display and type-in characteristics for an individual
viewer without having to create a dummy class.  The ScrollProc arguments have
changed to permit feedback to the user about where they are in the file.

ViewerOps:  The various viewer tree enumeration routines now all take the same
type of procedure parameter.  ComputeColumn is a new interface that allows
clients to repaint a column by recomputing the screen space allocation.  This is a
low-level interface for clients who need special performance tuning for their
application.

ViewerTools:  InhibitUserEdits is a new procedure that can be called to make
Tioga viewers effectively "Read Only" in that the user will no longer be able to
change the text.  Your program can continue to modify the text through the
other ViewerTools interfaces.

VTables
--------
DF file:  [Indigo]<Cedar>Top>VTables.df
Documentation:  see comments in VTables.mesa
Implementor:  Atkinson 

Rectangular tables Viewer class.  New for Cedar 3.0.

WalnutSend
------------
DF file:  [Indigo]<Cedar>Top>WalnutSend.df
Documentation:  see below
Implementor:  Haugeland 

New component.  Several enhancements and bug fixes on version privately
released to alpha users.  This is an interim system for sending mail until the
Walnut mail system is robust and powerful enough for general use.

Type WalnutSend to the UserExec to create an iconic WalnutSend window. 
Additional WalnutSend commands to the UserExec will produce more windows, as
will the NewForm button in the the window.  (This is not necessary if you put
NewFormAfterDelivery: TRUE in you user.profile, which causes a blank message
form to be left after sending a message.)   The NEXT key moves to the next field
of a message.  Since Cedar 3.0 now insures that the user is logged in, we've
removed the Login menu button from WalnutSend. If you have
NewFormAfterDelivery: TRUE and the input focus is in the body of the message
being sent, the first placeholder will be selected in pending delete mode after the
message is sent.

Waterlily
------------------
DF file:  [Indigo]<Cedar>Top>Waterlily.df
Documentation:  long help msg via UserExec.
Implementor:  Kolling 

Source compare program.  The command line format has changed from Alto
Waterlily in two ways: (1) the help switch has been superseded by the long
help msg via UserExec, and (2) the switches specifying Bravo or not-Bravo have
been replaced by switches specifying Tioga, Unformatted, or Bravo; the default
format for input files is now Tioga.  Note that the new Tioga switch currently
still does not result in double null being seen as eof, as the implementation is
waiting on pending changes to IOStream.



Unless otherwise indicated above, questions about changes in individual
components should be addressed to their implementors.


The Release Master