[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Does a synonym stream have all the rights and duties of a
normal stream? In particular, can you create a synonym stream for
a synonym stream?
In practice, it's seeming as though the latter does not work.
I tried to create a synonym stream for *standard-output* (forgetting
that it itself is a synonym for *terminal-io*). E.G.
(setq *memory-output* (make-synonym-stream '*standard-output*))
(princ "stuff" *memory-output*)
and found that the print statement hangs (Allegro CL 3.1.4 [Sun4]). The
above works fine when *memory-output* is defined as a synonym for
*terminal-io*. I would report this more formally as a bug if I were
sure that the language spec allowed this sort of maneuver -- Steele
is unclear on the point (CLtL, p.329).
If synonyms for synonyms are forbidden, is there reason to be wary
of intermixing synonym and broadcast streams? (What I really want to do
is make a synonym for a broadcast stream, which in turn names a synonym
stream as one of its recipients (yes, I have reasons for wanting all this
indirection!)). If this is possible, are there resource limits that
might make it a bad idea to be so profligate about creating streams (like
perhaps a ceiling on the number of open ones)?
--- . --- . --- . --- . --- . --- . --- . --- .
| | ||| | | ||| | | ||| | | ||| | | |||
Tim Converse "Poker without beer and cigars is like
email@example.com a day without sunshine and hurricanes"