- Nov 05, 2003
-
-
toy authored
o Gather some of the sparc-specific symbols into one spot. o Export unix::check to get rid of a warning. (Not exactly sure where this comes from.)
-
- Nov 03, 2003
-
-
gerd authored
:if-exists :supersede) (format stream "~S ~S ~S~%" 'these 'are 'symbols)) (with-open-file (stream "test.123" :direction :io :if-exists :overwrite) (read stream) (prin1 'insert stream)) (with-open-file (stream "test.123") (loop for line = (read-line stream nil) until (null line) do (write-line line))) Output should be "these insertmbols" Output is "these are symbols\ninsert" * src/code/fd-stream.lisp (def-output-routines): If there is any input read from UNIX but not supplied to the user of the stream, reposition to the real file position as seen from Lisp. Reported by Adam Warner.
-
- Oct 26, 2003
-
-
gerd authored
Wrap locally around single-element bodies, it can be a declaration. ANSI test HANDLER-CASE.29.
-
- Oct 24, 2003
-
-
toy authored
(defvar *s* (open "target:code/scavhook.lisp")) (defvar *buf* (make-array 5000 :element-type 'character)) (read-sequence *buf* *s* :end 3000) => 3000 (read-sequence *buf* *s* :end 3000) => 1096 or 4096 bytes read, when we should have read 4139 (length of scavhook.lisp). Make READ-INTO-SIMPLE-STRING keep trying to READ-N-BYTES until we have enough bytes or until READ-N-BYTES returns 0 bytes read (in which case we return a short read because there's nothing left to read).
-
toy authored
overflow checking. Enable with :heap-overflow-check. We reserve some number of pages on the heap. When the heap reaches the reserved pages, an overflow warning is signalled. The reserved pages are set 0. This allows some additional allocation to happen during debugging, if necessary. If another overflow happens, we throw to top-level. Sparc only right now. * lisp/sparc-assem.S (_do_dynamic_space_overflow_error): New function to handle a heap overflow error. (_do_dynamic_space_overflow_warning): New function to handle heap overflow warning. * lisp/sparc-arch.c (sigill_handler): Handle the two new traps caused by heap overflows. * lisp/interrupt.c (interrupt_handle_space_overflow): New function to handle interrupt caused by heap space overflows. * lisp/gencgc.c (handle_heap_overflow): New function to handle heap overflows. (gc_alloc_new_region): Use handle_heap_overflow. (gc_alloc_large): Use handle_heap_overflow * compiler/sparc/parms.lisp (static-symbols): Add new static symbols for heap overflow checking: dynamic-space-overflow-error-hit and dynamic-space-overflow-warning-hit. * compiler/generic/new-genesis.lisp (finish-symbols): Initialize the new dynamic-space-overflow-error-hit and dynamic-space-overflow-warning-hit static symbols. * code/lispinit.lisp (:heap-overflow-check): Add heap-overflow-check to *runtime-features*, if necessary. ("reserved_heap_pages"): Access to alien variable for heap overflow. (*reserved-heap-pages*): Default number of heap pages to reserve for heap overflow. (%top-level): Set reserved-heap-pages to the default. * code/interr.lisp (dynamic-space-overflow-warning-hit): Add function to handle heap overflow warnings. (dynamic-space-overflow-error-hit): Add function to handle heap overflow error. * code/error.lisp (heap-overflow): Add new condition type for heap overflow
-
- Oct 15, 2003
-
-
toy authored
allow for the larger heaps available now. (Probably makes room even more consy than it already is.) o Increase the field width when printing out sizes so columns line up nicely. o Make the top <n> instances print out more neatly in columns.
-
toy authored
columns line up neatly with large heaps.
-
toy authored
have much larger heaps now.
-
- Oct 09, 2003
- Oct 05, 2003
-
-
gerd authored
* src/compiler/globaldb.lisp (get-info-value): * src/code/extensions.lisp (define-hash-cache): Use without-interrupts.
-
- Sep 25, 2003
-
-
toy authored
byte-fasl-file-version. * src/code/sysmacs.lisp (register-lisp-runtime-feature): (register-lisp-feature): Don't quote the given feature. * src/code/misc.lisp: Register more features, mostly for sparc.
-
toy authored
REGISTER-LISP-RUNTIME-FEATURE.
-
toy authored
and *RUNTIME-FEATURES* and setting them appropriately as files are loaded so that recompiling CMUCL produces a result with the same set of features. *RUNTIME-FEATURES* is a subset of *FEATURES* that is written out to internals.h so the C code can be compiled appropriately. A simple bootstrap with boot17 is needed.
-
- Sep 12, 2003
-
-
toy authored
-
- Sep 09, 2003
-
-
gerd authored
Add (the integer ...). Found by Paul Dietz.
-
- Sep 08, 2003
- Sep 05, 2003
- Sep 04, 2003
-
-
toy authored
-
- Sep 02, 2003
-
-
gerd authored
* src/code/float-trap.lisp (FPE_*) [freebsd4]: Define constants from machine/trap.h. (sigfpe-handler) [freebsd4]: Use the code parameter to determine the reason for the signal.
-
- Aug 31, 2003
- Aug 29, 2003
-
-
gerd authored
=> 3258488172 (ext:parse-time "Fri, 04 Apr 2003 01:36:12 +0200") => nil * src/code/parse-time.lisp (decompose-string): Handle offsets from GMT with a leading +. From Miles Egan. Reported by Dan Barlow.
-
gerd authored
From Fred Gilham. * src/code/clx-ext.lisp (open-clx-display): Fixes for the case $DISPLAY doesn't specify a host. * src/clx/display.lisp (open-display): Likewise.
-
- Aug 28, 2003
-
-
gerd authored
when (eq i 'a) return :good while (< i 12) collect i) signaling a type-error because the while is done before the when. Found by Paul Dietz. * src/code/loop.lisp (loop-do-if): Move the call to loop-pseudo-body outside of the binding of *loop-inside-conditional*.
-
- Aug 27, 2003
- Aug 25, 2003
-
-
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.
-
- Aug 24, 2003
-
-
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.
-
- Aug 23, 2003
-
-
gerd authored
return the results of truncate directly.
-
- Aug 22, 2003