|
|
BSD 3.0
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.