For a socket repl, I'd like to have error output sent across the wire  
as well as normal output. Clojure currently provides vars (*in* and  
*out*) that allow a thread to redirect input and output. I suggest a  
new var *err* which allows redirecting error output as well.

I can mostly do this without a change to Clojure by using my own  
alternative to Repl.java, but there are several instances in Clojure  
where System.err is accessed directly. If those were made indirect  
through a new *err*, one could reliably redirect all of *in*, *out*,  
and *err*.

Here's the *err* definition I suggest for RT.java:

final static public Var ERR =
                Var.intern(CLOJURE_NS, Symbol.create("*err*"),
                           new PrintWriter(new OutputStreamWriter(System.err, 
UTF8),  
true));

(A PrintWriter with auto-flush.)

I think PrintWriter is a good choice because Throwable offers a method  
to dump stack traces to a PrintWriter.

--Steve


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to