From jim Mon May 16 04:10:47 1977
	New changes to APL

	The following quad functions were added to
	facilitate UNIX process communication:


	val	left	fn	right
	ret'd	arg		arg
	----	----	----	----

	text	--	Lrd	fd	(read 1 line)
	nil	fd	Lap	text	(append text)
	nnn	pid	Lkill	signo	(sends signal to process)
	nnn	--	Ldup	fd	(duplicates file descriptor)
	nnn	--	Lrm	file	(delete file)

	NOTES:

	nnn:	value returned by system call (see chapter II)
	fd:	file descriptor
	signo:	a signal number (See kill(II) and signal(II))
	file:	a file name
	nil:	null value
	text:	a 1 or 2 dimensional character array.

	Lrd only returns 1 line at a time, and 
	a completely blank line returns null, as will an
	end of file.
	A "Lrd domain" error occurs if the input line exceeds
	200 characters.

	Lap accecpts 1 or 2 dimensional character arrays.
	One dimensional ones are written out as  1 line.
	Two dimensional arrays are written out with a '\n'
	between each horizontal row.  The last character
	output by this command is always '\n'.


From jim Wed May 11 23:18:19 1977
	New changes to APL
	Wed May 11 22:10:27 EST 1977

	The following quad functions were added to
	facilitate UNIX I/O:


	val	left	fn	right
	ret'd	arg		arg
	----	----	----	----

	fd	mode	Lopen	file
	fd	mode	Lcreat	file
	err	--	Lclose	fd
	pipes	--	Lpipe	dummy
	cnt	fd	Lread	nb
	cnt	fd	Lwrite	data
	err	--	Lchdir	file
	err	--	Lseek	(fd, pos, mode)


	mode:	number indicating the mode of the open/close/seek
	fd:	a file descriptor
	err:	an error code (see chapter II)
	pipes:	a 2R vector containing the two "pipe"
		file descriptors
	dummy:	a dummy argument which must be supplied but which
		is ignored
	file:	a nR character vector representing the file or
		directory to be manipulated.

From jim Wed May 11 00:24:18 1977
Latest APL changes:
	Tue May 10 23:21:17 EST 1977

	addition of ")vsave" system command.
	The )vsave command allows individual
	variables or functions to be selectivly
	saved in a workspace.  The syntax is

		)vsave <file>

	Vsave then prompts you for the names of 
	variables/functions to be saved.  After you'v
	entered the last one, a null name exits the
	prompt mode.  The file is built and saved
	exactly as if it were an ordinary workspace.

	Note that the workspaces thus created are
	identical to any other workspace; in particular
	it retains the current "origin", "fuzz", etc.,
	and could cause problems if you ")copy" the
	workspace in.  (This is a general problem
	with apl, and wasn't introduced by this change.)


From jim Tue May 10 00:12:46 1977
New/apl functions (9 may 77):

	Lexec xx:	Takes a two dimensional character matrix,
			formats them into an "exec" call, and 
			trys to exec that program.  xx must be
			two dimensional, and each row corresponds
			to a different argument.  The rows must be
			ZERO terminated.

	Lwait xx	System wait call. Returns a 3-vector.  The first
			element is the pid of the dead child (or -1
			if there are none); the second is the status of
			the dead kid, and the third is the termination
			code returned by it.
			"xx" is a dummy argument which must be supplied,
			but is otherwise ignored.

	Lfork xx	System fork call.  returns pid in the parent, and
			0 in the child.  xx is a dummy arg.

	Lexit nn	System exit call.  nn is the process completion 
			code, and is passed on to the parent.


From jim Fri May  6 00:06:27 1977

	*** more changes to APL ***

1) New version now accecpts full pathnames in
   ")" commands.  (I.e. it allows '/'s.)

2) Alternate character set implimented.  Alternate
   characters are formed by "<char><bs>F".
   Unfortunately, they are always printed by APL 
   as 'F'.  Also, 'F' all by itself is a legal identifier.
   This does not, I believe, conform strictly with APL
   conventions, but it's a day-one bug which would be
   fairly difficult to fix, and really shouldn't cause
   anyone any harm.

3) Lfx now accecpts an argument, x, EITHER of shape
   RRx=2 or RRx=1.  In the first case, new-lines are
   inserted between rows, and in the second, new-line
   characters are assumed to be contained in the data.


From jim Fri Apr 15 01:01:29 1977
A new "mail only" account has been set up to record
updates to APL.  You may mail to "apl", as any other
user, and a copy gets put into /usr/news/apl/changes.
(And also /usr/news/apl/.mail, a link to the above file).
This makes it easier to keep track of these things.

From jim Wed Apr 13 07:30:47 1977
new apl extensions (new/apl):

1) you may now take nothing and drop everything.

2) the debug output format has been improved slightly.

3) you may also take or drop a scalar. e.g. 1Y5 and 0Y5
   yield 5 and <null>, respectivly.  (But 1 <--> R1Y5...)

From tony Tue Apr 12 15:08:50 1977
Compress "/" has now been extended so that the
right argument can be a scalar. Source of ad.c
and /usr/bin/new/apl have been updated.

A P L   C H A N G E S

1)  Branches can be made to the first element of a vector.
  Previously the argument to a branch operator had to have
 one or zero elements.  There may be some unforeseen
 side effects from this change.

2)  The Unix editor has been improved for apl.  Better printing
 of line numbers and origin 0 have been added.

3)  A preprocessor for labels has been added. Its operation will
 be invisible to the user.


	Feb 22, 1977

4) One element vectors are now extended for dyadic scaler operators
 when both arguments are not the same shape .This is the same as
 APL/360, previously only scaler arguments were extended.


5)  Currently the best way to realize the "=" operator with
 character operands is to use something like the following:

		[0]  z_ x cheq y
		[1]  z_ 1 U (1,x) = 1,y


6) A new set of chacters has been installed. It is now possible
 to make the apl text look better when usin different types of
 terminal. See "help apl/characters" for details.

7) The apl interpereter now uses seperate i and d space. This means
 that the workspace size is now much larger.


8) Monadic eps "E" the execute operator has been modifyed so that
 a zero length argument is accepted (as in apl/360).

From jim Mon Apr 11 23:13:44 1977
(Yet another) New version of APL.  This one has only
a few changes, most importantly:

	Lfx quad function 'fixes' a function definition.
Given a rectangular character array, it treats it as
a function definion (as returned by B'...'), and records
it in the system.

	'/<bs>-' has replaced '/<bs>*'   (reduce along last coordinate)
	'\<bs>-' replaces '\<bs>*'	(expand along last coordinate)


From jim Mon Apr 11 15:02:50 1977
New version of APL.  minor changes:
'Y~' and 'U~' are synomynous with 'Y-' and 'U-',
respectivly.  Also the following new characters were
defined:

'X'		for multiply (In addition to 'M')
'%'		for divide (in addition to 'P' (bleah))

From jim Fri Apr  8 16:40:54 1977
new version of apl.  recognizes quad-function
"Lcr" (same as monadic encode on char string).
The '&' char, previously an AND operator, has been
changed to be the GREATER-EQUAL operator. The '@'
character (previously GREATER-EQUAL) is now similar
to ALPHA. 'A' and '^' still operate as AND, and
'A~', '^~' and '&~' still operate as NAND.

It also recognizes 'Y-' and 'U-' as legal overstrikes,
but have no function definition.
	--jb


