Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • gerd's avatar
    c1effa7a
    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
    History
    The SEQUENCE-COUNT type was previously used in c:fndb, but since
    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.