-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathChangeLog.old
325 lines (323 loc) · 17 KB
/
ChangeLog.old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
;; -*- mode: text -*-
This is the ChangeLog originally kept at the start of screamer.lisp.
Referring here is a good idea when trying to figure out why thing are
the way they are...
;;; W25Sep91 Qobi
;;; Changed the who calls database code to fix the bug whereby after loading
;;; the definition of a nondeterministic function FOO
;;; (ALL-VALUES (FOO ...)) would not work because FOO would not be recognized
;;; as nondeterministic until at least one DEFUN was expanded. In the process
;;; changed the OLD/NEW-DETERMINISTIC? terminology.
;;; W25Sep91 Qobi
;;; Fixed the bug whereby a function FOO which referenced #'BAR or
;;; #'(LAMBDA (...) ... (BAR ...) ...) would not be recompiled when the
;;; deterministic status of BAR changed. This involved a polarity switch on
;;; NESTED?. This also fixed the bug whereby STATIC-ORDERING and REORDER were
;;; incorrectly classified as nondeterministic.
;;; W25Sep91 Qobi
;;; Made SOLUTION walk its argument.
;;; W25Sep91 Qobi
;;; Separated USE-PACKAGE from IN-PACKAGE.
;;; W25Sep91 Qobi
;;; Added *SCREAMER-VERSION*. Set it to 2.1
;;; H28Sep91 Qobi
;;; Added FLIP. Changed EITHER to a macro which expands into FLIP. Expunged
;;; from the code walker, any notion of EITHER being a special form. Removed
;;; the optimization that inline expanded calls to FAIL. Version 2.2.
;;; W2Oct91 Qobi
;;; Fixed bug in VARIABLES-IN. Version 2.3.
;;; R3Oct91 Qobi
;;; Added COUNT-FAILURES. Version 2.4.
;;; S13Oct91 Qobi
;;; Added :SCREAMER to *FEATURES* at the request of CGDEMARC. Version 2.5.
;;; F25Oct91 Qobi
;;; Fixed bug with FUTURE-COMMON-LISP on Symbolics with SETF, FUNCTION and
;;; LAMBDA. Version 2.6.
;;; M4Nov91 Qobi
;;; Fixed INTEGER-BETWEEN to work correctly with noninteger arguments.
;;; Removed SUBST form of Beta-conversion. Version 2.7.
;;; S1Dec91 Qobi
;;; Changed -NOT- to -NOTV- naming convention to be consistent.
;;; Changed INTEGERV to INTEGERPV, REALV to REALPV, NUMBERV to NUMBERPV and
;;; BOOLEANV to BOOLEANPV to be consistent.
;;; Can now walk EVAL-WHEN, FLET, LABELS, PROGV and THE.
;;; Can now CPS convert THE. Also added types to CPS conversion.
;;; Added WHEN-FAILING and rewrote COUNT-FAILURES.
;;; Added POSSIBLY?
;;; Added LOCAL-I/O
;;; Version 2.8.
;;; T11Feb92 Qobi
;;; Fixed PROCESS-SUBFORMS to fix bug whereby it didn't correctly walk
;;; EVAL-WHEN, FLET and LABELS.
;;; Fixed DEFUN FUNCTION-NAME to support RETURN-FROM FUNCTION-NAME in its
;;; body for both deterministic and nondeterministic cases.
;;; Fixed PEAL-OFF-DOCUMENTATION-STRING-AND-DECLARATIONS to not consider a
;;; lone string in the body as a documentation string.
;;; Version 2.9.
;;; M16Mar92 Qobi
;;; Removed redundant "Improper form" error.
;;; Changed all ''NIL and 'NIL to NIL.
;;; Reorganized FORM-TYPEs.
;;; Changed CONSTANT to QUOTE.
;;; Aesthetic capitalization of ALLOW-OTHER-KEYS.
;;; Renamed BLOCK to SEGMENT to be consistent.
;;; Added SELF-EVALUATING? and QUOTIFY and changed processing of QUOTE and
;;; VARIABLE.
;;; Enforce non-NIL function names.
;;; Added SCREAMER? argument to WALK.
;;; Allow FLET/LABELS to bind SETF functions.
;;; Version 2.10.
;;; T17Mar92 Qobi
;;; Built new mechanism to determine when to recompile functions due to
;;; changing determinism status to solve a long standing bug.
;;; PERFORM-SUBSTITUTIONS had a call to itself rather than a FUNCALL to
;;; FUNCTION.
;;; Removed redundant check for NEEDS-SUBSTITUTION? in CPS-CONVERT since that
;;; was checked by PERFORM-SUBSTITUTION anyway.
;;; Made the check performed by NEEDS-SUBSTITUTION? tighter so that fewer
;;; needless macro expansions take place for deterministic DEFUNs.
;;; Version 2.11.
;;; M6Apr92, T7Apr92, R9Apr92, M13Apr92 Qobi
;;; Changed DEFUN-COMPILE-TIME to compile functions.
;;; Fixed bug in CPS-CONVERT introduced by QUOTE change.
;;; Fixed polarity bug of FUNCTION-LAMBDA in NEEDS-SUBSTITUTION?
;;; Got rid of POSITIVE/NEGATIVE-INFINITY and (OR RATIONAL FLOAT) bogosity.
;;; Changed rules to use (NOT (VARIABLE? X)) instead of prior bogosity.
;;; Fixed fence-post error in trail unwinding.
;;; Added UNWIND-TRAIL.
;;; Added COST-FUNCTION and PREDICATE parameters to REORDER
;;; Fixed bug in DOMAIN-SIZE.
;;; Added RANGE-SIZE.
;;; Moved consistency checks to ends of rules to fix a bug.
;;; Removed unsound type propagation from rules relating to Gaussian integers.
;;; Changed naming conventions: MIN->LOWER-BOUND, MAX->UPPER-BOUND.
;;; Added fuzzy comparisons to bounds restrictions.
;;; Added *MINIMUM-SHRINK-RATIO*.
;;; Moved type consistency checks in ASSERT!-INTEGERPV etc. to beginning.
;;; Removed all fuzziness except for RANGE-SIZE. Fuzzy noninteger-real
;;; variables no longer dereference. REORDER cost function must now return
;;; non-NIL value for a variable to be forced.
;;; Fixed =-RULE to `support' complex numbers.
;;; Fixed CHECK-MEMBERV-RESTRICTION to check for groundness rather than
;;; variables.
;;; Fixed RESTRICT-UPPER/LOWER-BOUND! and ASSERT!-INTEGERPV to have integer
;;; bounds for integer variables fixing (INTEGER-BETWEENV 2.1 2.2) problem.
;;; Added RESTRICT-BOUNDS!
;;; Differentiated up versus down rules.
;;; Version 2.12.
;;; R30Apr92 Qobi
;;; Added NECESSARILY? and FOR-EFFECTS.
;;; Changed MAP-VALUES to accept multiple forms.
;;; Changed PRINT-VALUES and ALL-VALUES to use new version of MAP-VALUES.
;;; Changed all &BODY BODY to &BODY FORMS.
;;; Version 2.13
;;; S24May92 Qobi
;;; Changed failure strategy for INTEGER-BETWEEN and MEMBER-OF.
;;; Removed (DECLARE (IGNORE FORM)) from NEEDS-SUBSTITUTION?.
;;; Removed MAP-VALUES and changed all callers to use FOR-EFFECTS.
;;; Added AN-INTEGER, INTEGER-ABOVE, INTEGER-BELOW, A-REALV and AN-INTEGERV.
;;; Changed LINEAR-FORCE to no longer require that an integer variable have
;;; bounds.
;;; Fixed CPS conversion of TAGBODY so that CPS converted code always
;;; evaluates to NIL.
;;; Redid dependency calculations yet again to fix a latent bug.
;;; Removed error messages so that now can RETURN-FROM or GO to deterministic
;;; code from nondeterministic code wrapped in a FOR-EFFECTS but not in a
;;; DEFUN.
;;; Version 2.14
;;; T26May92 Qobi
;;; Fixed a bug in the redone dependency calculations.
;;; Version 2.15
;;; R28May92 Qobi
;;; Fixed a bug in CHECK-MEMBERV-RESTRICTION that prevented BIND! to a
;;; variable. Wrapped FORMS in PROGN in ALL-VALUES and PRINT-VALUES to fix a
;;; bug introduced by the elimination of MAP-VALUES.
;;; Version 2.16
;;; S14Jun92 Qobi
;;; Redid fix for CHECK-MEMBERV-RESTRICTION. Fixed a bug in dependency
;;; calculations so that mutually recursive nondeterministic functions can
;;; become deterministic. Also fixed bug so that macroexpand without compile
;;; doesn't cache definition. Redid PRINT-VARIABLE. Changed NON- to NON.
;;; Fixed bug in EQUALV. Versions of KNOWN?-TRUE-INTERNAL and
;;; KNOWN?-FALSE-INTERNAL without ASSERT!-BOOLEANPV. Type noticers.
;;; Fixed bug in RESTRICT-BOUNDS!. Fixed +V2 -V2 *V2 /V2 MINV2 MAXV2
;;; ASSERT!-=V2 ASSERT!-<=V2 ASSERT!-<V2 ASSERT!-/=V2 to run rule only after
;;; noticers have been attached.
;;; Version 2.17
;;; R18Jun92 Qobi
;;; Completely excised all support for domains containing variables.
;;; EQUAL and EQL don't use = so fixed bug that EQUALV and friends mistakingly
;;; used =V for numbers. As a result it is possible for variables to be bound
;;; to numbers, including complex and real numbers. <=V2 and <V2 asserted
;;; theirs arguments to be numbers which sould be real. Completely redesigned
;;; the constraint package. Must walk body of FOR-EFFECTS.
;;; Version 3.0
;;; W29Jul92 Qobi
;;; Implemented CGDEMARC's version of AN-INTEGER, AN-INTEGER-ABOVE,
;;; AN-INTEGER-BELOW, AN-INTEGER-BETWEEN, A-MEMBER-OF-VECTOR and
;;; A-MEMBER-OF-LIST. Added IScream-based Y-OR-N-P. Fixed stupid efficiency
;;; bug in ITH-VALUE.
;;; Version 3.1
;;; W12Aug92 Qobi
;;; Fixed bug whereby SUPPLIED-P arguments of deterministic surrogate
;;; functions were not ignored. Added VALUE-OF to all primitives. Made
;;; A-MEMBER-OF be one function. Exported *MAXIMUM-DISCRETIZATION-RANGE*.
;;; FIND-BEST now always returns only variables with non-null cost. FIND-BEST
;;; also will not return a corrupted variable, one where a divide-and-conquer
;;; step will not reduce the RANGE-SIZE. REORDER-INTERNAL no longer conses.
;;; DIVIDE-AND-CONQUER-FORCE will stop recursing if a step fails to tighten
;;; the bound it tried to. Added changes from Volker Haarslev to support
;;; MCL 2.0. Changed reference from LISP package to COMMON-LISP. The functions
;;; PRINT-NONDETERMINISTIC-FUNCTION, FAIL, UNWIND-TRAIL, PURGE and
;;; UNWEDGE-SCREAMER are now defined with DEFUN rather than COMMON-LISP:DEFUN.
;;; MCL supports ENVIRONMENT argument to MACRO-FUNCTION. Workaround MCL
;;; MAPHASH bug in CALLERS. Replaced MAPC with DOLIST everywhere.
;;; DEFSTRUCT-COMPILE-TIME VARIABLE. CHECK-LAMBDA-EXPRESSION integrated into
;;; LAMBDA-EXPRESSION?. Fixed bug in CPS-CONVERT-TAGBODY. Added DYNAMIC-EXTENT
;;; optimization.
;;; Version 3.2
;;; F21Aug92 Qobi
;;; Changed RESTRICT-ENUMERATED-DOMAIN! and RESTRICT-ENUMERATED-ANTIDOMAIN! to
;;; call SET-ENUMERATED-DOMAIN! to fix a bug whereby they didn't restrict
;;; upper and lower bounds. Also fixed many bugs in SHARE!. Fixed bug in MINV2
;;; and MAXV2 where they used INFINITY-MIN and INFINITY-MAX incorrectly.
;;; Fixed bug in CORRUPTED? to allow it to work on nonreal variables. Fixed
;;; bug in FIND-BEST so that it dereferences variables. Removed
;;; DEFSTRUCT-COMPILE-TIME VARIABLE since fixed the real bug which was that
;;; GET-SETF-METHOD needed to take the ENVIRONMENT as its argument. Changed
;;; preamble to conform to new style. Changed many calls to LOOP to TAGBODY
;;; since MCL 2.0 macroexpands LOOP into MACROLET which WALK can't handle.
;;; Changed some WHENs to IFs. GET-SETF-METHOD now takes ENVIRONMENT argument.
;;; Removed extra space in PRINT-VALUES Y-OR-N-P. The functions
;;; PRINT-NONDETERMINISTIC-FUNCTION, FAIL, UNWIND-TRAIL, PURGE and
;;; UNWEDGE-SCREAMER are again defined with COMMON-LISP:DEFUN rather than
;;; DEFUN. Modifications to RESTRICT-LOWER-BOUND!, RESTRICT-UPPER-BOUND! and
;;; RESTRICT-BOUNDS! which improves efficiency slightly. Changed calls to
;;; SEQUENCEP to TYPEP SEQUENCE. I don't know why CLtL2 doesn't have
;;; SEQUENCEP while Lucid does. Lifted generators now take optional NAME
;;; argument like MAKE-VARIABLE. Changed = 0, < 0 and > 0 to ZEROP, MINUSP
;;; and PLUSP. Changed INT-CHAR to CODE-CHAR. Changed /-RULE to not divide by
;;; zero. Also *-RULE-UP/DOWN now just FAIL on divide by zero.
;;; Version 3.3
;;; W26Aug92 Qobi
;;; Changed references to COMMON-LISP and COMMON-LISP-USER to CL and CL-USER.
;;; Added DEFINE-SCREAMER-PACKAGE and modified definition of SCREAMER-USER to
;;; use it. All calls to GET-SETF-METHOD and MACRO-FUNCTION now pass
;;; ENVIRONMENT since GENERA 8.1, Lucid 4.0.2 and MCL 2.0 all support this
;;; argument. Added Kludge to support Lucid 4.0.2 without CLIM 1.1 loaded.
;;; Added compile-time switch option whereby variables can be represented
;;; either using DEFSTRUCT or using DEFCLASS. Changed FUTURE-COMMON-LISP to
;;; LISP since now using Ansi-common-lisp syntax for Symbolics.
;;; Version 3.4
;;; F11Sep92 Qobi
;;; Implemented the missing cases of BCP from ANDV and ORV. Changed
;;; VALUE-OF as per suggestions of Volker Haarslev. Removed check whether
;;; *QUERY-IO* was same as *TERMINAL-IO* from Y-OR-N-P since *QUERY-IO* is
;;; usually a synonym stream and Lucid doesn't implement
;;; SYNONYM-STREAM-SYMBOL and even if it did, there would be no way to
;;; determine whether or not a steam is a a synonym stream.
;;; Version 3.5
;;; T27Oct92 Qobi
;;; ATTACH-NOTICER! now runs it. Load extended LOOP macro for MCL since
;;; regular MCL LOOP expands into a MACROLET which WALK can't handle.
;;; Undid change which turned LOOP into TAGBODY. Don't trail unnested LOCAL
;;; SETF and LOCAL-OUTPUT. Special case BOOLEANS. Fixed bug whereby ANDV
;;; didn't return NIL when one argument was known to be NIL and ORV didn't
;;; return T when one argument was known to be T. Added ASSERT!-ORV and
;;; ASSERT!-NOTV-ANDV optimizations. Fixed a really obscure bug in
;;; PERFORM-SUBSTITUTIONS where it didn't perform substitutions on a
;;; RETURN-FROM.
;;; Version 3.6
;;; W3Nov92 Qobi
;;; Fixed bug in DETERMINE-WHETHER-CALLERS-ARE-DETERMINISTIC. Fixed the fix
;;; to the obscure bug in PERFORM-SUBSTITUTIONS. Changed the call to
;;; CPS-CONVERT inside CPS-CONVERT-RETURN-FROM to pass (FOURTH TAG) as VALUE?
;;; to fix an obscure bug due to John Eric Fosler.
;;; Version 3.7
;;; R12Nov92 Qobi
;;; More efficient ANDV, ORV, ASSERT!-NOTV-ANDV and ASSERT!-ORV. Added
;;; COUNT-TRUES and COUNT-TRUESV. Fixed bug in TRANSFORM-ASSERT!. Added
;;; INTERNAL versions of ANDV, ORV, ASSERT!-NOTV-ANDV, ASSERT!-ORV,
;;; COUNT-TRUES and COUNT-TRUESV. Fixed bug in FUNCALLV and APPLYV. Fixed
;;; efficiency bug in CPS-CONVERT-CALL. Fixed bug in RESTRICT-INTEGER!.
;;; Version 3.8
;;; T22Dec92--R25Feb93 Qobi
;;; Exported REAL, REALP, BOOLEAN and BOOLEANP. Added support for partial
;;; evaluator. T is now SELF-EVALUATING. Fixed bug in NEEDS-SUBSTITUTION?
;;; so that NESTED? is T. Fixed CACHE-DEFINITION. Added #||# to IN-PACKAGE.
;;; Added EVAL-WHEN to REQUIRE :LOOP for MCL. Fixed bug in RESTRICT-VALUE!.
;;; Version 3.9
;;; M15Mar93 Qobi
;;; Changed meaning of POLARITY? in KNOWN?-CONSTRAINT, PROPAGATE, and
;;; ASSERT!-CONSTRAINT so that non-NIL result of FUNCALLV or APPLYV is
;;; considered to satisfy constraint.
;;; Version 3.10
;;; S9May93--S11Jul93 Qobi
;;; Added initial values for LAMBDA-LIST, BODY, ENVIRONMENT, CALLEES, and
;;; OLD-DETERMINISTIC? of FUNCTION-RECORD to allow to run under Genera 8.1.1.
;;; Changed WALK of IF to support Genera 8.3. Conditionalized
;;; SPECIAL-OPERATOR-P and GET-SETF-EXPANSION to support both CLtL2 and dpANS.
;;; CACHE-DEFINITION and friends no longer save ENVIRONMENT. Got rid of code
;;; which saved environments in FUNCTION-RECORD in CACHE-ENVIRONMENT and got
;;; rid of COPY-LIST of environments in DEFUN since that was not portable.
;;; Added #-POPLOG ENVIRONMENT to calls to GET-SETF-METHOD and MACRO-FUNCTION.
;;; Added some other conditionalization to support Poplog. Walker
;;; conditionalization for COND now just used for Explorer and not Allegro.
;;; Added wraps around MACRO-FUNCTION to support Allegro. Added support for
;;; nondeterministic functions that return multiple values. Added support for
;;; AKCL. Fixed efficiency bug in ASSERT!-CONSTRAINT. Fixed error messages
;;; for FUNCALLV/APPLYV. FUNCALLV/APPLYV now return ground value when
;;; manifest. Added arc consistency. DEFUN now returns function name.
;;; Completely obliterated all traces of FUNCTION-RECORD-ENVIRONMENT and
;;; commented all cases where current rather than saved environment is used.
;;; Various machinations to get Screamer to run under Harlequin, Allegro, MCL,
;;; and AKCL. Fixed bugs in ASSERT!-MEMBERV-INTERNAL, ASSERT!-MEMBERV,
;;; ASSERT!-NOTV-MEMBERV-INTERNAL, and ASSERT!-NOTV-MEMBERV. FUNCALLV and
;;; APPLYV now propagate to Z when all arguments become bound.
;;; Version 3.11
;;; S12Jul93 Qobi
;;; To consolidate version skew on version 3.11.
;;; Version 3.12
;;; T20Jul93 Qobi
;;; Fixed bug in -V2 (i.e. (-V2 0 <variable>)) by removing bogus special case.
;;; Version 3.13
;;; T27Jul93 Qobi
;;; Since ATTACH-NOTICER! now runs the noticer after attaching it removed the
;;; cases where the noticers were explicitly run by lifted functions.
;;; Version 3.14
;;; W22Sep93 Qobi
;;; Iterate no longer exports FINISH under AKCL since it conflicts with PCL.
;;; TERMINATE is a synonym anyway.
;;; Version 3.15
;;; T28Sep93-M4Oct93 Qobi
;;; Ported to CMU CommonLisp 17b. This change necesitated converting the
;;; LOOPs in Y-OR-N-P, UNWIND-TRAIL, VALUE-OF, VARIABLIZE, and
;;; CHOICE-POINT-INTERNAL into TAGBODY/GO combintations since CMU CommonLisp
;;; expands LOOP into MACROLET. Changed POSSIBLY-BETA-REDUCE-FUNCALL to again
;;; do SUBST optimization. Changed CPS-CONVERT-BLOCK, CPS-CONVERT-IF,
;;; CPS-CONVERT-TAGBODY, and CPS-CONVERT-CALL to use
;;; POSSIBLY-BETA-REDUCE-FUNCALL to encapsulate the *DYNAMIC-EXTENT?*
;;; interface and fix some efficiency bugs. Even Symbolics port now uses
;;; MAGIC. Set *DYNAMIC-EXTENT?* to NIL for Symbolics. Added patch files for
;;; Lucid bug-5511. *TRAIL* now has an initial size of 4096 and a growth rate
;;; of 1024 so that we don't spend much time growing it on implementations
;;; where that is inefficient.
;;; Version 3.16
;;; T26Oct93 Qobi
;;; PERFORM-SUBSTITUTIONS didn't handle FOR-EFFECTS which caused a bug when
;;; a deterministic DEFUN contained a FOR-EFFECTS which had a nested LOCAL
;;; side effect.
;;; Version 3.17
;;; M22Nov93 Qobi
;;; Fixed bug in CPS-CONVERT-RETURN-FROM that surfaced due to the previous
;;; bug fix.
;;; Version 3.18
;;; M27Dec93 Qobi
;;; Fixed bug in WHEN-FAILING so that it now nests.
;;; Version 3.19
;;; T8Mar94 Qobi
;;; Fixes to make work under Allegro 4.2 and Genera 8.3.
;;; Future work includes integrating the Allegro\PC and CLISP mods,
;;; fixing the conditionalization on the DEFTYPE BOOLEAN, and checking that
;;; the new official DEFTYPE BOOLEAN corresponds to what Screamer expects.
;;; Version 3.20