Skip to content
Snippets Groups Projects
  1. Apr 30, 2003
  2. 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
  3. 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
  4. 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
  5. Apr 24, 2003
  6. 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
  7. Apr 22, 2003
  8. Apr 21, 2003
  9. 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
  10. 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
  11. Apr 17, 2003
  12. 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
  13. 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
  14. Apr 14, 2003
  15. 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
  16. Apr 11, 2003
  17. Apr 01, 2003
  18. Mar 31, 2003
    • 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
  19. Mar 30, 2003
    • gerd's avatar
      Update CLOS STRUCTURE-CLASSes on structure changes. · 3279c041
      gerd authored
      	* pcl/braid.lisp (ensure-non-standard-class): Add optional
      	parameter existing-class.
      	(reinitialize-structure-class): New function.
      	(toplevel): Push it on kernel::*defstruct-hooks*.
      
      	* code/defstruct.lisp (*defstruct-hooks*): New variable.
      	(%defstruct): Call these hooks.
      
      	* tools/pclcom.lisp (find-package): Remove
      	pcl::reinitialize-structure-class from kernel::*defstruct-hooks*.
      3279c041
  20. Mar 27, 2003
    • toy's avatar
      Clean up code. Remove the bootstrap-conc-name reader conditional · 36c19961
      toy authored
      stuff that was introduced to fix the conc-name inheritance bugs.  We
      keep the #-bootstrap-conc-name stuff.
      36c19961
    • gerd's avatar
      * code/hash-new.lisp (make-hash-table): Put warning about · 9e89e4e5
      gerd authored
      	creating weak tables in #-gencgc.
      
      	* lisp/gencgc.c (gc_assert): Ensure macro expansion is always a C
      	statement.
      	(struct hash_table): New struct.
      	(HASH_TABLE_SIZE, EQ_HASH): New macros.
      	(weak_hash_tables): New variable.
      	(survives_gc, u32_vector, free_hash_entry, record_for_rehashing)
      	(scav_hash_entries, scav_weak_entries, scan_weak_tables)
      	(scav_hash_vector): New functions.
      	(scav_vector): Removed.
      	(scav_weak_pointer, trans_weak_pointer, scan_weak_pointers):
      	Cleaned up.
      	(gc_init_tables): Use scav_hash_vector instead of scav_vector.
      	(garbage_collect_generation): Call scan_weak_tables.
      	(everywhere): Add casts, change format strings, etc. to placate
      	the compiler.
      
      	* lisp/FreeBSD-os.h: Fix a function prototype.
      9e89e4e5
  21. Mar 26, 2003
    • gerd's avatar
      * pcl/boot.lisp (parse-defmethod): Rewritten for clarity. Signal · 1e88e890
      gerd authored
      	an error for most cases of null qualifiers.
      
      
      	Improve DESCRIBE on generic functions.
      
      	* pcl/env.lisp (method-specialized-lambda-list): New function.
      	(describe-object): Use it, and use generic-function-lambda-list.
      
      	* pcl/methods.lisp (generic-function-pretty-arglist)
      	(method-pretty-arglist): Remove.
      
      	* pcl/generic-functions.lisp (generic-function-pretty-arglist)
      	(method-pretty-arglist): Remove.
      
      
      	AMOP compliance fixes: Reintroduce class METAOBJECT, make
      	GENERIC-FUNCTION a subclass of STANDARD-OBJECT, remove STD-OBJECT.
      	This basically reverts a change of dtc from 1998.
      
      	* code/describe.lisp (describe-instance): Check for
      	standard-object, not pcl::std-object.
      
      	* pcl/pkg.lisp ("PCL", "CLOS-MOP"): Export more stuff.
      
      	* pcl/generic-functions.lisp: Remove some of the useless comments.
      
      	* pcl/slots.lisp (slot-value-using-class, setf slot-value-using-class)
      	(slot-boundp-using-class, slot-makunbound-using-class): Specialize
      	on standard-object.
      
      	* pcl/slots-boot.lisp (get-optimized-std-accessor-method-function):
      	Remove an std-class-p case.
      
      	* pcl/methods.lisp (update-std-or-str-methods): Use
      	standard-object instead of std-object.
      	(mec-all-classes-internal): Use *the-class-standard-object*
      	instead of *the-class-std-object*.
      	(class-test): Don't consider *the-class-std-object*.
      
      	* pcl/low.lisp (pcl-instance-p) [deftransform]: Use
      	standard-object instead of std-object.
      
      	* pcl/init.lisp (update-instance-for-different-class)
      	(update-instance-for-redefined-class): Specialize on
      	standard-object instead of std-object.
      
      	* pcl/dfun.lisp (accessor-values-internal, make-accessor-table)
      	(make-accessor-table): Use *the-class-standard-object* instead of
      	*the-class-std-object*.
      
      	* pcl/defs.lisp (toplevel): Don't declare *the-class-std-object*
      	special.
      	(standard-object): Single superclass slot-object.
      	(metaobject): New class.
      	(std-object): Class removed.
      	(specializer): Superclass metaobject.
      	(definition-source-mixin, plist-mixin): Superclass
      	standard-object, no metaclass.
      	(documentation-mixin, dependent-update-mixin): No metaclass.
      	(slot-definition, method, generic-function, method-combination):
      	Superclass metaobject.
      
      	* pcl/cache.lisp (raise-metatype): Don't consider std-class.
      
      	* pcl/braid.lisp (bootstrap-meta-braid): Don't braid std-class.
      	(bootstrap-initialize-class): Don't consider std-class.
      1e88e890
    • gerd's avatar
      dcb6a044
Loading