|
|
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.