Index

Show enters and exits. Hide enters and exits.

00:29:57ruetmm1 has a slightly different profiler going for MRI: http://tmm1.net/sinatra.gif
00:30:39yakischlobaoh, you have a profiling tool for rubinius?
00:31:16rueWe do
00:31:34rueAbove is MRI, though
00:31:34yakischlobacool. it's in there and i just havent noticed it yet, i take it?
00:31:41yakischlobayes i know
00:33:09rueyakischloba: -P
00:33:23yakischlobaok
00:38:36brixenrue: we can convert the instrumented profiler into a sampling one very simply
00:38:44brixenevan and I talked about this
00:38:52brixendo it the same way gprof does
00:39:16brixenwhich is just run a global timer and if you enter a method within a delta of the sampling interval, take a sample
00:39:40brixenwe already collect all the info for a tree like this too
00:39:52brixenjust need to write it out in a graph
00:40:07rueYes, feeding it to dot would be fairly simple
00:41:15rueIt is just a fairly nice visualisation
00:46:36brixenI don't like it much
00:46:41brixenhard to read
00:46:52brixengprof has an alternate to the flat output that is pretty good
00:47:08brixensomeone already wrote that for the sampling profiler
00:47:14brixenso wouldn't be hard to adapt
01:11:08rueIt is a call graph
01:12:08brixenahh, I thought it was a giraffe
01:14:51brixenI meant I didn't like it for tracking prof info
01:15:09brixenit's nice to have a graphical call giraffe
04:05:39ddubwaves hello
04:11:13brixenwaves back
04:23:01ddubwhats up brixen?
04:25:02dduband what has been up with rubinius, other than stackfull being merged (two months ago?)
04:27:02rueMagic
04:27:07brixenyes magic
04:27:24ddubmagic?
04:27:25ddubnice
04:27:27brixenI'm namespacing our 31+ implementation classes atm
04:27:36brixenwe have a lot of classes
04:27:39ddubwhat namespace? rbx?
04:27:45brixenergo we have a lot of class
04:27:47brixenyes
04:27:53brixenRubinius::Tuple etc
04:27:54ddubguesses so well
04:28:04ddubwait, Rubinius as the namespace, damn
04:28:17ddubrbx::Tuple would be quicker to type
04:28:23brixenyes it would
04:28:25ddubever consider redoing everything you've done so far tonight?
04:28:31ddub:D
04:28:40brixenperhaps you should go back to writing C# :P
04:28:52ddubI haven't written C# in months!
04:29:13brixenwe should have just used R
04:29:16ddubunfortunately, the language of the week next week is Apex. Not looking forward to that at _all_
04:29:17brixenR::Tuple
04:29:30ddubhmm, can _ be an identifier in C++/
04:29:33ddub_::Tuple
04:29:38brixenat least you'll be above it all
04:30:07ddubI can't understand why someone would voluntarily develop code for the force platform. I mean, I'm not
04:30:13ddubbut obviously people out there do
04:30:31ddubmy theory is that they haven't heard of app engine or EC2
04:32:57dduband 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:37ddubor shared accounts, or running machines locally off of a cable modem might also be a preferable option
04:34:19brixenddub: I'm still waiting for you to get rbx running with nestedvm so we can use it in app engine
04:34:40ddubnestedvm?
04:34:45brixenhttp://nestedvm.ibex.org/
04:34:56dduboh my...
04:34:58brixensays C, C++, or fortran
04:35:07ddubwow. just, wow
04:35:07brixensounds like a good weekend project for you
04:35:52ddubthat can't be fast, can it?
04:35:57brixensure it can
04:36:16ddubbut I mean, it has to do emulation of memory layout
04:36:26brixenI'm guessing the majority of it is aot
04:36:37brixenbut I haven't really looked
04:36:51brixenanyway, if you could work on that, kthx
04:36:56brixen:)
04:37:20brixenahh, the coffee is kicking in
04:37:41brixendoesn't have much caffeine normally
04:37:51ddubis that really the best use of my or anyone else's time?
04:38:22ddubif nothing else, it could backfire where people run rubinius-as-mips-on-jvm against jruby as an 'apples to apples' comparison :)
04:39:15brixenheh
04:39:30ddubso 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:35brixenok fine, I'll do it myself then
04:40:15brixenwe should also make a version of rbx like this http://tinyvm.sourceforge.net/
04:41:24headiuswe thought about trying to run ruby extensions in nestedvm
04:42:04ddubhmm, does nestedvm implement a syscall table or libc?
04:43:22ddubthat 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:09ddubI really like the code generation examples within the presentation
04:44:37ddub"Entire virtual memory space mapped to a
04:44:37ddubgiant int[][] array indexed by page, then
04:44:37ddubaddress
04:45:45ddubwow, 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:05headiusyeah
04:46:09headiusit would be worth trying out
04:46:36headiusanother thought we had was simply running key libraries in nestedvm like openssl and rmagick
04:46:45headiusbut I never got past downloading some of the bits
04:46:58ddubcan'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:16headiuswe could even have an FFI-like layer over nestedvm
04:47:28headiusddub: oh I think one of the sqlite3 options for Java uses nestedvm
04:47:28ddubif they had ways to interface with java libraries still, that would really impress me
04:47:31headiusif it can't use jni
04:47:38ddubsomeone writes an openssl engine thats actually JCE :D
04:47:45headiusthat's what we have now
04:47:57headiusbut it's super fiddly to get all the edge cases working, and none of us are crypto people
04:48:39headiusI know we lose users because we can't fix things like certificaes and pkey
04:48:48headiuswell not can't...don't know how to
04:48:51ddubI have a crypto person hat, one issue is that JCE is horribly overengineered and underthought (which usually happens with overengineered things)
04:49:38ddubhmm
04:49:58ddublooks around his house and realizes he shouldn't be pondering a development project yet :)
04:51:02ddubbrixen: 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:39ddubunfortunately, 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:47ddubprobably won't sleep that much tonight :-/
04:51:49headiusddub: you might be able to fix the edge bits we have to deal with though
04:52:00headiusagreed on the overengineered thing...such a hassle
04:52:11headiuscombine that with my complete lack of crypto knowledge and bugs just sit there
04:52:30headiusI'll buy you a beer if you fix some jruby-openssl issues
04:52:48brixenddub: sounds fun
04:53:07ddubheadius: 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:11brixenwell, inexplicably, these coffee shop workers want to go home
04:53:18brixenso I guess I have to leave
04:53:21brixenbbiab..
04:54:28headiusddub: yeah I know, lots of java APIs are kinda schizo about how lookups/factories should be done
04:54:40headiusthe jruby-openssl layout isn't too bad though
04:54:57headiusI've got a task on my plate to continue cleaning it up, but the existing bugs are pretty easy to trace
04:55:02headiusI just don't know how to fix them :)
04:55:19ddubhmm
04:55:25headiushttp://github.com/jruby/jruby-openssl/tree/master
04:56:01headiusif 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:39ddub:D
04:56:43ddubwhere is the bug list?
04:57:58ddubin jira?
04:58:17headiusyeah, openssl category
04:58:46headiushttp://is.gd/uqwS
04:58:54headiuseesh, up to 8 open now
04:59:34headiusone 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:53ddubsees "JRuby OpenSSL does not pass its own tests" and wonders what he is getting himself into...
05:00:02headiusI think it just decayed a bit
05:00:22headiustests weren't being run on a regular basis by ola
05:00:30headiusprobably mostly minor things
05:00:44headiusif we got them working again I'd set up a CI build
05:03:11ddubponders making a java charset called "broken" that just throws exceptions like crazy when called from user packages.
05:03:21ddubit would help so much with our software too
05:05:25headiuscharset hassles were why we eventually just reimplemented strings as byte[]
05:05:42headiusit was tricky and inefficient to get char[]-based strings to play nicely with MRI's sometimes-binary string
05:06:17headiusin 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:09ddubmacruby has the catch that objc already had a half dozen types of strings
05:07:17headiusyeah, I don't envy that
05:07:48ddubwell it was a different time back then. Nowdays I think people would just default to UTF-8 and say 'deal'
05:07:55headiusin 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:11headiuswe mostly expect utf-8
05:08:39ddubjava internally is expected to be UTF-16, right?
05:08:56dduband serialization is modified UTF-8 (just to allow writing zero values out)
05:09:05rueThink they flip a coin
05:09:07dduba0 c0 -> 0x0000
05:09:17dduberr, c0 a0
05:11:20ddubobj-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:59ddubexcept 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:58ddubso 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:25headiusjava internally is all utf-16, yes
05:15:38headiuswhen strings are read in or dumped out to the OS it uses whatever the OS claims its default encoding is
05:16:06headiusthe "file.encoding" property generally says what that encoding is
05:16:18ddubI think until 1.4 they were interally 'UCS-2', I remember a bunch of codepoint type stuff getting added
05:16:40headiusyeah, it's still "broken" as I understand it for higher planes, but I've never heard any specific cases
05:17:09headiusklingon and seussian characters might not work right
05:17:37ddubKerplack!
05:18:22ddubooh http://www.evertype.com/standards/csur/seuss.html
05:18:33ddubdid not know about the seussian extensions.
05:22:04headiusyeah
05:22:07headiuspretty cool
05:22:29ddubhmm, suppose I am done with dinner, and should get back to cleaning :)
05:22:35headiusI saw a slide deck yesterday that used seussian characters in place of greek characters for some mathematical proofs
05:22:45dduboh rock
05:22:47headiusit was somehow a lot more entertaining
05:23:02ddubI forgot all about beyond the zebra until I saw that
05:23:12ddubAlthough I suppose I should expect a movie version this xmas?
05:27:52headiusoh yeah I think I heard something about that
05:28:40yakischlobahey 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:41ddubbrixen: oh yeah, need to add looking at immix to the mix too
05:36:09rueyakischloba: Which system are you on?
05:38:00yakischlobarue: tiger
05:39:21rueWhat does your mmap man page look like? Take a look at vm/util/immix.hpp
05:39:49yakischlobalooks like...a man page
05:54:56yakischlobaso trying to mmap stdin?
05:55:37yakischlobawhat is the reason for this
06:07:46yakischlobahmm. 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:10evanyes
06:08:12evantry -1 there
06:08:14evaninstead of 0
06:08:28yakischlobaok
06:08:48evanok, back to moving.
06:19:22yakischlobanow i am here http://pastie.org/private/ndjnkaj9pg0lahjfvfiwrq
06:21:52yakischlobatiger does not have __WORDSIZE hmm
06:26:01yakischloba@todo: Tiger doesn't define __WORDSIZE...
06:32:30yakischlobaWORD_BIT ? hmm
06:41:05yakischlobawhat is the solution here? is WORD_BIT equivalent?
07:13:51evanyakischloba: hardcode it to 32
07:13:55evanback to packing.
09:01:52gnufiedmaster is broken?
09:01:52gnufiedtask.hpp and contexts.hpp is missing and referred in build
09:18:20evangnufied: you've not updated in a while
09:18:27evanremove vm/test/test_instructions.hpp
09:19:22gnufiedhmm, I did update. odd
09:20:44evanfor some reason rake clean missed some files.
09:21:29evana clean checkout should work
09:21:32evanor use 'git clean'
09:21:45evani'm headed to bed, movers showing up in the morning and there is more packing to do
09:22:40gnufiedcool. thanks
13:10:27sbryantmorning
13:20:53rueHola
13:22:16sbryantrue: what's going on?
13:24:11rueNot much, taking a break from a long work stretch...going to go see the evil day star
13:25:14sbryantsounds like a good time
16:29:13yakischlobaevan: right, but what about permanent fix so others do not encounter the problem
16:33:29sbryantyakischloba: what's the issue?
16:34:49yakischloba__WORDSIZE not defined on tiger
16:35:09rueThere should be some stripe-detection code
16:35:44yakischlobahmm
16:39:43tilmananyone seen this before? http://e4379425c2bab611.paste.se/
16:41:04rueNot that in particular, looks like an error during error handling?
16:41:16rueevan changed some of that code a day or two ago
16:41:22tilmanah
16:41:41tilmanrue: there's a spec for a similar case in frozen/language/return_spec.rb:206, which passes
16:41:50tilmanlooks at File.open
16:42:27tilmanaha
16:42:40tilmanseems to be the '... rescue nil' in File.open's ensure block
16:43:38tilmanrue: you were referring to 3d7bc752?
16:44:48rueYes
16:45:07rueAlthough that code...I am not sure it should run anyway
16:45:52rueInline rescue is in my bottom 5 Ruby features
16:46:27tilman:D
16:48:41tilmannope, it wasn't that commit that introduced this
17:03:12evantilman: thats... odd
17:03:13evanand bad.
17:03:23evani'll take a look this weekend
17:03:29evanmovers show up in less than an hour
17:03:34sbryantevan: awesome!
17:03:37sbryantBut moving sucks.
17:03:52sbryantI moved into a new place, and the damn A/C is broken.
17:04:08evanug.
17:05:15tilmanfwiw, it's not the inline rescue that causes the problem
17:05:24tilmana "proper" begin/rescue block fails the same way
17:30:25ruetilman: One problem less either way :)
17:30:31rueGoing to the vet *sigh*
17:30:39yakischlobagood luck :(
18:05:48tilmanevan: this might save you some time: http://bbbed616098ff5a8.paste.se/ couldn't finish the bisecting due to various build errors unfortunately
21:24:09rueBack
23:03:05brixenrb_to_id is dumb, you can pass something that defines :to_str but not something that defines :to_sym
23:08:11rueMan, 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:28ruebrixen: rb_* is dumb, unfortunately
23:09:00sbryantis that stuff in the capi?
23:09:56rueThe MRI C compatibility stuff, yes
23:10:26sbryantahh
23:13:21slavawhat's up guys
23:15:03brixenslava: I like your refresh-all :)
23:18:15slava30" monitor hooked up to a kvm connected to a mac pro, a quad-core windows box and a mac book pro = win
23:21:00ruedrbrain: Sweet helmet :P
23:21:35rueIt was warm enough today to wear my cat-in-the-hat-hat
23:22:34slavahi tarcieri
23:40:26slavaevan: ping
23:46:28rueslava: Moving day, he is probably not going to be around much
23:46:52slavaare you familiar with the rubinius gc?
23:47:27rueAlmost certainly not to the degree to be able to help you :)
23:47:54slavaI was just wondering if your write barrier marks entire arrays or just the parts that changed