
Modifications to APL-

	April, May 1978		UCSF		H. Ross Harvey.


FILE		  DATE			DESCRIPTION
----		  ----			-----------

a9.c		24-Apr-78	Added I-beam 22: Workspace available
						 (free) in bytes.

				Added I-beam 32: Escape to /bin/sh.

apl.h		27-Apr-78	Added control statements for conditional
a1.c				compilation of debug code.  Defining
ai.c				`FULLD', or `SHORTD' will include two
aw.c				levels of debugging information.  The
				default level is none at all.  Do not
				define both FULLD and SHORTD.

a1.c		29-Apr-78	Execute() now references the opnames[] table
				(FULLD version only) to make the debugging
				information somewhat less cryptic.

a0.c		2-May-78	Dealloc() now de-allocates variables of
				type `EL'.  This solves some of the
				ws memory management problems.

a0.c		3-May-78	Aplmod() now preserves the ttymode bits (still
				sets TECO, though).  It was previously very
				presumptious, turning tabs off, even parity
				on (!), etc.

apl.y		11-May-78	Code for labels complete! The lexical
ai.c				analyzer (yylex()+getnam()) and the
lex.c				control routine for function compiles
				(funcomp()) now collaborate and return
				the line number (lexical value `numb')
				whenever a label identifier is encountered.
				An (new) initial pass picks out
				labels `manually' and links them into
				a list of structures which are searched
				by getnam(). This list is discarded
				when the function compile is complete.	

aj.c		11-May-78	Replaced `&end' with `memstart' in
				clear(). Memstart is set by sbrk(0)
				at the beginning of main().  This was
				necessary to allow independant calls
				to sbrk(), spec., in the profiler.

ah.c		16-May-78	Added a command `)SYMBOLS' which prints
apl.h				the namelist and item tables. This command
tab.c				is valid for SHORTD or FULLD versions
				only (see mods of 27-Apr-78).

ad.c		16-May-78	Modified comk() so vector/scaler will
				work if the vector has one element.
				This is usually allowed elsewhere in
				this and other apl's.

aj.c		18-May-78	Wsload() and wssave() now buffer all
				I/O operations; this cuts )LOAD and
				)SAVE times by a factor of four (much
				more on busy systems). Several error
				messages changed.

apl.h		23-May-78	The internal stack is now allocated
apl.s (new)			dynamically.  All but one stack push 
a0.c				operations are handled as calls to the 
a1.c (case NAME)		machine-coded routine 'push()'.  If
aj.c				the operation results in an internal
an.c				stack overflow, a new and larger stack
				is allocated, the old stack copied over
				and then freed.  This mod actually
				affects almost every file because each
				'*sp++=expr' was changed to 'push(expr)'.

ai.c		23-May-78	Added insuate() and code to ex_fun()
				to fetch function arguments before
				the function is executed. This was
				necessary to eliminate interactions
				between formal and actual paramenters.
				Previously, a recursive subroutine
				which interchanged its arguments
				between calls would clobber its own
				actual parameters.

a0.c		25-May-78	More I beams. Added the file access
a9.c				system and a shell I beam.
apl.h
