Skip to content
Snippets Groups Projects
  1. May 15, 2003
    • gerd's avatar
      Functions used in the implementation of TRACE can be traced using · d517659e
      gerd authored
      	encapsulation.  Use encapsulation for functions from a given list
      	of packages to automate this.
      
      	* src/code/ntrace.lisp (*trace-encapsulate-package-names*): New
      	variable.
      	(trace-call): Temporarily restore the unencapsulated definition of
      	the function.
      	(encapsulate-by-package-p): New function.
      	(trace-1): Use it.
      
      	* src/code/exports.lisp ("DEBUG"): Export
      	*trace-encapsulate-package-names*.
      
      	* src/docs/cmu-user/debugger.tex (section{Function Tracing}):
      	Add *trace-encapsulate-package-names*.
      d517659e
  2. May 14, 2003
  3. May 12, 2003
  4. May 11, 2003
  5. May 10, 2003
  6. May 09, 2003
  7. May 08, 2003
    • gerd's avatar
      Fix problems with THE detected by Paul Dietz' tests. This also · 2e8488e0
      gerd authored
      	fixes the problem that CMUCL generated RETURN-MULTIPLE without a
      	good reason.
      
      	* src/compiler/checkgen.lisp (values-types-asserted): Use
      	coerce-to-values again.  Add fixme comments and #+nil code for
      	known problems; these aren't new problem, though.
      
      	* src/code/type.lisp (coerce-to-values): Don't add &rest t,
      	which is the business of THE.
      	(values) <type translator>: Disallow &key and &allow-other-keys.
      
      	* src/compiler/ir1tran.lisp (the) <IR1 translator>: Add &rest t
      	where appropriate, or-in null type into required types, for
      	missing values.
      2e8488e0
  8. May 05, 2003
  9. May 04, 2003
  10. May 03, 2003
  11. Apr 30, 2003
    • gerd's avatar
      Compile-time checking of calls to FORMAT. · c6e55e56
      gerd authored
      	* src/code/format.lisp (min/max-format-arguments-count)
      	(min/max-format-args, min/max-conditional-args): New functions.
      
      	* src/compiler/srctran.lisp (check-format-args): New function.
      	(format): New transformer for simple-string format control
      	and (<= speed space), checking number of args.
      	(format) <transforms>: Use min/max-format-arguments-count.
      
      	* src/code/package.lisp (unintern): Add missing args to format.
      
      	* src/compiler/disassem.lisp (maybe-note-associated-storage-ref):
      	Remove extraneous format arg.
      c6e55e56
    • gerd's avatar
      * src/code/error.lisp (condition-slot): Add documentation slot. · b55eff8f
      gerd authored
      	(define-condition): Parse :documentation.
      b55eff8f
  12. Apr 29, 2003
    • gerd's avatar
      Make ALLOCATE-INSTANCE work on structures defined with DEFSTRUCT. · 032e23fc
      gerd authored
      	Detected by Paul Dietz' tests.
      
      	* src/pcl/std-class.lisp (make-defstruct-allocation-function):
      	New function.
      	(shared-initialize) <structure-class>: Use it.
      032e23fc
    • gerd's avatar
      Make DIRECT-SLOT-DEFINITION-CLASS and EFFECTIVE-SLOT-DEFINITION-CLASS · 93379ab5
      gerd authored
      	AMOP compliant.  From Kevin Rosenberg on cmucl-imp 2003-04-29.
      
      	* src/pcl/std-class.lisp (direct-slot-definition-class):
      	(effective-slot-definition-class): Change methods accordingly.
      	(make-direct-slotd): Apply direct-slot-definition-class to
      	initargs instead of funcalling it.
      	(compute-effective-slot-definition): Likewise for
      	effective-slot-definition-class.
      
      	* src/pcl/generic-functions.lisp (direct-slot-definition-class)
      	(effective-slot-definition-class): Make initargs a &rest arg.
      93379ab5
  13. Apr 25, 2003
  14. Apr 22, 2003
    • gerd's avatar
      Fix ANSI test SPECIAL-OPERATOR.2. · d6beb116
      gerd authored
      	* src/compiler/ir1tran.lisp (declare) <ir1 translator>: Remove.
      	(ir1-convert): Signal an error for (declare ...).
      d6beb116
  15. Apr 21, 2003
  16. Apr 19, 2003
  17. Apr 18, 2003
    • 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
  18. Apr 17, 2003
  19. Apr 15, 2003
  20. 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
  21. Apr 11, 2003
  22. 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
  23. Mar 27, 2003
  24. Mar 23, 2003
  25. Mar 03, 2003
  26. Feb 28, 2003
  27. Feb 25, 2003
    • emarsden's avatar
      Add support for hardware cycle counters for Pentium and UltraSPARC. This · fe40afd6
      emarsden authored
      uses the CPUID + RDTSC instructions on Pentium, and reads the %TICK register
      on UltraSPARC. Accessible via the VM::READ-CYCLE-COUNTER VOP that returns
      two (unsigned-byte 32) values, that are the lower and upper components of a
      64-bit cycle count (actually 63 bits for UltraSPARC). Basic support for
      counting the number of CPU cycles has been added to the TIME macro.
      fe40afd6
  28. Feb 24, 2003
  29. Feb 17, 2003
  30. Feb 06, 2003
  31. Jan 30, 2003
  32. Nov 14, 2002
Loading