Skip to content
Snippets Groups Projects
  1. Apr 14, 2003
  2. Apr 13, 2003
    • gerd's avatar
      * src-head/code/type.lisp (type-might-contain-other-types-p): · e5551afd
      gerd authored
      	Declaim inline.
      e5551afd
    • emarsden's avatar
    • gerd's avatar
      * src/pcl/dfun.lisp (cache-miss-values-internal): · 366188f2
      gerd authored
      	Push wrappers on *cmv-stack* instead of classes.
      
      	* src/pcl/rt/defgeneric.lisp (method-class.0): New test.
      
      	* src/pcl/gf-call-optimization.lisp (compute-calls):
      	Simplify.
      
      	* src/pcl/cache.lisp (probe-cache): Remove version in #+nil.
      366188f2
    • gerd's avatar
      Fix CONDITION-x-SLOTS* ANSI test failures. · cdb3a46f
      gerd authored
      	* src-types/code/error.lisp (condition-reader-function): Loop over
      	actual initargs first because these determine how slots are
      	initialized.
      	(compute-effective-slots): Don't duplicate slots of the class
      	whose effective slots are computed.
      cdb3a46f
    • gerd's avatar
      Don't export a class DIRECTORY from CL. Fixes ANSI test case · 81978758
      gerd authored
      	ALL-EXPORTED-CL-CLASS-NAMES-ARE-VALID.
      
      	* src-types/code/unix.lisp (%directory): Struct renamed from
      	directory, give it a :conc-name and :constructor for compatibility.
      
      	* src-types/code/unix-glibc2.lisp: Likewise.
      81978758
    • 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
  3. Apr 11, 2003
  4. Apr 08, 2003
  5. Apr 07, 2003
  6. Apr 06, 2003
    • gerd's avatar
      32a31d27
    • gerd's avatar
      * pcl/rt/defmethod.lisp (defmethod-forwared-referenced.[01]): · 4b3f74bb
      gerd authored
      	New tests.
      4b3f74bb
    • gerd's avatar
      Fix TYPEP/SUBTYPEP problems with unfinalized and · e41ce355
      gerd authored
      	forward-referenced classes.
      
      	* pcl/std-class.lisp (class-finalized-p): Method removed.
      	(*allow-forward-referenced-classes-in-cpl-p*): New variable.
      	(make-preliminary-layout): New function.
      	(shared-initialize) <:after std-class>: Call
      	make-preliminary-layout.
      	(shared-initialize) <:after forward-referenced-class>: New method
      	calling make-preliminary-layout.
      	(shared-initialize) <:after structure-class>: Set finalized-p slot
      	to true.
      	(update-slots): Likewise.
      	(shared-initialize) <:after condition-class>: Likewise.
      	(inform-type-system-about-class): New method for
      	forward-referenced classes.
      	(class-has-a-forward-referenced-superclass-p): Moved to info.lisp.
      
      	* pcl/cpl.lisp (compute-std-cpl-phase-1): Allow forward-referenced
      	classes in the cpl if *allow-forward-referenced-classes-in-cpl-p*
      	is true.
      
      	* info.lisp (class-has-a-forward-referenced-superclass-p): Moved
      	here from std-class.lisp.
      
      	* pcl/cache.lisp (make-wrapper): Handle forward-referenced
      	classes.
      
      	* pcl/braid.lisp (bootstrap-initialize-class): Set the finalized-p
      	slot.
      
      	* pcl/defs.lisp (class): Add slot finalized-p.
      
      	* pcl/rt/defclass.lisp (defclass-types.[0-5])
      	(defclass-forward-referenced-class.0): New tests.
      
      	Misc fixes.
      
      	* pcl/defclass.lisp (expand-defclass): Remove code papering
      	over a potential compiler bug.
      
      	* pcl/macros.lisp (find-class-cell-make-instance-function-keys):
      	Removed.
      	(setf find-class): Add errorp and environment
      	parameters, call (setf kernel::find-class) if new-value is nil.
      e41ce355
  7. Apr 03, 2003
  8. Apr 01, 2003
  9. Mar 31, 2003
    • toy's avatar
      Fix typo. It's umul, not mul. · b0f6f29e
      toy authored
      b0f6f29e
    • gerd's avatar
      Name local functions (FLET ...) or (LABELS ...). · cf3f726a
      gerd authored
      	* compiler/ir1tran.lisp (*current-function-names*): New variable.
      	(find-lexically-apparent-function): Use lexenv-find-function.
      	(ir1-convert): Likewise.
      	(ir1-convert-lambda): Bind *current-function-names*.
      	(do-macrolet-stuff): Likewise.
      	(extract-flet-variables): Determine function name from
      	(%cleanup-function): Use lexenv-find-function.
      
      	* compiler/main.lisp (compile): Bind *current-function-names*.
      
      	* compiler/macros.lisp (lexenv-find-function): New function.
      
      	* code/fdefinition.lisp (flet, labels): Define function names.
      
      	* pcl/walk.lisp (environment-function): Activate code for
      	handling flet/labels function names.
      cf3f726a
  10. Mar 30, 2003
  11. Mar 29, 2003
  12. Mar 28, 2003
    • gerd's avatar
      Break some vicious metacircles. · d7cc7527
      gerd authored
      	* pcl/dfun.lisp (*standard-classes*, *standard-slot-locations*):
      	New variables.
      	(compute-standard-slot-locations, standard-slot-value)
      	(standard-slot-value/gf, standard-slot-value/method)
      	(standard-slot-value/eslotd, standard-slot-value/class)
      	(maybe-update-standard-class-locations): New functions.
      	(*cmv-stack*): New variable.
      	(cache-miss-values-internal): Use it to detect vicious circles,
      	and call break-vicious-metacircle.
      	(break-vicious-metacircle, accesses-standard-class-slot-p)
      	(find-standard-class-accessor-method): New functions.
      
      	* pcl/std-class.lisp (update-slots): Call
      	maybe-update-standard-class-locations.
      
      	* pcl/fixup.lisp (toplevel): Call compute-standard-slot-locations.
      d7cc7527
  13. Mar 27, 2003
Loading