Skip to content
Snippets Groups Projects
  1. Dec 03, 2003
  2. Dec 02, 2003
  3. Dec 01, 2003
  4. Nov 25, 2003
  5. Nov 24, 2003
  6. Nov 21, 2003
  7. Nov 14, 2003
  8. 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
  9. Nov 11, 2003
  10. 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
  11. Nov 06, 2003
  12. Nov 05, 2003
    • gerd's avatar
      (defclass data () ((name :accessor name))) · 5a8847ea
      gerd authored
      	(defmethod name :before ((data data)))
      
      	(name (make-instance 'data))
      	 => too few args in a call to a method function
      
      	This is caused by standard-reader/writer methods having a
      	fast-function, but that's not the one that we should funcall if
      	pcl::*inline-methods-in-emfs* is true.  Use the fast-method-call
      	mechanism for such methods instead.
      
      	* src/pcl/combin.lisp (inlinable-method-p): New function.
      	(make-direct-calls): Removed.
      	(memf-test-converter): Add a local function method-key for
      	determining the function generator key.
      	(memf-code-converter): Add local functions make-call and
      	make-calls.  Generate direct calls if inlinable-method-p returns
      	true.
      5a8847ea
    • gerd's avatar
      * src/code/fd-stream.lisp (output-raw-bytes): Same theme · 1434e8ef
      gerd authored
      	as last change, which fixed write-char etc. only.
      1434e8ef
    • toy's avatar
      o Add exports for the new symbols used for heap overflow checking. · 210e0db7
      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.)
      210e0db7
    • toy's avatar
      Fix typo in data-vector-ref-c/simple-array-complex-single-float. The · 8d4ff7e0
      toy authored
      imaginary part wasn't getting returned, and the real part was actually
      the imaginary part.
      8d4ff7e0
  13. Nov 04, 2003
    • gerd's avatar
      FIXME: There's a quirk somewhere when recording this · be4df415
      gerd authored
      	 dependency, which I don't have to time to debug right now.
      	 Redefining a function like this:
      
      	 (defun foo ())
      
      	 (let ((foo #'foo))
      	   (declare (function foo))
      	   (defun foo () (funcall foo)))
      
      	 leads to infinite recursion because the funcall uses
      	 FOO's fdefn object instead of the local variable's value.
      
      	* src/compiler/ir1tran.lisp (ir1-convert-variable): Don't
      	record DFO dependency.
      be4df415
  14. 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
    • gerd's avatar
      (defun lexical-symbol (symbol &optional prefix) · e3d1deb1
      gerd authored
      	  (let* ((string (symbol-name symbol))
      		 (length (length string)))
      	    (if (or (< length 3)
      		    (not (char= (elt string 0) #\*))
      		    (not (char= (elt string (1- length)) #\*)))
      		(error "Symbol does not follow dynamic conventions.")
      		(if prefix
      		    (intern (cs prefix (subseq string 1 (1- length))))
      		    (intern (subseq string 1 (1- length)))))))
      	 => spurious code deletion note that goes away when the local
      	    variable length is renamed to something else.
      
      	* src/compiler/generic/vm-tran.lisp (subseq, copy-seq) <deftransform>:
      	Use len as local variable name instead of cl:length.
      e3d1deb1
  15. Nov 01, 2003
  16. Oct 29, 2003
    • toy's avatar
      Print a note about possible LRA header words instead of printing LRA · e22e8e00
      toy authored
      as the instruction.  (Because there are instructions that might match
      the LRA header type).
      e22e8e00
    • gerd's avatar
      *** empty log message *** · f5cd2de0
      gerd authored
      f5cd2de0
    • gerd's avatar
      Suppress slot access and gf-call optimizations for method · ef829f5c
      gerd authored
      	parameters that are being assigned to in the method body.
      	Reported by Hans Chalupsky on cmucl-imp.
      
      	* src/pcl/boot.lisp (method-parameter): New function, extracted
      	from make-pv-call.
      	(assigned-method-params): New function.
      	(make-method-lambda-internal): Call it to disable optimizations
      	on method parameters being assigned to.
      
      	* src/pcl/method-slot-access-optimization.lisp
      	(get-param/class-to-optimize): Use new function method-parameter.
      	* src/pcl/gf-call-optimization.lisp (make-pv-call): Ditto.
      
      	* src/pcl/std-class.lisp (ensure-class-using-class): Don't setq
      	a method parameter.
      ef829f5c
  17. Oct 27, 2003
  18. Oct 26, 2003
    • gerd's avatar
      * src/compiler/eval-comp.lisp (compile-for-eval): Delete · bf6b4a00
      gerd authored
      	unreachable blocks, similar to ir1-optimize, which we don't call.
      	This simplifies things by reducing the differences between
      	"normal" compilation and compiling for interpretation.
      
      	* src/compiler/ir1util.lisp (block-unreachable-p): New function.
      	(delete-lambda): Mark return blocks for deletion again.
      
      	* src/compiler/ir1opt.lisp (ir1-optimize): Use block-unreachable-p.
      	Delete unreachable blocks after the loop.
      bf6b4a00
    • gerd's avatar
      * src/code/error.lisp (handler-case): Delete unused old version. · 6e3efcdb
      gerd authored
      	Wrap locally around single-element bodies, it can be a declaration.
      	ANSI test HANDLER-CASE.29.
      6e3efcdb
    • gerd's avatar
      (eval '(block b3 · 2b5e775c
      gerd authored
                       (max (return-from b3 1)
                       (if (unwind-protect (unwind-protect 2)) 3 4))))
      	 => nil is not of type c::ref
      
      	* src/compiler/envanal.lisp (emit-cleanups): Don't generate
      	a %funcall If second arg of :unwind-protect cleanup is unused.
      	Found by Paul Dietz.
      2b5e775c
  19. Oct 25, 2003
  20. Oct 24, 2003
    • toy's avatar
      Initial version. · 61208c78
      toy authored
      61208c78
    • toy's avatar
      *** empty log message *** · 630fa81e
      toy authored
      630fa81e
    • 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
      Note heap overflow checking. · cfc64c87
      toy authored
      cfc64c87
Loading