Skip to content
Snippets Groups Projects
  1. May 05, 2003
  2. May 04, 2003
  3. May 03, 2003
  4. May 01, 2003
  5. Apr 30, 2003
  6. Apr 29, 2003
    • emarsden's avatar
      · 2048dc3a
      emarsden authored
      Make SIMPLE-PARSE-ERROR subclass PARSE-ERROR (fixes bug in PARSE-INTEGER
      reported to cmucl-help by Johannes Grødem).
      2048dc3a
  7. Apr 27, 2003
    • toy's avatar
      Remove all stuff relating to :negative-zero-is-not-zero which enabled · a26fba41
      toy authored
      the non-ANSI feature of making -0 and +0 different in
      type-specifiers.  Internal code still assumes this in various places,
      however.  Since our type system is much smarter now than when this was
      written (and handles type unions and member types much better),
      perhaps we should clean this up?
      a26fba41
  8. Apr 26, 2003
    • gerd's avatar
      CLASS-04.[2345], CONDITION-27-READER-IS-GENERIC, compiled. Avoid · ce55ee05
      gerd authored
      	constant-folding tests for generic-functionness.  Fix intersection
      	of function types and generic-function.
      
      	* src/code/type.lisp (type-intersection2): Handle intersection
      	of FUNCTION-TYPEs with non-FUNCTION-TYPEs, like generic-function.
      
      	* src/compiler/typetran.lisp (ir1-transform-type-predicate)
      	(typep): Handle generic-function type tests differently.
      
      	* src/code/class.lisp (class) <:complex-subtypep-arg1>:
      	New type method for function = (function * *).
      ce55ee05
  9. Apr 24, 2003
  10. Apr 23, 2003
    • gerd's avatar
      Final fix for -0d0/0d0 and member types from Christophe · f6fdc008
      gerd authored
      	Rhodes.
      
      	* src/code/type.lisp (member-type): Add :constructor.
      	(make-member-type): New function.
      	(not) <type translator>: Treat member types specially.
      f6fdc008
    • gerd's avatar
      Make the type system more forgiving wrt to unknown types. · 23f8e9ce
      gerd authored
      	Temporary fix for -0d0/0d0 and member types.
      
      	* src/code/type.lisp (reparse-unknown-type): New function.
      	(type-union2, type-intersection2): Use it.
      	(hierarchical-intersection2, hierarchical-union2): Moved to
      	typedef.lisp.
      	(member): Temporary fix for -0d0/0d0 problem; Christophe Rhodes is
      	working on the real fix.
      
      	* src/code/typedefs.lisp (type-class): Use hierachical-union2
      	and hierachical-intersection2 as inits for slots simple-union
      	and simple-intersection, like SBCL does.
      	(hierarchical-intersection2, hierarchical-union2): Moved
      	here from type.lisp.
      23f8e9ce
  11. Apr 22, 2003
  12. Apr 21, 2003
  13. Apr 19, 2003
    • gerd's avatar
      Add destructuring support to &REST, &BODY, &WHOLE. Detected · 1ca1159c
      gerd authored
      	by Paul Dietz' ANSI tests.
      
      	* src/code/defmacro.lisp (parse-defmacro-lambda-list): Add
      	&parse-body, replacing &body (<body> <decls> <doc>).  Add
      	destructuring support to &rest, &body, &whole.
      
      	* src/code/eval.lisp (lambda-list-keywords): Add &parse-body.
      
      	* src/code/exports.lisp ("EXTENSIONS"): Export &parse-body.
      
      	* src/hemlock/table.lisp (do-words, with-folded-string):
      	* src/hemlock/macros.lisp (with-pop-up-display):
      	* src/compiler/macros.lisp (deftransform):
      	* src/compiler/ir1tran.lisp (symbol-macrolet, let, locally)
      	(let*, flet, labels) <ir1-translator>:
      	* src/code/package.lisp (do-symbols, do-external-symbols)
      	(do-all-symbols):
      	* src/code/macros.lisp (defun, prog, prog*, with-open-file)
      	(with-open-stream, with-input-from-string)
      	(with-output-to-string, do, do*):
      	* src/code/mach.lisp (gr-bind):
      	* src/code/extensions.lisp (do-anonymous, do-hash, defun-cached):
      	Use &parse-body instead of &body.
      1ca1159c
    • toy's avatar
      32677b40
  14. Apr 18, 2003
    • gerd's avatar
      Fix for RANDOM-NSET-EXCLUSIVE-OR test case. NSET-EXCLUSIVE-OR · eba7fd9d
      gerd authored
      	used to return different results than SET-EXCLUSIVE-OR, and its
      	algorithm doesn't appear to be easily fixable.  Wait for someone
      	who cares enough to fix the algorithm.
      
      	* src/code/list.lisp (nset-exclusive-or): Implement in terms of
      	SET-EXCLUSIVE-OR.
      eba7fd9d
    • gerd's avatar
      Make condition readers/writers generic functions, as required by · 897b08d2
      gerd authored
      	ANSI.  Detected by Paul Dietz' ANSI test suite.
      
      	* src/tools/worldcom.lisp: Set
      	conditions::*make-condition-accessor-methods* to nil.
      
      	* src/tools/pclcom.lisp: Convert condition accessor gfs back
      	to normal functions.
      
      	* src/code/error.lisp (*make-condition-accessor-methods*)
      	(*early-condition-accessors*): New variables.
      	(make-early-condition-accessors-generic)
      	(make-condition-accessor): New functions.
      	(%define-condition): Use make-condition-accessor.
      	(define-condition): Define methods if
      	*make-condition-accessor-methods*.
      
      	* src/pcl/fixup.lisp (toplevel): Call
      	conditions::make-early-condition-accessors-generic.
      897b08d2
  15. Apr 17, 2003
  16. Apr 16, 2003
    • gerd's avatar
      Fix test cases CONTINUE.2, STORE-VALUE.2, USE-VALUE.2 from Paul · 5eaefe41
      gerd authored
      	Dietz' test suite.  From SBCL.
      
      	* src/code/error.lisp (define-nil-returning-restart): Invoke
      	the restart returned from find-restart.
      5eaefe41
    • gerd's avatar
      ANSI fixes. · 3c3b64ad
      gerd authored
      	* src/code/symbol.lisp (get-properties, getf): Signal type-error
      	instead of program-error.
      3c3b64ad
    • toy's avatar
      Back out the debug return changes. It causes errors in some of the · 38d0404a
      toy authored
      ansi-tests.
      38d0404a
    • gerd's avatar
      Further speed-up of the type system. Avoid compiler notes. · aebfebbd
      gerd authored
      	The type system is now as fast as it were before.
      
      	* src/code/type.lisp: Collect type-class and structure definitions
      	at the beginning of the file to avoid compiler notes and get
      	slot accessor inlining.
      	(with-types-array, *ctype-arrays*): Removed.
      	(simplify-unions): Rewritten simplify-union-types.
      	(simplify-intersections): Rewritten simplify-intersection-types.
      	(%type-union2): Removed, inlined in type-union2.
      	(%type-intersection2): Removed, inlined in type-intersection2.
      aebfebbd
  17. Apr 15, 2003
    • gerd's avatar
      Speed up the type system. · 4898b8c2
      gerd authored
      	* src/code/type.lisp (*ctype-arrays*): New variable.
      	(with-types-array): New macro.
      	(simplify-union-types, simplify-intersection-types): Use it,
      	return lists.
      	(%type-union, %type-intersection): Handle lists instead of
      	vectors returned by the simplification functionts.
      4898b8c2
  18. Apr 14, 2003
  19. 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
      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
  20. Apr 11, 2003
  21. Apr 01, 2003
Loading