Skip to content

Commit

Permalink
0.8.7.41:
Browse files Browse the repository at this point in the history
	Make {IN,OUT}PUT-STREAM-P work on synonym streams
	... looks like pvaneynd's HIGH-SECURITY is in fact necessary
	... delete workarounds for this through the rest of the stream
		code while I'm at it.
  • Loading branch information
csrhodes committed Feb 4, 2004
1 parent 531b03c commit f80a862
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 27 deletions.
2 changes: 2 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -2294,6 +2294,8 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7:
signal a TYPE-ERROR if their argument is not a stream.
** READ-BYTE and WRITE-BYTE signal a TYPE-ERROR if their stream
designator argument does not designate a stream.
** OPEN-STREAM-P and INPUT-STREAM-P on synonym streams work by examining
the synonym.

planned incompatible changes in 0.8.x:
* (not done yet, but planned:) When the profiling interface settles
Expand Down
33 changes: 7 additions & 26 deletions src/code/stream.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@
(defun ansi-stream-input-stream-p (stream)
(declare (type ansi-stream stream))

#!+high-security
(when (synonym-stream-p stream)
(setf stream
(symbol-value (synonym-stream-symbol stream))))
Expand All @@ -85,7 +84,6 @@
(defun ansi-stream-output-stream-p (stream)
(declare (type ansi-stream stream))

#!+high-security
(when (synonym-stream-p stream)
(setf stream (symbol-value
(synonym-stream-symbol stream))))
Expand All @@ -103,6 +101,7 @@
(declaim (inline ansi-stream-open-stream-p))
(defun ansi-stream-open-stream-p (stream)
(declare (type ansi-stream stream))
;; CLHS 22.1.4 lets us not worry about synonym streams here.
(not (eq (ansi-stream-in stream) #'closed-flame)))

(defun open-stream-p (stream)
Expand Down Expand Up @@ -581,10 +580,7 @@

(defun make-broadcast-stream (&rest streams)
(dolist (stream streams)
(unless (or (and (synonym-stream-p stream)
(output-stream-p (symbol-value
(synonym-stream-symbol stream))))
(output-stream-p stream))
(unless (output-stream-p stream)
(error 'type-error
:datum stream
:expected-type '(satisfies output-stream-p))))
Expand Down Expand Up @@ -706,17 +702,11 @@
;; FIXME: This idiom of the-real-stream-of-a-possibly-synonym-stream
;; should be encapsulated in a function, and used here and most of
;; the other places that SYNONYM-STREAM-P appears.
(unless (or (and (synonym-stream-p output-stream)
(output-stream-p (symbol-value
(synonym-stream-symbol output-stream))))
(output-stream-p output-stream))
(unless (output-stream-p output-stream)
(error 'type-error
:datum output-stream
:expected-type '(satisfies output-stream-p)))
(unless (or (and (synonym-stream-p input-stream)
(input-stream-p (symbol-value
(synonym-stream-symbol input-stream))))
(input-stream-p input-stream))
(unless (input-stream-p input-stream)
(error 'type-error
:datum input-stream
:expected-type '(satisfies input-stream-p)))
Expand Down Expand Up @@ -804,10 +794,7 @@
"Return a stream which takes its input from each of the streams in turn,
going on to the next at EOF."
(dolist (stream streams)
(unless (or (and (synonym-stream-p stream)
(input-stream-p (symbol-value
(synonym-stream-symbol stream))))
(input-stream-p stream))
(unless (input-stream-p stream)
(error 'type-error
:datum stream
:expected-type '(satisfies input-stream-p))))
Expand Down Expand Up @@ -899,17 +886,11 @@
"Return a bidirectional stream which gets its input from INPUT-STREAM and
sends its output to OUTPUT-STREAM. In addition, all input is echoed to
the output stream."
(unless (or (and (synonym-stream-p output-stream)
(output-stream-p (symbol-value
(synonym-stream-symbol output-stream))))
(output-stream-p output-stream))
(unless (output-stream-p output-stream)
(error 'type-error
:datum output-stream
:expected-type '(satisfies output-stream-p)))
(unless (or (and (synonym-stream-p input-stream)
(input-stream-p (symbol-value
(synonym-stream-symbol input-stream))))
(input-stream-p input-stream))
(unless (input-stream-p input-stream)
(error 'type-error
:datum input-stream
:expected-type '(satisfies input-stream-p)))
Expand Down
2 changes: 1 addition & 1 deletion version.lisp-expr
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
"0.8.7.40"
"0.8.7.41"

0 comments on commit f80a862

Please sign in to comment.