Date: 16 Dec. 1982 9:18 am PST (Thursday)
Sender: Levin.PA
Subject: Cedar 3.5.1 release
From: Release Master
To: CedarUsers↑, CedarImplementors↑
cc: CedarCoordinators↑
Reply-To: Levin

Cedar 3.5.1 is released.

This is a maintenance release that fixes a collection of small but troublesome
bugs.  No public interfaces have changed, so recompilation should not generally
be necessary.


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

This procedure assumes you have a machine with Cedar 3.5 installed.  Otherwise,
refer to the "Setting Up Your Disk" section of

     [Indigo]<Cedar>Documentation>Introduction.press

for further information.  (Be sure you have the version corresponding to this
release.)

  1)  Get to Othello.

  2)  [Optional] Erase your Client volume by typing Erase<CR> to Othello.  You
      will be prompted for the volume name, type Client<CR>.  Confirm as
      necessary.

  3)  Type @<CR> to Othello.  You will be prompted for a command file
      name.  Type either
	[Indigo]<Cedar>Top>DoradoRelease.cm          or
	[Indigo]<Cedar>Top>D0Release.cm
      as appropriate.  New boot files will be fetched for all volumes, as well as
      new microcode and germ files.

  4)  On Dorados, Cedar will automatically be booted upon completion of the
      command file.  (Actually, the CoPilot volume will first be booted, after
      then a physical volume boot will occur, causing Cedar to be booted.  Be
      patient.)  On Dolphins, the Alto partition will be booted; hold down
      the "P" key and press the boot button to boot Cedar.

  5)  During the installation dialogue, you will be asked if you wish to use a
      personal DF file.  You may safely answer "yes" to this question.


Significant Changes in this Release
----------------------------------

This section describes the components that have changed significantly since
Cedar 3.5.  As usual, unless otherwise indicated, DF files are on
[Indigo]<Cedar>Top> and documentation files are on
[Indigo]<Cedar>Documentation>.

BugBane
--------
DF file:  BugBane.df
Documentation:  BugBane.doc, BugBane.shorts, BugBane.wish
Implementor:  Atkinson 


Many BugBane and BBV interfaces were recompiled due to a minor change in
BBEval.  Visible changes in BugBane for Cedar 3.5.1 include the following:

Variant record constructors work for positional constructors.  Variant record
constructors with components specified by name do not yet work (it's quite
tricky).  With this change, it is now possible to interpret the follwing:

	&nn ← Convert.ValueToRope[[signed[1]]]

Setting the global context (evaluating "&nn ← GlobalFrameName") now works in
an action area that resulted from a breakpoint or uncaught signal.  This feature
used to work only for action areas that had no associated local frame.

BugBane's search rules now work somewhat better.  However, the results of
OPEN are still not recognized.  A simple name is looked up in the following
order:

	1: special symbols (TRUE, FALSE, and &-variables) are found first

	2: the global context, if any (set by evaluating ← globalFrameName)

	3: the call stack associated with the action area (up to 8 frames deep)
	  (this includes searching the statically enclosing local and global frames
	   for every local frame searched)

	4: the global frame table

BugBane should no longer confuse the local and global frames when examining
the stack for global frame initialization procedures (this was actually an
AMTypes bug).

TSetter
-------
DF file:  TSetter.df
Documentation:  TSetterDoc.Tioga, [Indigo]<Cedar>TSetter>TSViewer.mesa
Implementor:  Plass 

A "TSetter" command is now registered with the user exec.  The first parameter is
the server, and the rest of the line is a list of files to typeset.  See
TSetterDoc.Tioga for more details.

There is a new interface, TSExtras, that contains a client-callable procedure to
typeset and print a tioga viewer.  This will be moved to the TSViewer interface
with the next major release.

UserExec
--------
DF file:  UserExec
Documentation:  [Indigo]<Cedar>UserExec>UserExec.mesa,  UserExecUtilities.mesa,
Spell.mesa
Implementor:  Warren Teitelman 

yellow click compile button => same semantics but bind. blue click means both.

(1) You can now set the global default context in an action area, either by
typing ← modulename (as before), or via a new user execcommand SetContext.
SetContext{cr} will reset the global default context, i.e. clear it out.

(2) blue clicking Showframe now shows args + allVars, i.e. the local variable for
the current block, plus all blocks that this is nested inside of, up to the last
procedure boundary. If you just want to see the local variables of this block,
type Showframe Vars. 

(3) Showframe now permits a new option: is globals, e.g. Showframe args globals
will print current frame, plus its arguments, plus the globals of the global frame
that is the globalparent of the current frame. You can specify the globals option
with the mouse by holding the control key down when you click Showframe,
e.g. Red-CTRL is same as Showframe globals, Yellow-CTRL is Showframe args
globals, and Blue-CTRL is Showframe args allVars globals.

(4) to see the globals of a random global frame, i.e. one not necessarily the global
parent of a local frame on your callstack, evaluate the global frame with !
following the expression, e.g. FooImpl!.

(5) new feature on compile button:
yellow => bind, blue => compile and bind. Here is how it works.
If you select something and yellow click compile, same as bind applied to
whatever you selected.
However, if the selection is a point selection, and the corresponding viewer does
not end in .config, then the AMModel is used to find the name of the config. In
this case, the binding will not actually proceed until you type CR, i.e. the
command will load the input buffer with Bind corresponding-config, and wait
for you to type a CR (or edit the line).
Similarly, blue click compile button with point selection generates a line of the
form Compile file; Bind config, but no CR at the end. Thus, if I edit the file
UserExecImpl and blue click compile, I get Compile userexecimpl; Bind
userexecutive.

Note that in order for this to work, the config has to have been run. However,
since it never does the bind automatically unless you explicitly select the name
of the config, no harm is done in trying. 

(6) The list command now prints total number of pages.

UserProfile
----------
DF file:  UserProfile.df
Documentation:  [Indigo]<Cedar>UserProfile>UserProfile.mesa, UserProfile.press,
UserProfile.doc
Implementor:  Warren Teitelman 

New: Previously part of IO.df.  

ViewersAndTioga
------------------
DF file:  ViewersAndTioga.df
Documentation:  Introduction.tioga, TiogaDoc.tioga, Viewers.tioga
Implementor:  McGregor 

Rollback, Checkpoint, and booting now require confirmation if there are any
dirty viewers.

Walnut, WalnutSend
--------------------
DF file:  Walnut.df
Documentation:  HowToUseWalnut.tioga, HowToUseWalnut.press
Implementor:  Willie-Sue Haugeland 

Message Sending Changes:  (Walnut and WalnutSend)

The sending menu items have been re-arranged; Send is on the far left and is
no longer guarded.  AbortSend has been added, and is visible as long as it is
possible to abort the send.  You may have multiple Sends in progress.

While a message is being sent, the msg viewer is not edittable.

Walnut Changes:

If you blue-click Send, you will get a NewForm in the current sender once the
message has been accepted by Grapevine.
The log file is not written under the transaction machinery (this saves space and
time if your files are local).  The log file gets flushed after every write.

Very few database commits are done automatically: (1) at startup if the log
contains entries not in the database, (2) when you Quit, (3) when you do a
CloseAll.

The [New Version] herald has returned to the Walnut control window,
indicating when there are uncommitted database updates.

In MsgSet displayers, the first part of the To: field is shown, if the message is
from the logged-in user.

Two user profile options have returned:
Walnut.InitialActiveOpen: FALSE		-- if TRUE, a viewer on the
Active MsgSet is opened
Walnut.InitialActiveIconic: FALSE		-- if TRUE and
InitialActiveOpen=TRUE, the viewer
											
		on the Active MsgSet is initially iconic

The executive command WalnutExpunge now does not return control to the
executive until the expunge has completed.  Note that the WalnutOldMailReader
executive command returns after queuing an action and before the work is done.


Bug Fixes in this Release
------------------------

The following packages (most of which are in the boot file) contain minor bug
fixes:

  AMModel
  AMTypes
  BBV
  BugBane
  DoradoMicrocode
  Graphics
  IO
  Loader
  Othello
  PilotKernel
  SafeStorage
  ScanZones
  SirPress
  TSetter
  UserExec
  ViewersAndTioga
  ViewRec
  Walnut


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

The following problem is known to exist in Cedar 3.5.1:

1. If a rollback is forced to prompt for credentials, it will probably hang up.  To
avoid this, set the physical volume boot file to Othello.  Subsequently, when you
boot the physical volume (a "P" boot on a Dolphin or triple "C" boot on a
Dorado), Othello will get control and ask for credentials.  You can then use
Othello's Rollback command to rollback your client volume without further
prompting for credentials.  This bug will be fixed in Cedar 3.5.2.



Questions about changes in individual components should be addressed to their
implementors.


The Release Master