2008-12-14
| 00:18 | gnuvince_ | Don't you hate it when you get a NO_SOURCE_FILE:0 error? |
| 00:18 | mmcgrana | are you not using repl-ln? |
| 00:18 | gnuvince_ | no |
| 00:19 | mmcgrana | not not using it or not using it? lol |
| 00:19 | gnuvince_ | Not using it. |
| 00:20 | mmcgrana | well just remember that the regular repl doesn't feed line numbers to the compiler. hence an error in code entered in the repl has that message. repl-ln is very nice you should try it |
| 00:23 | gnuvince_ | k |
| 00:23 | mmcgrana | 1:3 user=> (max) java.lang.IllegalArgumentException: Wrong number of args passed to: core$max (repl-1:3) |
| 00:24 | mmcgrana | just so you can see what the repl line numbering looks like |
| 00:25 | gnuvince_ | Does that tell where the error occured in the file that was required? |
| 00:27 | mmcgrana | if there error was in another file it should show up as such in the regular repl anyways. you might have an error in the declaration getting those resorces. happens to me alot with (ns and all the (:use and (:import stuff etc. |
| 00:27 | gnuvince_ | bleh |
| 00:27 | gnuvince_ | => (fetch-comic (first *comics*)) |
| 00:27 | gnuvince_ | java.lang.NullPointerException (repl-1:7) |
| 00:28 | mmcgrana | try (first *comics*) |
| 00:28 | gnuvince_ | 1:8 net.gnuvince.comics=> (first *comics*) |
| 00:28 | gnuvince_ | {:prefix "", :regex #"http://abstrusegoose.com/strips/.+?\.(?:jpg|gif|png)", :url "http://abstrusegoose.com/", :name "Abstruse Goose"} |
| 00:29 | mmcgrana | hmm, and line 7 is the line you invoked the call from, so not helpful? |
| 00:29 | gnuvince_ | The error is somewhere in fetch-comic |
| 00:29 | gnuvince_ | I'd really love to know *which* line |
| 00:31 | mmcgrana | oic. well im not positive but i think that with clojure it only puts line numbers for the entire fn in the bytecodes. now often you have nested fns with e.g. #(foo %) and (fn [] (foo)) but otherwise i dont think there is anything we can do |
| 00:31 | mmcgrana | except look at fetch-comic and think about it deeply |
| 00:31 | mmcgrana | ): |
| 00:33 | gnuvince_ | Which is code I don't really care to look at, cause it's a bunch of Java stuff :-/ |
| 00:33 | gnuvince_ | (proxy and stuff like that) |
| 00:34 | mmcgrana | http? |
| 00:34 | gnuvince_ | yeah |
| 00:34 | mmcgrana | i've actually been working on an http lib |
| 00:34 | gnuvince_ | It's more HTML parsing actually. |
| 00:34 | mmcgrana | oic. need hpricot port (: |
| 00:34 | gnuvince_ | something like that |
| 00:35 | mmcgrana | its still on my list. i'll have a month off over january to pound out some serious clojure code |
| 00:37 | gnuvince_ | I dislike Java's handling of namespaces |
| 00:37 | gnuvince_ | with all that org.bar.whatever business |
| 00:38 | zakwilson | Isn't that just a convention? |
| 00:38 | gnuvince_ | zakwilson: don't you need to declare your namespace name exactly as the directory structure? |
| 00:39 | gnuvince_ | like net/gnuvince/comics.clj needs to be (ns 'net.gnuvince.comics)? |
| 00:39 | zakwilson | I think you do. I didn't understand exactly what you didn't like. |
| 00:39 | mmcgrana | right, the convention part is the choice of net.gnuvince.comics |
| 00:40 | gnuvince_ | That's a part of Clojure I really don't understand well |
| 00:41 | zakwilson | I can see the benefit - it means the locations of things will be very predictable. |
| 00:43 | gnuvince_ | I guess I'll need to dish out the cash to get an early beta of Stu's book. |
| 00:54 | Chouser | new chart: http://clojure.googlegroups.com/web/chart.png |
| 00:54 | Chouser | diamonds are non-clojure classes |
| 00:54 | Chouser | interfaces, actually. |
| 00:56 | mmcgrana | Chouser: very nice, thanks |
| 00:56 | Chouser | you're welcome! |
| 00:56 | Chouser | I'll put the code up somewhere tomorrow. But for now, bed... |
| 06:27 | Lau_of_DK | Good afternoon gents |
| 06:27 | bOR_ | and to you. |
| 09:09 | RSchulz | clojurebot: svn? |
| 09:09 | clojurebot | svn is https://clojure.svn.sourceforge.net/svnroot/clojure/ |
| 09:09 | RSchulz | clojurebot: latest? |
| 09:09 | clojurebot | latest is 1159 |
| 09:09 | RSchulz | clojurebot: contrib? |
| 09:09 | clojurebot | contrib is http://sourceforge.net/projects/clojure-contrib/ |
| 09:09 | RSchulz | clojurebot: contrib latest? |
| 09:09 | clojurebot | contrib is http://sourceforge.net/projects/clojure-contrib/ |
| 09:35 | Chouser | RSchulz: http://clojure.googlegroups.com/web/chart.png |
| 09:36 | RSchulz | New one? |
| 09:36 | Chouser | yep. |
| 09:36 | RSchulz | What are diamonds? |
| 09:36 | Chouser | non-clojure classes |
| 09:36 | Chouser | it it better or too crowded now? |
| 09:37 | RSchulz | I strongly prefer being able to fit it on one page, so no, not too crowded. You should post the code somewhere, too. |
| 09:37 | RSchulz | Can DOT produce SVG output? |
| 09:37 | Chouser | yeah, working on that. |
| 09:38 | Chouser | yep |
| 09:38 | Chouser | that .png is actually dot->svg->inkscape->png |
| 09:38 | RSchulz | Is there something about that route that's preferable to getting PNG directly from dot? |
| 09:39 | RSchulz | Anyway, I like it. |
| 09:39 | RSchulz | I still think it deserves the caption: "What a tangled web we weave..." |
| 09:39 | Chouser | yes, I think the text layout looks better |
| 09:40 | RSchulz | Diagmonds are interfaces? |
| 09:40 | RSchulz | You're a Linux user? |
| 09:40 | Chouser | diamonds are standard Java interfaces. everything in an oval is in clojure.lang |
| 09:41 | Chouser | yep |
| 09:41 | RSchulz | The Obj / IObj stuff is a recent addition? I don't remember seeing that before. |
| 09:42 | RSchulz | This is one of the few times I wish I had a color printer. |
| 09:42 | RSchulz | I like the inclusion of the built-in predicates for those types that have them. |
| 09:43 | RSchulz | How long have you been doing FP? |
| 10:34 | duck1123 | Chouser: is it possible to get the SVG version of that chart? |
| 10:52 | RSchulz | Chouser: +1 for duck1123's request; Also... |
| 10:53 | RSchulz | Did you have to manually alter the DOT's layout in Inkskape? |
| 12:17 | replaca | Q: Can the reader read hex constants a la #x1FC in common lisp? |
| 12:26 | kotarak | replaca: I think so. |
| 12:26 | kotarak | Just x1fc should be fine. |
| 12:27 | replaca | ahh, let me try |
| 12:27 | kotarak | No. |
| 12:27 | rhickey | user=> 0x1cf |
| 12:27 | rhickey | 463 |
| 12:27 | kotarak | You need a zero |
| 12:27 | kotarak | Ah. right Rich was faster |
| 12:27 | replaca | yup, otherwise it's a symbol |
| 12:28 | replaca | thanks rich, sorry to bother with uch a mindane Q, but I wasn't seeing it in the doc |
| 12:28 | replaca | *uch => such |
| 12:29 | replaca | argh typos! still on the first cup of coffee :-) |
| 13:02 | RSchulz | Q: Can (declare ...)-ed names be (defn- ...)-ed? That is, will (declare ...) work for private defns? |
| 13:08 | Chousuke | RSchulz: I think private defs differ from regular ones only by having the :private metadata key set to true, so I don't see why that wouldn't work |
| 13:09 | RSchulz | OK. I figured it should, but wanted to check. |
| 13:09 | RSchulz | Many years of C and a few of C++ have made me wary of learning a language through empirical observation... |
| 13:46 | RSchulz | Is there a way to get struct keys from a struct basis? (keys (create-struct ...)) fails with "IllegalArgumentException: Don't know how to create ISeq from: Def" |
| 13:56 | RSchulz | clojurebot: 1159 |
| 13:56 | clojurebot | Gabh mo leithsc�al? |
| 13:57 | RSchulz | clojurebot: svn 1159 |
| 13:57 | clojurebot | svn is https://clojure.svn.sourceforge.net/svnroot/clojure/ |
| 13:57 | RSchulz | clojurebot: 1159? |
| 13:57 | clojurebot | Gabh mo leithsc�al? |
| 13:57 | mehrheit | svn rev 1159 |
| 13:57 | clojurebot | svn rev 1159; proxy perf tweaks Note breaking change if you are using the proxy interface other than the proxy macro itself - proxy maps are now maps of (preferably interned) strings to fns, not symbols to fns, and if you construct a proxy manually you must establish initial map with init-proxy |
| 13:59 | RSchulz | mehrheit: Thank you! |
| 14:38 | Chouser | RSchulz: (.get (first (.getDeclaredFields (class x))) x) |
| 14:38 | Chouser | But of course that's not really supported. |
| 14:38 | RSchulz | What is it? |
| 14:39 | RSchulz | Oh, the struct question. |
| 14:39 | Chouser | yeah |
| 14:39 | RSchulz | Do you think it's something that should be supported? I'm trying not to have to replicate the set of struct keys in the code. |
| 14:39 | RSchulz | To avoid the possibility of them being out-of-sync. |
| 14:40 | Chouser | depends on why you need them, I suppose. |
| 14:40 | RSchulz | It's something I always like to do. It's sort of like a kind of normalization for source code. |
| 14:40 | danm_ | Chouser: print-dup doesn't seem to work with PersistentStructMap, is that intended? |
| 14:41 | rhickey | danm_: struct maps aren't serializable yet |
| 14:41 | danm_ | rhickey: yeah, figured as much looking through the code |
| 14:41 | danm_ | thanks |
| 14:42 | Chouser | RSchulz: I agree you don't want to repeat yourself |
| 14:43 | rhickey | clojurebot: faq #1 |
| 14:43 | clojurebot | Excuse me? |
| 14:43 | rhickey | clojurebot: FAQ #1 |
| 14:43 | clojurebot | FAQ #1 is http://groups.google.com/group/clojure/msg/8fc6f0e9a5800e4b |
| 14:44 | Chouser | RSchulz: though you could (def sk [:a :b :c]) (def s (apply create-struct sk)) |
| 14:44 | RSchulz | Yes, I thought of that. |
| 14:44 | RSchulz | It's still cleaner to create the struct basis and have that be the locus of all information about that struct. |
| 14:44 | Chouser | RSchulz: the question is why your program wants to treat the included keys differently from the others. |
| 14:45 | RSchulz | It's the reverse, I want to have separate processing for the onese that are _not_ in the struct basis. |
| 14:46 | Chouser | RSchulz: ok, but what and why? |
| 14:46 | Chouser | my point is that it's a bit of an implementation detail, at least right now. |
| 14:46 | RSchulz | Does it really matter? I'd have explain a lot of what I'm doing. |
| 14:47 | RSchulz | It's certainly not an implementation detail to know what keys comprise a struct basis, is it? |
| 14:47 | RSchulz | In a dynamic language? |
| 14:47 | rhickey | moving to EPL - prefer: http://opensource.org/licenses/eclipse-1.0.php or http://www.eclipse.org/org/documents/epl-v10.html as the license URL, i.e. does opensource.org add any value? |
| 14:49 | rsynnott | rhickey: probably doesn't make much difference |
| 14:49 | rsynnott | what license is it at the moment? |
| 14:49 | rhickey | CPL |
| 14:49 | rsynnott | ah |
| 14:50 | rsynnott | why're you changing? |
| 14:50 | rhickey | EPL is successor to CPL, acceptable to Google Code and others |
| 14:51 | rsynnott | ah, right |
| 15:01 | Chouser | RSchulz: I didn't make any changes to the graph in inkscape, though perhaps adding a legend would good. |
| 15:04 | clojurebot | svn rev 1160; Moved to Eclipse Public License - see epl-v10.html or http://opensource.org/licenses/eclipse-1.0.php |
| 15:06 | rhickey | Chouser: getting ready to move to google code - have created clojure and clojure-contrib projects there |
| 15:06 | rhickey | Chouser: Do you have a Google Code account? |
| 15:07 | rhickey | Also any other contib members here? |
| 15:09 | Chouser | rhickey: yep, username chouser |
| 15:09 | rhickey | chouser@gmail.com? |
| 15:09 | Chouser | yes. |
| 15:20 | RSchulz | rhickey: Does this mean you're vacating the SourceForge project? |
| 15:21 | rhickey | RSchulz: there are several steps involved - still looking into what it takes to move the code, which is all that is left as SF |
| 15:21 | rhickey | at SF |
| 15:21 | RSchulz | There are advantages to hosting at Google Code? |
| 15:22 | rhickey | RSchulz: hopefully more usable issue tracking and wiki |
| 15:22 | RSchulz | Ah. It's true SF's bug tracking and forum interfaces are pretty bad. |
| 15:24 | rhickey | right, google group replaces forums, I pay for wikispaces rather than deal with SF's subframing of it, and SF's issue tracking is awful |
| 15:26 | RSchulz | Does this entail switching to Git? |
| 15:27 | RSchulz | Uh... Not mercurial, either, right? In other words, sticking with Subversion? |
| 16:27 | gp | anyoen could link me to monads in clojure? |
| 16:29 | Chouser | did you search on the google group? they come up there from time to time. |
| 16:29 | gp | on my way |
| 16:30 | jcrites | I didn't know Clojure had a monad representation .... gp send me a link if you find something :) |
| 16:30 | gp | rhickey: could there be made some sort of optimization or auto-parallellism with macros+monads in clojure? |
| 16:30 | rhickey | http://groups.google.com/group/clojure/browse_thread/thread/9581bf66eb01ca56/8b8f03bcd5854164?lnk=gst&q=monads#8b8f03bcd5854164 |
| 16:34 | Lau_of_DK | Evening gentlement |
| 16:34 | Lau_of_DK | -t |
| 16:34 | Lau_of_DK | :) |
| 16:35 | danm_ | hello |
| 16:56 | gp | ((comp map filter) #(* % %) #(< % 5) [1 2 3 4 5 6 7 8 9]) |
| 16:57 | gp | wrong number of args, ok but how do i write it then? |
| 16:58 | Lau_of_DK | (doc comp) |
| 16:58 | clojurebot | Takes a set of functions and returns a fn that is the composition of those fns. The returned fn takes a variable number of args, applies the rightmost of fns to the args, the next fn (right-to-left) to the result, etc.; arglists ([& fs]) |
| 16:58 | Lau_of_DK | I havent used that function before, bt it says that its return is a function |
| 16:59 | Lau_of_DK | So wouldnt it be (map (comp #(* % %) #(< % 5)) [1 2 3 4]) ? |
| 17:02 | kotarak | (map #(* % %) (filter #(< % 5) [1 2 3 4])) |
| 17:04 | kotarak | ((comp #(* % %) #(< % 5)) 2) => (< 2 5) is true => (* true true) => ? |
| 17:10 | Chousuke | gp: ((comp (partial map #(* % %)) (partial filter #(< % 5))) [1 2 3 4 5 6 7 8]) works but you'll really want just (map #(* % %) (filter #(< % 5) [1 2 3 4 5 6 7])) |
| 17:13 | Chousuke | or at least give the component functions names before composing :) |
| 17:30 | alphazero | hi all, have a question regarding http://paste.lisp.org/display/72155 |
| 17:31 | alphazero | test.Foo.doX() simply does a stack trace. first version seems to be basically to the metal, but the variant that calls a method on the instance later is using reflection. Why is that? |
| 17:48 | wipewindows | i successfully send the message but the |
| 17:48 | wipewindows | can someone explain to me how do use agents there? |
| 17:48 | wipewindows | http://hpaste.org/13078 |
| 17:48 | wipewindows | i successfully send the message but it doesnt seem to get updated. |
| 18:03 | Chouser | alphazero: since locals are immutable, Clojure can apparently infer that your first 'a' will always be a test.Foo |
| 18:03 | Chouser | alphazero: but that may not be a valid assumption for (def a ...) |
| 18:04 | Chouser | you should be able to type hint, to avoid the reflection though: (def #^test.Foo a (new test.Foo)) |
| 18:08 | wipewindows | would it be possible to write a macro that tags types to a function? |
| 18:09 | wipewindows | using :inline will that inline it as java code or what des that mean? |
| 18:23 | Chouser | sure, you can emit metadata-related code from macros |
| 18:24 | Chouser | the :inline stuff essentially allows you to create a function that in some cases can expand into inline clojure like a macro does |
| 18:25 | Chouser | inline in clojure means inline in the generate java bytecode, which I suppose can allow HotSpot to do better optimization. |
| 18:43 | alphazero | Chouser: thanks. let me try that and see. |
| 18:45 | alphazero | Chouser: that did it. Thanks. |
| 18:51 | RSchulz | Q: If I have a Java Iterator, how can I iterate over the values it yields? |
| 18:52 | RSchulz | user=> (doseq [erec (.iterateErrors psl-all-proc)] (println erec)) |
| 18:52 | RSchulz | java.lang.IllegalArgumentException: Don't know how to create ISeq from: Itr |
| 18:52 | danm_ | RSchulz: iterate? |
| 18:53 | RSchulz | See above... |
| 18:53 | danm_ | mmm, sorry |
| 18:53 | RSchulz | Iterator<ErrorRecord> iterateErrors() |
| 18:53 | RSchulz | Iterate over recorded ErrorRecords. |
| 18:53 | blackdog | try putting a seq round it? |
| 18:53 | RSchulz | I did that. Exact same diagnostic from Clojure. |
| 18:55 | danm_ | yeah, the sequence functions call seq for you afaik |
| 18:56 | RSchulz | Also... |
| 18:56 | RSchulz | user=> (.iterateErrors psl-all-proc) |
| 18:56 | RSchulz | #<Itr java.util.AbstractList$Itr@195dd5b> |
| 18:58 | danm_ | I guess only collections are seq-able |
| 18:58 | RSchulz | OK. Flipping it around, what _can_ we do with Java Iterator instances? |
| 18:59 | danm_ | well, anything you can do in java ;) |
| 18:59 | hiredman | there is a function that makes seqs out of iterators |
| 18:59 | hiredman | (doc iterator-seq) |
| 18:59 | clojurebot | Returns a seq on a java.util.Iterator. Note that most collections providing iterators implement Iterable and thus support seq directly.; arglists ([iter]) |
| 18:59 | danm_ | cool |
| 18:59 | RSchulz | Yeah. I just found that. |
| 19:00 | RSchulz | So anything Iterable is directly useable as a seq but not a naked Iterator? |
| 19:00 | RSchulz | I once asked on the Advanced-Java list why Iterators weren't themselves Iterable. |
| 19:00 | hiredman | thats how it reads to me |
| 19:00 | RSchulz | But it's moot, of course. They are what they are. I wrote my own IterableIterator class to wrap aribtrary iterators and make them Iterable. |
| 19:01 | hiredman | heh |
| 19:01 | RSchulz | This particular class's iterator-generating function must have pre-dated the inception of that class. |
| 19:01 | hiredman | cute |
| 19:02 | RSchulz | God, I love writing my own software. Got a problem with your API? Enhance it! |
| 19:02 | Chousuke | I guess an iterator itself is not iterable... but still, it sounds a bit weird |
| 19:03 | RSchulz | Chousuke: It definitely is not. |
| 19:04 | RSchulz | And just like that, problem solved! |
| 19:04 | Chousuke | looks like the iterator interface only specifies the "iterator" function... could be confusing to have iterators return themselves I suppose :/ |
| 19:07 | rhickey | (doc iterator-seq) |
| 19:07 | clojurebot | Returns a seq on a java.util.Iterator. Note that most collections providing iterators implement Iterable and thus support seq directly.; arglists ([iter]) |
| 19:10 | slangan | octave has a c++ api, does that mean i have to write c++ -> java -> clojure? |
| 19:15 | RSchulz | You don't _have to_ do anything, of course. |
| 19:15 | rhickey | https://jna.dev.java.net/ |
| 19:16 | rhickey | People have done JNA directly from Clojure |
| 19:27 | aperotte | hello all, I've posted about this before, but I've been trying for a little while and I for some reason really can't get the new gen-class to work well, was wondering if someone could help me out |
| 19:27 | aperotte | More specifically I don't really understand how exposes works |
| 19:29 | aperotte | I am exposing an ancestral protected member, but after compiling, I can only call the public getter from the instance (not from the class) and also it returns nil instead of the thing I was expecting it to get |
| 19:33 | rhickey | aperotte: can you paste something? |
| 19:34 | RSchulz | Is it possible to call void (-returning) methods of Java classes? |
| 19:34 | aperotte | rhickey: sure, give me a second |
| 19:37 | phf | is it possible to extract source location information from java side? |
| 19:38 | rhickey | phf: you can call any Clojure fn from Java |
| 19:39 | rhickey | get vars with RT.var("ns","name"); |
| 19:39 | rhickey | call them with invoke() |
| 19:41 | whidden | changes in 1160 just the move to eclipse public license? |
| 19:42 | rhickey | whidden: yes |
| 19:44 | whidden | rhickey: Thanks, saw all the updates and was now sure what was happening :) |
| 19:46 | phf | rhickey: sorry, i wasn't at all clear. i meant, is it possible to get the source file location for a java class at run time |
| 19:46 | phf | for jumping to source in slime |
| 19:46 | phf | apparently not (or only using heuristics anyway) |
| 19:47 | rhickey | phf: ah, that's a debugger thing I think |
| 19:48 | phf | oh, yeah, that's a good idea |
| 19:50 | RSchulz | What determines argument compatibility in calling Java methods? I've got a call that appears to be valid, but is eliciting this: |
| 19:50 | RSchulz | java.lang.IllegalArgumentException: No matching method found: printMessage for class rrs.util.ErrorRecord |
| 19:50 | RSchulz | The method in question "returns" void. |
| 19:51 | rhickey | RSchulz: the return value is irrelevant for matching - is the method overloaded? |
| 19:51 | RSchulz | Yes. Two different kinds of output sinks. |
| 19:51 | RSchulz | PrintStream and PrintWriter. I'm calling it with *out* (the default one) |
| 19:52 | RSchulz | It's also overrided for different arities. |
| 19:52 | rhickey | user=> (supers (class *out*)) |
| 19:52 | rhickey | #{java.io.Writer java.io.Closeable java.lang.Object java.lang.Appendable java.io.Flushable} |
| 19:52 | rhickey | *out* is neither of those |
| 19:53 | RSchulz | Gagh. Why not? |
| 19:53 | RSchulz | Why isn't it System.out? |
| 19:53 | rhickey | user=> (class *out*) |
| 19:53 | rhickey | java.io.OutputStreamWriter |
| 19:55 | RSchulz | But why is it not simpley equal to java.lang.System/out? |
| 19:57 | RSchulz | ??? |
| 19:58 | RSchulz | rhickey: I'd really like to know why *out* is distinct both in value and type from System.out? |
| 19:59 | aperotte | rhickey: paste.lisp.org worked without the channel. Here's my paste, http://paste.lisp.org/display/72170 |
| 20:00 | rhickey | RSchulz: printing is defined in terms of Writers, which are more useful and avalable than PrintStreams - note how few subclasses of PrintStream there are |
| 20:01 | RSchulz | More useful is pretty subjective. I'm fine with it being a PrintWriter, but a mere Writer? Could you make it a PrintWriter? |
| 20:17 | rhickey | RSchulz: why don't you bring it up on the group? - I know there were some issues with charsets |
| 20:17 | RSchulz | OK. I'll send out a short message on the issue. |
| 20:18 | RSchulz | Huh. I just noticed this: |
| 20:18 | RSchulz | user=> *err* |
| 20:18 | RSchulz | #<PrintWriter java.io.PrintWriter@6397eb> |
| 20:24 | aperotte | rhickey: I need to reboot, I'll brb |
| 20:31 | aperotte | rhickey: you have any thoughts on what I might be doing wrong? |
| 20:48 | wipewindows | rhickey: was that for me before? could I somehow call a C++ API from Clojure you mean? |
| 20:50 | Chouser | wipewindows: http://groups.google.com/group/clojure/browse_thread/thread/77e626c5440bf1a0 |
| 20:59 | aperotte | rhickey: I have to run, but thanks for offering to help |
| 21:00 | RSchulz | aperotte: I had the same problem with paste.lisp.org yesterday. If I selected #clojure as the channel, my paste just disappeared. Only when I did not select a channel (as Rich suggested) was I able to get the paste recorded. |
| 21:01 | aperotte | RSchulz: I'm not sure what's going on with it, it doesn't seem to be affecting all of the channels |
| 21:02 | RSchulz | I only tried #clojure, though I did that a couple of times. But it was also the case that the whole site appeared to be having serious problems at the time I was trying to use it. One time I got a 502 error. |
| 21:04 | rhickey | aperotte: :exposes doesn't handle static fields as static getters/setters, probably should |
| 21:06 | aperotte | rhickey: oh ok, thanks! I'm still unsure what was going wrong with the first thing I tried to expose there. Do I need to specify in the methods the return type of the public getter? |
| 21:08 | aperotte | rhickey: sadly, I really have to go, thanks again |
| 21:08 | rhickey | aperotte: no - it will match the type of the field |
| 21:09 | aperotte | rhickey: ok, I'll try again |
| 21:22 | phf | starting a jvm with a remote debugger and then recursively connecting from the inside allows for all sorts of introspection capabilities |
| 21:22 | phf | for example, to answer my original question |
| 21:22 | phf | (.sourcePath (.location (.concreteMethodByName (first (.classesByName vm (.getName (class [1 2 3])))) "count" "()I"))) |
| 21:23 | phf | returns "clojure/lang/LazilyPersistentVector.java" |
| 21:23 | rhickey | phf: fun |
| 21:28 | durka | RSchulz: is it not sufficient to do (def *pout* (PrintWriter. *out*)) ? |
| 21:29 | RSchulz | Flushing? |
| 21:30 | durka | hmm? |
| 21:30 | RSchulz | What is Clojure trying to tell me with this diagnostic: |
| 21:30 | RSchulz | Can't embed object in code, maybe print-dup not defined: clojure.lang.LispReader$Unquote@5d391d |
| 21:32 | RSchulz | durka: If you wrap one I/O object around another, you get into trouble when multiple sources do not always flush after writing. And flushing excessively can be a detriment to good I/O performance. |
| 21:32 | rhickey | RSchulz: you've got an unquote outside of a syntax-quote? |
| 21:32 | durka | i see |
| 21:32 | durka | that's a pain |
| 21:34 | RSchulz | rhickey: I don't think so, but I'll look more closely. |
| 21:35 | RSchulz | Ah. That's it. Yet Another Copy-and-Paste Error. |
| 23:08 | yangsx | hi, if my clojure-contrib.jar was updated after slime/swank, how can I force swank to reload it? |