Permalink
Browse files

split of the DEFPACKAGE and old ChangeLog into separate files

  • Loading branch information...
1 parent 6cedf73 commit 84a38720134338dd6170267c0b6c6a87bdbc16fa @nikodemus committed Nov 3, 2010
Showing with 446 additions and 417 deletions.
  1. +325 −0 ChangeLog.old
  2. +118 −0 package.lisp
  3. +3 −1 screamer.asd
  4. +0 −416 screamer.lisp
View
@@ -0,0 +1,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
Oops, something went wrong.

0 comments on commit 84a3872

Please sign in to comment.