On Apr 24, 6:05 am, Daniel <[email protected]> wrote: > I'm curious. How does this differ from Jark? > http://icylisper.in/jark/scripting.html
Jark is a client (written in Ocaml) that starts up/shuts down/talks to resident JVMs (with additional Jark-specific code) via the nREPL protocol. It is possible to have multiple scripts in parallel targeting the same JVM. The current differences with lein-exec (AFAIK) are below: 1. Jark client is a binary that talks to a JVM via the nREPL protocol. lein-exec currently always starts a new JVM locally, which is slower than running the Jark client. 2. Jark can connect to a JVM running on another host. This may be very helpful for debugging. lein-exec works on a *new* local JVM with no remote debugging capabilities. 3. The JVM, once started has no way to change the current directory. Consequentially, Jark's resident JVM may see one directory as `pwd` and the client may see another. This locality problem does not exist with lein-exec. 4. Jark's resident JVM may have been started as a different user compared to the client. Hence you cannot `sudo` from the client to carry out things in the JVM. With lein-exec it is valid to escalate permissions by using "sudo scriptname.clj" or "sudo lein2 exec scriptname.clj". 5. Jark is also a server manager – you can specify how many resident JVMs you want to have started and with which versions of Clojure. lein- exec runs only with the JVM that was started by Leiningen. 6. Jark's resident JVM currently does not include pomegranate, hence it cannot dynamically pull dependencies from Clojars or any Maven repo. lein-exec has this capability today. Hope that helps. Shantanu -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. 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
