"src/compiler/main.lisp" did not exist on "f4f6325e34564593199574698de96ae446345b6e"
- May 05, 2004
-
-
rtoy authored
in general.)
-
- Apr 01, 2004
-
-
rtoy authored
(defun foo (f d) (declare (type (simple-array single-float (*)) f) (type (simple-array double-float (*)) d)) (setf (aref f 0) (aref d 0))) doesn't produce any warnings and generates completely bogus code. Don't know what the real answer solution is, but turning off the assert-continuation-type for a single-use continuation fixes this, which is what 18a used to do. There are probably other bugs that this hides.
-
- Jul 01, 2003
-
-
gerd authored
error in bounds checking. Observed by Christophe Rhodes on cmucl-imp.
-
- Apr 27, 2003
-
-
gerd authored
source transforms so that they don't accept more than one index, for better error messages.
-
- 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.
-
- Feb 22, 2003
- Oct 15, 2002
-
-
toy authored
array-element-type-treated-as-declaration wherein the compiler believes type declarations on array elements without checking them, e.g. (DECLAIM (OPTIMIZE (SAFETY 3) (SPEED 1) (SPACE 1))) (DEFSTRUCT FOO A B) (DEFUN BAR (X) (DECLARE (TYPE (SIMPLE-ARRAY CONS 1) X)) (WHEN (CONSP (AREF X 0)) (PRINT (AREF X 0)))) (BAR (VECTOR (MAKE-FOO :A 11 :B 12))) prints a structure out. This patch makes the compiler use the specialized (upgraded) element type instead of the declared element type for aref.
-
- 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.
-
- Jul 24, 1998
-
-
dtc authored
remove unnecessary conditionals.
-
- Mar 21, 1998
-
-
dtc authored
-
- Feb 24, 1998
-
-
dtc authored
continuation use before asserting the type.
-
- Feb 13, 1998
-
-
dtc authored
o Add an optional environment argument to constantp; ignored by CMUCL. o Add the :element-type keyword to make-string.
-
- Jan 10, 1998
-
-
dtc authored
element type rather than a possibly more specific declared element type. When there is only a single use of the continuation the type is also asserted to be the declared element type. This can pickup errors such as reading an uninitialised element type is not of the declared type.
-
- Jan 09, 1998
-
-
dtc authored
is not a subtype of the element-type. According to ANSI CL the result of accessing uninitialised elements is undefined, and currently in CMUCL it can cause problems not detect in safe code when the default element not a subtype of the element-type - at least a compiler note is generated now.
-
- Nov 01, 1997
-
-
dtc authored
types. Adds storage classes to the backend for these so they can be stored in registers or on the stack without consing; new primitive types etc. Also adds (simple-array (complex {single,double}-float)) array types to avoid consing and speed vectors operations. All these changes are conditional on the :complex-float feature. More work is needed to exploit these changes: improving the type dispatch in the various function; maybe compiler transforms or more VOPs to handle common functions inline.
-
- Aug 24, 1997
-
-
dtc authored
which the result can be determined from the argument type. This stops compiler warning messages produced by the with-array-data macro when the array is known not to be a subtype of (simple-array * (*)).
-
- Apr 01, 1997
-
-
dtc authored
(signed-byte 16), (signed-byte 30), (signed-byte 32). These patches include the general support and the x86 backend support; more to follow. The important changes are conditional on the :signed-array feature so shouldn't affect the source without this feature. This work has been driven by Raymond Toy.
-
- Oct 31, 1994
-
-
ram authored
-
- Feb 11, 1994
-
-
cvs2git authored
-
- Aug 25, 1993
-
-
ram authored
-
- May 12, 1993
-
-
ram authored
not sure yet.
-
- May 11, 1993
-
-
ram authored
-
- Jan 13, 1993
-
-
cvs2git authored
-
- Nov 12, 1991
-
-
ram authored
-
- Nov 09, 1991
- Jun 05, 1991
-
-
wlott authored
if the created array is known to be simple. Otherwise, someone might adjust it, which would cause the type to be wrong.
-
- Apr 24, 1991
-
-
ram authored
-
- Feb 20, 1991
-
-
ram authored
-
- Jan 14, 1991
-
-
ram authored
-
- Jan 13, 1991
-
-
ram authored
Added transform for VECTOR-LENGTH that returns the constant result when the type has specified dimensions.
-
- Nov 23, 1990
-
-
wlott authored
much as possible instead of relying on (nonexistent) optimizers to simpilfy it later down the line. Also fixed a spelling error.
-
- Nov 16, 1990
-
-
wlott authored
it wasn't a constant. Ooops.
-
- Nov 13, 1990
-
-
wlott authored
optimizer.
-
- Nov 10, 1990