- Apr 13, 2003
-
-
gerd authored
C::SEQUENCE-COUNT /= KERNEL::SEQUENCE-COUNT, it was an unknown type. Please read boot4.lisp. * src/code/exports.lisp ("KERNEL"): Export sequence-count. * src-types/bootfiles/18e/boot4.lisp: New file. Make compute-effective-slot-definition AMOP compliant. Patch from Kevin Rosenberg. * src/pcl/std-class.lisp (compute-slots): Pass slot name to compute-effective-slot-definition. (compute-slots): Likewise. (compute-effective-slot-definition): Add parameter slot-name. * src/pcl/generic-functions.lisp (compute-effective-slot-definition): Add second parameter slot-name. Allow non-keyword keyword names in lambda lists. This fixes test cases STRUCTURE-BOA-TEST-15/[1-8], and FLET.30. * src/compiler/node.lisp (arg-info): Accept non-keyword keyword names. * src/code/type.lisp (key-info): Likewise. Fix type system bugs detected by Paul Dietz' test suite This is to a large extent a port from SBCL. * src/code/type.lisp: Mostly rewritten with code ported from SBCL. * src/compiler/typetran.lisp (ir1-transform-type-predicate): Return nil if type is *empty-type*. (source-transform-negation-typep) (source-transform-intersection-typep): New functions. (source-transform-array-typep): Handle unknown array element types. (typep): Add handling of negation and intersection types. * src/compiler/srctran.lisp (make-canonical-union-type): Simplify, now that #'type-union is smarter. (ir1-transform-<-helper): Give up on non-numeric, non-member types. * src/compiler/checkgen.lisp (type-test-cost): Add a case for intersection-type. (values-types-asserted): Don't use coerce-to-values, see the comment there. * src/compiler/array-tran.lisp (array-dimension): Accept :maybe as array-type-complexp. * src/code/pred.lisp (%%typep): Add handling of negation-types and intersection-types. Change cases of hairy-types, union-types, and arrays with unknown element type. * src/code/exports.lisp ("KERNEL"): Export negation-type, negation-type-type, intersection-type, intersection-type-types. * src/code/class.lisp (sealed-class-intersection): Return one value. (class :simple-intersection): Return one value, return nil in the default case. (class :complex-subtypep-arg2): New type method.
-
- Mar 22, 2003
-
-
gerd authored
= pcl:class part. To get it booted from 18e, cross-compile using boot1.lisp as bootstrap.lisp in pmai's build scripts, then do a normal compile with boot2.lisp as bootstrap.lisp with the resulting Lisp. * code/byte-interp.lisp, code/defstruct.lisp, code/describe.lisp: * code/error.lisp, code/exports.lisp, code/hash-new.lisp: * code/hash.lisp, code/macros.lisp, code/misc.lisp: * code/package.lisp, code/pred.lisp, code/sharpm.lisp, code/type.lisp: * compiler/dump.lisp, compiler/fndb.lisp, compiler/globaldb.lisp: * compiler/proclaim.lisp, compiler/typetran.lisp, compiler/xref.lisp: * compiler/generic/primtype.lisp, compiler/generic/vm-type.lisp: Changes for to use kernel::class etc. * code/class.lisp (toplevel): Shadow class, built-in-class etc. (class): Give it conc-name %class-. (toplevel) [#+bootstrap-lisp-class=pcl-class]: Define old accessors. (everywhere): Use new class accessors. * compiler/generic/vm-fndb.lisp (%make-instance): Change from unsafe to flushable and movable. * code/ntrace.lisp (expand-trace, untrace): Changes for method tracing. * code/profile.lisp (profile, profile-all, unprofile): Method profiling. * pcl/*.text, pcl/bench.lisp, pcl/extensions.lisp: * pcl/fast-init.lisp, pcl/precom1.lisp, pcl/precom4.lisp: * pcl/structure-class.lisp, pcl/user-instances.lisp: Removed. * tools/pclcom.lisp: Changes for my PCL and lisp:class = pcl::class.
-
- Mar 18, 2003
-
-
toy authored
bug cons-union-method-inaccurate.
-
- Feb 03, 2003
-
-
toy authored
into (cons t). o The type (cons nil *) and (cons * nil) are both of type nil. Check for this and make it so.
-
- Dec 07, 2002
-
-
toy authored
by explicitly checking for this case. o In member :complex-subtypep-arg2, handle the case of the second being of type NULL. This makes (subtypep 'atom 'list) work. All the type stuff needs more work. May use some ideas from SBCL?
-
- Dec 04, 2002
-
-
toy authored
is the type T. (This still needs more work.) o Put back the original hairy :complex-subtypep-arg1 case to handle AND specifiers. This still needs more work too.
-
- Nov 13, 2002
-
-
toy authored
Bug noted by Paul Dietz, fix by Gerd Moellmann.
-
- Oct 23, 2002
-
-
toy authored
subtypep-too-certain-about-satisfies-undefined-function Port over the SBCL fix.
-
- Oct 22, 2002
-
-
toy authored
numeric-types-with-empty-ranges-cause-errors We silently accept numeric types with empty ranges and treat that as the empty type.
-
- Oct 16, 2002
-
-
toy authored
atom-type-not-completely-understood-by-subtypep This is ported from the fix used by SBCL.
-
- Aug 23, 2002
-
-
pmai authored
reporting in several places to be more specific and/or ANSI compliant. The patches have been modified to make use of the new common simple-programm-error function where applicable.
-
- Aug 12, 2002
-
-
toy authored
needs work, but should handle most common cases.
-
- Feb 23, 2002
-
-
pmai authored
report meaningful subtype information for types like ratio, which are internally expanded to hairy and types, but where the standard requires us to return valid subtype relationships with other built-in types, like e.g. rational.
-
- Nov 22, 2001
-
-
pw authored
-
- Mar 04, 2001
-
-
pw authored
-
- Jul 07, 2000
-
-
dtc authored
return values, and replace them with function argument declarations which the compiler move carefully checks.
-
- Jul 06, 2000
-
-
dtc authored
causing problems: o Redefine coerce-to-values to convert a single value type into (values type), rather than the former definition (values type &rest t). A single value type such as fixnum is now equivalent to (values fixnum). Values-type-union and values-type-intersection will canonicalise values types with a single value such as (values fixnum) back to a single value type such as fixnum. o Now when the compiler makes assertions for the first value of continuations that may be generating multiple values it asserts the type as (values type &rest t), or as (value &optional type &rest t) if it is not sure that the continuation does generate a value. o Enhance the type check generation to better handle the now common values types with optional and rest arguments. Add the new function Values-types-asserted which converts asserted optional and rest arguments to required arguments that have been proven to be delivered, Thus an assertion such as (values &optional fixnum &rest t) will generate a fixnum type check if the proven type if (values t). o The compiler is now far more likely to pickup attempts to use an assertion to select a subset of values. For example (the (values fixnum) (values x y)) will generated a compiler warning. o Update single values type assertions where appropriate to clarify that the received values may be optional or that multiple values may be received. For example, a macro argument which had been asserted to be a list via (the list ,...) would now be asserted to be (the (values &optional list &rest t)) etc. o Have the IR1 translator for THE convert single value types into (values &optional type &rest t) so that code such as (the fixnum (values x y)) will still work acceptably. This does not restrict the possible type assertions as the values types may be used and are not modified.
-
dtc authored
an optional or rest argument, and enhance it to return the *null-type* if there are no values. Also no longer inline this function as it is becoming more complex.
-
- Jun 27, 2000
-
-
dtc authored
returning nil when both types had a rest type even if these were type=; from Robert Maclachlan.
-
- May 02, 2000
-
-
dtc authored
The new cons-type which maintains the specialised CAR and CDR types: o Typep recurses, checking the respective car and cdr specialisations; two cons-types are type= if both their car and cdr types are type=. o Subtypep recurses, applying subtypep to the respective car and cdr types. If both sub-tests return true then the cons test returns true with a win only when both sub-tests win. If either sub-test returns false then the cons tests returns false with a win if either of sub-tests win. o Type-intersection is applied to the respective car and cdr types, and wins if both win. o The type-union of two cons-types handles cases for which either the respective car or cdr types are type=, in which case type-union is applied to the other type. This avoid returning an overly general result. o Ctype-of a cons object simply returns (cons * *); and does not attempt to recurse. o The compiler recursively checks the specialised type of the cons-type, which allows it to also use this type information to derive the result type car and cdr. Inline code is currently only generated when natively compiling.
-
- Jan 10, 2000
-
-
dtc authored
bignum type.
-
- Aug 19, 1998
-
-
dtc authored
without the long-float feature, and the numeric-contagion of a real with a long-float is a long-float with the long-float feature; from Raymond Toy.
-
- May 19, 1998
-
-
dtc authored
hairy subtype methods.
-
- May 13, 1998
-
-
dtc authored
some problems with the 'atom type which is defined as (not cons).
-
- Apr 17, 1998
-
-
dtc authored
which is a little better than Nil which is a subtype of everything.
-
- Feb 02, 1998
-
-
dtc authored
have make-numeric-type canonicalize the bounds so that a lower bound of (-0.0) becomes 0.0 and an upper bound of (0.0) becomes -0.0. Also fixes the problem of (subtypep '(float (-0.0)) (float 0.0)), returning nil when it should be T. This is because (float (-0.0)) is canonicalized to the identical (float 0.0).
-
- Jan 21, 1998
-
-
dtc authored
:negative-zero-is-not-zero feature; from Raymond Toy.
-
- Jan 08, 1998
-
-
dtc authored
zero-not-zero feature the sign of the float zeros should not matter; and with this feature -0.0 and 0.0 are adjacent.
-
- Jan 05, 1998
-
-
dtc authored
specifiers by Raymond Toy. With these changes -0.0 and 0.0 and considered separate on the float type intervals which is more natural for many arithmetic function derive type optimizers. These changes are dependent upon the :negative-zero-is-not-zero feature.
-
- Dec 18, 1997
-
-
dtc authored
type union and intersection which were all doing the opposition of what they should have. E.g. The intersection of (double-float 0d0) and (double-float (0d0)) was returning a bound of 0d0 whereas (0d0) is more restrictive.
-
- Sep 05, 1997
-
-
dtc authored
-
- Oct 31, 1994
-
-
ram authored
-
- Feb 11, 1994
-
-
cvs2git authored
-
- Sep 03, 1993
-
-
ram authored
-
- Sep 01, 1993
-
-
ram authored
-
- Aug 31, 1993
- Aug 25, 1993
-
-
ram authored
-