Title: APL Authors: John D. Bruner Lawrence Livermore Laboratory P.O. Box 808, L-276 Livermore, CA 94550 (415) 422-0758 Prof. Anthony P. Reeves Cornell University, Phillips Hall Ithaca, NY 14853 (607) 256-4296 Description: This is Purdue/EE's APL, which runs on both PDP-11's and VAX-11/780's. This APL originally was written by Ken Thompson at Bell. It went to Yale for a while, and came to Purdue via a Chicago distribution in (I think) 1976. Jim Besemer (now with Tektronix in Oregon) made many of the extensions to the original V6 PDP-11 version, including quad I/O functions, the state indicator, internal label processing, and a number of primitive functions. I began support of APL when Jim left in 1978 and have been handling it since then. The driving force behind all of the development and maintenance of APL at Purdue has been my major professor, Dr. Anthony P. Reeves. Please forward bugs/comments/suggestions to Dr. Reeves or to me (UUCP site "pur-ee", login names "reeves" and "bruner"). Installation: The makefiles included will generate APL for non-virtual-UNIX systems (PDP-11's or 32/V VAX's). To compile and load APL type the command "make rebuild". To compile a single-precision version (APL2) type "make apl2". On PDP-11's the single-precision version is useful since it allows approximately twice as many items in the workspace; on the VAX the single-precision version is unnecessary (and unused here at Purdue). I don't know how well the sources relate to USG UNIX, but if any changes are required I suspect they are minor. On a PDP-11 I recommend using the file "makefile.pdp" -- this uses "ax.pdp.s" instead of "ax.c" and results in a little more intelligent handling of floating-point exceptions. If you wish to compile APL for virtual-memory UNIX (Berkeley UNIX), edit "makefile" so that the line: CFLAGS=-O reads CFLAGS=-O -DVMUNIX The editor "xed" is Purdue/EE's text editor, an extended version of the editor "ed". APL calls the editor with some special flags for special character mapping, intelligent overprinting, and APL-style line numbering; therefore, we recommend that you use our editor. We install it as /usr/bin/xed for use as a general-purpose editor as well; however, it is only necessary to install it as /bin/apled or /usr/bin/apled. If you want to use some other editor with APL you may have to edit "ai.c" so that it doesn't call the editor with flags meant for "xed". If "xed" is linked to "eed" it will run with a somewhat less general set of command options; this restricted editor is used at Purdue/EE to introduce editing to new users without scaring them away by all of the power in "xed". The help files for the "he" command in XED and EED are "xed.doc" and "eed.doc"; the source for xed/eed/apled should be modified to contain whatever pathname is chosen for their eventual home. (If you are on a PDP-11, compile "reset.s" with "xed.c" -- see the editor source for details.) The program "aplcvt" converts workspaces between PDP-11 and VAX formats. If you are on a PDP-11 do NOT use the optimizer (-O flag) when you compile this -- the optimizer produces incorrect code. The program "cata" (which can be linked to, and called as, "catb") prints APL functions in ASCII files with line numbers. When called as "catb", overstrikes are printed on separate lines.