Re: New Release of the Clojure Debugging Toolkit
my apologies George - upon closer inspection, I don't have a tools.jar file - must have been in a daze before...I updated openjdk-6-jdk and it's update included the tools.jar file (not sure why it wasn't there to begin with though)...now I'm happily humming along with CDTthanks for all your hard work on this! -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
try adding that jar to your classpath, and see if that fixes it. if not, run jar -tf on the tools.jar file to dump the table of contents on it and email it to me and i'll see if i can figure out what is going on. On Mar 15, 7:34 pm, Jeff Bordogna jeff.bordo...@gmail.com wrote: George, Thanks for the response. I'm using openjdk and it lives: file:usr/lib/jvm/java-6-openjdk/jre/../lib/tools.jar (and the format function worked to find that as well). Anything I need to change wrt that? Thanks, Jeff -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I'm on Ubuntu and getting this same error. I can load up the repl no problem (tried with java command, and also with lein swank/slime), but after setting my port on M-x cdt, I get the following in gud-clojure.main: Current directory is ~/ Clojure 1.2.0 user= java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:30) user= java.lang.Exception: Unable to resolve symbol: CDT-DISPLAY-MSG in this context (NO_SOURCE_FILE:2) user= java.lang.Exception: Unable to resolve symbol: set-source-path in this context (NO_SOURCE_FILE:3) user= java.lang.Exception: Unable to resolve symbol: cdt-attach in this context (NO_SOURCE_FILE:4) I followed these directions: http://georgejahad.com/clojure/emacs-cdt.html. Any ideas? -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
couple of thoughts: cdt uses the jdk's tools.jar for access to the java debug interface, (jdi). it's expecting it here: (format file:///%s/../lib/tools.jar (System/getProperty java.home)) do you have such a file there? if not, do you have a tools.jar file anywhere else? which jdk are you using, sun's or openjdk? i'm pretty sure tools.jar comes with both, but i can't recall if i ever looked for it in openjdk. hth, g On Mar 15, 10:30 am, Jeff Bordogna jeff.bordo...@gmail.com wrote: I'm on Ubuntu and getting this same error. I can load up the repl no problem (tried with java command, and also with lein swank/slime), but after setting my port on M-x cdt, I get the following in gud-clojure.main: Current directory is ~/ Clojure 1.2.0 user= java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:30) user= java.lang.Exception: Unable to resolve symbol: CDT-DISPLAY-MSG in this context (NO_SOURCE_FILE:2) user= java.lang.Exception: Unable to resolve symbol: set-source-path in this context (NO_SOURCE_FILE:3) user= java.lang.Exception: Unable to resolve symbol: cdt-attach in this context (NO_SOURCE_FILE:4) I followed these directions:http://georgejahad.com/clojure/emacs-cdt.html. Any ideas? -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
George, Thanks for the response. I'm using openjdk and it lives: file:usr/lib/jvm/java-6-openjdk/jre/../lib/tools.jar (and the format function worked to find that as well). Anything I need to change wrt that? Thanks, Jeff -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
odd. try adding that jar to your classpath, and see if that fixes it. if not, run jar -tf on the jar file to dump the table of contents on that tools.jar file and email it to me and i'll see if i can figure out what is going on. On Mar 15, 7:34 pm, Jeff Bordogna jeff.bordo...@gmail.com wrote: George, Thanks for the response. I'm using openjdk and it lives: file:usr/lib/jvm/java-6-openjdk/jre/../lib/tools.jar (and the format function worked to find that as well). Anything I need to change wrt that? Thanks, Jeff -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I suppose it could be a way to unify both versions using (System/ getProperty path.separator) and (System/getProperty file.separator) I try to fix it like Leo but i get a regexp exception using (reval) with \ -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I suppose it could be a way to unify both versions using (System/ getProperty path.separator) and (System/getProperty file.separator) I add the leo changes (to master vesion -lesses changes-) and it works for me thanks!! On Oct 12, 2:53 pm, leo leonardo.lsilves...@gmail.com wrote: This works for me under Windows 7. I set all forward slashes paths in my .emacs file like this: (progn (setq cdt-dir c:/msysgit/cdt) (setq cdt-source-path c:/clj/clojure-1.2.0/src/jvm;c:/clj/ clojure-1.2.0/src/clj;c:/clj/clojure-contrib-1.2.0/src/main/clojure/ clojure/contrib;) (load-file (format %s/ide/emacs/cdt.el cdt-dir))) And these are the diffs from George's current windows version (hopefully George will be able to make them available in a more convenient way) - and note the file:/// with 3 slashes under Windows: - diff --git a/.gitignore b/.gitignore diff --git a/README b/README diff --git a/docs/cdt.muse b/docs/cdt.muse diff --git a/docs/emacs-cdt.muse b/docs/emacs-cdt.muse diff --git a/ide/emacs/cdt.el b/ide/emacs/cdt.el index 0560ab2..42e3e1a 100644 --- a/ide/emacs/cdt.el +++ b/ide/emacs/cdt.el @@ -25,13 +25,13 @@ (gud-call (format (reval-display '%s) (thing-at-point 'sexp (defun strip-trail (path) - (if (= (elt path (- (length path) 1)) ?\\) + (if (= (elt path (- (length path) 1)) ?/) (substring path 0 (- (length path) 1)) path)) (defun cdt-query-cmdline () (let ((path (strip-trail cdt-dir))) - (format java -classpath%s\\lib\\clojure-1.2.0.jar;%s\\lib\ \clojure-contrib-1.2.0.jar;%s\\lib\\debug- repl-0.3.0-20091229.021828-3.jar;%s\\src clojure.main --repl + (format java -classpath%s/lib/clojure-1.2.0.jar;%s/lib/clojure- contrib-1.2.0.jar;%s/lib/debug-repl-0.3.0-20091229.021828-3.jar;%s/src clojure.main --repl path path path path))) (defun cdt (port) diff --git a/project.clj b/project.clj diff --git a/src/com/georgejahad/cdt.clj b/src/com/georgejahad/cdt.clj index d479877..d2d570f 100644 --- a/src/com/georgejahad/cdt.clj +++ b/src/com/georgejahad/cdt.clj @@ -21,10 +21,11 @@ ;; add-classpath is ugly, but handles the fact that tools.jar and ;; sa-jdi.jar are platform dependencies that I can't easily put in a ;; repo: -(with-out-str (add-classpath (format file://%s/../lib/tools.jar +(with-out-str (add-classpath (format file:///%s/../lib/tools.jar (System/getProperty java.home -(with-out-str (add-classpath (format file://%s/../lib/sa-jdi.jar +(with-out-str (add-classpath (format file:///%s/../lib/sa-jdi.jar (System/getProperty java.home + (import com.sun.jdi.Bootstrap com.sun.jdi.request.EventRequest com.sun.jdi.event.BreakpointEvent @@ -90,7 +91,7 @@ (defonce source-path (atom )) (defn remove-trailing-slashes [s] - (str/replace s \\; ;)) + (str/replace s /: :)) (defn set-source-path [path] (reset! source-path (remove-trailing-slashes path))) @@ -98,10 +99,10 @@ (defn get-source [] (let [file (.sourcePath (.location (.frame (ct) (cf paths (.split @source-path ;)] - (if (= (first file) \\) + (if (= (first file) \/) file (first (filter #(.exists (java.io.File. %)) - (for [p paths] (str p \\ file))) + (for [p paths] (str p / file))) (defmacro check-unexpected-exception [ body] `(try @@ -325,11 +326,11 @@ (re-pattern (str s \\$ (defn fix-class [c] - (str/replace c / .)) + (str/replace c \\ .)) (defn get-class* [fname] (- (.split @source-path ;) - (map #(re-find (re-pattern (str % \\(.*)(.clj|.java))) fname)) + (map #(re-find (re-pattern (str % /(.*)(.clj|.java))) fname)) (remove nil?) first second @@ -426,7 +427,7 @@ (defn get-file-name [frame] (let [sp (try (.sourcePath (.location frame)) (catch Exception e source not found))] - (last (.split sp \\ + (last (.split sp / (defn clojure-frame? [frame fields] (let [names (map #(.name %) fields)] On Oct 11, 6:48 pm, atreyu atreyu@gmail.com wrote: Hi folks and congrats to George Jahad for this great work. Hoewer the cdt dont work on my windows vista. After some changes on my own i get the same error of Greg Willams: java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) i've tried add-classpath of tool.jar (where is the class in my jdk) with various formats, after testing the urls in browser with success but i get the ClassNotFound all the time Current directory is c:/Users/atreyu/AppData/Roaming/.emacs.d/ Clojure 1.2.0 user= java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) user= java.lang.Exception: Unable to resolve symbol: set-source-path in this context (NO_SOURCE_FILE:2) user= java.lang.Exception: Unable to resolve symbol: cdt-attach in this
Re: New Release of the Clojure Debugging Toolkit
This works for me under Windows 7. I set all forward slashes paths in my .emacs file like this: (progn (setq cdt-dir c:/msysgit/cdt) (setq cdt-source-path c:/clj/clojure-1.2.0/src/jvm;c:/clj/ clojure-1.2.0/src/clj;c:/clj/clojure-contrib-1.2.0/src/main/clojure/ clojure/contrib;) (load-file (format %s/ide/emacs/cdt.el cdt-dir))) And these are the diffs from George's current windows version (hopefully George will be able to make them available in a more convenient way) - and note the file:/// with 3 slashes under Windows: - diff --git a/.gitignore b/.gitignore diff --git a/README b/README diff --git a/docs/cdt.muse b/docs/cdt.muse diff --git a/docs/emacs-cdt.muse b/docs/emacs-cdt.muse diff --git a/ide/emacs/cdt.el b/ide/emacs/cdt.el index 0560ab2..42e3e1a 100644 --- a/ide/emacs/cdt.el +++ b/ide/emacs/cdt.el @@ -25,13 +25,13 @@ (gud-call (format (reval-display '%s) (thing-at-point 'sexp (defun strip-trail (path) - (if (= (elt path (- (length path) 1)) ?\\) + (if (= (elt path (- (length path) 1)) ?/) (substring path 0 (- (length path) 1)) path)) (defun cdt-query-cmdline () (let ((path (strip-trail cdt-dir))) -(format java -classpath%s\\lib\\clojure-1.2.0.jar;%s\\lib\ \clojure-contrib-1.2.0.jar;%s\\lib\\debug- repl-0.3.0-20091229.021828-3.jar;%s\\src clojure.main --repl +(format java -classpath%s/lib/clojure-1.2.0.jar;%s/lib/clojure- contrib-1.2.0.jar;%s/lib/debug-repl-0.3.0-20091229.021828-3.jar;%s/src clojure.main --repl path path path path))) (defun cdt (port) diff --git a/project.clj b/project.clj diff --git a/src/com/georgejahad/cdt.clj b/src/com/georgejahad/cdt.clj index d479877..d2d570f 100644 --- a/src/com/georgejahad/cdt.clj +++ b/src/com/georgejahad/cdt.clj @@ -21,10 +21,11 @@ ;; add-classpath is ugly, but handles the fact that tools.jar and ;; sa-jdi.jar are platform dependencies that I can't easily put in a ;; repo: -(with-out-str (add-classpath (format file://%s/../lib/tools.jar +(with-out-str (add-classpath (format file:///%s/../lib/tools.jar (System/getProperty java.home -(with-out-str (add-classpath (format file://%s/../lib/sa-jdi.jar +(with-out-str (add-classpath (format file:///%s/../lib/sa-jdi.jar (System/getProperty java.home + (import com.sun.jdi.Bootstrap com.sun.jdi.request.EventRequest com.sun.jdi.event.BreakpointEvent @@ -90,7 +91,7 @@ (defonce source-path (atom )) (defn remove-trailing-slashes [s] - (str/replace s \\; ;)) + (str/replace s /: :)) (defn set-source-path [path] (reset! source-path (remove-trailing-slashes path))) @@ -98,10 +99,10 @@ (defn get-source [] (let [file (.sourcePath (.location (.frame (ct) (cf paths (.split @source-path ;)] -(if (= (first file) \\) +(if (= (first file) \/) file (first (filter #(.exists (java.io.File. %)) - (for [p paths] (str p \\ file))) + (for [p paths] (str p / file))) (defmacro check-unexpected-exception [ body] `(try @@ -325,11 +326,11 @@ (re-pattern (str s \\$ (defn fix-class [c] - (str/replace c / .)) + (str/replace c \\ .)) (defn get-class* [fname] (- (.split @source-path ;) - (map #(re-find (re-pattern (str % \\(.*)(.clj|.java))) fname)) + (map #(re-find (re-pattern (str % /(.*)(.clj|.java))) fname)) (remove nil?) first second @@ -426,7 +427,7 @@ (defn get-file-name [frame] (let [sp (try (.sourcePath (.location frame)) (catch Exception e source not found))] -(last (.split sp \\ +(last (.split sp / (defn clojure-frame? [frame fields] (let [names (map #(.name %) fields)] On Oct 11, 6:48 pm, atreyu atreyu@gmail.com wrote: Hi folks and congrats to George Jahad for this great work. Hoewer the cdt dont work on my windows vista. After some changes on my own i get the same error of Greg Willams: java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) i've tried add-classpath of tool.jar (where is the class in my jdk) with various formats, after testing the urls in browser with success but i get the ClassNotFound all the time Current directory is c:/Users/atreyu/AppData/Roaming/.emacs.d/ Clojure 1.2.0 user= java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) user= java.lang.Exception: Unable to resolve symbol: set-source-path in this context (NO_SOURCE_FILE:2) user= java.lang.Exception: Unable to resolve symbol: cdt-attach in this context (NO_SOURCE_FILE:3) user= (def file-url (format file://%s/../lib/tools.jar (System/getProperty java.home))) #'user/file-url user= file-url file://c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../lib/tools.jar user= (def file-path c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../ lib/tools.jar) #'user/file-url user= (.exists (java.io.File. file-path)) true
Re: New Release of the Clojure Debugging Toolkit
George, I don't know what time zone you live in, but you are one crazy person! I'm on vacation in NYC for a couple more days, then back home to Silicon Valley. Still jet lagged which explains my odd hours. (Not to mention that being in New York is such a rush it's pretty hard to sleep!) You're doing fantastic work for the Clojure community, and I thank you very much for that! Hey thanks a lot for the kind words! They mean a lot to me. I guess like most people, it really encourages me when I hear that people like my work. Basically, I'm just trying to emulate the behavior of all the studs that came before me, from RH on down. I'm proud to be able to contribute anything at all to this amazing community! It's so exciting how everything is coming together for Clojure right now. Can't wait to see what happens next. OK, enough rhapsodizing. With respect to the Windows port, I just got an email from Leo S. saying he has it working on Windows. As soon as we figure out the best way to distribute his fixes, I'll let you know. Nuance/Dragon speech-recognition system for the PC is vastly superior to its (just purchased by Nuance) MacOS X equivalent (sigh). You going to do some speech recognition in Clojure? -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
You going to do some speech recognition in Clojure? Unfortunately, no. I just have some hand RSI problems, and I use Dragon NaturallySpeaking for writing e-mails and documenting Clojure code. You can see an example of the notes I've taken while going through the labrepl exercises at http://www.gettingclojure.com/notes:clojure-notes-labrepl-1 and ...labrepl-2. --Gregg -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
Hi folks and congrats to George Jahad for this great work. Hoewer the cdt dont work on my windows vista. After some changes on my own i get the same error of Greg Willams: java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) i've tried add-classpath of tool.jar (where is the class in my jdk) with various formats, after testing the urls in browser with success but i get the ClassNotFound all the time Current directory is c:/Users/atreyu/AppData/Roaming/.emacs.d/ Clojure 1.2.0 user= java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) user= java.lang.Exception: Unable to resolve symbol: set-source-path in this context (NO_SOURCE_FILE:2) user= java.lang.Exception: Unable to resolve symbol: cdt-attach in this context (NO_SOURCE_FILE:3) user= (def file-url (format file://%s/../lib/tools.jar (System/getProperty java.home))) #'user/file-url user= file-url file://c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../lib/tools.jar user= (def file-path c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../ lib/tools.jar) #'user/file-url user= (.exists (java.io.File. file-path)) true user= (add-classpath file-url) WARNING: add-classpath is deprecated nil user= (import com.sun.jdi.Bootstrap) java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (NO_SOURCE_FILE:15) i hope somebody'll can help this poor win users ;-) -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
On Oct 12, 12:48 am, atreyu atreyu@gmail.com wrote: Hi folks and congrats to George Jahad for this great work. Hoewer the cdt dont work on my windows vista. After some changes on my own i get the same error of Greg Willams: java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) i've tried add-classpath of tool.jar (where is the class in my jdk) with various formats, after testing the urls in browser with success but i get the ClassNotFound all the time Current directory is c:/Users/atreyu/AppData/Roaming/.emacs.d/ Clojure 1.2.0 user= java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) user= java.lang.Exception: Unable to resolve symbol: set-source-path in this context (NO_SOURCE_FILE:2) user= java.lang.Exception: Unable to resolve symbol: cdt-attach in this context (NO_SOURCE_FILE:3) user= (def file-url (format file://%s/../lib/tools.jar (System/getProperty java.home))) #'user/file-url user= file-url file://c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../lib/tools.jar user= (def file-path c:\\Program Files\\Java\\jdk1.6.0_21\\jre/../ lib/tools.jar) #'user/file-url user= (.exists (java.io.File. file-path)) true user= (add-classpath file-url) WARNING: add-classpath is deprecated nil user= (import com.sun.jdi.Bootstrap) java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (NO_SOURCE_FILE:15) i hope somebody'll can help this poor win users ;-) ok i have made a (ugly) trick to make it work, copying tools.jar in cdt/lib and changing cdt.el: (defun cdt-query-cmdline () (let ((path (strip-trail cdt-dir))) (format java -classpath%s/lib/clojure-1.2.0.jar;%s/lib/clojure- contrib-1.2.0.jar;%s/lib/debug-repl-0.3.0-20091229.021828-3.jar;%s/lib/ tools.jar;%s/src clojure.main --repl path path path path path))) I guess there is a nicer solution :-/ -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
ok i have made a (ugly) trick to make it work, copying tools.jar in cdt/lib and changing cdt.el: (defun cdt-query-cmdline () (let ((path (strip-trail cdt-dir))) (format java -classpath%s/lib/clojure-1.2.0.jar;%s/lib/clojure- contrib-1.2.0.jar;%s/lib/debug-repl-0.3.0-20091229.021828-3.jar;%s/ lib/ tools.jar;%s/src clojure.main --repl path path path path path))) I guess there is a nicer solution :-/ -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
ok i have made a (ugly) trick to make it work, copying tools.jar in cdt/lib and changing cdt.el: (defun cdt-query-cmdline () (let ((path (strip-trail cdt-dir))) (format java -classpath%s/lib/clojure-1.2.0.jar;%s/lib/clojure- contrib-1.2.0.jar;%s/lib/debug-repl-0.3.0-20091229.021828-3.jar;%s/ lib/ tools.jar;%s/src clojure.main --repl path path path path path))) I guess there is a nicer solution :-/ After this step i've tried to test debugger commands and im afraid reval and gud-this throws: Unexpected exception generated: #InvocationException com.sun.jdi.InvocationException: Exception occurred in target VM com.sun.jdi.InvocationException: Exception occurred in target VM (NO_SOURCE_FILE:0) -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
Thanks for your ridiculously long instructions on using cdt; I appreciate your thoroughness. I'm working on the %$#...@^@! Windows platform (Windows XP, to be precise), and I'm unable to set cdt-source-path in my .emacs file. I can get my Clojure REPL to start just fine: C:\techjava - agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 -client -cp c:\tech\clojure-contrib-1.2.0\target\clojure- contrib-1.2.0.jar;c:\te ch\clojure-1.2.0\clojure.jar clojure.main --repl Listening for transport dt_socket at address: 8021 Clojure 1.2.0 user= Here's what I have in my .emacs file: (progn (setq cdt-dir /tech/cdt) (setq cdt-source-path /tech/clojure-1.2.0/src/jvm;/tech/ clojure-1.2.0/src/clj;/tech/clojure-contrib-1.2.0/src/main/clojure) (load-file (format %s/ide/emacs/cdt.el cdt-dir))) When I select and execute it from within Emacs, I get a message in the minibuffer that says Loading c:/tech/cdt/ide/emacs/cdt.el (source)...done. But when I type M-x cdt and set the port to 8021, the following error message goes into the buffer named *gud- clojure.main*: Current directory is C:\Documents and Settings\add-minimum/ java.lang.NoClassDefFoundError: clojure/main Caused by: java.lang.ClassNotFoundException: clojure.main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: clojure.main. Program will exit. Exception in thread main Debugger exited abnormally with code 1 I don't know how to handle Windows pathnames, especially the drive letter, in the context of (setq cdt-source-path I tried taking off the /c/ or c:\ for cdt-dir, and that seems to work. But trying the same thing for cdt-source-path doesn't seem to work. I'm wondering, should path names be delimited by colons (as Unix expects), or by semicolons (as Windows expects). I've tried various combinations, I've tried to find the Java conventions for Windows classpaths... nothing seems to work. Any suggestions from anybody will be appreciated. Thanks. On Sep 28, 12:40 am, George Jahad cloj...@blackbirdsystems.net wrote: As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to theCDT: 1. Stepping 2. Line number breakpoints 3. An Emacs based front end which allows you to: step, set breakpoints, catch exceptions, eval remote clojure expressions, and go up and down the stack, in a much more natural way than with just the command line. When you want to eval the s-expr under the cursor, hit ^x^a^p! CDTwill then serialize the s-expr, send it to the remote vm, evaluate it there in the context of the current stack frame, and display the result on the mode line. Ridiculously long instructions on how to use it are here:http://georgejahad.com/clojure/emacs-cdt.html I should emphasize that there is nothing Emacs specific about theCDT. In fact, I've been so spoiled by Clojure, I don't even enjoy writing Elisp any more. This front end was written in Emacs because that's the IDE I'm most familiar with. TheCDTcommand line is IDE agnostic; it should be easy, (dare I say fun?), to port it to other IDE's. If there's interest, I'll detail how in a future post. Many thanks to Fogus for the kind words, and to the Runa gang for their continuing encouragement! -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I haven't gotten it working on Windows yet, (as I mention here: http://georgejahad.com/clojure/emacs-cdt.html) I don't think it will be hard, but I've never run Clojure on Windows, so I'm not sure of the issues involved. I need someone like you to help me figure them out. I'm guessing the most important issue is the one you are running into, the path/file separator differences. I've just pushed my best guess at a fix for windows to the windows branch here: http://github.com/GeorgeJahad/cdt Can you try doing a: git fetch git checkout windows from within your cdt repo, and see if that works any better for you? Thanks! On Oct 9, 11:31 pm, Gregg Williams greg...@innerpaths.net wrote: Thanks for your ridiculously long instructions on using cdt; I appreciate your thoroughness. I'm working on the %$#...@^@! Windows platform (Windows XP, to be precise), and I'm unable to set cdt-source-path in my .emacs file. I can get my Clojure REPL to start just fine: C:\techjava - agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 -client -cp c:\tech\clojure-contrib-1.2.0\target\clojure- contrib-1.2.0.jar;c:\te ch\clojure-1.2.0\clojure.jar clojure.main --repl Listening for transport dt_socket at address: 8021 Clojure 1.2.0 user= Here's what I have in my .emacs file: (progn (setq cdt-dir /tech/cdt) (setq cdt-source-path /tech/clojure-1.2.0/src/jvm;/tech/ clojure-1.2.0/src/clj;/tech/clojure-contrib-1.2.0/src/main/clojure) (load-file (format %s/ide/emacs/cdt.el cdt-dir))) When I select and execute it from within Emacs, I get a message in the minibuffer that says Loading c:/tech/cdt/ide/emacs/cdt.el (source)...done. But when I type M-x cdt and set the port to 8021, the following error message goes into the buffer named *gud- clojure.main*: Current directory is C:\Documents and Settings\add-minimum/ java.lang.NoClassDefFoundError: clojure/main Caused by: java.lang.ClassNotFoundException: clojure.main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: clojure.main. Program will exit. Exception in thread main Debugger exited abnormally with code 1 I don't know how to handle Windows pathnames, especially the drive letter, in the context of (setq cdt-source-path I tried taking off the /c/ or c:\ for cdt-dir, and that seems to work. But trying the same thing for cdt-source-path doesn't seem to work. I'm wondering, should path names be delimited by colons (as Unix expects), or by semicolons (as Windows expects). I've tried various combinations, I've tried to find the Java conventions for Windows classpaths... nothing seems to work. Any suggestions from anybody will be appreciated. Thanks. On Sep 28, 12:40 am, George Jahad cloj...@blackbirdsystems.net wrote: As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to theCDT: 1. Stepping 2. Line number breakpoints 3. An Emacs based front end which allows you to: step, set breakpoints, catch exceptions, eval remote clojure expressions, and go up and down the stack, in a much more natural way than with just the command line. When you want to eval the s-expr under the cursor, hit ^x^a^p! CDTwill then serialize the s-expr, send it to the remote vm, evaluate it there in the context of the current stack frame, and display the result on the mode line. Ridiculously long instructions on how to use it are here:http://georgejahad.com/clojure/emacs-cdt.html I should emphasize that there is nothing Emacs specific about theCDT. In fact, I've been so spoiled by Clojure, I don't even enjoy writing Elisp any more. This front end was written in Emacs because that's the IDE I'm most familiar with. TheCDTcommand line is IDE agnostic; it should be easy, (dare I say fun?), to port it to other IDE's. If there's interest, I'll detail how in a future post. Many thanks to Fogus for the kind words, and to the Runa gang for their continuing encouragement! -- 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 Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at
Re: New Release of the Clojure Debugging Toolkit
git fetch Actually, instead of git fetch, use: git pull origin windows On Oct 10, 4:39 am, George Jahad cloj...@blackbirdsystems.net wrote: I haven't gotten it working on Windows yet, (as I mention here:http://georgejahad.com/clojure/emacs-cdt.html) I don't think it will be hard, but I've never run Clojure on Windows, so I'm not sure of the issues involved. I need someone like you to help me figure them out. I'm guessing the most important issue is the one you are running into, the path/file separator differences. I've just pushed my best guess at a fix for windows to the windows branch here:http://github.com/GeorgeJahad/cdt Can you try doing a: git fetch git checkout windows from within your cdt repo, and see if that works any better for you? Thanks! On Oct 9, 11:31 pm, Gregg Williams greg...@innerpaths.net wrote: Thanks for your ridiculously long instructions on using cdt; I appreciate your thoroughness. I'm working on the %$#...@^@! Windows platform (Windows XP, to be precise), and I'm unable to set cdt-source-path in my .emacs file. I can get my Clojure REPL to start just fine: C:\techjava - agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 -client -cp c:\tech\clojure-contrib-1.2.0\target\clojure- contrib-1.2.0.jar;c:\te ch\clojure-1.2.0\clojure.jar clojure.main --repl Listening for transport dt_socket at address: 8021 Clojure 1.2.0 user= Here's what I have in my .emacs file: (progn (setq cdt-dir /tech/cdt) (setq cdt-source-path /tech/clojure-1.2.0/src/jvm;/tech/ clojure-1.2.0/src/clj;/tech/clojure-contrib-1.2.0/src/main/clojure) (load-file (format %s/ide/emacs/cdt.el cdt-dir))) When I select and execute it from within Emacs, I get a message in the minibuffer that says Loading c:/tech/cdt/ide/emacs/cdt.el (source)...done. But when I type M-x cdt and set the port to 8021, the following error message goes into the buffer named *gud- clojure.main*: Current directory is C:\Documents and Settings\add-minimum/ java.lang.NoClassDefFoundError: clojure/main Caused by: java.lang.ClassNotFoundException: clojure.main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: clojure.main. Program will exit. Exception in thread main Debugger exited abnormally with code 1 I don't know how to handle Windows pathnames, especially the drive letter, in the context of (setq cdt-source-path I tried taking off the /c/ or c:\ for cdt-dir, and that seems to work. But trying the same thing for cdt-source-path doesn't seem to work. I'm wondering, should path names be delimited by colons (as Unix expects), or by semicolons (as Windows expects). I've tried various combinations, I've tried to find the Java conventions for Windows classpaths... nothing seems to work. Any suggestions from anybody will be appreciated. Thanks. On Sep 28, 12:40 am, George Jahad cloj...@blackbirdsystems.net wrote: As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to theCDT: 1. Stepping 2. Line number breakpoints 3. An Emacs based front end which allows you to: step, set breakpoints, catch exceptions, eval remote clojure expressions, and go up and down the stack, in a much more natural way than with just the command line. When you want to eval the s-expr under the cursor, hit ^x^a^p! CDTwill then serialize the s-expr, send it to the remote vm, evaluate it there in the context of the current stack frame, and display the result on the mode line. Ridiculously long instructions on how to use it are here:http://georgejahad.com/clojure/emacs-cdt.html I should emphasize that there is nothing Emacs specific about theCDT. In fact, I've been so spoiled by Clojure, I don't even enjoy writing Elisp any more. This front end was written in Emacs because that's the IDE I'm most familiar with. TheCDTcommand line is IDE agnostic; it should be easy, (dare I say fun?), to port it to other IDE's. If there's interest, I'll detail how in a future post. Many thanks to Fogus for the kind words, and to the Runa gang for their continuing encouragement! -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to
Re: New Release of the Clojure Debugging Toolkit
George, I don't know what time zone you live in, but you are one crazy person! You're doing fantastic work for the Clojure community, and I thank you very much for that! The Emacs I was using was Clojure Box, so I disconnected slime (just in case) and tried what you suggested. The results were better, but still not success, so I downloaded and installed a fresh version of W32 Emacs (i.e., Emacs only, no Clojure add-ons), then I started over. Here's the result of refreshing the cdt directory (from the git-bash shell): - $ git pull origin windows remote: Counting objects: 17, done. remote: Compressing objects: 100% (4/4), done. remote: Total 9 (delta 3), reused 0 (delta 0) Unpacking objects: 100% (9/9), done. From git://github.com/GeorgeJahad/cdt * branchwindows- FETCH_HEAD Merge made by recursive. ide/emacs/cdt.el|4 ++-- src/com/georgejahad/cdt.clj | 14 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) add-mini...@user-f38f1ebc55 /c/tech/cdt (master) $ git checkout windows error: pathspec 'windows' did not match any file(s) known to git. add-mini...@user-f38f1ebc55 /c/tech/cdt (master) $ - I don't know what went wrong with the last command, but some files were changed in the directory. From a Windows cmd shell window, I got the target REPL working with the following command: java - agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 - client -cp \tech\clojure-contrib-1.2.0\target\clojure- contrib-1.2.0.jar;\tech\clojure-1.2.0\clojure.jar clojure.main --repl I did some research on how cmd works, and I found that the cd command has a special syntax for changing the target disk drive--in other words, it's as if, normally, the cd command is blind to the existence of multiple hard disks. A Microsoft web page described the following behavior: C:\tech\cdtcd \ C:\ You could say that \ acts like root on UNIX systems (!). This explains why the backslash classpath separated by semicolons in the above java command (probably) works. Onward. OK, so now I have a fresh, untainted copy of Emacs. I put the following in the .emacs file (which is otherwise empty): (progn (setq cdt-dir /tech/cdt) (setq cdt-source-path /tech/clojure-1.2.0/src/jvm:/tech/ clojure-1.2.0/src/clj:/tech/clojure-contrib-1.2.0/src/main/clojure:) (load-file (format %s/ide/emacs/cdt.el cdt-dir))) I open Emacs, execute M-x cdt, and get the following result: Current directory is c:/Documents and Settings/add-minimum/Application Data/ Clojure 1.2.0 user= java.lang.ClassNotFoundException: com.sun.jdi.Bootstrap (cdt.clj:28) user= java.lang.Exception: Unable to resolve symbol: set-source-path in this context (NO_SOURCE_FILE:2) user= java.lang.Exception: Unable to resolve symbol: cdt-attach in this context (NO_SOURCE_FILE:3) user= Hooray! A REPL! I start reenacting your test-drive scenario and get the following result: user= (set-bp clojure.set/difference) java.lang.Exception: Unable to resolve symbol: set-bp in this context (NO_SOURCE_FILE:4) user= So that's the state of things. I'll be glad to work with you to get this working on Windows. What so ironic is that I worked for Apple for 10 years, and the *only* reason I'm doing this on a PC is that the Nuance/Dragon speech-recognition system for the PC is vastly superior to its (just purchased by Nuance) MacOS X equivalent (sigh). Best wishes, Gregg On Oct 10, 4:41 am, George Jahad cloj...@blackbirdsystems.net wrote: git fetch Actually, instead of git fetch, use: git pull origin windows On Oct 10, 4:39 am, George Jahad cloj...@blackbirdsystems.net wrote: I haven't gotten it working on Windows yet, (as I mention here:http://georgejahad.com/clojure/emacs-cdt.html) I don't think it will be hard, but I've never run Clojure on Windows, so I'm not sure of the issues involved. I need someone like you to help me figure them out. I'm guessing the most important issue is the one you are running into, the path/file separator differences. I've just pushed my best guess at a fix for windows to the windows branch here:http://github.com/GeorgeJahad/cdt Can you try doing a: git fetch git checkout windows from within your cdt repo, and see if that works any better for you? Thanks! On Oct 9, 11:31 pm, Gregg Williams greg...@innerpaths.net wrote: Thanks for your ridiculously long instructions on using cdt; I appreciate your thoroughness. I'm working on the %$#...@^@! Windows platform (Windows XP, to be precise), and I'm unable to set cdt-source-path in my .emacs file. I can get my Clojure REPL to start just fine: C:\techjava - agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 -client -cp c:\tech\clojure-contrib-1.2.0\target\clojure- contrib-1.2.0.jar;c:\te ch\clojure-1.2.0\clojure.jar clojure.main --repl Listening for transport dt_socket at address: 8021 Clojure 1.2.0 user=
Re: New Release of the Clojure Debugging Toolkit
sa-jdi.jar is supposed to come with the jdk. The code I use for finding it should work for sun's 1.6 jdk on linux and osx. Which java are you using? What os are you running it on? Also, what problem are you running into without it? (I think I only use it for some advanced features which you may not need.) On Oct 7, 8:15 pm, limux liumengji...@gmail.com wrote: where is the sa-jdi.jar, there isn't the sa-jdi.jar under my java's lib directory. On 9月29日, 下午12时00分, George Jahad cloj...@blackbirdsystems.net wrote: hmmm, you must be as big a debugger geek as I am, but I'm not sure anyone else would be interested. In any case the commands are almost trivial, which is why I don't think it will be too hard to port this to other IDE's: These are the CDT commands that were generated by the Emacs front end in the first example: (set-bp clojure.set/difference) (reval s1) (reval s2) (reval count) (reval (count s2)) (step-over) (reval (reduce disj s1 s2)) (up) (down) (cont) (line-bp /Users/georgejahad/incoming/clo11/clojure/src/clj/clojure/ set.clj 56) On Sep 28, 5:13 am, David Nolen dnolen.li...@gmail.com wrote: On Tue, Sep 28, 2010 at 3:40 AM, George Jahad cloj...@blackbirdsystems.netwrote: As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: Great stuff! Would it be possible to write a version of the tutorial that shows how to accomplish the same things purely from the command line? While I love Emacs as much as the next guy, I think a tutorial that shows how to debug using only the CDT REPL would be useful to many people. David -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I do a full source install of clojure follow by the article Emacs Front End to the Clojure Debugging Toolkit, I started the java vm with all the necesory arguments, and M-x cdt, then there will be some error messages as below: Current directory is H:\heoxsoft\emacs\emacs-23.2\bin/ java.lang.NoClassDefFoundError: clojure/main Caused by: java.lang.ClassNotFoundException: clojure.main at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: clojure.main. Program will exit. Exception in thread main Debugger exited abnormally with code 1 I am a newbie of clojure and java, thanks for you help! My java is sun jdk 1.6.18, os is windows 7 x64. I will try it after October 10 because I will install the Ubuntu 10.10. On 10月8日, 下午7时32分, George Jahad cloj...@blackbirdsystems.net wrote: sa-jdi.jar is supposed to come with the jdk. The code I use for finding it should work for sun's 1.6 jdk on linux and osx. Which java are you using? What os are you running it on? Also, what problem are you running into without it? (I think I only use it for some advanced features which you may not need.) On Oct 7, 8:15 pm, limux liumengji...@gmail.com wrote: where is the sa-jdi.jar, there isn't the sa-jdi.jar under my java's lib directory. On 9月29日, 下午12时00分, George Jahad cloj...@blackbirdsystems.net wrote: hmmm, you must be as big a debugger geek as I am, but I'm not sure anyone else would be interested. In any case the commands are almost trivial, which is why I don't think it will be too hard to port this to other IDE's: These are theCDTcommands that were generated by the Emacs front end in the first example: (set-bpclojure.set/difference) (reval s1) (reval s2) (reval count) (reval (count s2)) (step-over) (reval (reduce disj s1 s2)) (up) (down) (cont) (line-bp /Users/georgejahad/incoming/clo11/clojure/src/clj/clojure/ set.clj 56) On Sep 28, 5:13 am, David Nolen dnolen.li...@gmail.com wrote: On Tue, Sep 28, 2010 at 3:40 AM, George Jahad cloj...@blackbirdsystems.netwrote: As some of you know, I suffer from a seemingly interminable obsession with improving theClojuredebugging story. It just seems so clear to me thatClojuredeserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to theCDT: Great stuff! Would it be possible to write a version of the tutorial that shows how to accomplish the same things purely from the command line? While I love Emacs as much as the next guy, I think a tutorial that shows how to debug using only theCDTREPL would be useful to many people. David -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I believe this is not caused by any problems with the debugging environment. Instead you appear to not have the clojure jar on your classpath. I would recommend you explicitly launch java with java -cp H:\path\to\clojure.jar plus any additional arguments of course. if this is still not working for you, please post the exact command you are using to invoke java, as well as a listing of all jars on your classpath, and I'll try to help some more. Good luck, --Robert McIntyre 2010/10/8 limux liumengji...@gmail.com: I do a full source install of clojure follow by the article Emacs Front End to the Clojure Debugging Toolkit, I started the java vm with all the necesory arguments, and M-x cdt, then there will be some error messages as below: Current directory is H:\heoxsoft\emacs\emacs-23.2\bin/ java.lang.NoClassDefFoundError: clojure/main Caused by: java.lang.ClassNotFoundException: clojure.main at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: clojure.main. Program will exit. Exception in thread main Debugger exited abnormally with code 1 I am a newbie of clojure and java, thanks for you help! My java is sun jdk 1.6.18, os is windows 7 x64. I will try it after October 10 because I will install the Ubuntu 10.10. On 10月8日, 下午7时32分, George Jahad cloj...@blackbirdsystems.net wrote: sa-jdi.jar is supposed to come with the jdk. The code I use for finding it should work for sun's 1.6 jdk on linux and osx. Which java are you using? What os are you running it on? Also, what problem are you running into without it? (I think I only use it for some advanced features which you may not need.) On Oct 7, 8:15 pm, limux liumengji...@gmail.com wrote: where is the sa-jdi.jar, there isn't the sa-jdi.jar under my java's lib directory. On 9月29日, 下午12时00分, George Jahad cloj...@blackbirdsystems.net wrote: hmmm, you must be as big a debugger geek as I am, but I'm not sure anyone else would be interested. In any case the commands are almost trivial, which is why I don't think it will be too hard to port this to other IDE's: These are theCDTcommands that were generated by the Emacs front end in the first example: (set-bpclojure.set/difference) (reval s1) (reval s2) (reval count) (reval (count s2)) (step-over) (reval (reduce disj s1 s2)) (up) (down) (cont) (line-bp /Users/georgejahad/incoming/clo11/clojure/src/clj/clojure/ set.clj 56) On Sep 28, 5:13 am, David Nolen dnolen.li...@gmail.com wrote: On Tue, Sep 28, 2010 at 3:40 AM, George Jahad cloj...@blackbirdsystems.netwrote: As some of you know, I suffer from a seemingly interminable obsession with improving theClojuredebugging story. It just seems so clear to me thatClojuredeserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to theCDT: Great stuff! Would it be possible to write a version of the tutorial that shows how to accomplish the same things purely from the command line? While I love Emacs as much as the next guy, I think a tutorial that shows how to debug using only theCDTREPL would be useful to many people. David -- 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 Note that posts from new members are moderated - please be patient with your first post. 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 -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I use java - agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 - client -cp h:/clojure/libs/clojure-contrib-1.2.0.jar;h:/clojure/libs/ clojure-1.2.0.jar clojure.main --repl to invoke java, and there is not any jars in the classpath. The user namespace is there after I invoke java with that command. Greate thank for your reply. On 10月9日, 上午7时45分, Robert McIntyre r...@mit.edu wrote: I believe this is not caused by any problems with the debugging environment. Instead you appear to not have the clojure jar on your classpath. I would recommend you explicitly launch java with java -cp H:\path\to\clojure.jar plus any additional arguments of course. if this is still not working for you, please post the exact command you are using to invoke java, as well as a listing of all jars on your classpath, and I'll try to help some more. Good luck, --Robert McIntyre 2010/10/8 limux liumengji...@gmail.com: I do a full source install of clojure follow by the article Emacs Front End to the Clojure Debugging Toolkit, I started the java vm with all the necesory arguments, and M-x cdt, then there will be some error messages as below: Current directory is H:\heoxsoft\emacs\emacs-23.2\bin/ java.lang.NoClassDefFoundError: clojure/main Caused by: java.lang.ClassNotFoundException: clojure.main at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: clojure.main. Program will exit. Exception in thread main Debugger exited abnormally with code 1 I am a newbie of clojure and java, thanks for you help! My java is sun jdk 1.6.18, os is windows 7 x64. I will try it after October 10 because I will install the Ubuntu 10.10. On 10月8日, 下午7时32分, George Jahad cloj...@blackbirdsystems.net wrote: sa-jdi.jar is supposed to come with the jdk. The code I use for finding it should work for sun's 1.6 jdk on linux and osx. Which java are you using? What os are you running it on? Also, what problem are you running into without it? (I think I only use it for some advanced features which you may not need.) On Oct 7, 8:15 pm, limux liumengji...@gmail.com wrote: where is the sa-jdi.jar, there isn't the sa-jdi.jar under my java's lib directory. On 9月29日, 下午12时00分, George Jahad cloj...@blackbirdsystems.net wrote: hmmm, you must be as big a debugger geek as I am, but I'm not sure anyone else would be interested. In any case the commands are almost trivial, which is why I don't think it will be too hard to port this to other IDE's: These are theCDTcommands that were generated by the Emacs front end in the first example: (set-bpclojure.set/difference) (reval s1) (reval s2) (reval count) (reval (count s2)) (step-over) (reval (reduce disj s1 s2)) (up) (down) (cont) (line-bp /Users/georgejahad/incoming/clo11/clojure/src/clj/clojure/ set.clj 56) On Sep 28, 5:13 am, David Nolen dnolen.li...@gmail.com wrote: On Tue, Sep 28, 2010 at 3:40 AM, George Jahad cloj...@blackbirdsystems.netwrote: As some of you know, I suffer from a seemingly interminable obsession with improving theClojuredebugging story. It just seems so clear to me thatClojuredeserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to theCDT: Great stuff! Would it be possible to write a version of the tutorial that shows how to accomplish the same things purely from the command line? While I love Emacs as much as the next guy, I think a tutorial that shows how to debug using only theCDTREPL would be useful to many people. David -- 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 Note that posts from new members are moderated - please be patient with your first post. 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 -- 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 Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at
Re: New Release of the Clojure Debugging Toolkit
where is the sa-jdi.jar, there isn't the sa-jdi.jar under my java's lib directory. On 9月29日, 下午12时00分, George Jahad cloj...@blackbirdsystems.net wrote: hmmm, you must be as big a debugger geek as I am, but I'm not sure anyone else would be interested. In any case the commands are almost trivial, which is why I don't think it will be too hard to port this to other IDE's: These are the CDT commands that were generated by the Emacs front end in the first example: (set-bp clojure.set/difference) (reval s1) (reval s2) (reval count) (reval (count s2)) (step-over) (reval (reduce disj s1 s2)) (up) (down) (cont) (line-bp /Users/georgejahad/incoming/clo11/clojure/src/clj/clojure/ set.clj 56) On Sep 28, 5:13 am, David Nolen dnolen.li...@gmail.com wrote: On Tue, Sep 28, 2010 at 3:40 AM, George Jahad cloj...@blackbirdsystems.netwrote: As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: Great stuff! Would it be possible to write a version of the tutorial that shows how to accomplish the same things purely from the command line? While I love Emacs as much as the next guy, I think a tutorial that shows how to debug using only the CDT REPL would be useful to many people. David -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
New Release of the Clojure Debugging Toolkit
As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: 1. Stepping 2. Line number breakpoints 3. An Emacs based front end which allows you to: step, set breakpoints, catch exceptions, eval remote clojure expressions, and go up and down the stack, in a much more natural way than with just the command line. When you want to eval the s-expr under the cursor, hit ^x^a^p! CDT will then serialize the s-expr, send it to the remote vm, evaluate it there in the context of the current stack frame, and display the result on the mode line. Ridiculously long instructions on how to use it are here: http://georgejahad.com/clojure/emacs-cdt.html I should emphasize that there is nothing Emacs specific about the CDT. In fact, I've been so spoiled by Clojure, I don't even enjoy writing Elisp any more. This front end was written in Emacs because that's the IDE I'm most familiar with. The CDT command line is IDE agnostic; it should be easy, (dare I say fun?), to port it to other IDE's. If there's interest, I'll detail how in a future post. Many thanks to Fogus for the kind words, and to the Runa gang for their continuing encouragement! -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
2010/9/28 George Jahad cloj...@blackbirdsystems.net As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: 1. Stepping 2. Line number breakpoints 3. An Emacs based front end which allows you to: step, set breakpoints, catch exceptions, eval remote clojure expressions, and go up and down the stack, in a much more natural way than with just the command line. When you want to eval the s-expr under the cursor, hit ^x^a^p! CDT will then serialize the s-expr, send it to the remote vm, evaluate it there in the context of the current stack frame, and display the result on the mode line. Ridiculously long instructions on how to use it are here: http://georgejahad.com/clojure/emacs-cdt.html I should emphasize that there is nothing Emacs specific about the CDT. In fact, I've been so spoiled by Clojure, I don't even enjoy writing Elisp any more. This front end was written in Emacs because that's the IDE I'm most familiar with. The CDT command line is IDE agnostic; it should be easy, (dare I say fun?), to port it to other IDE's. If there's interest, I'll detail how in a future post. Oooh yes ! Many thanks to Fogus for the kind words, and to the Runa gang for their continuing encouragement! -- 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 Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
Wow, looks very useful. Quickly perusing the 'ridiculously long instructions' it seems that it isn't compatible with slime. Is this the case? Does slime fit into your workflow, and if so, how? Sam --- http://sam.aaron.name On 28 Sep 2010, at 9.08 am, Laurent PETIT wrote: 2010/9/28 George Jahad cloj...@blackbirdsystems.net As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: 1. Stepping 2. Line number breakpoints 3. An Emacs based front end which allows you to: step, set breakpoints, catch exceptions, eval remote clojure expressions, and go up and down the stack, in a much more natural way than with just the command line. When you want to eval the s-expr under the cursor, hit ^x^a^p! CDT will then serialize the s-expr, send it to the remote vm, evaluate it there in the context of the current stack frame, and display the result on the mode line. Ridiculously long instructions on how to use it are here: http://georgejahad.com/clojure/emacs-cdt.html I should emphasize that there is nothing Emacs specific about the CDT. In fact, I've been so spoiled by Clojure, I don't even enjoy writing Elisp any more. This front end was written in Emacs because that's the IDE I'm most familiar with. The CDT command line is IDE agnostic; it should be easy, (dare I say fun?), to port it to other IDE's. If there's interest, I'll detail how in a future post. Oooh yes ! Many thanks to Fogus for the kind words, and to the Runa gang for their continuing encouragement! -- 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 Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- 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 Note that posts from new members are moderated - please be patient with your first post. 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 -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I regularly use both simultaneously. While Slime and the CDT don't currently leverage each other, they don't interfere with each other either as far as I know, unless you happen to suspend the swank server thread. Not sure what all the implications of that are. I'm still learning. Why do you ask? Is there some particular functionality you are interested in? When I want to use both simultaneously, I eval this in my .emacs: (setq swank-clojure-extra-vm-args '(- agentlib:jdwp=transport=dt_socket,address=8021,server=y,suspend=n)) hth, g On Sep 28, 2:17 am, Sam Aaron samaa...@gmail.com wrote: Wow, looks very useful. Quickly perusing the 'ridiculously long instructions' it seems that it isn't compatible with slime. Is this the case? Does slime fit into your workflow, and if so, how? Sam ---http://sam.aaron.name On 28 Sep 2010, at 9.08 am, Laurent PETIT wrote: 2010/9/28 George Jahad cloj...@blackbirdsystems.net As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: 1. Stepping 2. Line number breakpoints 3. An Emacs based front end which allows you to: step, set breakpoints, catch exceptions, eval remote clojure expressions, and go up and down the stack, in a much more natural way than with just the command line. When you want to eval the s-expr under the cursor, hit ^x^a^p! CDT will then serialize the s-expr, send it to the remote vm, evaluate it there in the context of the current stack frame, and display the result on the mode line. Ridiculously long instructions on how to use it are here: http://georgejahad.com/clojure/emacs-cdt.html I should emphasize that there is nothing Emacs specific about the CDT. In fact, I've been so spoiled by Clojure, I don't even enjoy writing Elisp any more. This front end was written in Emacs because that's the IDE I'm most familiar with. The CDT command line is IDE agnostic; it should be easy, (dare I say fun?), to port it to other IDE's. If there's interest, I'll detail how in a future post. Oooh yes ! Many thanks to Fogus for the kind words, and to the Runa gang for their continuing encouragement! -- 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 Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- 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 Note that posts from new members are moderated - please be patient with your first post. 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 -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
On 28 Sep 2010, at 11.20 am, George Jahad wrote: Why do you ask? Is there some particular functionality you are interested in? Well, I'm just learning too. Currently I rely on lein swank to start up my JVM so that slime can connect to it. CDT seems to want you to manually start up the JVM with a particular set of flags. So, do you therefore use two JVM instances? I guess I could do with sitting and pairing for 10 mins to see how things work ;-) Is there any chance you could record a short screencast of this stuff in action? Sam --- http://sam.aaron.name -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
Why do you ask? Is there some particular functionality you are interested in? Well, I'm just learning too. Currently I rely on lein swank to start up my JVM so that slime can connect to it. CDT seems to want you to manually start up the JVM with a particular set of flags. So, do you therefore use two JVM instances? I guess I could do with sitting and pairing for 10 mins to see how things work ;-) Is there any chance you could record a short screencast of this stuff in action? Leiningen honours the JAVA_OPTS environment variable. If you do this - $ export JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 $ lein swank Then lein will start the JVM with the required flags. After that, there is no reason why CDT shouldn't work. Regards, BG -- Baishampayan Ghose b.ghose at gmail.com -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
On Tue, Sep 28, 2010 at 3:40 AM, George Jahad cloj...@blackbirdsystems.netwrote: As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: Great stuff! Would it be possible to write a version of the tutorial that shows how to accomplish the same things purely from the command line? While I love Emacs as much as the next guy, I think a tutorial that shows how to debug using only the CDT REPL would be useful to many people. David -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
George, As some of you know, I suffer from a seemingly interminable obsession with improving the Clojure debugging story. It just seems so clear to me that Clojure deserves a world class debugger, one befitting it's power, beauty and elegance. Maybe one day, we'll get there. Till then, here are my latest improvements to the CDT: Tried it out just now. Works as advertised. Will dive deeper in a while. Clojure deserves a great debugging infrastructure. I believe CDT is a big step in the right direction. Thanks a lot, George! Regards, BG -- Baishampayan Ghose b.ghose at gmail.com -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
lein java opts on command line Was: New Release of the Clojure Debugging Toolkit
Baishampayan Ghose b.gh...@gmail.com writes: Why do you ask? Is there some particular functionality you are interested in? Well, I'm just learning too. Currently I rely on lein swank to start up my JVM so that slime can connect to it. CDT seems to want you to manually start up the JVM with a particular set of flags. So, do you therefore use two JVM instances? I guess I could do with sitting and pairing for 10 mins to see how things work ;-) If you find a good solution to this please do share. Is there any chance you could record a short screencast of this stuff in action? Leiningen honours the JAVA_OPTS environment variable. If you do this - $ export JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8021 $ lein swank Then lein will start the JVM with the required flags. After that, there is no reason why CDT shouldn't work. Is there any way to pass java_opts arguments to lein on the command line? Currently I use the :jvm-opts keyword in project.clj, however it would be nice to be able to specify different argument when using different tools as mentioned in the thread above, or to be able to set different values (e.g. maximum heap sizes) depending on resources of the current computer. Is there an accepted way to handle these situations? If not would this make a good item for future lein development? Thanks -- Eric -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: lein java opts on command line Was: New Release of the Clojure Debugging Toolkit
On Tue, Sep 28, 2010 at 7:40 PM, Eric Schulte schulte.e...@gmail.com wrote: Currently I use the :jvm-opts keyword in project.clj, however it would be nice to be able to specify different argument when using different tools as mentioned in the thread above, or to be able to set different values (e.g. maximum heap sizes) depending on resources of the current computer. Is there an accepted way to handle these situations? If not would this make a good item for future lein development? You can use unquote to embed arbitrary evaluations in your project.clj: (defproject foo 1.0.0 :dependencies [[clojure 1.2.0]] :jvm-opts [~(str -Xmx (if (= 64 (System/getProperty sun.arch.data.model)) 2g 1g))]) Untested, but you get the idea. -Phil -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: New Release of the Clojure Debugging Toolkit
I forgot to make clear in my post that port 8021 is just an example, you should use another if that one is in use, and you get this error: [null] ERROR: transport error 202: bind failed: Address already in use [null] ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) Adie mentioned that you don't need to specify a port at all: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n java will pick one for you and display it on stdout, and you can use that as the parameter to cdt. Also, Sam, my previous post seems to have gotten eaten, but I'll work on that screencast. -- 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 Note that posts from new members are moderated - please be patient with your first post. 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