Skip to content
Snippets Groups Projects
  1. May 05, 2004
  2. Apr 01, 2004
    • rtoy's avatar
      Lynn Quam on cmucl-imp on 2004-03-30 says · b6353a20
      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.
      b6353a20
  3. Jul 01, 2003
  4. Apr 27, 2003
  5. Apr 13, 2003
    • gerd's avatar
      The SEQUENCE-COUNT type was previously used in c:fndb, but since · c1effa7a
      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.
      c1effa7a
  6. Feb 22, 2003
  7. Oct 15, 2002
    • toy's avatar
      Port over SBCL's fix for the Entomotomy bug · 7fbf5590
      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.
      7fbf5590
  8. Jul 06, 2000
    • dtc's avatar
      Reworking of the values-type system to overcome a number of inconsistencies · daf333f4
      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.
      daf333f4
  9. Jul 24, 1998
  10. Mar 21, 1998
  11. Feb 24, 1998
  12. Feb 13, 1998
    • dtc's avatar
      ANSI CL compat. changes: · 2e5e2342
      dtc authored
      o Add an optional environment argument to constantp; ignored by CMUCL.
      o Add the :element-type keyword to make-string.
      2e5e2342
  13. Jan 10, 1998
    • dtc's avatar
      The aref derive type optimiser should have been returning the upgraded · 59b281ce
      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.
      59b281ce
  14. Jan 09, 1998
    • dtc's avatar
      Generate a compiler note if the default initial element for make-array · f437871a
      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.
      f437871a
  15. Nov 01, 1997
    • dtc's avatar
      Improved support for (complex single-float) and (complex double-float) · 4c3b1bb6
      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.
      4c3b1bb6
  16. Aug 24, 1997
  17. Apr 01, 1997
    • dtc's avatar
      Support for some specialised signed array types: (signed-byte 8), · d5d4504f
      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.
      d5d4504f
  18. Oct 31, 1994
  19. Feb 11, 1994
  20. Aug 25, 1993
  21. May 12, 1993
  22. May 11, 1993
  23. Jan 13, 1993
  24. Nov 12, 1991
  25. Nov 09, 1991
  26. Jun 05, 1991
  27. Apr 24, 1991
  28. Feb 20, 1991
  29. Jan 14, 1991
  30. Jan 13, 1991
  31. Nov 23, 1990
  32. Nov 16, 1990
  33. Nov 13, 1990
  34. Nov 10, 1990
Loading