Show enters and exits. Hide enters and exits.
| 00:45:20 | boyscout | Let a SyntaxError raise out unwrapped - 6e2ab63 - Evan Phoenix |
| 00:45:21 | boyscout | Add UNIXSocket.pair - eb2a569 - Evan Phoenix |
| 00:54:29 | boyscout | CI: rubinius: eb2a569 successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 02:09:07 | boyscout | Add -Xjit.sync, Inliner::fixnum_le, and self recursion cuteness - 5a39cd0 - Evan Phoenix |
| 02:18:19 | boyscout | CI: rubinius: 5a39cd0 successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 07:02:30 | dbussink | morning :) |
| 07:02:59 | dbussink | evan: any reason for adding fixnum_le specifically? |
| 07:02:59 | dbussink | or just playing with it? |
| 07:03:13 | evan | speeds it up. |
| 07:03:27 | evan | eventually i suspect we'll have all the fixnum ops specialized into the JIT |
| 07:03:50 | dbussink | evan: shouldn't be that hard to add more i guess |
| 07:03:54 | dbussink | even i could do that :P |
| 07:06:05 | evan | yep |
| 07:06:10 | evan | they all follow the same basically template |
| 07:06:19 | evan | in fact, i should probably refactor them to make it simpler. |
| 07:06:52 | dbussink | evan: hmm, i just ran ./bin/rbx benchmark/rubinius/numerics/bm_fixnum.rb and there Fixnum <= seems slower than the rest |
| 07:07:22 | dbussink | evan: https://gist.github.com/954d7a6aba73a74201fa |
| 07:07:30 | dbussink | dunno if the benchmark is correct though |
| 07:08:11 | evan | strange. |
| 07:08:20 | evan | i don't really like those benchmarks |
| 07:08:28 | evan | they do too much in one execution |
| 07:08:39 | evan | it's easy to flood the JIT and not see any results |
| 07:08:46 | evan | i'd pull the <= one out |
| 07:08:48 | evan | run it |
| 07:08:53 | evan | maybe 5 times. |
| 07:09:17 | evan | then go into inline_primitives.cpp |
| 07:09:23 | evan | and disable finding fixnum_le |
| 07:09:27 | evan | compile, run again. |
| 07:09:38 | evan | here, i was running a simple fib benchmark |
| 07:09:48 | evan | that change took it from 0.76 to 0.47 |
| 07:12:54 | dbussink | evan: that's why i asked whether the benchmark is really correct or not then :) |
| 07:13:17 | evan | it's only good, imho, as a 30,000ft view |
| 07:13:36 | evan | something to say "oh, this is interesting, i'll check this one out specificly" |
| 07:13:41 | evan | something else to try |
| 07:13:44 | slava | yo evan |
| 07:13:45 | evan | the new -Xjit.sync option |
| 07:13:55 | evan | that will disable background JIT compilation |
| 07:14:17 | evan | so that benchmarks should actually see their execution of JIT'd code. |
| 07:14:27 | evan | slava: hello sir. |
| 07:14:40 | slava | evan: android is going to use a tracing jit |
| 07:14:44 | slava | is rbx next? haha |
| 07:14:55 | evan | hehe |
| 07:15:04 | evan | i consider the current impl actually similar to tracing. |
| 07:15:32 | evan | did you see that in that video? |
| 07:15:36 | evan | i was going to watch it tomorrow |
| 07:16:07 | dbussink | evan: this benchmark also does Fixnum#<= with a float and bignum |
| 07:16:13 | dbussink | evan: maybe those suffer from the optimization? |
| 07:16:39 | evan | could, yes. |
| 07:17:01 | evan | the JIT inlining is biased toward Fixnum/Fixnum operations |
| 07:17:24 | parndt | brixen: did you have any joy with hpricot? |
| 07:17:35 | evan | parndt: no, and there isn't likely to be any. |
| 07:17:45 | evan | we'd have to make a number of changes to hpricot |
| 07:17:57 | evan | i'd suggest you move to nokogiri |
| 07:18:00 | parndt | yeah, he mentioned he was going to take a look out of interest |
| 07:18:02 | dbussink | evan: does seem to be actively maintained now at http://github.com/hpricot/hpricot |
| 07:18:13 | parndt | evan: but I'm thinking the same thing about moving to nokogiri ;) |
| 07:18:18 | evan | dbussink: i asked nick, he's the maintainer |
| 07:18:26 | dbussink | evan: when i only do fixnum <= fixnum the difference in the benchmark goes away |
| 07:18:30 | evan | he's merged some patches, but it's basically at a full standstill. |
| 07:18:31 | dbussink | evan: it's not faster either though |
| 07:18:51 | evan | dbussink: try only doing <= and try using jit.sync |
| 07:19:04 | evan | a 1s benchmark amid a see of other code is going to be noise. |
| 07:19:18 | evan | 100% of those benchmarks, if they're going to be done together like that |
| 07:19:24 | evan | should be at minumum 10s |
| 07:19:50 | dbussink | yeah, i'm also doing more operations |
| 07:19:55 | evan | sub-2s benchmarks should only be measure done standalone in a script |
| 07:20:00 | evan | preferably using -Xjit.sync as well. |
| 07:20:13 | evan | dbussink: even if there is no change |
| 07:20:19 | evan | thats a reason to leave the existing code in. |
| 07:20:24 | evan | because i have observed a change. |
| 07:20:41 | evan | parndt: you're better off moving to nokogiri. |
| 07:21:00 | evan | I simply don't have the time atm to rewrite some core parts of hpricot |
| 07:21:04 | evan | which is what is required. |
| 07:21:15 | parndt | I think that's the general move anyway |
| 07:21:29 | evan | ok, i'm off to bed. |
| 07:21:31 | parndt | seeing as i doubt why's ever going to come back |
| 07:21:31 | evan | nite everyone. |
| 07:21:35 | parndt | goodnight :) |
| 07:21:40 | dbussink | evan: nite! |
| 07:21:49 | dbussink | evan: btw, when are you guys heading to baltimore? |
| 07:21:59 | evan | i get in monday evening. |
| 07:22:06 | evan | brixen might get in sunday evening |
| 07:22:10 | evan | i'm not sure off hand. |
| 07:22:15 | dbussink | ah ok, i'm already leaving saturday |
| 07:24:32 | dbussink | evan: running only <= does see improvements :) |
| 07:24:36 | dbussink | evan: with larger numbers :) |
| 07:24:40 | dbussink | evan: but good night :) |
| 13:36:26 | Defiler | evan: so, that article you wanted me to translate yesterday |
| 13:37:10 | Defiler | If I'm thinking of the same sentence you quoted, it was basically "Check out this article from 2 years ago where I pointed out that rbx has a tough time with string concatenation performance" |
| 13:37:26 | Defiler | but that it has certainly improved since then |
| 13:38:25 | Defiler | that 1.0 is much faster than it was two years ago, and then he quotes you talking about the efforts spent improving it |
| 18:44:46 | evan | slava: poke |
| 18:45:28 | evan | this dalvik JIT presentation is ok, but he's talking about features of tracing JITs that a method JIT can and does have. |
| 18:45:43 | evan | ie, detecting cold code and bailing to the interpreter |
| 18:45:45 | evan | etc. |
| 19:08:41 | boyscout | Remove buggy self recursion calling in the JIT - 70a7948 - Evan Phoenix |
| 19:08:41 | boyscout | Simplify the Class#to_s of a metaclass (rails fix) - 4158e96 - Evan Phoenix |
| 19:08:41 | boyscout | Allow Modules to be dup'd, but not String - 37cd66c - Evan Phoenix |
| 19:16:50 | boyscout | CI: rubinius: 37cd66c successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 19:18:02 | dbussink | evan: btw, why not the same approach for jitting those fixnum ops as the float ones? |
| 19:18:08 | dbussink | evan: that's abstracted a bit too |
| 19:18:16 | evan | no reason |
| 19:18:18 | evan | just haven't yet. |
| 19:59:31 | dbussink | evan: does something like this make sense? https://gist.github.com/4ff757ab22ac92c447f5 |
| 20:15:49 | odyi | Having issues building rubinius on Ubuntu 10.04 x86_64. Build dies with http://pastebin.com/gaSrzBEn |
| 20:16:01 | odyi | Haven't been able to google a solution. |
| 20:27:13 | dbussink | odyi: could you try with this gist? https://gist.github.com/52d7b943328f20e58024 |
| 20:39:43 | odyi | dbussink: compile looks to going further then before. I will let you know what the results are. |
| 20:49:23 | odyi | dbussink: compile finished but the rubyspec tests failed. The irb shell does run though. |
| 20:52:33 | dbussink | odyi: which specs? |
| 21:15:19 | odyi | dbussink: stderr and stdout from the rake showing the failed tests. http://www.cat.pdx.edu/~ody/specout http://www.cat.pdx.edu/~ody/specerr |
| 21:26:01 | dbussink | odyi: are you running as root? |
| 21:26:18 | dbussink | odyi: the specs assume non root in places |
| 21:26:36 | dbussink | brixen: is clean runs as root something rubyspec (should) support? |
| 21:27:06 | odyi | dbussink: Yes I noticed on that last run. I had started to compilation work as root because I was going to test it with the puppet daemon. |
| 21:27:33 | dbussink | odyi: even then you don't need to compile as root though |
| 21:27:42 | dbussink | odyi: but this shouldn't hold you back testing things |
| 21:27:55 | odyi | Yeah was just my being lazy really. |
| 21:28:07 | odyi | is already rsyncing to his userdir. |
| 21:28:40 | boyscout | Use error state for read / write and print out the message - 23fd0d9 - Dirkjan Bussink |
| 21:28:45 | dbussink | odyi: there you go |
| 21:29:20 | evan | yeah, never compile as root |
| 21:29:22 | evan | as a rule. |
| 21:29:30 | dbussink | evan: did you see my gist? |
| 21:29:34 | evan | no |
| 21:29:46 | dbussink | evan: https://gist.github.com/4ff757ab22ac92c447f5 |
| 21:30:22 | dbussink | evan: jit stuff for the comparisons (generalized like for float stuff) |
| 21:33:26 | evan | dbussink: cool, looks good. |
| 21:34:08 | dbussink | evan: shall i commit this? |
| 21:34:15 | evan | sure |
| 21:35:11 | odyi | Thanks for the patch dbussink. Interested to see if this can be used to keep my puppetmaster from having to bend over backwards to serve my 200 nodes. |
| 21:35:42 | boyscout | Generalize jit generation for fixnum comparison operations - ba653f1 - Dirkjan Bussink |
| 21:36:44 | boyscout | CI: rubinius: 23fd0d9 successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 21:37:46 | evan | dbussink: did you see any bug with not checking read/write that your commit fixed? |
| 21:38:01 | dbussink | evan: odyi reported it failed to compile for him |
| 21:38:01 | evan | ie, did you fix them for completeness or because you saw a bug |
| 21:38:06 | evan | oh really? |
| 21:38:11 | dbussink | evan: gcc complaining that return value wasn't used |
| 21:38:13 | evan | man g++ is so strange. |
| 21:38:20 | dbussink | evan: so it's more a completeness fix |
| 21:38:23 | evan | complain, don't complain; complain, don't complain. |
| 21:38:25 | evan | thats fine |
| 21:38:26 | evan | just curious. |
| 21:38:37 | dbussink | just providing the information ;) |
| 21:38:42 | evan | :) |
| 21:38:45 | slava | evan: you've got contributors hacking on your jit now? congrats |
| 21:38:47 | evan | so what day do you get in to baltimore? |
| 21:38:53 | evan | slava: thanks! yeah! |
| 21:38:56 | dbussink | me? saturday |
| 21:39:01 | evan | ok |
| 21:39:06 | evan | slava: so, i watched the android talk |
| 21:39:17 | dbussink | probably going to hang a bit there on monday and polish my talk :) |
| 21:39:18 | evan | i don't feel like he did his researche on the method-at-a-time JIT |
| 21:39:42 | slava | heh |
| 21:39:48 | evan | that being said, did you see that the traces were only a couple of bytecodes? thats weird. |
| 21:40:04 | evan | his complaint about MAAT compliing cold code is wrong. |
| 21:40:17 | evan | or rather, can easily be wrong. |
| 21:40:22 | slava | well, your jit compiles all branches |
| 21:40:23 | slava | or most of them |
| 21:40:24 | slava | right? |
| 21:40:37 | evan | yeah, but it doesn't have to |
| 21:40:56 | evan | i could easily see that a cache was never used and instead of contiuning to compile, bail back to the interpreter and ignore the rest of that branch |
| 21:41:23 | evan | thereby ignoring cold code beyond cold caches |
| 21:41:31 | evan | hotspot does that. |
| 21:41:37 | slava | ah |
| 21:41:48 | evan | 'this branch is never taken, don't bother with it, just bail back to the interpreter if we get here' |
| 21:41:58 | evan | I should try that actually |
| 21:45:00 | evan | slava: anyway, did it seem like the dalvik traces were really short? |
| 21:45:12 | slava | traces are always short aren't thye? |
| 21:45:53 | evan | i figured they be longer than 2 or 3 bytecodes |
| 21:46:02 | evan | which is what some of the stats they showed had them at |
| 21:46:02 | slava | maybe its because they were just examples? |
| 21:46:08 | evan | could be. |
| 21:46:16 | evan | since tehy said that they don't do method inlining |
| 21:46:27 | evan | that tells me that their traces don't go between methods |
| 21:47:02 | slava | its the opposite |
| 21:47:05 | slava | traces don't have subroutine calls |
| 21:47:07 | slava | everything is inlined |
| 21:47:28 | evan | right, but i think that hitting a invoke instruction must terminate a trace |
| 21:47:39 | evan | or the trace contains a call itself |
| 21:47:46 | evan | because they said they don't inline methods. |
| 21:48:04 | evan | i could be wrong, maybe their slides are just confusing. |
| 21:50:59 | evan | running the specs, there are 1159 cold/frozen caches seen by the JIT |
| 21:51:11 | evan | meaning inline caches that have never been used |
| 21:51:32 | evan | let me print out how many caches are seen total |
| 21:55:31 | evan | wow |
| 21:55:40 | evan | only 3339 caches seen |
| 21:55:48 | evan | so a lot of them are cold. |
| 21:56:04 | evan | i really should bail back to the interpreter rather than keep compiling them. |
| 21:56:26 | slava | yeah |
| 23:55:46 | brixen | evan: what version of gcc do you use on snow leopard |
| 23:55:50 | brixen | ? |
| 23:56:01 | evan | i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659) |
| 23:56:08 | brixen | hmm, ok |
| 23:56:15 | evan | 4.0 is available too |
| 23:56:19 | evan | as g++-4.0 |
| 23:56:29 | brixen | and you are using the prebuilt for snow leopard? |
| 23:57:04 | brixen | or your own llvm src build? |
| 23:57:23 | evan | prebuilt. |
| 23:57:25 | brixen | k |
| 23:57:40 | evan | i have a seperate clone that I test LLVM with |
| 23:57:50 | evan | i don't use my own normally because I want to see what everyone else does |
| 23:57:51 | brixen | hm, ok |
| 23:58:43 | evan | why? |
| 23:58:48 | brixen | sec.. |
| 23:58:50 | evan | i'm prepping 1.0.1 |
| 23:58:50 | brixen | build issue |
| 23:58:52 | evan | btw. |
| 23:58:55 | brixen | ah ok |
| 23:59:01 | evan | if you have something |
| 23:59:02 | evan | speak now. |
| 23:59:18 | brixen | k |
| 23:59:45 | brixen | jvoorhis will have a gist for you |
| 23:59:55 | evan | I await his gist. |