1 04/11/77
2
3 This document lists the differences between the new version
4 2 APL, and the old Multics Version 1 APL APL User's Guide
5 Honeywell Order Number AK95 Revision 0. All page numbers refer
6 to the above manual. This document is intended for the user who
7 is converting workspaces from Version 1 to Version 2. It is not
8 intended to be a definition of Version 2 APL; indeed, only the
9 incompatible differences are listed here. A complete description
10 of Version 2 APL may be found in the revised edition of the
11 Multics APL manual, AK95-1. A summary of Version 2 APL may be
12 found in apl.summary.info.
13
14 In general, the language implemented by Version 2 APL is a
15 superset of Version 1 APL. One caveat should be noted, however.
16 Different algorithms have often been used to make Version 2 APL
17 faster than Version 1 APL. Thus, the exact values returned by
18 the trigonometric, matrix inversion, and similar operators may be
19 different in Version 2.
20
21
22 SECTION I.
23
24 No changes.
25
26
27 SECTION II.
28
29 1. The apl command page 2-1 now takes arguments, whereas old
30 apl ignored any arguments given on the command line.
31
32 2. The internal character set page 2-2 has been slightly
33 modified. The following APL graphics have been given new
34 codes, and the old codes restored to their ASCII graphic:
35 G^H__^Hr_^Ha_^Hp_^Hh_^Hi_^Hc O^H__^Hl_^Hd C^H__^Ho_^Hd_^He N^H__^He_^Hw C^H__^Ho_^Hd_^He
36 dieresis 042 245
37 omega 043 246
38 iota 044 247
39 rho 045 250
40 times 046 251
41 alpha 100 252
42 upper minus 136 253 now called overbar
43 nabla 140 254 now called del
44 left arrow 173 255
45 right arrow 175 256
46
47 3. The typing conventions for ASCII terminals has changed
48 drastically p. 2-3. Old apl used mnemonics, new apl uses
49 overstrikes.
50
51 4. Some of the exact rules for canonicalization p. 2-4 have
52 changed. It is now possible to erase a kill character by
53 overstriking the two.
54
55 5. The details of APL input line processing p. 2-6 have
56 changed. In general, such detail is unimportant to the apl
57 user.
58
59 6. The handling of the QUIT, or ATTN button, p. 2-8 is
60 different in new apl. New apl conforms more closely to the
61 usage in other apl implementations. In particular, it is no
62 longer possible to exit apl by pressing the ATTN button;
63 only the )QUIT, )OFF, or )CONTINUE system commands will exit
64 apl.
65
66
67 SECTION III.
68
69 1. The internal implementation of type p. 3-2 has changed.
70 Old apl subdivided numeric values into bit, integer, or
71 double-precision floating-point. The amount of storage
72 occupied by a numeric value depended upon its type although
73 the apl user was hard-pressed to see any difference between
74 the three types. New apl stores all numeric values as
75 double-precision floating-point numbers. A type field is
76 maintained by new apl to indicate which floating-point
77 numbers are known to be bits or integers, for efficiency.
78
79 2. The exact representation of printed numeric values p. 3-3
80 has changed. Matricies of non-negative values now omit the
81 column formerly reserved for the sign.
82
83 3. The definition of the modulo operator p. 3-11 has changed.
84 Modulo is now defined consistently for negative or zero left
85 arguments. New apl calls this operator "residue", to be
86 consistent with other implementations.
87
88 4. The definition of "fuzz" has changed in new apl "fuzz" is
89 now called the comparison tolerance. Thus, the exact
90 operation of the operators that depend on fuzz has changed
91 slightly. Most users should not notice this change.
92
93 5. The exact definition of ceiling and floor p. 3-12 has
94 changed because they depend on the comparison tolerance.
95
96 6. The sequence of values produced by the random number operator
97 p. 3-13 has changed. This operator now returns the same
98 sequence of random numbers as APL\360. The SETLINK library
99 function and the )SETLINK system command have been replaced
100 by the quad-RL system variable.
101
102 7. The exact definition of the comparison operators p. 3-14
103 has changed because they depend on the comparison tolerance.
104
105 8. The exact definition of the logical operators p. 3-15 has
106 changed because they depend on the comparison tolerance.
107
108 9. The trigonometric operators p. 3-16 have been changed to
109 use the same algorithms as the Multics PL/I, FORTRAN, and
110 BASIC compilers. This change makes new apl more consistent
111 with the other Multics languages. No loss of accuracy should
112 be noticed.
113
114 10. The definition of monadic transpose p. 3-25 has changed.
115 Old apl transposed the last two dimensions; new apl
116 transposes all the dimensions. Many apl examples in old
117 textbooks rely on the old definition; before you report a
118 bug in the new apl, check for problems with monadic
119 transpose.
120
121 11. Since the definition of the encode operator p. 3-29 depends
122 of the definition of modulo, it also changes see modulo
123 above.
124
125 12. The results returned by the deal operator p. 3-30 are now
126 identical to those returned by APL\360.
127
128 13. The definition of various i-beam functions p. 3-32 has
129 changed. to be supplied.
130
131 14. The new function editor is completely different from the old
132 function editor p. 3-49 examples.
133
134 15. The comments about dependence upon unspecified ordering of
135 evaluation p. 3-51 are just as true for new apl as it is
136 for old apl. Version 2's order of evaluation is different
137 from Version 1's. Since the APL language prohibits
138 dependence upon order of evaluation, no legal APL program
139 should be affected by this change. However, since neither
140 Version 1 nor Version 2 enforces this restriction, it is up
141 to the user to write correct programs.
142
143 16. Not all of the library functions p. 3-64 are available in
144 version 2 apl. The SETLINK, SFCI, SFEI, SFII, and FUZZ
145 functions are not available.
146
147 17. The exact positioning of the error marker, and the character
148 that is the error marker, are different in new apl. New apl
149 uses a caret and-sign rather than the vertical bar. The
150 comments on page 3-68 about which streams are used for
151 reading and writing after an error do not apply to new apl.
152
153 18. New apl causes a SYSTEM ERROR rather than a "panic" p.
154 3-74. The workspace may or may not be in a consistent state
155 after such an error. Users should proceed with caution.
156
157
158 SECTION IV.
159
160 1. The )FUZZ system command p. 4-6 has been replaced by the
161 comparison tolerance system variable, quad-CT.
162
163 2. The )SETLINK system command p. 4-7 has been replaced by the
164 random link system variable, quad-RL.
165
166 3. The )SFII, )SFEI, and )SFCI system commands p. 4-8 are not
167 available in new apl.
168
169 4. The suffix appended to the entryname of a saved apl workspace
170 p. 4-18 has been changed from ".apl" to ".sv.apl".
171
172 5. The )CONTINUE system command now names the workpace
173 Person_id.sv.apl, and places it in the user's home directory
174 p. 4-25.
175
176 6. The )LIB system command p. 4-26 no longer calls the "list"
177 command directly.
178
179 7. Version 2 is able to copy a Version 1 workspace using its
180 )V1COPY and )V1PCOPY system commands. Their syntax is
181 identical to the normal )COPY and )PCOPY, the only difference
182 is that they know how to find, and then convert, Version 1
183 workspaces to the Version 2 format. There is no way to )LOAD
184 a Version 1 workspace, it must be copied. These commands
185 automatically translate old character codes into the proper
186 new codes point #1 above. The )V1LIB and )V1DROP commands
187 may be used to list and delete Version 1 worskpaces,
188 respectively.
189
190 8. The calling sequence for external functions p. 4-29ff has
191 changed. See apl_external_fcns.runout.
192
193
194 SECTION V.
195
196 The Version 2 editor is completely different from the Version
197 1 editor. Version 1 used an editor that was similar to edm.
198 Version 2 uses an editor that is identical to the APL editor
199 used in APL\360 and APLSV. The edm-like editor is no longer
200 supported.
201
202
203 SECTION VI.
204
205 This section is a sample terminal session of Version 1 APL.
206 Most of the examples will work as shown is Version 2, but
207 some such as EPI on p. 6-10 rely on features that have
208 changed from Version 1 to Version 2 APL.
209
210
211 SECTION VII.
212
213 This section is a comparison of Version 1 APL with APL\360.
214 For a comparison of Version 2 APL with APL\260, refer to
215 apl_vs_aplsv.incompat.info and apl_vs_aplsv.extensions.info.