[comp.soft-sys.andrew] Ness Changes

susan+@ANDREW.CMU.EDU (Susan Straub) (10/02/90)

The RCS logs for changed ness files included in patch.007 refer to the
file changes.sept.90.  This file was inadvertantly left out of the
patch, but is reproduced below for your information:

atk/ness/objects/changes.sept.90

The following changes to ness were released in September 1990.

A. Changes Visible to Users

1. Change CURRENTMODIFICATIONLEVEL to 4.  Nessrun will now display the
version number "1.4".  (ness.ch)

2.  Added the function 
	launchApplication(marker, title, programname, enablecommands)
As described in nessfunc.doc, this function allows a program started with 
nessrun to open a window and display an application in it.  Event 
interceptions specified in the progam will be honored during interaction.
(nevent.c, call.c, nessfunc.d, nessauth.d, nessman.d)

3.  Implemented the event "becameVisible", which (after celv.c is fixed) will
enable an application started with launchApplication to initialize views
as they are displayed.  (nevent.c)

4.  If Ness loops for more than 7 seconds, a message is displayed
mentioning control-G.  (interp.c)

5.  TellUser() now calls im_ForceUpdate so that messages are immediately 
displayed to the user.  (nevent.c)


B.  Documentation Modifications

The modified files are all in atk/ness/doc and get installed in 
${ANDREWDIR}/doc/atk/ness.

1.  Removed subsection 5.2 on framecommands for launching applications and
renumbered subsections.  (nessfunc.d)

2.  Added description of the play module for playing notes on the RT.
(nessfunc.d)

3.  Added documentation of date.n.  (nessfunc.d)

4.  Described the -f switch.  (nessuser.d)

5.  Added descriptions of concatenation, seaarch, and replace.  (nesstut.d)

6.  Added happybday.d.  (nesstut.d)

7.  Added description of $Ness 1.  (nessman.d)


C.  Demonstration Software Modifications

The sources for these demos are in atk/ness/demos and get installed in 
${ANDREWDIR}/lib/ness/demos.

1.  Added a new demo for launchApplication.  It is started with the command
	nessrun -f /usr/andrew/lib/ness/demos/happybday.n
(happybday.n)

2.  Extended function main so when executed it clears the text of 
Jingle Bells.  (xmas.d)

3.  An old demo which shows how ness can do shell functions was converted to 
the new search conventions.  (badsub.n)

4.  The bank letter demo was given an entirely new screen image and the code
was updated by removing semi-colons and putting commas in declarations.  
(bank.d)


D.  Improved Error Processing

1.  Installed tests of the return values from im_create and frame_New
so memory exhaustion or other frame creation failure will not crash
ness.  (ness.c)

2.  Repaired library processing so core will no longer be dumped if a Ness 
program calls a function like rest_X() where rest is an internal function 
and there is no library named rest.  (call.c)

3.  Produce a reasonable error message for recursive compilation.  (ness.c)

4.  If an error is detected during execution, the stack is--as always--popped.
In some circumstances this popping could cause a core dump, so setjmp is now 
used to detect and handle such errors.  (interp.c)

5.  The stack pointer NSP is stored after every push or pop so
there is less likelihood of an error while popping the stack.  
(interp.c, real.c, search.c, call.c nevent.c)

6.  The instruction location is saved on every cycle so the location of errors
can be reported precisely when there are BUS or SEGV faults.  (interp.c)


E.  Bugs Corrected

1.  Fixed value_SetString and value_SetArrayElt so they do not crash when
their first argument is NULL.  (nevent.c)

2.  When a Ness object value is passed to a C function, an effort is made to 
find the correct object type as required by the function.  For instance, if 
the Ness object is a scroll and the function requires a textview, the child of
the scroll is checked to see if it is a textview.  The set of such container 
objects has now been extended to include frame and buffer.  (nevent.c)

3.  There was a bug wherein a local symbol referenced immediately after its 
declaration was treated as a global symbol.  The grammar has now been 
rearranged to treat the symbol correctly.  (nesscomp.gra)


F. Internal Improvements

(These changes will only be visible to users as faster execution or improved 
maintainability.)

1.  Added the CLASS macro to text a value to see if it is of a given class.
(envt.h)

2.  Decreased startup time by removing global variables and initializations
of arbiterviewClass, matteClass, and scrollClass  (interp.c)

3.  Use CLASS for references to arbiterviewClass, matteClass, and scrollClass
since these are no longer global.  (nevent.c)

4.  The routine ProperPtr which checks to see if a container object has the 
desired contents was simplified and regularized so it handles more containers
and is easier to extend.  (nevent.c)

5.  BUG 1334 was corrected by saving the error message in a global
variable instead of passing it as a return value through longjmp. 
(interp.c)

6.  Removed some XXX comments which suggested problems that no longer exist.
(interp.c, nevent.c)