- Aug 17, 2003
-
-
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.
-
- Aug 16, 2003
-
-
gerd authored
arg to error.
-
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.
-
- Aug 15, 2003
-
-
toy authored
-
- Aug 12, 2003
-
-
gerd authored
went to the wrong stream. From Robert Macomber on cmucl-imp.
-
gerd authored
* src/lisp/validate.c (image_dynamic_space_size): New variable. (validate): Allocate spaces differently if the core is part of the executable. * src/lisp/lisp.c (initial_function_addr): New variable. (main): Use it for the initial function if appropriate.
-
- Aug 11, 2003
-
-
gerd authored
frob bytes-consed-between-gcs. * src/compiler/alloc.lisp (defallocators) [#+gencgc]: Definition that doesn't do resourcing.
-
- Aug 08, 2003
-
-
emarsden authored
-
emarsden authored
the condition that caused entry into the debugger.
-
emarsden authored
- correct some information about implementation packages (CL != LISP), reference CLOS-MOP package - "new, improved" title page
-
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).
-
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.
-
emarsden authored
sbcl-devel that Hummingbird X11 servers offer this possibility.
-
- Aug 07, 2003
- Aug 06, 2003
-
-
toy authored
x86.
-
toy authored
{alpha,hppa,mips,ppc}/alloc.lisp: Add dynamic-extent arg to the make-closure VOP. (Not tested.)
-
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.
-
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.
-
toy authored
changes.
-
toy authored
macro to support stack allocation.
-
- Aug 05, 2003
-
-
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.
-
toy authored
instruction didn't have an immediate arg.
-
toy authored
(version NIL) and we're looking for version :NEWEST, since that's what no explicit version means.
-
toy authored
DYNAMIC-EXTENT arg. (Untested on these platforms, except for sparc.)
-
toy authored
listify-rest-args.
-
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.
-
emarsden authored
-
- Aug 04, 2003
- Aug 03, 2003
-
-
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.
-
- Aug 02, 2003
-
-
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.
-
- Jul 30, 2003
- Jul 29, 2003
-
-
gerd authored
method qualifiers.
-
- Jul 28, 2003
-
-
toy authored
-
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.
-
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.
-
gerd authored
print strings as such.
-