Skip to content
Snippets Groups Projects
  1. Apr 06, 2004
    • emarsden's avatar
      · 7862b94e
      emarsden authored
      Two unrelated fixes to ADJUST-ARRAY:
      
        - (adjust-array (make-array nil :initial-element 'zob) nil)
          was losing the :initial-element information
      
        - ADJUST-ARRAY was sometimes returning the same array despite
          ADJUSTABLE-ARRAY-P returning nil for that array (fix from SBCL)
      
      Fixes a number of AJUST-ARRAY.* tests in Paul Dietz's ANSI compliance
      suite.
      7862b94e
    • emarsden's avatar
      · cf98504f
      emarsden authored
        - fix WRITE-SEQUENCE for vectors (detected by pfdietz' ANSI compliance
          test suite)
      
          (write-sequence (vector #\a) (make-string-output-stream))
      
          used to fail with
      
          "Type-error in lisp::write-vector-out:  #\a is not of type base-char"
      
          because the WRITE-SEQUENCE code is erroneously assuming that all vectors
          of characters are of type string. There are probably more errors of this
          nature!
      
      
        - fix STREAM-ELEMENT-TYPE for broadcast streams: CLtS specifies that t
          should be returned if there are no component streams, but we used to return
          nil.
      cf98504f
    • emarsden's avatar
      · f01e1819
      emarsden authored
        - fix defaulting behaviour of :if-not-exist in OPEN when used with
          :direction :io. Corrects a number of the OPEN.IO.* ANSI compliance tests.
      f01e1819
  2. Apr 01, 2004
    • rtoy's avatar
      Helmut Eller notes on cmucl-imp on 2004-04-24 that · 70cf5703
      rtoy authored
        (delete-file (open "/tmp/tmp-file" :direction :output
                           :if-does-not-exist :create :if-exists :supersede))
      
      signals an error because delete-file is unlinking the file twice,
      because CLOSE is called with the option :ABORT T.
      
      Don't do that, so that any reversion of the file isn't done, and we
      file is deleted.
      70cf5703
    • rtoy's avatar
      From Helmut Eller: · 0519cdf6
      rtoy authored
      parse-compiled-debug-function-lambda-list fails for
      
        (di::debug-function-lambda-list
          (di::function-debug-function
            #'pcl::fix-early-generic-functions))
      
      because it tries to nconc the supplied-p var to a deleted keyword arg.
      0519cdf6
    • rtoy's avatar
      If it's already a logical pathname host, don't need to check if · 83cbf125
      rtoy authored
      it's a search-list, because it can't be, obviously.
      83cbf125
  3. Mar 31, 2004
    • emarsden's avatar
      · ef5d5943
      emarsden authored
       - restarts when a package lock is triggered by DEFSTRUCT redefinition:
         disable the package-definition-lock instead of the package-lock (from
         Helmut Eller)
      ef5d5943
  4. Mar 26, 2004
    • emarsden's avatar
      · 10b760ea
      emarsden authored
       - add a SIMPLE-STREAM-ERROR class, and use it when signaling errors from
         fd-streams DO-OUTPUT (noted by Matthew Danish)
      
       - fix bug in fd-stream error handling (patch from Ole Rohne)
      10b760ea
  5. Mar 24, 2004
    • emarsden's avatar
      · e2daaabd
      emarsden authored
       - add ignore declaration
       - fix endpwent alien routine for Solaris
      e2daaabd
  6. Mar 23, 2004
    • emarsden's avatar
      · 335ca24f
      emarsden authored
       - various package-related cleanups. PROFILE and CLX packages use
         COMMON-LISP instead of LISP.
      335ca24f
  7. Jan 20, 2004
    • toy's avatar
      Some ANSI compliance fixes found by Paul Dietz's tests. · 09dc96ef
      toy authored
      o PEEK-CHAR wasn't signaling end-of-file when recursive-p was true.
        o GENERALIZED-PEEKING-MECHANISM needs to handle EOF-DETECTED-FORM
          when the peek-type is NIL.
        o Make PEEK-CHAR with peek-type NIL handle RECURSIVE-P.
      
      o WRITE-LINE didn't like an explicit :END NIL.
      
      o READ-SEQUENCE didn't like reading things into a bit-vector from a
        "good" stream element type.  If the sequence is a bit-vector, use
        the general read-into-vector to read the data.
      
      o READ-SEQUENCE wasn't returning the right value when reading into
        simple-strings with a non-zero :START value.
      09dc96ef
  8. Jan 19, 2004
  9. Jan 18, 2004
  10. Jan 16, 2004
  11. Jan 09, 2004
  12. Dec 01, 2003
  13. Nov 25, 2003
  14. Nov 24, 2003
  15. Nov 21, 2003
  16. Nov 12, 2003
    • toy's avatar
      If we can't open /dev/urandom and read the desired number of words, · 8f50683d
      toy authored
      silently revert to initializing to the random state from the current
      time.
      
      From Ole Rohne via cmucl-imp.  This works around a problem on one of
      his machines where /dev/urandom isn't what we think it is.  We still
      lose if /dev/urandom returns words that aren't random enough.  Oh
      well.
      8f50683d
  17. Nov 08, 2003
    • gerd's avatar
      (in-package :cl-user) · 097ec481
      gerd authored
      	(require :gray-streams)
      
      	(defclass my-in-stream (ext:fundamental-character-input-stream)
      	  ((last-char :initarg :last-char)))
      
      	(let ((string " a ")
      	      (i 0))
      	  (defmethod ext:stream-read-char ((s my-in-stream))
      	    (with-input-from-string (s "b") (read s))
      	    (with-slots (last-char) s
      	      (cond (last-char (prog1 last-char (setf last-char nil)))
      		     (t (prog1 (aref string i)
      			  (setq i (mod (1+ i) (length string)))))))))
      
      	(defmethod ext:stream-unread-char ((s my-in-stream) char)
      	  (setf (slot-value s 'last-char) char)
      	  nil)
      
      	(setq x (make-instance 'my-in-stream :last-char nil))
      	(read x)
      	 => b, instead of a
      
      	* src/code/reader.lisp: Use a new read buffer for each call to
      	read or read-preserving-whitespace, instead of using one global
      	buffer.  From Helmut Eller.
      097ec481
  18. Nov 05, 2003
  19. Nov 03, 2003
    • gerd's avatar
      (with-open-file (stream "test.123" :direction :output · b10e98ff
      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.
      b10e98ff
  20. Oct 26, 2003
  21. Oct 24, 2003
    • toy's avatar
      READ-SEQUENCE was returning too soon: · 5b428a0a
      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).
      5b428a0a
    • toy's avatar
      Add support for catching heap overflows, similar to the control stack · 3e309c44
      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
      3e309c44
  22. Oct 15, 2003
  23. Oct 09, 2003
  24. Oct 05, 2003
    • gerd's avatar
      Improve interrupt safety. · a7ed2dae
      gerd authored
      	* src/compiler/globaldb.lisp (get-info-value):
      	* src/code/extensions.lisp (define-hash-cache): Use
      	without-interrupts.
      a7ed2dae
  25. Sep 25, 2003
Loading