2:51 asbjxrn: I got the latest svn version of clojure, and now I can't start the repl? Exception in thread "main" java.lang.NoSuchMethodError: clojure.lang.RT.cons(Ljava/lang/Object;Lclojure/lang/ISeq;)Lclojure/lang/ISeq;
2:52 I basically did a svn update, mvn install, java -cp clojure-lang-1.0-SNAPSHOT.jar clojure.lang.Repl
2:55 hoeck: asbjxrn: maybe you need to clean first
2:56 asbjxrn: That is "mvn clean" ?
2:56 hoeck: i dont know, i'm using ant, but i just deleted the 'classes' folder
2:57 asbjxrn: It did something at least. I'm just using mvn because it was described in one getting started doc I read when I started out with clojure.
2:58 Seems to have done the trick.
2:58 hoeck: but when 'mvn install' works, 'mvn clean' should work to, sounds all like 'make'
10:26 asbjxrn: The current lib.clj in Contrib seem to require that a lib is contained in one file, anyone working on a more sophisticated package/library system?
10:49 Chouser: you plan to have multiple .clj files contributing to the same namespace?
10:49 asbjxrn: Maybe, yes. If you have a library of some size, it could get messy to have it all in one big file I thought.
10:51 Chouser: I haven't done anything large enough in Clojure yet to worry about that.
10:51 asbjxrn: Of course, Rick has 2597 lines in boot.clj, which may set some sort of precedence... :)
10:54 I don't really have plans for anything real big now, but I would imagine people at some point might start building large libraries.
11:30 Lau_of_DK: Hey Chouser
12:22 rhickey, is there a curses lib available for Clojure atm ?
12:27 rhickey: Lau_of_DK: not for Clojure specifically, but maybe for Java
12:29 Lau_of_DK: k, I'll look into it
12:58 The only option seems to be a project on SourceForge - Generally do I just add these .jar files to my /project/directory and then I can import - or is there a better way of handling it ?
13:16 dudleyf: Lau_of_DK: You need to add them to your classpath
13:18 And if there's native JNI code, you need to add that to the Java library path
13:50 Lau_of_DK: dudleyf, good stuff, thanks :)
13:52 But why is this stuff on its own github - I had the impression that all such additions, would be collected in the Clojure-Contrib ?
13:54 dudleyf: Lau_of_DK: Github was the easiest place for me
13:56 And I don't have a commit bit to clojure-contrib ;-)
13:58 Lau_of_DK: Okay my friend :)
14:12 dudleyf, if I dont specify the classpath when I execute the program, do you know what it defaults to ?
14:14 dudleyf: If CLOJURE_CLASSPATH isn't set, it defaults to "$CLOJURE_HOME/clojure.jar:."
14:15 Lau_of_DK: Im not sure I follow - if I "echo $CLOJURE_CLASSPATH" or "$CLOJURE_HOME", it doesnt look like theyre set at all
14:15 dudleyf: If the script is in a bin/ directory inside your clojure distribution, it'll figure out CLOJURE_HOME automatically
14:16 otherwise you need to set CLOJURE_HOME to the root of the Clojure distribution
14:16 Lau_of_DK: You want me to make .../clojure/bin? Because I only have /src and /target atm
14:17 dudleyf: Yep
14:17 Lau_of_DK: Does this approach make deployment more complex, or is there a simple way to distribute?
14:18 dudleyf: Well, the idea is that eventually this script or something like it will be part of the Clojure distribution
14:19 So that everyone won't have to distribute their own startup script with every application
14:19 Lau_of_DK: Ok - But just to put it in the simplest possible terms - I need to distribute a standard clojure.clj file, which depends on 1 custom .jar file - Can I just place them in the same directory?
14:23 dudleyf: You'll need to add the jar file to the classpath somehow
14:24 How are you launching Clojure to run your .clj file?
14:24 Lau_of_DK: java -cp clojure.jar clojure.lang.Script c.clj
14:25 dudleyf: Then you can just do:
14:25 java -cp clojure.jar:custom.jar clojure.lang.Script c.clj
14:33 Lau_of_DK: ok - and how would executing your script look compared to that?
14:37 dudleyf: assuming it was living in CLOJURE_HOME/bin, and that directory was in the path
14:37 clojure -cp custom.jar c.clj
14:38 Or, you could set CLOJURE_LIB to some directory, stick custom.jar in that directory, and just run
14:38 clojure c.clj
14:39 Lau_of_DK: alright - simplicity's the word
14:46 Chouser: Is (def) atomic and threadsafe?
14:49 Lau_of_DK: Interesting questions
14:52 Chouser: I think it has to be, but I'm not sure I've ever heard Rich say that it is.
14:53 Lau_of_DK: Yea I think it is
14:53 (which probably means that it isnt)
14:59 Chouser: My ability to read Compiler.java is very limited, but it looks to me like it's doing some checks and then some more work, which is the classic non-atomic pattern.
15:00 and no locking that I can see, so not thread-safe.
15:00 Lau_of_DK: But what parts of a def could change, without it being a new def?
15:01 Chouser: I just want to know if two threads tried to do a (def foo ...) at the same time, is there any chance of ending up in a broken state, or if whichever goes last would get a clean win.
15:02 Lau_of_DK: rhickey, whats the verdict?
15:03 Chouser: hm, the code I'm looking at is during compilation perhaps? Var's bindRoot is synchronized, so maybe that's good enough.
15:45 Lau_of_DK: Maybe its faster just to try and create some race conditions and see what happends :)
16:44 Chouser: :-)
17:05 Lau_of_DK: Chouser, ignore this question, dont even read it: Any other emacs users here, that loose code-hints after CcCc'ing a process in the REPL?
18:46 regularfry: 'Ning all... Anyone using clojure+slime+emacs 22.1 on Windows?