Skip to content
Snippets Groups Projects
  1. Aug 21, 2003
  2. Aug 20, 2003
  3. Aug 19, 2003
  4. Aug 18, 2003
  5. 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
  6. 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
  7. Aug 15, 2003
  8. Aug 12, 2003
  9. Aug 11, 2003
  10. Aug 08, 2003
  11. Aug 07, 2003
  12. 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
    • gerd's avatar
      Control viability of dynamic-extent declarations with a · 289982f2
      gerd authored
      	user-settable variable and an interface function that can be used
      	across backends.
      
      	* src/compiler/globaldb.lisp
      	(*trust-dynamic-extent-declarations*): New variable.
      	(trust-dynamic-extent-declaration-p): New function.
      	* src/compiler/x86/macros.lisp (allocation): Use it.
      	* src/compiler/sparc/macros.lisp (allocation): Use it.
      
      	* src/code/exports.lisp ("EXTENSIONS"): Export
      	*trust-dynamic-extent-declarations*.
      	* src/code/exports.lisp ("C"): Export
      	trust-dynamic-extent-declaration-p.
      289982f2
    • toy's avatar
      Update notes for dynamic-extent support, and some other missing · f4dc265b
      toy authored
      changes.
      f4dc265b
    • toy's avatar
      Add support for DYNAMIC-EXTENT &REST args. Update the ALLOCATION · a69278c9
      toy authored
      macro to support stack allocation.
      a69278c9
  13. Aug 05, 2003
    • gerd's avatar
      * src/compiler/x86/macros.lisp (allocation): Use >= speed safety · 60f29be9
      gerd authored
      	for dynamic-extent because it's otherwise impossible to use use
      	dynamic-extent in code that otherwise needs to have type checks
      	compiled in.
      60f29be9
    • toy's avatar
      Fix bad disassembly note about allocating bytes when the add · 17fdaff0
      toy authored
      instruction didn't have an immediate arg.
      17fdaff0
    • toy's avatar
      In %ENUMERATE-FILES, also match if the file has no explicit version · 8cffe571
      toy authored
      (version NIL) and we're looking for version :NEWEST, since that's what
      no explicit version means.
      8cffe571
    • toy's avatar
      Update the LISTIFY-REST-ARGS vop to include an additional · f42502bd
      toy authored
      DYNAMIC-EXTENT arg.  (Untested on these platforms, except for sparc.)
      f42502bd
    • toy's avatar
      Remove the x86 conditionalization of the dynamic-extent arg to · b359933a
      toy authored
      listify-rest-args.
      b359933a
    • gerd's avatar
      DYNAMIC-EXTENT rest args. Currently for x86 only. Speed must be · 88a53c80
      gerd authored
      	greater than safety for stack-allocation to actually happen, which
      	is what ACL defaults to.  Use boot15.lisp to bootstrap.
      
      	* src/bootfiles/18e/boot15.lisp: New file.
      
      	* src/compiler/node.lisp (leaf): Add slot dynamic-extent.
      
      	* src/compiler/x86/macros.lisp (load-size, inline-allocation)
      	(not-inline-allocation): Extract from function allocation.
      	(stack-allocation): New function.
      	(allocation): Add arg dynamic-extent.  Call stack-allocation
      	if dynamic-extent is true, and speed > safety.
      
      	* src/compiler/x86/call.lisp (listify-rest-args): Add
      	constant third arg, and pass it to allocation.
      
      	* src/code/class.lisp (find-layout): Put part in
      	#-bootstrap-dynamic-extent.
      
      	* src/compiler/ir1tran.lisp (process-dynamic-extent-declaration):
      	New function.
      	(*suppress-dynamic-extent-declaration*): New variable.
      	(process-1-declaration): Call process-dynamic-extent-declaration.
      	(convert-more-entry) [#+x86]: Call %listify-rest-args with
      	third arg dynamic-extent.
      
      	* src/compiler/eval-comp.lisp (%listify-rest-args) [#+x86]:
      	* src/compiler/fndb.lisp (%listify-rest-args) [#+x86]: Add
      	third arg for dynamic-extent.
      
      	Possibly temporary workaround for SBCL build problems caused by a
      	situation like
      
      	  (defvar *foo*)
      	  (declaim (type foo *foo*))
      	  (defstruct foo)
      	  (defun foo ()
      	    (let ((*foo* (some-unknown-function)))
      	       ...))
      
      	When a type check is being generated for the local binding of
      	*foo*, *foo*'s type in the info database is still an unknown-type.
      	The typep transform generates a call to %instance-typep, because
      	it knows that foo is an instance.  The deftransform for
      	%instance-typep does not run, so an actual call to %instance-typep
      	is being generated.  A function %instance-typep doesn't exist at
      	run time, though.
      
      	* src/compiler/ir1tran.lisp (find-free-variable): If the
      	variable's type is an unknown-type, reparse it, and change the
      	type in the info database.
      88a53c80
    • emarsden's avatar
      Fix typos. · 0de8456c
      emarsden authored
      0de8456c
  14. Aug 04, 2003
  15. Aug 03, 2003
    • gerd's avatar
      Remove the function definition of FIXNUM, which it must not · 52858943
      gerd authored
      	have according to CLtS.  Found by Paul Dietz.
      
      	Use boot14.lisp to bootstrap.
      
      	* src/compiler/generic/utils.lisp (fixnumize): Renamed from
      	fixnum.
      
      	* src/bootfiles/18e/boot14.lisp: New file.
      
      	* src/code/exports.lisp ("VM"): Export fixnumize.
      
      	* src/assembly/alpha/arith.lisp, src/assembly/alpha/array.lisp:
      	* src/assembly/alpha/assem-rtns.lisp, src/assembly/hppa/arith.lisp
      	* src/assembly/hppa/array.lisp, src/assembly/hppa/assem-rtns.lisp
      	* src/assembly/mips/alloc.lisp, src/assembly/mips/arith.lisp
      	* src/assembly/mips/array.lisp, src/assembly/mips/assem-rtns.lisp
      	* src/assembly/mips/bit-bash.lisp, src/assembly/ppc/arith.lisp
      	* src/assembly/ppc/array.lisp, src/assembly/ppc/assem-rtns.lisp
      	* src/assembly/rt/alloc.lisp, src/assembly/rt/arith.lisp
      	* src/assembly/rt/array.lisp, src/assembly/rt/assem-rtns.lisp
      	* src/assembly/sparc/arith.lisp, src/assembly/sparc/array.lisp
      	* src/assembly/sparc/assem-rtns.lisp, src/assembly/x86/arith.lisp
      	* src/assembly/x86/array.lisp, src/assembly/x86/assem-rtns.lisp
      	* src/compiler/alpha/alloc.lisp, src/compiler/alpha/arith.lisp
      	* src/compiler/alpha/array.lisp, src/compiler/alpha/call.lisp
      	* src/compiler/alpha/move.lisp, src/compiler/alpha/nlx.lisp
      	* src/compiler/alpha/static-fn.lisp, src/compiler/alpha/subprim.lisp
      	* src/compiler/alpha/values.lisp, src/compiler/generic/utils.lisp
      	* src/compiler/hppa/alloc.lisp, src/compiler/hppa/arith.lisp
      	* src/compiler/hppa/array.lisp, src/compiler/hppa/call.lisp
      	* src/compiler/hppa/move.lisp, src/compiler/hppa/nlx.lisp
      	* src/compiler/hppa/static-fn.lisp, src/compiler/hppa/subprim.lisp
      	* src/compiler/hppa/values.lisp, src/compiler/mips/alloc.lisp
      	* src/compiler/mips/arith.lisp, src/compiler/mips/array.lisp
      	* src/compiler/mips/call.lisp, src/compiler/mips/move.lisp
      	* src/compiler/mips/nlx.lisp, src/compiler/mips/static-fn.lisp
      	* src/compiler/mips/subprim.lisp, src/compiler/mips/values.lisp
      	* src/compiler/ppc/alloc.lisp, src/compiler/ppc/arith.lisp
      	* src/compiler/ppc/array.lisp, src/compiler/ppc/call.lisp
      	* src/compiler/ppc/move.lisp, src/compiler/ppc/nlx.lisp
      	* src/compiler/ppc/static-fn.lisp, src/compiler/ppc/subprim.lisp
      	* src/compiler/ppc/values.lisp, src/compiler/rt/alloc.lisp
      	* src/compiler/rt/arith.lisp, src/compiler/rt/array.lisp
      	* src/compiler/rt/call.lisp, src/compiler/rt/move.lisp
      	* src/compiler/rt/nlx.lisp, src/compiler/rt/static-fn.lisp
      	* src/compiler/rt/subprim.lisp, src/compiler/rt/values.lisp
      	* src/compiler/sparc/alloc.lisp, src/compiler/sparc/arith.lisp
      	* src/compiler/sparc/array.lisp, src/compiler/sparc/call.lisp
      	* src/compiler/sparc/move.lisp, src/compiler/sparc/nlx.lisp
      	* src/compiler/sparc/static-fn.lisp, src/compiler/sparc/subprim.lisp
      	* src/compiler/sparc/values.lisp, src/compiler/x86/alloc.lisp
      	* src/compiler/x86/arith.lisp, src/compiler/x86/array.lisp
      	* src/compiler/x86/call.lisp, src/compiler/x86/cell.lisp
      	* src/compiler/x86/macros.lisp, src/compiler/x86/memory.lisp
      	* src/compiler/x86/move.lisp, src/compiler/x86/nlx.lisp
      	* src/compiler/x86/pred.lisp, src/compiler/x86/static-fn.lisp
      	* src/compiler/x86/subprim.lisp, src/compiler/x86/values.lisp:
      	Use fixnumize instead of fixnum.
      52858943
  16. Aug 02, 2003
    • gerd's avatar
      (deftype string-and-number () '(cons string (cons number null))) · 63c1a0fe
      gerd authored
      	(defun bug1 (x)
      	  (declare (type string-and-number x))
         	  (the number (car (reverse x))))
      
      	(bug1 (list "one" 1))
      	 => Type error 1 is not of type number.
      
      	Reported by Luke Gorrie on cmucl-imp.
      
      	* src/compiler/knownfun.lisp (result-type-first-arg/reverse)
      	(reversed-cons-type): New functions.
      
      	* src/compiler/fndb.lisp (nreverse, reverse): Use
      	result-type-first-arg/reverse.
      63c1a0fe
  17. Jul 30, 2003
Loading