Skip to content
Snippets Groups Projects
  1. Aug 08, 2003
    • emarsden's avatar
      Add a function EXT:UNLOCK-ALL-PACKAGES, that disables both the · 1a960279
      emarsden authored
      structural and the definition locks for all existing packages. Add an
      additional restart to the PACKAGE-LOCKED-ERROR signaling points that
      allows the user to disable all packages then continue.
      
      Package locks are initialized upon startup, so the unlocking only
      takes effect during the current session. However, this function
      doesn't suffer from the problem that affects
      LISP::*ENABLE-PACKAGE-LOCKED-ERRORS* (which is bound by LOAD so can't
      be set from an initialization file).
      1a960279
    • emarsden's avatar
      Fix EXT:OPEN-CLX-DISPLAY for the case where a hostname (different from · e11b0971
      emarsden authored
      "unix") is specified by $DISPLAY.
      
            ;; If the $DISPLAY does not specify a hostname (for instance
            ;; ":0"), or if the hostname is the special case of "unix", we
            ;; connect to the X server using the :unix protocol. This is the
            ;; most efficient transport to the local host, most often a Unix
            ;; domain socket. In all other cases, we use the :tcp protocol.
      e11b0971
    • emarsden's avatar
      Add support for 12-bit displays to CLX. Parry Husbands reports to · b74cf645
      emarsden authored
      sbcl-devel that Hummingbird X11 servers offer this possibility.
      b74cf645
  2. Aug 07, 2003
  3. 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
  4. 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
  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. 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
  8. Jul 30, 2003
  9. Jul 29, 2003
  10. Jul 28, 2003
    • toy's avatar
    • gerd's avatar
      Improve LDB backtrace on x86. · 284fd069
      gerd authored
      	* src/lisp/gc.h (component_ptr_from_pc): Add prototype.
      
      	* src/lisp/backtrace.c (struct compiled_debug_info)
      	(struct compiled_debug_function): New structs.
      	(array_of_type_p, debug_function_from_pc): New functions.
      	(backtrace): Use debug_function_from_pc to figure out the
      	real name of the frame, instead of listing all entry points
      	of the code object.
      284fd069
    • gerd's avatar
      Loading gray-streams lead to a vicious metacircle because · 0041e6b0
      gerd authored
      	effective methods of close were no longer precomputed, and close
      	is being used somewhere inside the compiler during emf
      	compilation.
      
      	* src/pcl/gray-streams.lisp (toplevel): Call pcl-close
      	before setting the fdefinition of close to it, analogous
      	to what was already done for pcl-open-stream-p.
      
      	* src/pcl/dfun.lisp (break-vicious-metacircle): Put the
      	error in infinite-error-protect, just in case.
      0041e6b0
    • gerd's avatar
      * src/lisp/backtrace.c (print_entry_name): Print symbol package, · 9f94756e
      gerd authored
      	print strings as such.
      9f94756e
    • gerd's avatar
      CLtS effectively forbids method load-time precomputation of · c3fd05a9
      gerd authored
      	effective methods (which I think is either yet another oversight,
      	or bad language design).  Found by Paul Dietz.
      
      	Set *max-emf-precomputation-methods* to > 0 to allow
      	precomputation of effective methods at method load-time for
      	generic functions having less than the specified number of
      	methods.
      
      	* src/pcl/dfun.lisp (*max-emf-precomputation-methods*): Set to 0.
      
      	* src/pcl/pkg.lisp ("PCL"): Export *max-emf-precomputation-methods*.
      c3fd05a9
  11. Jul 26, 2003
  12. Jul 25, 2003
    • gerd's avatar
      LDB backtrace for x86, first steps. · 49187a54
      gerd authored
      	* src/lisp/backtrace.c (VM_OCFP_SAVE_OFFSET)
      	(VM_RETURN_PC_SAVE_OFFSET): New defines.
      	(stack_pointer_p, ra_pointer_p, deref, print_entry_name)
      	(print_entry_list, print_entry_points, x86_call_context):
      	New functions.
      	(backtrace): Use x86_call_context.
      49187a54
  13. Jul 24, 2003
  14. Jul 23, 2003
  15. Jul 21, 2003
Loading