|
|
1.1 ! root 1: ! 2: Modifications to APL- ! 3: ! 4: April, May 1978 UCSF H. Ross Harvey. ! 5: ! 6: ! 7: FILE DATE DESCRIPTION ! 8: ---- ---- ----------- ! 9: ! 10: a9.c 24-Apr-78 Added I-beam 22: Workspace available ! 11: (free) in bytes. ! 12: ! 13: Added I-beam 32: Escape to /bin/sh. ! 14: ! 15: apl.h 27-Apr-78 Added control statements for conditional ! 16: a1.c compilation of debug code. Defining ! 17: ai.c `FULLD', or `SHORTD' will include two ! 18: aw.c levels of debugging information. The ! 19: default level is none at all. Do not ! 20: define both FULLD and SHORTD. ! 21: ! 22: a1.c 29-Apr-78 Execute() now references the opnames[] table ! 23: (FULLD version only) to make the debugging ! 24: information somewhat less cryptic. ! 25: ! 26: a0.c 2-May-78 Dealloc() now de-allocates variables of ! 27: type `EL'. This solves some of the ! 28: ws memory management problems. ! 29: ! 30: a0.c 3-May-78 Aplmod() now preserves the ttymode bits (still ! 31: sets TECO, though). It was previously very ! 32: presumptious, turning tabs off, even parity ! 33: on (!), etc. ! 34: ! 35: apl.y 11-May-78 Code for labels complete! The lexical ! 36: ai.c analyzer (yylex()+getnam()) and the ! 37: lex.c control routine for function compiles ! 38: (funcomp()) now collaborate and return ! 39: the line number (lexical value `numb') ! 40: whenever a label identifier is encountered. ! 41: An (new) initial pass picks out ! 42: labels `manually' and links them into ! 43: a list of structures which are searched ! 44: by getnam(). This list is discarded ! 45: when the function compile is complete. ! 46: ! 47: aj.c 11-May-78 Replaced `&end' with `memstart' in ! 48: clear(). Memstart is set by sbrk(0) ! 49: at the beginning of main(). This was ! 50: necessary to allow independant calls ! 51: to sbrk(), spec., in the profiler. ! 52: ! 53: ah.c 16-May-78 Added a command `)SYMBOLS' which prints ! 54: apl.h the namelist and item tables. This command ! 55: tab.c is valid for SHORTD or FULLD versions ! 56: only (see mods of 27-Apr-78). ! 57: ! 58: ad.c 16-May-78 Modified comk() so vector/scaler will ! 59: work if the vector has one element. ! 60: This is usually allowed elsewhere in ! 61: this and other apl's. ! 62: ! 63: aj.c 18-May-78 Wsload() and wssave() now buffer all ! 64: I/O operations; this cuts )LOAD and ! 65: )SAVE times by a factor of four (much ! 66: more on busy systems). Several error ! 67: messages changed. ! 68: ! 69: apl.h 23-May-78 The internal stack is now allocated ! 70: apl.s (new) dynamically. All but one stack push ! 71: a0.c operations are handled as calls to the ! 72: a1.c (case NAME) machine-coded routine 'push()'. If ! 73: aj.c the operation results in an internal ! 74: an.c stack overflow, a new and larger stack ! 75: is allocated, the old stack copied over ! 76: and then freed. This mod actually ! 77: affects almost every file because each ! 78: '*sp++=expr' was changed to 'push(expr)'. ! 79: ! 80: ai.c 23-May-78 Added insuate() and code to ex_fun() ! 81: to fetch function arguments before ! 82: the function is executed. This was ! 83: necessary to eliminate interactions ! 84: between formal and actual paramenters. ! 85: Previously, a recursive subroutine ! 86: which interchanged its arguments ! 87: between calls would clobber its own ! 88: actual parameters. ! 89: ! 90: a0.c 25-May-78 More I beams. Added the file access ! 91: a9.c system and a shell I beam. ! 92: apl.h
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.