Date: 23 July 1982 6:40 pm PDT (Friday)
Sender: Levin.PA
Subject: Cedar 3.2 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.

*BasicHeads			*Newly Released*	Implementation in boot file
BBV				*Changed*		Implementation in boot file
Binder			*Changed*
*BootClientFile		*New*
BravoToTioga		*New*
*BTrees			*Changed*
BugBane			*Changed*		Implementation in boot file
*CedarControl		*Changed*		Implementation in boot file
*CedarDB			*Changed*
CedarReals			*New*		Implementation in boot file
CedarSnapshot		*Changed*		Implementation in boot file
Chat				*Changed*
CIFS				*Changed*		Implementation in boot file
*CIFSCommands		*Changed*
CoFork			*Changed*
*ColorPackage		*New*
*Communication		*Changed*		Implementation in boot file
*CompatibilityPackage	*Changed*		Implementation in boot file
Compiler			*Changed*
*CoPilot			*Changed*
*D0Microcode		*Newly Released*
DateAndTime		*New*		Implementation in boot file
DFFiles			*Changed*
*DoradoMicrocode		*Newly Released*
FileTool			*Changed*		Implementation in boot file
Formatter			*Withdrawn*
FTP				*Withdrawn*
*Germ			*Newly Released*	Separate boot file
GrapevineUser		*Changed*		Implementation in boot file
Graphics			*Changed*		Implementation in boot file
*IFSFile			*Changed*
IncludeChecker		*Changed*
*Init				*Newly Released*
*Inscript			*Changed*		Implementation in boot file
IO				*Changed*		Implementation in boot file
*Lister			*Changed*
ListsAndAtoms		*Changed*		Implementation in boot file
*Loader			*Changed*		Implementation in boot file
Lupine			*New*
Maintain			*Changed*
*MakeBoot			*Changed*
MCross			*Changed*
*MesaScanner		*Changed*
Modeller			*Changed*
OnlineMergeSort		*Changed*
Othello			*Newly Released*	Separate boot file
*Packager			*Changed*
PerfStats			*Changed*	
*PGS				*Changed*	
*PilotKernel			*Changed*		Implementation in boot file
PilotReals			*Withdrawn*
*Pine				*Changed*
PlotPackage			*Changed*
PressPackage			*Changed*
PressScreen			*Changed*
Print				*Changed*
PriorityQueue		*Changed*
Pup				*Changed*		Implementation in boot file
*Pupwatch			*New*
Random			*Changed*
RedBlackTree		*Changed*
RedBlackTreeRef		*Changed*
RefText			*Withdrawn*
Rigging			*Changed*		Implementation in boot file
*RPCRuntime		*New*		Implementation in boot file
Runtime & RuntimeTypes	*Changed*		Implementation in boot file
*Sequin			*Changed*
Set				*Changed*
SirPress			*Changed*
Spy				*Changed*
STPServer
*TerminalMultiplex		*Changed*		Implementation in boot file
TJaMGraphics		*Changed*
*TTYIO			*New*
UECP				*Changed*
Unique			*Changed*
UserExec			*Changed*		Implementation in boot file
*VersionMap		*New*		Implementation in boot file
Viewers & Tioga		*Changed*		Implementation in boot file
VTables			*Changed*
WalnutSend			*Changed*
Waterlily			*Changed*
*WorldVM			*New*		Implementation in boot file


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.

BasicHeads
----------
DF files:
  [Indigo]<Cedar>Heads>BasicHeadsDorado.df
  [Indigo]<Cedar>Heads>BasicHeadsD0.df
  [Indigo]<Cedar>Heads>BasicHeadsCommon.df
Documentation:  see interfaces
Implementor:  Taft 

1. New BasicHeadsCommon interfaces:

  a) New interface MicrocodeVersion for obtaining the version number and
release date of the currently-running microcode.

  b) New interface MicrocodeBooting, which provides program control over what
microcode is to be booted.  With the (forthcoming) ability to install microcode on
your disk, TemporaryBooting.BootButton[] will revert to its original meaning
"push the boot butoon" (3-push boot on the Dorado), as opposed to "boot the Alto
volume" as it has (incorrectly) come to be considered in Cedar.  The new
procedure MicrocodeBooting.BootSpecificMicrocode allows the client to select the
specific microcode to boot, which always comes from the Ethernet.

  c) Interfaces ColorDisplayFace, DESFace, and TrapSupport are unchanged, but
are included under the Cedar release umbrella for the first time.


2. If an OutLoad file (installed CoPilot or Cedar checkpoint) is resumed on a
machine different from the one on which it was created, the machine halts with
933 in the maintenance panel.  This is intended to prevent confusion caused by
duplicate Ethernet host addresses, etc.

3. The Heads now include trap support for the LocalBlkZ, LongBlkZ, and Version
opcodes.

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

BBV has acquired several new features for Cedar 3.2.  For a full explanation, see
BBV.doc.  Several bugs have been fixed, and feedback to the user has been
improved.  Here is a summary of the new features:
	1: remote source through the Source button (uses CedarSource.VersionMap)
	2: Entry, Exit, and 1-shot options for breakpoints
	3: Next/Prev stack walking

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

No user-visible changes, but considerable internal reorganization.

This binder uses CIFS for access to the file system and will not run on a
standard CoPilot volume.  Use PilotBinder.bcd from the same DF file to bind in a
non-Cedar 3.2 environment.

BravoToTioga
------------------
DF file:  [Indigo]<Cedar>Top>BravoToTioga.df
Documentation:  See Cedar Catalog
Implementor:  Jim Morris 

This is a new program.

To convert the Bravo format file X to Y, the Tioga version, RunAndCall
BravoToTioga X Y.  If X has no extension, ".bravo" is assumed.  If Y is omitted
and X is U.V then U.doc is used for Y.  This program preserves all the font
information and roughly approximates the indenting of your bravo document.  It
does not attempt to produce a document that looks identical to the bravo one.  It
does not preserve leading, justification, or centering; it pretty easy for you to do
these over again if Tioga's defaults don't suit you.  It produces documents in the
style Cedar.style.  Tioga does not currently properly support tab stops,
overstriking, or underlining.  However, BravoToTioga does preserve underlining
information by giving characters the "z" looks which Cedar.Style currently
makes italic.  There is also an interface, BToT, that supplies the procedure
BravoToTioga. 

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

This is a new tool that is intended for use by wizards.  It permits you to boot
from CoPilot a file on the Client volume.  To use, simply acquire
BootClientFile.bcd and type the following to the CoPilot SimpleExec:

BootClientFile <bootfilename>

If <bootfilename> has no extension, ".boot" is assumed.

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

This package has no user-visible changes since the previous release.

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

BugBane has not changed very much externally for Cedar 3.2.  Numerous minor
bugs have been fixed, but the major shortfalls (see BugBane.shorts) have not
changed much.  Remote symbols access is handled through RTTypes using the
VersionMap (CedarSymbols.VersionMap).  A rudimentary LOOPHOLE is
provided.

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

CedarControl implements the automatic installation mechanism, which has
changed substantially since the previous release.  The dialogue carried on with
the user is intended to be self-explanatory, so no documentation is included
here.  However, some comments may be found in the "Introduction to Cedar
(3.2)" document.  Some of the more significant changes are as follows:

1)  The microcode is checked to ensure compatibility with the boot file, and the
microcode version and configuration is displayed in the installation "window".

2)  If a personal DF file is to be brought over, its existence is verified before
invoking Bringover, thereby permitting typing errors to be detected and
corrected conveniently.

3)  After installation, the file Init.log contains a transcript of the installation
activities.

Users should be aware that the scheme for installing credentials has changed and
is incompatible with previous Cedar releases.  The changes are subtle and not
generally visible to users.  However, if Grapevine is down or if the user has
changed his password with Grapevine since the last time CedarControl prompted
for credentials, things will now behave more intuitively.

Changes to the public interfaces exported by CedarControl are as follows:

1)  CedarVersion contains additional types and variables that define the machine
type and microcode state.

2)  The interface UserCredentials has been withdrawn.  The only procedure of
interest, BypassNextPrompt, has been moved and renamed
CedarInitOps.BypassNextLoginPrompt.

3)  CedarInitOps.Login now takes an optional Boolean parameter, useDisk, which
defaults to TRUE.  useDisk: TRUE means perform a login sequence precisely as it
occurs during the installation dialogue.  useDisk: FALSE means to perform a
login sequence pretending that there are no installed credentials.  The approved
way of implementing an "uninstall credentials" operation is to call
CedarInitOps.Login[useDisk: FALSE].

There have also been substantial changes to the dialogue that ensues if Cedar is
booted with the D switch.   This is also intended to be self-explanatory and is
not documented here.  The D switch is intended to be used by implementors
only.

CedarDB
---------
DF file:  [indigo]<Cedar>Top>CedarDB.df
Documentation:
  Not yet completed.  See implementor and DBView.mesa.
Implementor:  Cattell 

Several bug fixes and new features, previously announced in messages to
CedarDatabase↑.PA.

Cedar Reals
-----------
DF file: [Indigo]<Cedar>Top>CedarReals.df
Documentation:  none
Implementor: Stewart 

This component replaces PilotReals.df, and all interfaces have been recompiled.

There is a new component:

	[Indigo]<Cedarlib>Real>Cedar>CedarRealTest.df

for Cedar 3.2 which should not be of interest to anyone except Floating Point
implementors.

All I've done is separate out the stuff which uses IO, Viewers etc. from the
Bootfile stuff.

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

The format of checkpoint files has been altered incompatibly.  Consequently,
users must not attempt to initiate rollbacks using previous versions of Othello or
CedarSnapshotD*.boot.  The version of Othello included in this Cedar release has
a Rollback command that is compatible with the new checkpoint format.  Users
with "Booter" volumes must acquire and install new versions of
CedarSnapshotD*.boot from [Indigo]<Cedar>Top>.

The following functional changes have been made to the CedarSnapshot
interface:

1)  New error codes are returned by CedarSnapshot.Checkpoint, corresponding to
illegal situations that were previously undetected.

2)  Rollback now checks that all dynamically-loaded BCDs present in the
checkpoint have not been overwritten since the time the checkpoint is made. 
An error code is returned.

3)  Checkpoint now detects and complains (via an error code) about open
transactions at the time a checkpoint is made.  At the time of a rollback, all open
transactions are aborted, and the transaction log at the time of the checkpoint is
restored.

4)  CedarSnapshotD*.boot used to interpret the "D" boot switch to mean "delete
any installed checkpoint and boot instead".  These actions are now invoked by
the "S" switch instead.

Significant additional bullet-proofing has been added to eliminate situations in
which a checkpoint or rollback would otherwise fail gracelessly (e.g., by
hanging).  Several bugs have been fixed:

1)  Checkpoint no longer produces a bogus file if insufficient disk space exists to
produce a snapshot.

2)  Rollback now checks to be sure that the installed boot file has not changed
since the checkpoint was made.  (i.e., the sequence "fetch new boot file",
"rollback" from Othello is not permitted and will be detected)

3)  CedarSnapshot.Register now works reliably.

4)  Rollback and transactions now coexist harmoniously.

Chat
----
DF File: [Indigo]<Cedar>Top>Chat.df
Documentation:  Ask almost anyone
Implementor: Stewart

	Chat viewers now appear in the left column instead of the right.  A chat
viewer with an open connection now changes its herald to show where the
connection goes.  This works for iconic Chats too.  Closing a chat viewer no
longer closes an open connection.  Closing with Blue instead of Red DOES close
the connection.  There is no longer a Save button.  There is no direct way to
create a typescript, but you can create an empty viewer and secondary select the
entire Chat typescript by triple clicking.  Perhaps Save will return one
day.  	
Backspace now works on an open connection, but as a consequence, you cannot
use Backspace to edit in a Chat viewer which has no open connection.  This has
to do with TIP tables...  A UserExec command line of simply "Chat" will create an
iconic Chat viewer.  A command line like "Chat maxc -l" will create an open
chat viewer, connect to Maxc, and log in the current Cedar user.  "Split" now
works for Chat viewers.

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

The CIFS interface was changed for 3.2 to provide explict FTP access for SModel. 
The following internal changes were also made:  (1) Use of RTFiles.IsFileInUse 
(2) A new BTree directory system  (3) More intelligent time-out of IFS
connections  (4) Changes to make the LSD more robust.

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

Catalog was changed for 3.2 to work with the new BTree directory system.

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

No implementation or interface changes.  (Documentation converted to Tioga.)

ColorPackage
-------------
DF file:  [Indigo]<Cedar>Top>ColorPackage.df
Documentation:  See interfaces
Implementor:  Maureen Stone 

This is a collection of modules relating to color viewers.  ColorMap.mesa should
be the only interface of interest to most clients.

The ColorPackage is the repository for the set of programs above the Pilot Kernal
and outside of CedarGraphics, Viewers and Inscript that are required to run color
viewers.  It contains the CedarGraphics style device for the color monitor
(ColorDevice), a module and interface to implement the colormap functions
(ColorMap), and a synchronizing module that turns things on and off in the
right order (ColorWorld).

The only function of interest to end users are those for manipulating the
colormap.  When you are drawing a picture in a colormapped mode, ColorDevice
takes the full 24 bit color it receives from the GraphicsPackage and asks
ColorMap for a frame buffer value.  If the color is in the colormap, you will get
it.  Otherwise, some compromise will be reached.  The current conventions for
the standard colormap are described in the interface ColorMap.mesa.  

Communication
---------------
DF file:  [Indigo]<Cedar>Top>Communication.df
Documentation:  Pilot Programmers' Guide and Pup package documentation
Implementor:  Birrell 

Recompilation of implementation modules only

CompatibilityPackage
--------------------
DF file:  [Indigo]<Cedar>Top>CompatibilityPackage.df
Documentation:  see Pilot Programmer's Manual, or see implementor
Implementor:  Levin 

There are no user-visible changes in this package.

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

User visible changes:

The symbol "~" can be used to construct a "binding," which is a pairing of a
name with a value.  In current Cedar, "~" can replace "=" in "constant"
declarations (pi: REAL~3.14159) and can replace ":" in keyword constructors
(Point[x~7.0, y~pi/2]).  The symbol "~~" can replace ":" to bind a name to an
implicit procedure (i.e., an expression reevaluated for each mention of the name)
in OPEN (OPEN x~~a[i]↑) or WITH ... SELECT.  Each of these uses of "~" is just
a notational extension (for compatibility with forthcoming documentation); the
meanings are unaffected.  The binary infix operators "~IN", "~<=", "~>=", "~#"
are no longer accepted (use "NOT" or rewrite the expression to make "~" a unary
negation operator).

In another notational extension, the (newly) reserved word "TRASH" can replace
"NULL" in default specifications or constructors.

Hexadecimal literals are available.  Such a literal must begin with a decimal digit
(0 always works) and must end with an "H".  The values 10-15 are denoted by
A-F.  Upper and lower case letters are equivalent within all forms of numeric
literals.  Examples: 0FFH  123ah.  Arbitrarily long strings of digits may appear in
REAL literals; values are rounded to 32-bit IEEE format with no warning for loss
of precision.

"+" is accepted as a unary prefix operator; ";" is now a separator, not terminator,
of declarations.

The default switch settings include /a (generate code that relies on address faults
to do nil checking when possible).

There are also a large number of internal improvements and changes.

This compiler uses CIFS to access the file system and will not run on a standard
CoPilot volume.  Use PilotCompiler.bcd from the same DF file to compile in an
environment other than Cedar 3.2.

CoPilot
-------
DF file:  [Indigo]<Cedar>Top>CoPilotMaker.df
Documentation:  none
Implementor:  Atkinson 

The CoPilot boot files ([Indigo]<Cedar>Top>CoPilotDorado.boot & CoPilotD0.boot)
have been remade for Cedar 3.2 to track load state and symbol table changes.  We
anticipate that this will be the last CoPilot made.  The DF file has some version
problems, but fixing them would mean rebuilding CoPilot, which we don't want
to do again if we can help it!

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

This DF file simply captures the microcode which you are already running.

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

This is a new package that parses dates and times in most intelligible formats.  It
does not do context-dependent parsing (e.g., "next Tuesday", "the first full moon
after my grandmother's birthday", etc.), but it tries to handle all variations that
show up in message headers (there are quite a few).  There are detailed
comments in the interface that describe the formats the package claims to
handle.  The interface, DateAndTime, is exported by the Cedar boot file and is
unsafe.  Users who encounter plausible formats that the package will not handle
are encouraged to contact the implementor for relief.

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

These are mostly bug fixes, with these noticable changes:

1. You can say

	Bringover /o X.Mesa, y.Mesa Package.DF

(note the ",", followed by a space that must be present).  The trailing "," is
ignored, allowing you to secondary-select from Using lists in other DF
files.

2. When BringOver retrieves a file that overwrites a local copy of that file, and
the local file is NEWER than the file being retrieved, BringOver renames the
local copy by appending "$$" to the name, and BringOver gives you a warning. 
If the file ends in .Bcd, newer versions are not saved.

3. The error you get from SpaceImplA when running SModel after many edits is
now caught (Space.InsufficientVM) -- and SModel suggests you rollback or boot.

4. The interface that gives clients access to DF contents has been improved.  See
comments in DFUser.Mesa for more info.

Also: BringOver now uses CIFS to write files on the local disk.  The
RemoteGetTool has been eliminated since its functions are now provided by the
File Tool.  RemoteDeleteAll must be run in a viewers environment; it can no
longer be run from CoPilot.

DoradoMicrocode
------------------
DF file:  [Indigo]<Cedar>Top>DoradoMicrocode.df
Documentation:  [Indigo]<DoradoDocs>DoradoBooting.press
Implementor:  Taft 

This DF file simply captures the microcode which you are already running.  All
the bootable microcode (.eb) files, which you will soon be able to install on your
disk if you wish, are released to [Indigo]<Cedar>Top>.

FileTool
--------
DF File: [Indigo]<Cedar>Top>FileTool.df
Documentation:  Ask almost anyone
Implementor: Stewart

	The FileTool now includes the functionality of the RemoteGetTool  (you
can do form-fill-out Bringovers).  There is a new field "DF File" which accepts a
local or remote DF File name.  Only the []<>> syntax is accepted.  There is a new
boolean button called Exports only which is essentially the /p switch.  The
Verify boolean button is used as the /a switch.  If the Directory field of the
FileTool is not empty, it is prepended to the DFFile field.  The names of some
fields have changed:  Path is now Directory and Remote is now Filename(s). 
You can no longer type a full remote name into the Directory field, but must put
that last component (the shortname) in the Filename(s) field.  There is an
additional List-Option called Pages, which works on Local-List only.  It prints
(in parens) the value returned by File.Size.  In Pilot there is no single valued
relation between a file's length in bytes and its length in pages. If asked to
overwrite a file in use by the runtime system, the Filetool removes its directory
entry and makes it temporary.

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

Documentation for the Cedar interfaces exists only in the interface sources. 
GrapevineCedar.bcd is now included in the boot file, and should not be loaded
explicitly or bound into other configs.  The type GVBasics.Password is now the
same as BodyDefs.Password, which is different from DESFace.Key.

Germ
-----
DF files:  [Indigo]<Cedar>Top>GermDorado.df and GermD0.df
Documentation:  "Pilot User's Handbook"
Implementor:  Taft 

The boot files are now obtained from [Indigo]<Cedar>Top>Dorado.germ and
[Indigo]<Cedar>Top>D0.germ, NOT from [Indigo]<Pilot>Dorado> and
[Indigo]<Pilot>D0> as was previously the case.

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

The following changes have been made to the Graphics interfaces:

1)  The GraphicsExtra interface has been removed; most operations formerly in
GraphicsExtra have moved to GraphicsOps. A couple procedures have gone away:
  NewStrikeFont (use Graphics.MakeFont instead)
  DefaultStrikeFont (use GraphicsOps.DefaultFont instead).
To avoid confusion, clients who formerly used GraphicsExtra should delete
GraphicsExtra.bcd before recompiling.

2)  The type Color has been redefined. Programs that use the constants
Graphics.black and Graphics.white will still work, but those that supply other
numerical values must change. GraphicsColor, a new interface, provides
procedures for generating Color values. [The new procedure Graphics.SetStipple
takes a an old-style Color parameter, interpreted as a 4 by 4 bit stipple pattern.] 

3)  Operations on a Graphics.Context now dispatch through an "object-style"
vector of procedures associated with each context. Suitable INLINE procedures are
provided so most clients should not notice the change.

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

DF file changes only.

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

Reconstruction only.

Init
---
DF file:  [Indigo]<Cedar>Top>Init.df
Documentation:  see Introduction.doc
Implementor:  Morris 

The four cm files for initializing D0s and Dorado disks.

Inscript
-------
DF file:  [Indigo]<Cedar>Top>Inscript.df
Documentation:
  InscriptImplAppendix.memo
  inscriptimplementation.memo
  InscriptImplementation.press
Implementor:  Maureen Stone, Dan Swinehart 

Inscript now supports the mouse and cursor on the color display.  Most changes
were in Interminal.mesa and its implementation.  Users who call procedures in
UserTerminal.mesa and want to run with the color display should switch to using
the procedures in Interminal.mesa instead.

I made the necessary interface changes to support a pen and tablet device.  The
pen implementation is not included in this release, however.  

IO, FileIO, UserProfile
----------------------
DF file:  [Indigo]<Cedar>Top>IO.df
Documentation:
  see comments in IO.mesa, more detailed comments in IO.comments
Implementors:  Warren Teitelman, Mark Brown, Larry Stewart 

The following is a summary of the more important changes (for more
comprehensive treatment, see IO.Changes which is referenced through IO.df):

The name of the interface was changed from IOStream to IO. Similarly,
ViewerIOStreams -> ViewerIO, FileIOStream -> FileIO, PrivateIOStream ->
PrivateIO. IOStream.Handle is now called IO.STREAM (though Handle is defined
for backwards compatibility).The IO interface is now in the safe language. Note
that this means that procedures passed in as arguments, e.g. DeliverWhenProcs,
BreakProcs, etc., must all be safe, and that catch phrases for errors and signals in
the IO interface must also be safe.

A number of procedures relating to Tajo have been deimplemented, e.g.
CreateTajoSTream, GetPilotStream, and SetTTYCreate. The concept of a default
input/output stream has been decommitted, along with the procedures
GetDefaultIn, GetDefaultOut, GetDefaultError, SetDefaultStreams. Programs using
these procedures should probably be taking a UserExec.execHandle as an
argument instead, and obtaining the corresponding input/output stream from that
handle. Put now takes only three value argument instead of five, in order to
make it a fast procedure call. Use PutList to specify a call to Put with more than
three items. PrintProcs have been split into two categories: RefPrintProcs and
TVPrintProcs. AttachPrintProc has been replaced by AttachRefPrintProc and
AttachTVPrintProc. For applications involving printprocs for refs, simply you
can simply do a global substitution of RefPrintProc for PrintProc. Several new
procedures have been defined, e.g. UserAbort which takes a stream and checks to
see if the user has indicated an abort, ChangeDeliverWhen for changing the
deliverWhen proc of an edited stream, WhiteSpace which is an IO.BreakProc
which breaks on white space, NewLine which outputs a CR unless the previous
character output to this stream was a CR.

File Streams and Tioga Files: All of the file stream creation procedures in the
FileIO interface take a new BOOL parameter, "raw". Creating a file stream with
raw=FALSE specifies a check for the presence of Tioga formatting in the file. If a
file is in Tioga format, then a stream created with accessOptions=read and
raw=FALSE reads only the text in non-comment nodes of the file, not the text of
comment nodes, or the formatting information at the end. If a file is in Tioga
format, then an attempt to create a stream with raw=FALSE and
accessOptions=write or append will raise IO.Error[CantUpdateTiogaFile]. Creating
a file stream with raw=TRUE behaves as in previous version of the IO package,
i.e. every character in the file, including formatting information, will be seen by
input operations. Note that raw=FALSE is the default in the FileIO interface. The
procedure IO.CreateFileStream does not take the new parameter, and always
behaves as if raw=FALSE.

UserProfile changes: The UserProfile interface is now part of the IOPackage. The
UserProfile interface now includes the procedure CallWhenProfileChanges, which
takes a UserProfile.ProfileChangedProc. Most applications that previously read the
profile directly using UserProfile.Boolean, Number, or String should instead use
CallWhenProfileChanges with a ProfileChangedProc which then accesses the
profile. (An example is given in the UserProfile interface.) This will enable
changes to the profile to be noticed at rollback, as well as immediately following
editing of the users profile. 

The file UserProfile.doc, accessed through UserExec.Df contains a complete list of
the currently available user profile options.

Lister
-----
DF file:  [Indigo]<Cedar>Top>Lister.df
Documentation:  Lister.txt
Implementor:  Satterthwaite 

The program CL.bcd can now list individual procedures from a module.  The
command
    cl output ← input
where input is a single identifier, produces a code listing for the module
input.bcd on output.cl (input.cl by default).  The command
    cl output ← input.proc
where input and proc are single identifiers, produces a listing of all procedures
with name "proc" in the module input.bcd.   Output goes to output.cl (proc.cl by
default).  Note that the command
    cl output ← input.bcd
is no longer correct (unless "bcd" is the name of a proc you want listed).  See the
documentation for further details and options.

There are no user-visible changes to the other lister programs (Lister.bcd,
BL.bcd, GL.bcd and SL.bcd). 

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

All interfaces now in the safe language. Some name changes to arguments, e.g.
name of argument to MakeAtom changed from ref to pName, etc. List.mesa now
defines UniqueSort, which does a sort and eliminates duplicates.

Exports three interfaces: Atom, RefTab, and List.

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

The RuntimeLoader now exports a new interface named Loader. The goodies
therein should be used instead of SubSys.Load, SubSys.Run, Runtime.LoadConfig,
Runtime.NewConfig, Runtime.RunConfig, and Runtime.ConfigError. NOTE that
Runtime.ConfigError is no longer exported; Loader.Error is the replacement. See
Loader.mesa for more detail.
  
The Pilot loadstate has been expanded.

Lupine
-------
DF file:  [Indigo]<Cedar>Top>Lupine.df
Documentation:  LupineUsersGuide.press
Implementor:  Nelson (presently supported by Birrell) 

Cedar's RPC stub generator.  Please read the documentation.  Note that
RPCRuntime (including LupineRuntimeImpl) is included in the 3.2 boot file.

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

Recompilation only.

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

This release contains only small changes:

1)  MakeBoot now supports the new, larger loadstate format.

2)  Specifications in the command input of the form <configName>[ ... ] now
work.

3)  Certain file locking bugs (in the Tajo world only) have been fixed.

4)  Specifications in the command input of the form CODE[ ... ] are now
displayed properly in the loadmap file.

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

Reconstruction only.

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

MesaScanner has not changed for Cedar 3.2, except to make the interface SAFE. 
MesaScanner is exported by the boot file.

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

Recompilation for 3.2.  No other changes.

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

CEDAR interface.

Othello
-------
DF files:
  [Indigo]<Cedar>Othello>OthelloDorado.df
  [Indigo]<Cedar>Othello>OthelloD0.df
  [Indigo]<Cedar>Othello>SubOthello.df
Documentation:  "How to Use Cedar", "Pilot User's Handbook"
Implementor:  Taft 

1. The boot files are now obtained from [Indigo]<Cedar>Top>OthelloDorado.boot
and [Indigo]<Cedar>Top>OthelloD0.boot, NOT from [Indigo]<Pilot>Dorado> and
[Indigo]<Pilot>D0> as was previously the case.

2. (OthelloDorado only) The Initial Microcode Fetch and Pilot Microcode Fetch
commands have been reinstated, allowing Dorado microcode to be installed on the
disk.  (This will not be useful until a hardware change is made to each Dorado
to enable it to boot microcode from its own disk.  That conversion has not yet
begun.)  See [Indigo]<DoradoDocs>DoradoBooting.press for full details.

3. Describe Physical Volumes now displays the name and creation date of any
Initial or Pilot microcode that it discovers on the disk, and also indicates which
logical volumes contain the physical volume boot file, germ file, etc.

4. A List Remote Files command has been added.

5. Bugs in command file processing and name/password input have been fixed.

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

There are no user-visible changes in this release.  The packager has been
upgraded to accommodate new versions of BcdDefs and related interfaces.

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

Recompiled; CEDAR interface.

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

Several restrictions on the size of PGS input have been relaxed.  PGS will
produce parsing tables with packing of fields chosen according to the size of the
input grammar and will adjust the generated DEFINITIONS file appropriately.

For the benefit of the DF software, both PGS and TableCompiler now produce
BCD files containing complete information about the input files from which they
were produced.

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

This release contains only minor changes:

1)  A bug in VM allocation that tended to lead to excessive fragmentation has
been fixed.

2)  A mechanism for harmonious interaction of CedarSnapshot and transactions
has been added (wizards only).

3)  Internal changes to accommodate a larger loadstate have been made.

This release also includes a new, upward compatible version of PilotInterfaces.df,
located on the same subdirectory as the above.  The new BasicHeadsCommon
interface, MicrocodeVersion, is accessible through PilotInterfaces.df.

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

Recompiled.

PlotPackage
-----------
DF file: [Indigo]<Cedar>Top>PlotPackage.df
Documentation: (see interfaces)
Implementor: Paul Rovner 

Reconstruction only.		.  

PressScreen
-----------
DF file:  [indigo]<Cedar>Top>PressScreen.df
Documentation:
  Run PressScreen to put button at top of screen.  Red click => right half, blue
click => full screen.
Implementor:  Cattell 

Margin at left side changed so that the first few bits on the screen aren't lost by
the press printer.

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

Recompiled for 3.2 + bug fix by Schmidt.

A User.profile line of the form "Hardcopy.Tab: n" sets tab stops every n columns;
8 is the default (4 is consistent with some commonly-used Tioga styles).

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

PriorityQueue has not changed for Cedar 3.2, except to make the interface SAFE. 
PriorityQueue is exported by the boot file.

Pup
----
DF file:  [Indigo]<Cedar>Top>Pup.df
Documentation:  [Ivy]<Mesa>Doc>Pup.press
Implementor:  Birrell 

A deadlock in the BSP implementation has been fixed.

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

This a straightforward conversion of the Alto program.  It has two major
advantages over the Alto version:  it is able to watch the host it is running on,
and it should miss no packets (because Pilot uses chained ethernet i/o requests). 
Unfortunately, the performance is probably inadequate on a Dolphin.  The user
interface should be obvious.

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

Recompiled;  CEDAR interface.  Module name changes: RandomLongInt ->
Random, RandomLongIntImpl -> RandomImpl (so the "Random" interface traffics
in Cedar-standard INTs, while "RandomInt" continues to traffic in INTEGERs.) 
Procedure name changes: InitRandom -> Init, Random -> Next (so, e.g.,
"Random.Next[]" returns a random INT.)

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

CEDAR interface

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

Recompiled; CEDAR interface.  A new procedure, DeleteAllItems, makes a table
empty without destroying it.

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

Rigging has not changed much for Cedar 3.2.  Some interfaces have become
SAFE.  RefText is now part of Rigging.  Rigging interfaces are exported by the
boot file.

RPC Runtime
-------------
DF file:  [Indigo]<Cedar>Top>RPCRuntime.df
Documentation:  LupineUsersGuide.press
Implementor:  Birrell 

This provides the runtime facilities needed by Lupine stubs.  It is included in
the boot file and must NOT be loaded explicitly.

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

Much has changed in the Cedar runtime system since the last release. Leading
terms are improved BugBane reliability, preparation for Cedar 4.0, better symbol
table access, and better cooperation among the file system, loader, compiler,
binder, bringover, the file tool, and BugBane. Many interfaces have changed,
and all have been recompiled. 

RTBasic has been expanded to include definitions of Type, TypedVariable, TV
and Index. RTBasic is now referenced by RTTypes. Interfaces that used to
reference RTTypes for these definitions only should now reference RTBasic
instead. This breaks some tiresome inter-interface dependencies (RTBasic will
change much more slowly than RTTypes).

The stuff in RTTypes that dealt with conversions between Cedar values and
TV's have been moved to a new interface named "RTTBridge". Use of PROC ANY
RETURNS ANY and ERROR ANY RETURNS ANY rather than PrincOps.ProcDesc
and PrincOps.SignalDesc is made there. RTTBridge also includes a new
"Loophole" procedure. RTTypes includes a new "IsMachineDependent" procedure.
The MalformedTV ERROR in RTTypes has gone away.

RTMiniModel includes a new procedure that returns a list of all of the defs
modules exported by anything:
      GetLoadstateDefsNames: PROC RETURNS[LIST OF ATOM];

RTZones has been overhauled. Visible changes include deletion of re-definitions
from RTQuanta (you should refer directly to RTQuanta) and the following name
changes:
      MapQMz -> MapQZf
      MyZone -> ZoneFinger
      RealZone* -> Zone
      real -> prefixed (tag on ZoneFingers) 

The various SIGNALs defined in RTSymbols have been replaced by NoSymbols,
which takes a RTSymbols.FailureReason as a parameter.  

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

DF file changes only.

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

Reconstruction only.

SirPress
-------
DF file:  [Indigo]<Cedar>Top>SirPress.DF
Documentation:  see comments in SirPress.mesa
Implementor:  Plass 

Minor changes in SirPressImpl to allow larger entity lists in the output files. 
There is a a new interface called PressPrinter to allow the transmission of press
files to servers.  Since everything that SirPressImpl depends on is now in the
boot file, SirPressPackage no longer exists; both SirPress and PressPrinter will be
exported by TSetter.

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

Post-processing in the Spy runs substantially slower now (2-3 minutes on a
Dorado) because CIFS retrieves all of the symbols encountered by the Spy.  This
won't be fixed until the RTSymbols interface can be recompiled (probably two
releases away).

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

Unchanged from previous release.

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

It is now possible to unregister both InputController and TerminalSwapNotifier
procedures, using the obvious procedures in the interface.  These are intended to
facilitate development of packages that do their own terminal management
independent of Viewers and Inscript.

TJaMGraphics
-------------
DF file:  [Indigo]<Cedar>Top>TJaMGraphics.df
Documentation:  See implementor
Implementor:  Maureen Stone 

The TJaMGraphicsPackage used to be exported from ViewersAndTioga.df.  It now
stands as a separate package.
This is the link between the JaM interpreter and CedarGraphics.  Many of you
have seen this program in action during ISL demos.  Loading this package and
running (in the JaM sense) Graphics.jam creates a viewer and defines a large
number of JaM commands that help you make pictures in that viewer.  This is a
very good way to become familiar with CedarGraphics because it is very easy to
sit and experiment.

To use the package:  Run the TJaMGraphicsPackage.  Type JaM to the user exec,
which creates a JaM typescript (JaM is already running as part of Tioga).  Type
.getviewer <CR> to the JaM typescript to create the graphics viewer.  Type
(graphics.jam) .run <CR> to the JaM typescript to finish loading the rest of the
graphics commands. 

There is some very out of date information on JaM and the graphics commands
on [indigo]<JaM>JaM.press.  Still, it may be useful to those who have never used
JaM.  However, the truth is documented only in the code.  Graphics.jam,
TJaMGraphicsImpl.mesa and TJaMColorImpl.mesa are the most interesting files to
look at. 

TTYIO 
------
DF file:  [Indigo]<Cedar>Top>TTYIO.Df
Documentation:  contact implementor
Implementor:  Warren Teitelman 

This package is new for this release. (It was previously included as part of IO
and UserExec.) It includes the implementation of TTY in terms of IO (which will
be disappearing one of these days), as well as the implementation of the interface
ViewerIO, which contains the procedure CreateViewerStreams. (ViewerIO is not
included in IO, which it logically is a part of, in order to prevent circular
dependencies between IO.df and Viewer.df).

UECP
-----
DF File: [Indigo]<Cedar>Top>UECP.df
Documentation:  see interface
Implementor: Stewart

No changes.  UECP.Parse is the only procedure.  It parses a UserExec command
line rope and returns a SEQUENCE of tokens and switches.

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

Recompilation for 3.2.  No other changes.

UserExec
--------
DF file:  [Indigo]<Cedar>Top>UserExec.Df
Documentation: see comments in UserExec.mesa, Introduction.doc
Implementor:  Warren Teitelman 

All reported bugs have been fixed. Wipe your slate and start over.

All of the user exec interfaces are now safe. In addition, the interfaces have
been rearranged slightly: UserExec continues to define procedures for registering
commands, dealing with name and password, checking for abort, etc. Other
facilities that are stable and expected to be used for vanilla applications, but are
not executive functions per se, are now provided through the interface
UserExecUtilities.  The interface UserExecExtras continues to provide for more
esoteric applications involving the user executive, but you should know what
you are doing. UserExecPrivate is still around, but probably should not be being
used except for very specialized, and blessed, applications. It is liable to change
without much advance notice.

Changes to user profile are now noticed for most options when the profile is
saved.  UserProfile.doc contains a complete catalogue of currently available
profile options. RegisteredCommands.catalogue contains a complete catalogue of
available registered commands. (However, you are responsible for obtaining the
corresponding bcds.) New registered commands are now specified by including a
RegisteredCommands entry in your personal user profile, not by editing the file
RegisteredCommands.profile, which has been retired. 

The interpreter can now be called in any executive. However, breakpoints and
uncaught signals continue to be handled only in the original executive window.

New commands:

List: Prints size, creation date for the indicated files, e.g. List *.mesa$$.

Use: Reexecute indicated event(s) substituting new parameters for old, e.g.
&10 Bringover /o compile.bcd <cedarlang>compiler>compiler
&11 use binder for compiler
For complete explanation, type use? to UserExecutive.

Open:  creates viewer(s) on existing files (Previously called Old). If several
viewers are specified, the screen is not repainted until all are opened. Open also
recognizes switches for opening a viewer on the left, right, or color column,
iand full size, normal, or iconic. For complete explanation, type open? to user
exec.

New: like old, except if file does not exist, a new, empty viewer is created with
corresponding name, rather than attempting spelling correction. 

New menu buttons for user executives:

Destroy - destroys this exec.
New - creates a new user exec
Yes, No - used for confirming spelling correction
Stop - same as typing control-del, except also works when input focus is
elsewhere
Compiler - compiles the indicated viewer/selection

Miscellaneous new features;

x*? and x*↑X now work, e.g. Co*? will list all commands beginngin with Co.

Rename will let you rename a file to an existing file. (it will save the original
file on originalfile$$.)

Compiler.log and binder.log viewers are destroyed following a successful
compilation/bind. If there are errors or warnings, the corresponding log is opened
iconic if the corresponding user executive is iconic, of if it no longer holds the
input focus. In other words, if you start a compilation and then go off and start
editing while waiting, when the compilation finishes, if there are
errors/warnings, the log will be brought up iconic, and will blink every ten
seconds until the icon is either selected, or opened.

Automatic completion is provided for unambiguous commands, e.g.
ren foo.mesa ← fie.mesa.
If the command is ambiguous, an error message is printed.

Changes to spelling corrector:

The spelling corrector now divides its class of corrections into four different
classes (in order of decreasing certainty): case errors, pattern completion (i.e. *
expansion), those in which all characters are accounted for (i.e. only errors are
transpositions or doubled characters), those involving some mistakes, e.g. extra or
missing characters.  The user, via user profile option, can specify for which
corrections the user is to be informed, which corrections require confirmation,
and which corrections are disabled entirely. For those corrections requiring
confirmation, the user can also specify a timeout and defaultConfirmation value
to be used in case the user does not respond.   
The default is to require confirmation and to inform on pattern matching, and to
never timeout. However, most users will probably prefer to inform on pattern
matching, but not to require confirmation, i.e. to require confirmation only on
actual errors. For more details about modes, as well as description of procedures
that can be called from client programs, see Spell.mesa

VersionMap
-----------
DF file:  [Indigo]<Cedar>Top>VersionMap.df
Documentation:  VersionMap.mesa, VersionMapBuilder.mesa
Implementor:  Atkinson 

VersionMap is new for Cedar 3.2.  It supports access to remote symbols and
source.  Most users will not need to use VersionMap directly.  VersionMap.bcd is
exported by the boot file (VersionMapBuilder.bcd is not).

Viewers and Tioga
------------------
DF file:  [Indigo]<Cedar>Top>ViewersAndTioga.df
Documentation:  Tioga and Typesetter documentation on
	[Indigo]<Tioga>Documentation>TiogaDoc.tioga and .press.  Some Viewers
	documentation is in Introduction.doc; otherwise see implementor.
Implementors:  TiogaImplementors↑ (Scott McGregor, Bill Paxton, Michael Plass) 

--------
User Interface Changes:

The Tioga menu and keyboard commands have changed extensively.  All users
are strongly encouraged to read at least the user interface summary in the
documentation.  Note that the meaning of double-click selections have changed
and that Red vs Blue clicking of the "find" menu buttons imply forward and
backward search of the document respectively.

Tioga and Viewers have been largely converted to use CIFS, allowing long path
names in most interfaces.  Remote files loaded into Tioga viewers are currently
set up to be read-only.

Many Tioga styles have been updated considerably.  Contact a Tioga
implementor if you have styles that you need to convert.  There are some new
fonts available; see [Indigo]<Tioga>StrikeFonts> for the complete list of display
fonts.

There is a new user interface for the typesetter which is documented with the
Tioga editor.

Icons now open with the Yellow mouse button and select with the Red button. 
Blue is a nop for the time being.  A selected icon responds to single letter
command as follows:  DEL - delete, M - move, o - open.

--------
Client Interface Changes

Buttons

Buttons.Create was modified to include a ViewerClasses.ViewerRec as a parameter
(see changes to ViewerOps).

Carets

A mechanism was added to permit multiple carets and to allow for better
synchronisation of caret blinking and screen repaints.

Containers

Containers.Create was modified to include a ViewerClasses.ViewerRec as a
parameter (see changes to ViewerOps).

Cursors

Cursors.CursorArray is now defined as an Interminal.CursorArray as part of the
color viewer conversion.

Icons

The Icons interface has been extensively changed to permit clients to specify a
labelling rectangle for viewer names.  Only those icons that are required for boot
file components are now included in the standard icon file.  Interfaces are
provided to create new icon flavors from either a file or a procedure. 
Viewers.icons has become obsolete, replaced by Standard.icons, which has a new
file format.  IconsImpl has been completely converted to CIFS, so that you may
specify remote path names when creating icon flavors from a client file. 
Icons.DrawIcon has been modified to include the labelling code for applications
that wish to display icons inside a viewer.  The logical file format for an icon is
now included in the interface as a MACHINE DEPENDENT record for those
wishing to build programs that manipulate icon files.

InputFocus

InputFocus.CaptureButtons now takes a TIPTable and a NotifyProc instead of a
viewer in order to permit low-level applications to track mouse events.  There is
a new interface, InputFocus.ReleaseButtons to undo a InputFocus.CaptureButtons
and restore the normal mouse handling.

Labels

Labels.Create was modified to include a ViewerClasses.ViewerRec as a parameter
(see changes to ViewerOps).  Note that the border is no longer defaulted to
FALSE.

Menus

Menus.ReplaceMenuEntry now returns the MenuProc, clientData and fork
information for the old entry.

Rules

Rules.Create was modified to include a ViewerClasses.ViewerRec as a parameter
(see changes to ViewerOps).

TypeScript

TypeScript.Create was modified to include a ViewerClasses.ViewerRec as a
parameter (see changes to ViewerOps).  Note that the column is no longer
defaulted "left".  TypeScript.CreateChild has been subsumed by TypeScript.Create.

ViewerClasses

ViewerClasses.ViewerRec has had a number of defaults changed to permit use as
a parameter to ViewerOps.CreateViewer (See changes to ViewerOps).  Due to
some compiler limitations, some fields that should be read-only or private to the
window manager now only have comments to that effect; please heed them.  The
type WAlloc has been renamed Column and now has an additional value: color
(yes, that means Cedar 3.2 should have color viewers up and running).

ViewerOps

ViewerOps.CreateViewer has been greatly simplified by passing a
ViewerClasses.ViewerRec in as a parameter.  This permits a client much more
control over the initial state of the viewer at some cost to convenient defaults. 
All of the other interfaces that create viewers have been converted to accept a
similar parameter for uniformity.  Please heed the comments for
ViewerClasses.ViewerRec regarding which fields a client may specify.
ViewerOps.ToggleViewerPosition has been renamed to ViewerOps.ChangeColumn
and now takes a Column argument.  ViewerOps.UserToScreenCoords maps a
viewer-releative set of coordinates to their screen-relative equivalent. 
ViewerOps.BlinkIcon is a new interface of use to clients wishing to draw visual
attention to an icon.  ViewerOps.RegisterSaveNotifyProc and
ViewerOps.UnRegisterSaveNotifyProc allow a client to register a procedure that
will be called any time a viewer is saved.

ViewerTools

The new interface ViewerTools.MakeNewTextViewer replaces
ViewerTools.MakeNewTextBox and ViewerTools.MakeTextViewer. 
ViewerTools.EnableUserEdits is now added to complement
ViewerTools.InhibitUserEdits.

VirtualDesktops

VirtualDesktops.EnumerateViewers has been added to permit a client to examine
all viewers on all desktops.

WindowManager

WindowManager.StartColorViewers has been added to create another column for
color viewers and to initialise the color display. 
WindowManager.StopColorViewers performs the inverse function.  The boolean
value WindowManager.colorDisplayOn hold the current state of the color viewers
system.

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

VTables has not changed for Cedar 3.2, except to make the interface SAFE.

WalnutSend
------------
DF file:  [Indigo]<Cedar>Top>WalnutSend.df
Documentation:  Contact implementor
Implementor: <Willie-Sue> Haugeland 

WalnutSend will only allow one sender viewer at a time.  The menu changes
depending on what state the sender is in; confirmation requests are now
answered using menu items.

Waterlily
------------------
DF file:  [Indigo]<Cedar>Top>Waterlily.df
Documentation:  via the "?" facility in the UserExec.
Implementor:  Kolling 

The Tioga switch (the default) now results in double-null being seen as eof,
thanks to the changes in the IO package.

WorldVM
---------
DF file:  [Indigo]<Cedar>TeleDebug>WorldVM.df
Documentation:  none; interfaces are internal to RTTypes and BugBane
Implementor:  Birrell 

Provides access to world-swap and teledebug core images, for use by RTTypes
and BugBane.



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


The Release Master