Show enters and exits. Hide enters and exits.
| 00:29:57 | rue | tmm1 has a slightly different profiler going for MRI: http://tmm1.net/sinatra.gif |
| 00:30:39 | yakischloba | oh, you have a profiling tool for rubinius? |
| 00:31:16 | rue | We do |
| 00:31:34 | rue | Above is MRI, though |
| 00:31:34 | yakischloba | cool. it's in there and i just havent noticed it yet, i take it? |
| 00:31:41 | yakischloba | yes i know |
| 00:33:09 | rue | yakischloba: -P |
| 00:33:23 | yakischloba | ok |
| 00:38:36 | brixen | rue: we can convert the instrumented profiler into a sampling one very simply |
| 00:38:44 | brixen | evan and I talked about this |
| 00:38:52 | brixen | do it the same way gprof does |
| 00:39:16 | brixen | which is just run a global timer and if you enter a method within a delta of the sampling interval, take a sample |
| 00:39:40 | brixen | we already collect all the info for a tree like this too |
| 00:39:52 | brixen | just need to write it out in a graph |
| 00:40:07 | rue | Yes, feeding it to dot would be fairly simple |
| 00:41:15 | rue | It is just a fairly nice visualisation |
| 00:46:36 | brixen | I don't like it much |
| 00:46:41 | brixen | hard to read |
| 00:46:52 | brixen | gprof has an alternate to the flat output that is pretty good |
| 00:47:08 | brixen | someone already wrote that for the sampling profiler |
| 00:47:14 | brixen | so wouldn't be hard to adapt |
| 01:11:08 | rue | It is a call graph |
| 01:12:08 | brixen | ahh, I thought it was a giraffe |
| 01:14:51 | brixen | I meant I didn't like it for tracking prof info |
| 01:15:09 | brixen | it's nice to have a graphical call giraffe |
| 04:05:39 | ddub | waves hello |
| 04:11:13 | brixen | waves back |
| 04:23:01 | ddub | whats up brixen? |
| 04:25:02 | ddub | and what has been up with rubinius, other than stackfull being merged (two months ago?) |
| 04:27:02 | rue | Magic |
| 04:27:07 | brixen | yes magic |
| 04:27:24 | ddub | magic? |
| 04:27:25 | ddub | nice |
| 04:27:27 | brixen | I'm namespacing our 31+ implementation classes atm |
| 04:27:36 | brixen | we have a lot of classes |
| 04:27:39 | ddub | what namespace? rbx? |
| 04:27:45 | brixen | ergo we have a lot of class |
| 04:27:47 | brixen | yes |
| 04:27:53 | brixen | Rubinius::Tuple etc |
| 04:27:54 | ddub | guesses so well |
| 04:28:04 | ddub | wait, Rubinius as the namespace, damn |
| 04:28:17 | ddub | rbx::Tuple would be quicker to type |
| 04:28:23 | brixen | yes it would |
| 04:28:25 | ddub | ever consider redoing everything you've done so far tonight? |
| 04:28:31 | ddub | :D |
| 04:28:40 | brixen | perhaps you should go back to writing C# :P |
| 04:28:52 | ddub | I haven't written C# in months! |
| 04:29:13 | brixen | we should have just used R |
| 04:29:16 | ddub | unfortunately, the language of the week next week is Apex. Not looking forward to that at _all_ |
| 04:29:17 | brixen | R::Tuple |
| 04:29:30 | ddub | hmm, can _ be an identifier in C++/ |
| 04:29:33 | ddub | _::Tuple |
| 04:29:38 | brixen | at least you'll be above it all |
| 04:30:07 | ddub | I can't understand why someone would voluntarily develop code for the force platform. I mean, I'm not |
| 04:30:13 | ddub | but obviously people out there do |
| 04:30:31 | ddub | my theory is that they haven't heard of app engine or EC2 |
| 04:32:57 | ddub | and may be that they haven't heard of VPS accounts, or even the concept of having an ISP host a machine for you |
| 04:33:37 | ddub | or shared accounts, or running machines locally off of a cable modem might also be a preferable option |
| 04:34:19 | brixen | ddub: I'm still waiting for you to get rbx running with nestedvm so we can use it in app engine |
| 04:34:40 | ddub | nestedvm? |
| 04:34:45 | brixen | http://nestedvm.ibex.org/ |
| 04:34:56 | ddub | oh my... |
| 04:34:58 | brixen | says C, C++, or fortran |
| 04:35:07 | ddub | wow. just, wow |
| 04:35:07 | brixen | sounds like a good weekend project for you |
| 04:35:52 | ddub | that can't be fast, can it? |
| 04:35:57 | brixen | sure it can |
| 04:36:16 | ddub | but I mean, it has to do emulation of memory layout |
| 04:36:26 | brixen | I'm guessing the majority of it is aot |
| 04:36:37 | brixen | but I haven't really looked |
| 04:36:51 | brixen | anyway, if you could work on that, kthx |
| 04:36:56 | brixen | :) |
| 04:37:20 | brixen | ahh, the coffee is kicking in |
| 04:37:41 | brixen | doesn't have much caffeine normally |
| 04:37:51 | ddub | is that really the best use of my or anyone else's time? |
| 04:38:22 | ddub | if nothing else, it could backfire where people run rubinius-as-mips-on-jvm against jruby as an 'apples to apples' comparison :) |
| 04:39:15 | brixen | heh |
| 04:39:30 | ddub | so yeah all memory has to be emulated through an int[], or possibly a more complex mechanism to deal with sparse usage and null pages |
| 04:39:35 | brixen | ok fine, I'll do it myself then |
| 04:40:15 | brixen | we should also make a version of rbx like this http://tinyvm.sourceforge.net/ |
| 04:41:24 | headius | we thought about trying to run ruby extensions in nestedvm |
| 04:42:04 | ddub | hmm, does nestedvm implement a syscall table or libc? |
| 04:43:22 | ddub | that would be a pretty evil solution. People write native code because they don't trust the speed of the language implementation. Someone writes an emulation environment to run said native code inside the language implementation anyway |
| 04:44:09 | ddub | I really like the code generation examples within the presentation |
| 04:44:37 | ddub | "Entire virtual memory space mapped to a |
| 04:44:37 | ddub | giant int[][] array indexed by page, then |
| 04:44:37 | ddub | address |
| 04:45:45 | ddub | wow, thats really mischievious as well. A non mapped page will be a null pointer, which will generate a java NPE, which actually is (on all the platforms I've messed with) a real sigsegv. |
| 04:46:05 | headius | yeah |
| 04:46:09 | headius | it would be worth trying out |
| 04:46:36 | headius | another thought we had was simply running key libraries in nestedvm like openssl and rmagick |
| 04:46:45 | headius | but I never got past downloading some of the bits |
| 04:46:58 | ddub | can't emulate a full MMU with read-only or write-only pages, but could emulate other things like a virtual memory system with a page mapped multiple times |
| 04:47:16 | headius | we could even have an FFI-like layer over nestedvm |
| 04:47:28 | headius | ddub: oh I think one of the sqlite3 options for Java uses nestedvm |
| 04:47:28 | ddub | if they had ways to interface with java libraries still, that would really impress me |
| 04:47:31 | headius | if it can't use jni |
| 04:47:38 | ddub | someone writes an openssl engine thats actually JCE :D |
| 04:47:45 | headius | that's what we have now |
| 04:47:57 | headius | but it's super fiddly to get all the edge cases working, and none of us are crypto people |
| 04:48:39 | headius | I know we lose users because we can't fix things like certificaes and pkey |
| 04:48:48 | headius | well not can't...don't know how to |
| 04:48:51 | ddub | I have a crypto person hat, one issue is that JCE is horribly overengineered and underthought (which usually happens with overengineered things) |
| 04:49:38 | ddub | hmm |
| 04:49:58 | ddub | looks around his house and realizes he shouldn't be pondering a development project yet :) |
| 04:51:02 | ddub | brixen: house remodelling is almost done, have three walls to paint (more or less) as well as some baseboards, and need to either finish up the tilework or have someone else paid to finish it up. |
| 04:51:39 | ddub | unfortunately, family booked travel here for this weekend without really confirming with me, so I've been running around like a crazy person trying to get the place livable |
| 04:51:47 | ddub | probably won't sleep that much tonight :-/ |
| 04:51:49 | headius | ddub: you might be able to fix the edge bits we have to deal with though |
| 04:52:00 | headius | agreed on the overengineered thing...such a hassle |
| 04:52:11 | headius | combine that with my complete lack of crypto knowledge and bugs just sit there |
| 04:52:30 | headius | I'll buy you a beer if you fix some jruby-openssl issues |
| 04:52:48 | brixen | ddub: sounds fun |
| 04:53:07 | ddub | headius: some of it is just java patterns, I prefer abstract factories over text-based lookups. I mean, look at all the spots where you have to pass "UTF-8" in order to get the correct behavior, yet you still get a non-Runtime exception out of it that you have to deal with |
| 04:53:11 | brixen | well, inexplicably, these coffee shop workers want to go home |
| 04:53:18 | brixen | so I guess I have to leave |
| 04:53:21 | brixen | bbiab.. |
| 04:54:28 | headius | ddub: yeah I know, lots of java APIs are kinda schizo about how lookups/factories should be done |
| 04:54:40 | headius | the jruby-openssl layout isn't too bad though |
| 04:54:57 | headius | I've got a task on my plate to continue cleaning it up, but the existing bugs are pretty easy to trace |
| 04:55:02 | headius | I just don't know how to fix them :) |
| 04:55:19 | ddub | hmm |
| 04:55:25 | headius | http://github.com/jruby/jruby-openssl/tree/master |
| 04:56:01 | headius | if it sounds like I'm salivating at the thought of someone with *any* crypto knowledge being able to help, it's because I am |
| 04:56:39 | ddub | :D |
| 04:56:43 | ddub | where is the bug list? |
| 04:57:58 | ddub | in jira? |
| 04:58:17 | headius | yeah, openssl category |
| 04:58:46 | headius | http://is.gd/uqwS |
| 04:58:54 | headius | eesh, up to 8 open now |
| 04:59:34 | headius | one of those I have a fix for...a fix that works and I have no idea why, I just looked at APIs and threw a dart |
| 04:59:53 | ddub | sees "JRuby OpenSSL does not pass its own tests" and wonders what he is getting himself into... |
| 05:00:02 | headius | I think it just decayed a bit |
| 05:00:22 | headius | tests weren't being run on a regular basis by ola |
| 05:00:30 | headius | probably mostly minor things |
| 05:00:44 | headius | if we got them working again I'd set up a CI build |
| 05:03:11 | ddub | ponders making a java charset called "broken" that just throws exceptions like crazy when called from user packages. |
| 05:03:21 | ddub | it would help so much with our software too |
| 05:05:25 | headius | charset hassles were why we eventually just reimplemented strings as byte[] |
| 05:05:42 | headius | it was tricky and inefficient to get char[]-based strings to play nicely with MRI's sometimes-binary string |
| 05:06:17 | headius | in retrospect we could have tried having two types of string, like ironruby and macruby, but I don't think either of them have worked the kinks out even now |
| 05:07:09 | ddub | macruby has the catch that objc already had a half dozen types of strings |
| 05:07:17 | headius | yeah, I don't envy that |
| 05:07:48 | ddub | well it was a different time back then. Nowdays I think people would just default to UTF-8 and say 'deal' |
| 05:07:55 | headius | in our case we would have just used char[] instead, which would have improved interop...but it would have made it easier to have a String or StringBuffer based versions |
| 05:08:11 | headius | we mostly expect utf-8 |
| 05:08:39 | ddub | java internally is expected to be UTF-16, right? |
| 05:08:56 | ddub | and serialization is modified UTF-8 (just to allow writing zero values out) |
| 05:09:05 | rue | Think they flip a coin |
| 05:09:07 | ddub | a0 c0 -> 0x0000 |
| 05:09:17 | ddub | err, c0 a0 |
| 05:11:20 | ddub | obj-c string type is determined by the initializer called. the class method +alloc will basically allocate sizeof(...) bytes and set up an object identifier, then init methods are all just convention, instance methods that set up the data and return self |
| 05:11:59 | ddub | except NSString's init methods do not ever return self. They deallocate the class block and create their own new object instance, and return that |
| 05:12:58 | ddub | so NSString itself acts like an interface definition and a factory. And its always cheaper to call the class level creation methods, since they will not require that first allocation |
| 05:15:25 | headius | java internally is all utf-16, yes |
| 05:15:38 | headius | when strings are read in or dumped out to the OS it uses whatever the OS claims its default encoding is |
| 05:16:06 | headius | the "file.encoding" property generally says what that encoding is |
| 05:16:18 | ddub | I think until 1.4 they were interally 'UCS-2', I remember a bunch of codepoint type stuff getting added |
| 05:16:40 | headius | yeah, it's still "broken" as I understand it for higher planes, but I've never heard any specific cases |
| 05:17:09 | headius | klingon and seussian characters might not work right |
| 05:17:37 | ddub | Kerplack! |
| 05:18:22 | ddub | ooh http://www.evertype.com/standards/csur/seuss.html |
| 05:18:33 | ddub | did not know about the seussian extensions. |
| 05:22:04 | headius | yeah |
| 05:22:07 | headius | pretty cool |
| 05:22:29 | ddub | hmm, suppose I am done with dinner, and should get back to cleaning :) |
| 05:22:35 | headius | I saw a slide deck yesterday that used seussian characters in place of greek characters for some mathematical proofs |
| 05:22:45 | ddub | oh rock |
| 05:22:47 | headius | it was somehow a lot more entertaining |
| 05:23:02 | ddub | I forgot all about beyond the zebra until I saw that |
| 05:23:12 | ddub | Although I suppose I should expect a movie version this xmas? |
| 05:27:52 | headius | oh yeah I think I heard something about that |
| 05:28:40 | yakischloba | hey guys, evan identified this issue yesterday, but i forget what he said should try to do to fix it. can someone take a peek? http://pastie.org/private/rakymiynjer3g1hutnwuta |
| 05:30:41 | ddub | brixen: oh yeah, need to add looking at immix to the mix too |
| 05:36:09 | rue | yakischloba: Which system are you on? |
| 05:38:00 | yakischloba | rue: tiger |
| 05:39:21 | rue | What does your mmap man page look like? Take a look at vm/util/immix.hpp |
| 05:39:49 | yakischloba | looks like...a man page |
| 05:54:56 | yakischloba | so trying to mmap stdin? |
| 05:55:37 | yakischloba | what is the reason for this |
| 06:07:46 | yakischloba | hmm. this is more low level than i am used to, i am a bit lost. do other mmap implementations let you pass 0 as the fd to just allocate memory instead of mapping? |
| 06:08:10 | evan | yes |
| 06:08:12 | evan | try -1 there |
| 06:08:14 | evan | instead of 0 |
| 06:08:28 | yakischloba | ok |
| 06:08:48 | evan | ok, back to moving. |
| 06:19:22 | yakischloba | now i am here http://pastie.org/private/ndjnkaj9pg0lahjfvfiwrq |
| 06:21:52 | yakischloba | tiger does not have __WORDSIZE hmm |
| 06:26:01 | yakischloba | @todo: Tiger doesn't define __WORDSIZE... |
| 06:32:30 | yakischloba | WORD_BIT ? hmm |
| 06:41:05 | yakischloba | what is the solution here? is WORD_BIT equivalent? |
| 07:13:51 | evan | yakischloba: hardcode it to 32 |
| 07:13:55 | evan | back to packing. |
| 09:01:52 | gnufied | master is broken? |
| 09:01:52 | gnufied | task.hpp and contexts.hpp is missing and referred in build |
| 09:18:20 | evan | gnufied: you've not updated in a while |
| 09:18:27 | evan | remove vm/test/test_instructions.hpp |
| 09:19:22 | gnufied | hmm, I did update. odd |
| 09:20:44 | evan | for some reason rake clean missed some files. |
| 09:21:29 | evan | a clean checkout should work |
| 09:21:32 | evan | or use 'git clean' |
| 09:21:45 | evan | i'm headed to bed, movers showing up in the morning and there is more packing to do |
| 09:22:40 | gnufied | cool. thanks |
| 13:10:27 | sbryant | morning |
| 13:20:53 | rue | Hola |
| 13:22:16 | sbryant | rue: what's going on? |
| 13:24:11 | rue | Not much, taking a break from a long work stretch...going to go see the evil day star |
| 13:25:14 | sbryant | sounds like a good time |
| 16:29:13 | yakischloba | evan: right, but what about permanent fix so others do not encounter the problem |
| 16:33:29 | sbryant | yakischloba: what's the issue? |
| 16:34:49 | yakischloba | __WORDSIZE not defined on tiger |
| 16:35:09 | rue | There should be some stripe-detection code |
| 16:35:44 | yakischloba | hmm |
| 16:39:43 | tilman | anyone seen this before? http://e4379425c2bab611.paste.se/ |
| 16:41:04 | rue | Not that in particular, looks like an error during error handling? |
| 16:41:16 | rue | evan changed some of that code a day or two ago |
| 16:41:22 | tilman | ah |
| 16:41:41 | tilman | rue: there's a spec for a similar case in frozen/language/return_spec.rb:206, which passes |
| 16:41:50 | tilman | looks at File.open |
| 16:42:27 | tilman | aha |
| 16:42:40 | tilman | seems to be the '... rescue nil' in File.open's ensure block |
| 16:43:38 | tilman | rue: you were referring to 3d7bc752? |
| 16:44:48 | rue | Yes |
| 16:45:07 | rue | Although that code...I am not sure it should run anyway |
| 16:45:52 | rue | Inline rescue is in my bottom 5 Ruby features |
| 16:46:27 | tilman | :D |
| 16:48:41 | tilman | nope, it wasn't that commit that introduced this |
| 17:03:12 | evan | tilman: thats... odd |
| 17:03:13 | evan | and bad. |
| 17:03:23 | evan | i'll take a look this weekend |
| 17:03:29 | evan | movers show up in less than an hour |
| 17:03:34 | sbryant | evan: awesome! |
| 17:03:37 | sbryant | But moving sucks. |
| 17:03:52 | sbryant | I moved into a new place, and the damn A/C is broken. |
| 17:04:08 | evan | ug. |
| 17:05:15 | tilman | fwiw, it's not the inline rescue that causes the problem |
| 17:05:24 | tilman | a "proper" begin/rescue block fails the same way |
| 17:30:25 | rue | tilman: One problem less either way :) |
| 17:30:31 | rue | Going to the vet *sigh* |
| 17:30:39 | yakischloba | good luck :( |
| 18:05:48 | tilman | evan: this might save you some time: http://bbbed616098ff5a8.paste.se/ couldn't finish the bisecting due to various build errors unfortunately |
| 21:24:09 | rue | Back |
| 23:03:05 | brixen | rb_to_id is dumb, you can pass something that defines :to_str but not something that defines :to_sym |
| 23:08:11 | rue | Man, they drugged Rue up but good. Been back almost 2 hours, 3 since leaving the vet, and she is still sitting where I laid her down, raising her front paws in turn to stare at them |
| 23:08:28 | rue | brixen: rb_* is dumb, unfortunately |
| 23:09:00 | sbryant | is that stuff in the capi? |
| 23:09:56 | rue | The MRI C compatibility stuff, yes |
| 23:10:26 | sbryant | ahh |
| 23:13:21 | slava | what's up guys |
| 23:15:03 | brixen | slava: I like your refresh-all :) |
| 23:18:15 | slava | 30" monitor hooked up to a kvm connected to a mac pro, a quad-core windows box and a mac book pro = win |
| 23:21:00 | rue | drbrain: Sweet helmet :P |
| 23:21:35 | rue | It was warm enough today to wear my cat-in-the-hat-hat |
| 23:22:34 | slava | hi tarcieri |
| 23:40:26 | slava | evan: ping |
| 23:46:28 | rue | slava: Moving day, he is probably not going to be around much |
| 23:46:52 | slava | are you familiar with the rubinius gc? |
| 23:47:27 | rue | Almost certainly not to the degree to be able to help you :) |
| 23:47:54 | slava | I was just wondering if your write barrier marks entire arrays or just the parts that changed |