Skip to content
Snippets Groups Projects
  1. Aug 08, 2003
  2. Aug 07, 2003
  3. Aug 06, 2003
    • 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
  4. Aug 05, 2003
    • 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
    • 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
  5. Aug 04, 2003
  6. 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
  7. Jul 30, 2003
  8. Jul 26, 2003
  9. Jul 24, 2003
    • gerd's avatar
      Get rid of the 64 bytes that are shown as being consed when · f7804071
      gerd authored
      	calling (TIME NIL).
      
      	* src/code/time.lisp (*time-consing*, *last-time-consing*): New vars.
      	(get-time-consing): New function.
      	(%time): Call it to get the additional consing overhead of %time.
      	Subtract *time-consing* from the result unless null.  Set
      	*last-time-consing*.
      f7804071
  10. Jul 23, 2003
  11. Jul 21, 2003
    • gerd's avatar
      * src/code/ntrace.lisp (trace-1): Encapsulate if · ed92e5cc
      gerd authored
      	can-set-function-end-breakpoint-p returns false.
      
      	* src/code/debug-int.lisp (can-set-function-end-breakpoint-p):
      	Return true of compiled-debug-function-returns is :standard.
      ed92e5cc
  12. Jul 20, 2003
  13. Jul 17, 2003
  14. Jul 16, 2003
  15. Jul 15, 2003
  16. Jul 09, 2003
  17. Jul 03, 2003
  18. Jul 02, 2003
  19. Jul 01, 2003
  20. Jun 26, 2003
    • toy's avatar
      From Paul Foley: · bfbb8fd1
      toy authored
      Non-simple-streams-related changes:
      
      * Stop commands which go through invoke-command-interactive from
        affecting the history variables.
      
      * Fix some typos in comments
      
      * When the GC closes a lost stream, revert to original contents
      
      * Replace #+nil with #+(or) in unix*.lisp
        [NIL is a potentially valid feature name]
      
      
      Simple-streams-related changes:
      
      * Teach reader to handle simple-streams
      
      * Add missing package prefixes in OPEN
      
      * Add unix:unix-msync for force-output on mmapped files
      
      * Add placeholder documentation
      
      * Numerous changes in simple-streams implementation
      
      * Add "external-formats" directory for external formats
      
      
      Note: :BIG-ENDIAN or :LITTLE-ENDIAN should be put on *features*
      bfbb8fd1
  21. Jun 20, 2003
Loading