Skip to content
Snippets Groups Projects
  1. Aug 27, 2003
    • gerd's avatar
      *** empty log message *** · b9724a06
      gerd authored
      b9724a06
    • gerd's avatar
      *** empty log message *** · 9fa361aa
      gerd authored
      9fa361aa
    • gerd's avatar
      Type error being signaled in volatile-info-lookup. · f3ea082f
      gerd authored
      	Reported by Gareth McCaughan on cmucl-imp for 18e.
      
      	* src/compiler/globaldb.lisp (compact-info-lookup)
      	(volatile-info-lookup): Don't declare hash parameter as type
      	index because type index doesn't include most-positive-fixnum.
      f3ea082f
    • gerd's avatar
      Changes in generic function's method combination don't take · 68f099c4
      gerd authored
      	effect until a method is added or removed from the gf.
      	Reported by Andreas Fuchs on a SBCL mailing list.
      
      	* src/pcl/methods.lisp (reinitialize-instance)
      	<standard-generic-function>: Make it an around method, call
      	flush-effective-method-cache if the method combination changes.
      
      	* src/pcl/dfun.lisp (flush-effective-method-cache): New function.
      	(*effective-method-cache*): Renamed from *effective-method-table*.
      68f099c4
  2. Aug 26, 2003
  3. Aug 25, 2003
    • gerd's avatar
      Dynamic-extent support for x86. Use boot16.lisp for · f3fe0b8d
      gerd authored
      	bootstrapping.
      
      	* src/bootfiles/18e/boot16.lisp: New file.
      
      	* src/docs/cmu-user/extensions.tex (Dynamic-Extent Declarations):
      	New section.
      
      	* src/compiler/x86/macros.lisp (dynamic-extent-allocation):
      	Rename from stack-allocation, save an instruction.
      	(allocation): Don't call trust-dynamic-extent-declaration-p.
      
      	* src/compiler/x86/alloc.lisp (%dynamic-extent-start)
      	(%dynamic-extent-end): New vops.
      	(list-or-list*): Add constant arg dynamic-extent.
      	(fixed-alloc): Likewise.
      
      	* src/compiler/generic/vm-ir2tran.lisp (do-fixed-alloc): Call
      	fixed-alloc with dynamic-extent arg.
      
      	* src/compiler/hppa/alloc.lisp (%dynamic-extent-start)
      	(%dynamic-extent-end): Add dummy vops.
      	* src/compiler/mips/alloc.lisp:
      	* src/compiler/ppc/alloc.lisp:
      	* src/compiler/alpha/alloc.lisp:
      	* src/compiler/rt/alloc.lisp: Likewise.
      
      	* src/compiler/seqtran.lisp (mapper-transform): Add dynamic-extent
      	declarations.
      
      	* src/compiler/node.lisp (continuation): Add slot
      	dynamic-extent.
      	(cleanup): Add :dynamic-extent to type of slot kind.
      
      	* src/compiler/knownfun.lisp (dynamic-extent-closure-safe):
      	New attribute.
      
      	* src/compiler/ir2tran.lisp (ir2-stack-allocate): New function.
      	(ir2-convert-closure): Handle dynamic-extent case differently.
      	(%dynamic-extent, %dynamic-extent-start, %dynamic-extent-end)
      	<ir2-convert>: New optimizers.
      	(list, list*): Handle dynamic-extent.
      
      	* src/compiler/ir1tran.lisp (*trust-dynamic-extent-declarations*)
      	(*dynamic-extent-trace*): New variables.
      	(trust-dynamic-extent-declaration-p): New function.
      	(process-dynamic-extent-declaration)
      	(dynamic-extent-allocation-p, dynamic-extent-closure-args)
      	(gen-%dynamic-extent, with-dynamic-extent): New functions/macros.
      	(ir1-convert-combination): Handle dynamic-extent closure args.
      	(ir1-convert-combination-args): Add arg dynamic-extent-args.
      	Set continuation-dynamic-extent for these args.
      	(process-dynamic-extent-declaration): Rewritten.
      	(ir1-convert-dynamic-extent-bindings): New function.
      	(ir1-convert-special-bindings): Call it.
      	(ir1-convert-lambda-body): Handle dynamic-extent rest lists.
      	(let): Handle dynamic-extent vars.
      	(let*): Call ir1-convert-dynamic-extent-bindings.
      
      	* src/compiler/globaldb.lisp (*trust-dynamic-extent-declarations*)
      	(trust-dynamic-extent-declaration-p): Remove.
      
      	* src/compiler/fndb.lisp: Add dynamic-extent-closure-safe
      	attribute to assorted functions.
      
      	* src/compiler/envanal.lisp (environment-analyze): Call
      	find-dynamic-extent-safe-closures.
      	(emit-cleanups): Handle :dynamic-extent cleanups.
      	(*suppress-dynamic-extent-closure-safe*): New variable.
      	(mark-dynamic-extent-safe-closures)
      	(find-dynamic-extent-safe-closures): New functions.
      
      	* src/compiler/byte-comp.lisp (compute-produces-and-consumes):
      	Treat :dynamic-extent like :tagbody cleanups.
      
      	* src/code/exports.lisp ("C"): Export ir2-stack-allocate,
      	%dynamic-extent, %dynamic-extent-start, %dynamic-extent-end.
      
      	* src/code/byte-interp.lisp (%dynamic-extent):
      	(%dynamic-extent-start, %dynamic-extent-end): New functions.
      	(toplevel): Enable block compilation.
      f3fe0b8d
    • gerd's avatar
      Lazy signaling of errors because of invalid method qualifiers, · 2f40ed5a
      gerd authored
      	for ANSI compliance.
      
      	* src/pcl/defcombin.lisp (compute-effective-method):  If
      	*in-precompute-effective-methods-p*, generate an emf consisting of
      	a call to %invalid-qualifiers if there are such methods.
      
      	* src/pcl/combin.lisp (standard-compute-effective-method): Likewise.
      	(make-effective-method-lambda): Handle %invalid-qualifiers like
      	%no-primary-method.
      
      	* src/pcl/braid.lisp (%invalid-qualifiers): New function.
      	(invalid-qualifiers): New method.
      
      	* src/pcl/generic-functions.lisp (invalid-qualifiers): New gf.
      
      	* src/pcl/dfun.lisp (*max-emf-precomputation-methods*): Set to 100.
      
      	* src/docs/cmu-user/extensions.tex (Effective Method Precomputation):
      	Change description of *max-emf-precomputation-methods*.
      2f40ed5a
    • gerd's avatar
      (defun foo (n d) · 1ce65ee5
      gerd authored
      	  (declare (type (unsigned-byte 32) n d))
      	  (ffloor n d))
      
      	had a return type of nil when byte-compiled because ffloor's
      	derive-type optimizer returned a rational quotient type.
      1ce65ee5
  4. Aug 24, 2003
    • gerd's avatar
      Debugger signalling an error when a function parameter is · b8e7cf93
      gerd authored
      	a special variable.  Reported by Alexey Dejneka on cmucl-imp.
      	This fixes the read case, but not the setq case.
      
      	* src/code/debug-int.lisp (preprocess-for-eval): Don't
      	symbol-macrolet special variables, let-bind them instead.
      b8e7cf93
  5. Aug 23, 2003
  6. Aug 22, 2003
  7. Aug 21, 2003
  8. Aug 20, 2003
  9. Aug 19, 2003
  10. Aug 18, 2003
  11. Aug 17, 2003
    • toy's avatar
      FFLOOR bug from Paul Dietz on cmucl-imp: · 5256a270
      toy authored
      (defun f (x) (declare (type (integer 0 100) x)) (ffloor x))
      
      was not compiling.  FTRUNCATE-DERIVE-TYPE-QUOT didn't handle the case
      where the result type was FLOAT, which implied that
      NUMERIC-TYPE-FORMAT is NIL.
      5256a270
  12. Aug 16, 2003
    • gerd's avatar
      * src/pcl/braid.lisp (bootstrap-meta-braid): Add missing · 218243f7
      gerd authored
      	arg to error.
      218243f7
    • gerd's avatar
      Format string checking for ERROR, WARN, and others. · a66297f9
      gerd authored
      	* src/compiler/srctran.lisp (check-format-args-1)
      	(check-format-args-2): Extracted from check-format-args.
      	(check-format-args): Take a continuation argument for the control
      	string.
      	(format): Use the new check- functions.
      	(error, warn, compiler-error, compiler-warning)
      	(compiler-note, compiler-mumble): Add format-checking
      	deftransforms.
      
      	* src/compiler/fndb.lisp (compiler-warning, compiler-note)
      	(compiler-mumble, compiler-error): Add defknowns.
      
      	* src/compiler/ir1util.lisp (compiler-mumble, compiler-warning)
      	(compiler-note): Return no values.
      
      	* src/code/parse-time.lisp (deal-with-am-pm): Add a missing
      	arg to error.
      	* src/compiler/saptran.lisp (foreign-symbol-address):
      	* src/compiler/new-assem.lisp (emit-annotation): Likewise.
      a66297f9
  13. Aug 15, 2003
  14. Aug 12, 2003
  15. Aug 11, 2003
  16. Aug 08, 2003
  17. Aug 07, 2003
  18. Aug 06, 2003
    • toy's avatar
      58db2bd2
    • toy's avatar
      ir2tran.lisp: Make make-closure use dynamic-extent for everyone · 9c7dd4b4
      toy authored
      {alpha,hppa,mips,ppc}/alloc.lisp:  Add dynamic-extent arg to the
      make-closure VOP.  (Not tested.)
      9c7dd4b4
    • gerd's avatar
      Dynamic-extent closures for x86. Use boot15.lisp for · 5ac014db
      gerd authored
      	bootstrapping.
      
      	(defun prn (fn)
      	  (print (funcall fn)))
      
      	(defun foo (x)
      	  (flet ((bar () x))
      	    (declare (dynamic-extent #'bar))
      	    (prn #'bar)))
      
      	=> The closure for BAR is allocated from the stack
      
      	* src/compiler/node.lisp (lexenv): Add slot dynamic-extent.
      
      	* src/compiler/ir1util.lisp (make-lexenv): Add keyword
      	arg for dynamic-extent.
      
      	* src/code/defstruct.lisp (%redefine-defstruct)
      	[#+bootstrap-dynamic-extent]: Definition that corresponds
      	to to the clobber-it restart.
      
      	* src/compiler/ir1tran.lisp (process-dynamic-extent-declaration):
      	Rewritten.
      
      	* src/compiler/x86/alloc.lisp (make-closure): Add constant
      	arg dynamic-extent, and use it for allocation.
      
      	* src/compiler/ir2tran.lisp (ir2-convert-closure) [#+x86]:
      	Pass dynamic-extent to the make-closure vop.
      5ac014db
Loading