Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to RELEASE_18b:||(view) (annotate)|
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Fix headed boilerplate.
Fix compiler warnings.
Changed erroneous calls to be :ERROR kind, not :FULL
If *byte-compiling*, only do compile-type type error checking. No check conversion is done, since this violates stack discipline. All type checks are done on the fly during byte conversion.
Don't call CONTINUATION-CHECK-TYPES if PROBABLE-TYPE-CHECK-P returns NIL. This lets type checking assume that the continuation does have a DEST, and also avoids some unnecessary work.
Moved *type-predicate* and *predicate-type* into the backend structure.
Added a switch the disable the complementing optimization of type checks (for testing its effectiveness.)
New file header with RCS stuff.
Changed MAYBE-NEGATE-CHECK to allow weakened checks to be simple when debug-info is not important, so that we can use CHECK-STRUCTURE, etc. Changed TYPE-TEST-COST to penalize predicates as opposed to check templates so that we will use a check template in favor of a "same cost" predicate.
Pass *backend* to sc-or-lose and friends to assure we extract the info from the correct backend for runtime.
Changed DO-TYPE-WARNING to ignore uses whose type is NIL, and also tweaked output format a bit.
Force type check conversion of continuations that may be forced to unknown values even though they are really fixed-values (and people might be depending on the check, like non-local RETURN-FROM.) Don't do an inline type check for the argument of a full call, even when we are "sure" that there is an error, since the user might want to fix the problem by redefining the callee, and not by changing the caller (or callers.) Spiffed up type error warnings to use the variable we are binding to as context when doing a local call. Also, instead of saying we "got NIL", we say we got an expression that didn't return. Changed type error checking to consistently flame about all losing uses of a continuation, instead of maybe only flaming about the first one, or even totally missing it if the first use we see is non-erroneous but hairy. Also, don't do type warnings on continuations with :DELETE TYPE-CHECK, since those are the result of hairy type checks.
Fixed GENERATE-TYPE-CHECKS to always give a warning when any use of the continuation is incorrect, instead of only warning when the first use happened to be incorrect.
Flushed cleanup hackery, since the lexenv changes make this unnecessary.
Added use of *unparse-function-type-simplify* to prevent complex function types from being checked, even when they are buried in other types (like OR.)
Added NO-FUNCTION-VALUES-TYPES and made people use it so that they aren't confused by complex function types.
Changed MAYBE-WEAKEN-CHECK to accept a type if there is a predicate for that exact type, rather than possibly blowing off the check entirely.
Oops... We can't negate a check and weaken it too. Choose whichever is cheaper.
Changed PROBABLE-TYPE-CHECK-P to return T when we are unable to determine when VALID-FUNCTION-USE is unable to determine the whether the template applies. If the VOP operand is unrestrictive, but we know it is of an unknown type, then the type-operation will fail but the template can still be selected, since PRIMITIVE-TYPE isn't fooled.
Changed type check weakening not to choose supertypes that are union types (i.e. COMMON). Also, we don't preserve the original check just because there was some supertype predicate.
Type warnings only inhibited when brevity = 3.
Added type check weakening (conditional on policy), and made type checks be totally flushed only when safety = 0. Also, when printing a type warning, check to see if the losing value is a constant, and if so, print it instead of its type.
Added code to make known calls unknown if there is an argument with a type error.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|