The main problems with the nREPL model for tool implementers are:
--
You received this message because you are subscribed to the Google Groups "Clojure Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure-dev...@googlegroups.com.
To post to this group, send email to cloju...@googlegroups.com.
Visit this group at http://groups.google.com/group/clojure-dev.
For more options, visit https://groups.google.com/d/optout.
--
Java reps with license-compatible source code cannot be copied in and their packages renamed?Or do you mean that the mranderson tool doesn't handle Java source code?I agree that this technique makes it significantly more time consuming to update versions of dependencies in a project, and automation tools can help make it faster. Hence my "not necessarily a good one" qualifying phrase.If anyone knows another method that is as effective, or nearly so, I'm curious to know what it is.
Libraries used in the middleware can potentially conflict with different versions of the same libs used by the app in question. This means we have to be extra careful about our dependencies and pick only libraries that are unlikely to be used in actual apps. More details:
On 12 March 2015 at 10:11, Colin Fleming <colin.ma...@gmail.com> wrote:
Can you elaborate on what you mean by isolating the tooling deps from the app deps? How does this block CIDER's development?
I'm not trying to set your priorities, and I know you are working on this (thanks!). But I will continue to object to this characterization of which people require nested read and the things it can be used for. It is not about text adventure games. I've given several serious use cases, including languages and DSLs and control/debug interaction prompts.
For programmatic use, I think the following `rpc` macro, that you can easily install/send in the socket session namespace as a first command, should suffice to catch arbitrary prints to stdout, stderr, and even sent exceptions:(defmacro rpc [& body]`(let [out# (java.io.StringWriter.)err# (java.io.StringWriter.)](try(let [res# (binding [*out* out# *err* err#]~@body)]{:eval res#, :out (.toString out#), :err (.toString err#)})(catch Exception e#{:exception e#, :out (.toString out#), :err (.toString err#)}))))which is a way of 'sinking the streams", what Rich mentioned later on this same thread.