Thanks for the lengthy reply Laurent,  Replies in-line

lpetit wrote:
> Peter,
>
> We asked us the same question some weeks ago, on clojuredev.
>
> We took the path to follow how eclipse launches a java application
> when the user requires it to test it.
> So we created a customized "launch configuration" (sorry, eclipse
> jargon), that is just a classical eclipse java launcher with some
> options predefined.
>   
Yes, this is exactly what I do also, and it is even called a 
"configuration" in IntelliJ
> To enable the user work against the clojure version he wants, we
> require him to have clojure library as a standard library dependency
> on the classpath of his eclipse project.
>
> I think you could do quite the same thing for IntelliJ.
>
> We did that because of several reasons :
>
> - we wanted the user to be able use his own version of clojure, not an
> imposed one
> - we wanted the user to be able to have several clojures running at
> the same time
> - we absolutely wanted to prevent the user run his code in the eclipse
> VM !
> - we wanted regular eclipse users to feel at home with clojuredev,
> having in mind that having a smooth migration path from java to
> clojure, first by just incorporating bits of clojure in a (n already
> existing) java project codebase, could be a good thing.
>   
Yep.  Same solution, same reasons.
> So we took the road you described by quoting Stuart. We call a "bridge
> function" that takes strings and returns strings (or core clojure
> datastructures : maps, vectors, strings, keys, java.lang basic types).
>
> This bridge function runs on the eclipse JVM, and calls a server we
> systematically install in the remote JVM when the user launches his
> project.
>
> The code for the client part is here :
> http://code.google.com/p/clojure-dev/source/browse/clojuredev/trunk/src/clojuredev/debug/clientrepl.clj
> The code for the server part is here :
> http://code.google.com/p/clojure-dev/source/browse/clojuredev/trunk/src/clojuredev/debug/serverrepl.clj
> (and yes, it's yet another variation on the repl over socket)
>
>   
Thanks, I shall take a look at this.

However, if there is only one Clojure image used for references and the 
like, what happens if someone calls an infinite loop, or infinite 
recursion, in a file.  Does the Clojure server hang/blow up?  How do you 
detect it/protect from it?

For example, I was using the SmallSnake code for testing, and when that 
file is loaded, it pops up a window and runs a process forever.  I don't 
want that to happen, just because someone included that file in their 
IntelliJ project.

This must be a problem common to all Swank based IDEs.  What is the 
"Clojure way" here?

--~--~---------~--~----~------------~-------~--~----~
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 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to