Index

Show enters and exits. Hide enters and exits.

00:00:15toulmeanevan: I did pull your master branch 5 minutes ago.
00:00:18brixenevan: awesome!
00:00:23evantoulmean: hm, ok.n
00:00:35brixentoulmean: what platform?
00:00:39toulmeanshould I switch to a maintenance branch ?
00:00:45toulmeanOS X 10.6.3
00:00:55evantoulmean: no
00:01:06evanI see UNIXSocket.pair in socket.rb
00:01:07toulmeanok let me get a gist for you.
00:01:11evanso i don't know why you don't see it.
00:01:17toulmeanok.
00:01:26toulmeanrake clean...
00:01:52evanyou don't need to do that.
00:01:57evanbut i suspect you already have.
00:02:05evancheck that you have it in irb.
00:02:09toulmeanyeah.
00:02:10toulmeanok
00:02:12toulmeanwill do.
00:02:15evank
00:35:49bcgevan: I just merged in evanphx/master and all the sudden I'm getting "ld: library not found for -lruby-static" ... any ideas?
00:36:10bcgevan: when I do a full rake build that is
00:36:15evangist the output please
00:36:25evanbrixen made a change yesterday that might be the cause.
00:36:26brixenbcg: building Melbourne for MRI?
00:36:31brixenyeah
00:36:36brixenargh effing platforms
00:36:37brixenman
00:36:50bcgBuilding Melbourne for MRI
00:36:50bcgLDSHARED ruby/melbourne.bundle
00:36:50bcgld: library not found for -lruby-static
00:36:51bcgcollect2: ld returned 1 exit status
00:36:51bcgrake aborted!
00:37:16bcgsorry for the paste
00:38:02brixenbcg: what is your build ruby?
00:38:02bcghttp://gist.github.com/453642
00:38:21brixenrvm... hmm
00:38:48bcgI have tried 1.8.6 1.8.7 and ruby-head (all through rvm)
00:38:53brixenyeah
00:39:22brixenthe lib probably exists but not where ld would see it
00:39:28brixenle sigh
00:40:02brixenbcg: could you gist me your ruby's rbconfig?
00:40:11brixenI could add the link dir too
00:40:15evanbrixen: we probably need to inject a -L
00:40:15evanyeah
00:40:19brixenyeah
00:40:28evanoh the joys of compilers.
00:42:30bcgbrixen: like the 'pp RbConfig::CONFIG' to a gist?
00:44:10brixenbcg: well, could you find where your libruby-static.a is under that .rvm dir
00:44:27brixenthen tell me which entry in Config::CONFIG is that dir
00:44:30brixenif you could
00:45:26bcgah ... this might be an rvm issue ... shocker ... when I run "rake" ... it eventually calls "/Users/bcg/.rvm/rubies/ruby-1.8.6-p399/bin/ruby -S rake" ... but 'which ruby' is returning the ruby in 'ruby-head'
00:46:11brixenbcg: well, I still need to add a -L dir based on the ruby rvm has "installed"
00:48:03bcgbrixen: /Users/bcg/.rvm/rubies/ruby-head//lib/libruby-static.a ... I'll see what var is associated with that
00:49:47brixenbcg: could you try with this patch http://gist.github.com/453649
00:52:24bcgbrixen: confirmed that was the right var, added the patch and it linked!
00:52:33brixenbcg: sweet, thanks
00:52:36brixenI'll push this
00:53:19bcgbrixen: then it segfaulted, but I think thats because I have some objects from different versions mixed or something ... doing a fresh clean build now .. thanks!
00:53:26brixenok
00:54:57evanso, I accidentally fucked up the arguments to a C++ method (there were too many weird arguments, i've fixed that)
00:54:58evanbut anyway
00:55:06evanthe mix up caused great perf
00:55:11brixenhah
00:55:19evani know
00:55:21evan*eyeroll*
00:55:32evanthe flag disabled size calculation
00:56:13evanbut it does tell me that i need to tweak the inline policies
00:56:25brixeninteresting
00:59:26bcgStill segfaulting during build: http://gist.github.com/453653
01:04:00brixenbcg: I think that may be a problem with the wrong ruby trying to run the ext built
01:04:13brixenwhat's the deal with 'which ruby' under rvm?
01:04:46bcg[20:56:20] bcg:rubinius git:(master*) $ which ruby
01:04:46brixenbcg: btw, did you run ./configure with the ruby that is active in your shell?
01:05:14brixenyou can't run configure with one ruby, then rvm another, and rake build
01:05:42bcgbrixen: ah I may not have ... Im not used to this build system yet .. sorry
01:06:09brixen(which will be fixed once our build is not frankenbuild)
01:06:29brixenbcg: no worries, just run ./configure again
01:06:43brixenthen rake extensions:clean; rake
01:07:33boyscoutAdd link dir for building Melbourne on MRI. - d19d0a8 - Brian Ford
01:07:34bcgbrixen: yup, rebuilding now ... I'm sure it was the configure step I was missing after I started trying all the different MRI versions to fix the linking issue
01:07:50brixenbcg: oh ok
01:08:06brixenyeah, we have to propagate the build ruby through the build system
01:08:19brixenthis issue will be fixed with the new build system
01:08:58evanpossible name for new build system: YourBuildSystemSucks
01:09:05brixenheh
01:09:16brixenybss
01:09:22brixennearly twss!
01:09:22bcgha
01:09:27evanhah
01:14:40brixenso, I know the world cup is the big deal right now
01:14:59brixenbut I think it's: #pack specs - 0, me - 1
01:15:20evanfuck yeah
01:15:22brixenso I'm gonna get some dinner
01:16:21brixenif boyscout would hurry up...
01:16:53boyscoutCI: rubinius: d19d0a8 successful: 3456 files, 13607 examples, 41171 expectations, 0 failures, 0 errors
01:16:57brixenheh
05:28:56Defilerwell at least three letters of this guy's username are accurate http://twitter.com/assaf/status/17035724921
05:36:11brixenhaha
05:36:34brixenit is good form for me not to say such things :)
05:36:49brixenbut that does not mean I have not thought them
05:37:09brixenbut anyway, I may or may not have had such thoughts long before that particular tweet
05:37:48brixenI have another thought for you: Array#pack in a word, UGH
05:40:40mdavidevan Are you around at the moment?
05:41:11evanyep
05:41:17evanhow can I help you on a friday evening?
05:43:50mdavidHowdy :-) well, as blowmage has suggested via a separate conversation I've been considering reviving the Ruby.NET project and placing focus on bringing rubinius into central focus, porting/mixing the IronRuby/Ruby.NET/rubinius code base...
05:45:33brixeninteresting
05:45:39brixenhave you looked at the rubinius codebase?
05:46:01evanmdavid: ok, cool. what can we tell ya?
05:46:19mdavidI have, yes. The one question I wanted to ask quickly was if you were aware that LLVM is now included as part of the Mono runtime?
05:46:32brixenwow, cool
05:46:38brixenI didn't know that, no
05:47:27mdavidevan you have to enable it during compilation, but as of 2.6.x, it's now a part of the runtime with plans to make it a major part of the platform from this point forward.
05:48:10mdavidevan There's two caveats to consider, however.
05:49:04mdavid1: Mono doesn't support C++-CLI, or IOW, there's no C++ runtime support.
05:49:29evanok
05:49:45evani wasn't sure if you were targeting Mono or Microsofts Runtime
05:50:26mdavid2: Actually, I'm not sure if there's a second caveat as that all depends on how hard it would be to access LLVM from MS.NET on Windows.
05:50:32evanwell, step one would be write a rbc loader and simple interpreter
05:50:50evanwell
05:50:59evani think you're confused about LLVM
05:51:20evanit's totally operational.
05:51:31blowmageevan: how do i navigate the rbx codebase? where is the loader and interpreter?
05:51:34evanyou should be ignore that it's even an option.
05:51:50evanbecause your JIT will be translating rubinius bytecode to CLR bytecode
05:52:31mdavidevan okay. So I assume then that you chose LLVM purely for JIT performance reasons?
05:53:12evanyes
05:53:30evanfor some reason, people think that LLVM is used as the interpreter
05:53:42evanLLVM doesn't have a real interpreter.
05:53:48evanwe use it entirely for the JIT
05:54:10mdavidevan not necessarily. LLVM is included in Mono as a way of creating platform specific executables.
05:54:18evanbecause it's very complete (lots of optimizations), easy to integrate
05:54:28brixenblowmage: you might start with doc/bootstrapping.txt
05:54:30mdavidevan it's a direct byproduct of the monotouch effort
05:54:33evanmdavid: no no
05:54:36evanLLVM usage in rubinius
05:54:39evani don't know how mono uses it.
05:55:07blowmagebrixen: thx
05:55:29brixenblowmage: also doc/table_of_contents.txt
05:55:53brixenblowmage: the doc/*.txt are pretty current, but stay away from doc/vm atm, it's old
05:56:41mdavidevan I'll verify for sure, but the point of LLVM inside of the Mono runtime, I believe, is to create platform specific code, bypassing CIL altogether
05:57:22brixenmdavid: curious, what are your goals that are not met by ironruby?
05:57:41mdavidbrixen performance.
05:57:55brixenmdavid: that's very broad :)
05:58:15brixenyou realize we have a lot of ruby code and a very good jit is what makes that practical?
05:59:03brixenbtw, how does the performance of mono compare generally to MS?
05:59:44mdavidbrixen haha! yeah, it is, but the primary reason I took over the Ruby.NET project was directly related to providing the ability to write .NET apps in Ruby while maintaining the performance of a statically compiled language.
06:00:27evanmdavid: ...
06:00:47mdavidbrixen re: Mono vs. MS.NET: That depends. In some situations Mono outperforms MS.NET. But in most cases, MS.NET outperforms Mono.
06:00:57brixenI see
06:01:32brixenI'm pretty fuzzy, was Ruby.NET initially a port of MRI to C#?
06:01:37evanmdavid: Rubinius gets performance from 2 areas
06:02:20evana well tuned bytecode interpreter and a dynamic type-feedback JIT
06:02:55evanfor your purpose, you should think of the JIT part as something that, at runtime, translate rubinius bytecode to CLR bytecode and compiles it
06:03:01mdavidbrixen no. Ruby.NET was designed as a static compiler for the Ruby language running on the .NET platform.
06:03:05evanthere is no static compiling.
06:03:16brixenmdavid: ah ok
06:03:18evanand I don't think you can achieve any kind of decent performance from trying.
06:03:50evanwhen we use LLVM, it writes machine code to memory only, never to disk
06:04:00evanit's not compiling ruby to static machine code that can be reused.
06:04:13toulmeanevan: brixen: I still get this error running vanity's rake test:
06:04:14toulmeanhttp://gist.github.com/453829
06:04:19toulmeanit's just one failure:
06:04:24brixenit's compiling a specific type-profile to machine code
06:04:26toulmeanGC is not a module (TypeError)
06:04:28evantoulmean: ack!!
06:04:30evanfuck.
06:04:39evanthats related to the fix I did recently
06:04:40evandamnit.
06:04:48evantoulmean: i'll push a fix now.
06:04:59toulmeancool
06:05:12mdavidevan yeah, I was aware of that, and it was for this reason I wanted to chat with you about bridging the gap between the Ruby.NET approach and the rubinious approach, using the IronRuby code base as the foundation for moving forward.
06:05:18brixentoulmean: down to one though, woot! :)
06:05:43toulmeanyes excellent guys
06:06:01brixenmdavid: well, let me ask you, how do you propose to compile fast code in the absence of runtime type info?
06:06:11evanmdavid: what from the ironruby code base did you want to use?
06:08:42mdavidevan In reading through your last few questions I think I need to spend a few more hours researching before wasting any more of your time. Will you be around this weekend?
06:08:57blowmagewhat does rbx use to parse the ruby files?
06:08:59evanmdavid: on and off
06:09:01evanmdavid: via email is best
06:09:38mdavidokay. blowmage: you still online or did you head off for the night?
06:09:49blowmagei’m gonna head to bed soon
06:09:56mdavidevan sorry, that last 'okay' was for you.
06:09:58brixenblowmage: it uses melbourne, a C ext based on MRI's parser
06:10:08evanmdavid: cool.
06:10:19brixenblowmage: google for my blog posts on the EY blog
06:10:30brixenblowmage: it explains it better than any docs we have
06:10:37brixenblowmage: well, mine and evan's posts
06:10:57blowmagebrixen: thx. we would need to port that as well
06:11:00mdavidblowmage I'll spend a few hours doing some more research and then start a thread between the three of us once I have a better grasp of things from the rubinius side.
06:11:13blowmageor, take the parser from ironruby or ruby.net
06:11:22blowmagemdavid: sounds good
06:12:37evanmdavid: ok
06:12:37mdavidevan thanks for your time!
06:13:15boyscoutGC is a module, not a class. - e933046 - Evan Phoenix
06:13:39mdavidevan sorry I wasn't better prepared. That will be fixed before the start of our next conversation. Have a good night!
06:13:45evanmdavid: no prob.
06:13:51evanmdavid: i'm happy to answer questions
06:14:08evanmdavid: nite!
06:14:10mdavidevan I appreciate that immensely!
06:14:27mdavideven nite
06:14:46mdavidblowmage catch you via email... sleep well!
06:14:57blowmagel8r
06:16:31brixen[1].pack("x*") => ""
06:16:37brixenbug? mri?
06:16:39brixenugh
06:21:32boyscoutCI: rubinius: e933046 successful: 3456 files, 13607 examples, 41171 expectations, 0 failures, 0 errors
06:23:41toulmeanthanks guys.
06:24:42brixentoulmean: yw
06:46:59toulmeanthere are more failures related to TempFiles.
06:47:36toulmeanhttp://gist.github.com/453852
06:47:53toulmeanare you guys handling temporary files in a different way from MRI ?
06:57:24brixenthe error is in require it looks like
06:57:52brixenwhere is this 'initializer' it's supposed to be requiring?
06:58:40toulmeanbrixen: I dunno for sure, but did you see the errors with temp files before ?
06:58:55brixennothing rings a bell offhand
06:59:06toulmeanI was thinking the temp files were not found for some reason, and that they were required.
06:59:43brixenwell, the output is "from <some temp file looking file name>"
06:59:56brixenactually, that doesn't look like rbx
07:00:08brixenI don't think I used ` in the error message
07:00:08toulmeanohoh.
07:00:11brixenlooks
07:00:26toulmeanthat would be funny.
07:01:06brixenI hate that `string' type of quoting
07:01:17toulmeanmaybe it's just that the master branch doesn't pass.
07:02:18brixenI don't know what's running but I'm pretty sure those `require' errors are MRI
07:02:37toulmeanthat's awesome. Thanks for looking.
07:02:50toulmeanlet me see if I find some stuff.
07:02:50brixenthe failures are another matter
07:02:59brixendo the tests subprocess anything?
07:03:29toulmean"test/rails_test.rb: open("|ruby #{tmp.path}").read"
07:03:34brixen:D
07:03:47toulmeangrep -r "ruby" *
07:03:51toulmeanlet me change that
07:03:57brixenlove those kind of tests
07:04:54toulmeanstupid.
07:05:01toulmeanand then he rants about other impls
07:05:07brixenhehe
07:05:23toulmeanI like to go after Assaf, I always pissed him off :)
07:05:24brixenit's always wise to be cautious with criticisms
07:05:45brixenit's very easy for them to whip around and bite the first ass they see
07:05:52brixenwhich is typically your own :)
07:07:30brixentoulmean: haha, you taunt
07:07:37brixenI just saw your tweet :)
07:07:53toulmeanyeah. I piss off this guy since 2007
07:08:06toulmeanyou should have seen me asking him why he insisted on working on a 13"
07:08:12toulmeanor why he would only use vi
07:08:18brixenheh
07:08:24toulmeanI learnt a lot because he could justify himself
07:08:25brixenhey wait, I use vi
07:08:34brixenno wait, I use gvim
07:08:36brixenclose
07:08:37toulmeanbut he was like the only guy on the floor using that config
07:08:42toulmeanyeah.
07:08:46toulmeanbut you do ruby dev
07:08:52toulmeanhe was doing........
07:08:54toulmeana maven2 build
07:08:58brixenheh
07:09:05toulmeanand he was working on .... the BPEL 2.0 spec
07:09:32toulmeanso no, really. vi over fedora when everybody else was on ubuntu/eclipse
07:09:42toulmeanhe is a funny man :)
07:09:56brixenevery crowd needs a nonconformist
07:10:30toulmeandid you see his last tweets ?
07:10:49toulmeanoh well :)
07:10:57toulmeanhe's been entertaining me for so long now.
07:16:26toulmeanit now chokes on require "initializer"
07:16:37toulmeannot sure where that is. It is rails related.
07:17:18toulmeanbrixen: do you have to require rubygems explicitely ?
07:17:25toulmeanI am starting to think that's the problem.
07:19:23toulmeanyep - require "rubygems" fixes it.
07:20:19brixenwe have rubygems, but no, you have to require it
07:20:55brixenand now, I require some Zzzz's :)
07:22:29brixentoulmean: oh, next step, can you get us some -Xprofile on what's slow by chance?
07:22:47brixenflips the light switch to "off"
07:24:56toulmeanhave a good night.
07:25:00toulmeanI will do that.
08:09:12DefilerYou know, I'm not sure I know the answer to this question yet: http://readlist.com/lists/ruby-lang.org/ruby-talk/8/44027.html
14:38:47dbussinkgood day people
15:17:59dbussinkbrixen: ping?
17:12:21brixendbussink: ?
17:13:06dbussinkbrixen: i've got a fix here locally for http://github.com/evanphx/rubinius/issues#issue/358 but i wonder how to spec it
17:13:22dbussinkbecause it's a combination of $KCODE, regexps and Array#pack
17:14:06dbussinkbrixen: this is the fix i have, basically the problem is that with a KCODE set, regexp will iterate over each character here: https://gist.github.com/bb37fa51fbbeb9df7d96
17:14:22dbussinkand m[0] then only accesses the first byte of a multi byte character
17:16:31brixenwell, what's your question about how to spec it?
17:16:40brixenyou wonder where to spec it?
17:17:44brixenblast, next isn't running ensures? :(
17:19:00dbussinkbrixen: well, how to spec the interaction between KCODE and array pack here
17:19:09dbussinkprobably belongs in pack i assume
17:19:24cremesbrixen: any chance you could peek at http://github.com/evanphx/rubinius/issues#issue/389 ?
17:19:40cremesit's a git commit privilege problem
17:19:50brixendbussink: I get 10 from your code example in irb...
17:20:04dbussinkbrixen: in rbx?
17:20:16brixendbussink: oh haha
17:20:26brixenI was in rbx, and then for some reason started irb
17:20:30brixenmy bad :P
17:20:31dbussinkhehe
17:21:08brixencremes: I can't do anything with repo permissions
17:21:17brixencremes: I can push a commit for you
17:21:51cremesbrixen: ok; i already committed by spec & fix to my local copy so i don't know how to get it back as a patch
17:21:53brixendbussink: I get nil for p a rather than 1
17:22:01brixendbussink: did you run that in a script?
17:22:05dbussinkbrixen: yeah
17:22:11brixendbussink: ok
17:22:16dbussinkjust ran it here locally
17:22:21brixencremes: git format-patch head^^
17:22:23dbussinkdefinitely outputs 1 :)
17:22:32brixencremes: or HEAD^^
17:22:48brixendbussink: maybe your output got clipped :D
17:23:06dbussinkbrixen: if i change it to a 2, it outputs a 2 :P
17:23:09cremesgot 'em back; neat
17:23:17brixendbussink: oh darn, there go my theories
17:23:18cremeswant them as a gist or can i email them to you?
17:23:26brixencremes: gist is great
17:25:11cremesbrixen: http://gist.github.com/454200
17:26:00cremesthis is a fix so the Mongo BSON C extension can serialize Time objects
17:26:42brixendbussink: how to spec Array#pack with $KCODE http://gist.github.com/454204
17:27:00brixendbussink: put all that in a ruby_version_is ""..."1.9"
17:27:30brixencremes: ok, cool, thanks
17:27:34brixenone sec...
17:36:55boyscoutspec to test that Time objects return type T_DATA to match MRI - e28d9d7 - Chuck Remes
17:36:55boyscoutTime objects return T_DATA to match MRI C API - f0f098b - Chuck Remes
17:39:59dbussinkbrixen: ok, cool, will try that out
17:40:09dbussinkbrixen: able to repro that ensure issue?
17:44:20brixendbussink: yep
17:45:09boyscoutCI: rubinius: f0f098b successful: 3456 files, 13607 examples, 41171 expectations, 0 failures, 0 errors
18:08:50dbussinkbrixen: so, going to watch the game? :P
22:08:53jcxplorerevan: I guess here is better than twitter for this. I ran the app for a couple of minutes, and got this out: http://gist.github.com/454374
22:09:40jcxplorerThat's with Rubinius 1.0.1
22:22:27dbussinkjcxplorer: with what is this? it's spending almost all it's time in select()
22:22:35dbussinkprobably waiting for some i/o
22:22:49jcxplorerThat's with Unicorn
22:23:17jcxplorerAnd that's just how Unicorn works
22:24:26dbussinkjcxplorer: ah ok, well, problem is that that makes the other stuff pretty much noise
22:25:10dbussinkjcxplorer: that bson issue should have been fixed btw
22:47:02jcxplorerdbussink: Just did a third run with Thin http://gist.github.com/454374#file_third run (thin)
22:48:32jcxplorerArray#fast_pack seems to be the culprit
22:53:15dbussinkArray#pack is a known issue in general performance wise yeah
22:54:20jcxplorerShame. It makes it unusable, since pages take up to 4 or 5 seconds to load.
22:56:06dbussinkjcxplorer: where does fast_pack come from?
22:56:32jcxplorerNo idea, but I'll try to find
22:57:03dbussinkjcxplorer: what are you running?
22:57:28jcxplorerRails 3 beta 4 with mongo, bson_ext and mongoid
22:58:08dbussinkah, that probably depends a lot on packing performance for the bson part i guess
23:00:10dbussinkjcxplorer: are you running current master?
23:01:11jcxplorerArray#fast_pack is defined in bson_ext (ext/cbson/cbson.c:849)
23:01:31jcxplorerdbussink: Of rubinius? Yes.
23:03:21evanjcxplorer: hi hi
23:03:36dbussinkbut i'm going to head to bed
23:04:11evanjcxplorer: strange, those -Xprofile runs say almost nothing.
23:04:16evanor, rather, that one
23:04:18dbussinkevan: another fun control flow issue: http://github.com/evanphx/rubinius/issues#issue/358
23:04:30evanyeah, i know
23:04:37evani was sitting next to mike when he put that in.
23:04:37dbussinknight people!
23:04:40evannite!
23:04:48dbussinkevan: ah ok, you alread investigated what was up?
23:04:58dbussinki saw you guys sitting there yeah
23:04:59evanno, not yet.
23:05:12evannot sure about the cause
23:05:37dbussinkah ok, well, he was seeing two things actuallu
23:05:41dbussinkbut i added it there
23:05:48evanjcxplorer: i see, I see.
23:05:53evanyou can't use -Xprofile with unicorn
23:05:55dbussinkhave a fix for the pack issue, but need to add a spec
23:05:56evanbecause of it's forking
23:06:03evanprofiling is disabled when you fork.
23:06:13evandbussink: which issue?
23:06:28dbussinkevan: that was also in #358
23:06:30jcxplorerevan: right. I tried with webrick, but got no profile info at all.
23:06:36evanreally? thats odd.
23:07:05dbussinkevan: already have the mail specs passing here locally
23:07:07evanjcxplorer: how were you generating hits?
23:07:10evanjust reloading a few pages?
23:07:31jcxplorerthe runs i did with unicorn was just reloading, with thin i used ab
23:07:47evandbussink: good find on the next/ensure though!
23:07:50evanvery nice
23:07:53evani didn't see that
23:08:02evanjcxplorer: what about with thin
23:08:11evansince we have to ignore the unicorn runs for now
23:08:41jcxplorerthe thin run was a mix of reloading and ab (about 40-50 hits)
23:08:56evanaj
23:08:57evanok
23:09:04jcxplorerab stopped at some point, so i'm not sure how many got through
23:09:27evanhm, ok.
23:09:34jcxplorercan't even have been that many, 10 requests took 42 seconds
23:09:42evanpeople have reported that bson_ext is bad boy extension
23:09:48evanit handles Time in a very hacky way
23:09:51evanthats why you're seeing that
23:10:08evanjcxplorer: really? ...
23:10:12evancould you try mongrel?
23:10:17evani've profiled under that
23:10:27evani worry that the EventMachine usage in thin is confusing things
23:10:58jcxploreri'll try with mongrel now. anything in particular i should do?
23:11:47evanwhen I do is start up mongrel in production mode
23:11:57evanand then hit it with ab a bit
23:12:10evanbe sure to start in production mode though
23:12:20evanso that we can factor out any rails dev mode stuff for now
23:12:38evanif production is fine, then we know it's something about dev mode, and can focus on finding out why
23:13:28evanmy my, Array#fast_pack in bson_ext is very strange.
23:15:29jcxplorerhow many requests do you want? they're taking 4 seconds each
23:15:57evana minutes worth
23:16:14evanwe need to shake out the majority cases
23:17:06jcxplorer31 requests: http://gist.github.com/454434
23:17:49evanholy cow.
23:17:50evanwtf.
23:18:09evanwhy is #recieve so high....
23:18:23evanjcxplorer: ok, one more thing
23:18:26evansame thing, but this time
23:18:38evan-Xprofile -Xprofiler.graph
23:18:58evanthat will give us the full call graph with times
23:22:00jcxplorerhere you go: http://gist.github.com/454437
23:23:09evanhm, ok, the Channel thing might be a red herring, because it appears to be from the main thread waiting to join worker threads
23:23:17evanbut it definitely warrants investigation.
23:23:36jcxplorerThe document I'm getting from the database is about 4KB
23:23:41evanjcxplorer: what I'll need to do next is recreate these profiling scenarios here
23:23:50evanso that I can see if my changes help
23:24:18jcxplorerI'll create a Rails app and send it to you
23:24:58evanoh that would be wonderful! thanks!
23:25:24jcxplorer(i was all happy working on my open-source project until i decided to try rubinius once again) ;)
23:26:22evanhah
23:26:41evanI can give you a note that you can give to project from the doctor, if you need :)
23:27:55jcxplorerno need, but my boss will be disappointed. i told him i'd have it ready on monday
23:28:17evanit looks like, based on previous data, we need to break things out into a few benchmarks also
23:28:28evanone that isolates mongo usage outside of a web context
23:28:43evanand then also static performance of the various webservers
23:28:52evanthose data points, plus what we've got
23:29:04evanshould definitely push us in the right direction
23:29:16evanjcxplorer: let me know if you need a note for your boss, i'm happy to write it. :)
23:30:06jcxplorerfeel free to write one :)
23:38:38evanjcxplorer: https://gist.github.com/7b9486fa5c8d76d615b8
23:39:05jcxplorer:D
23:46:25cremesevan: i fixed the Time issue with bson_ext; it was a missing case in rb_type; check the last couple of commits
23:46:42evanoh, i looks wrong on github still
23:46:43evanurl?
23:49:08cremesevan: http://github.com/evanphx/rubinius/blob/master/vm/capi/object.cpp#L182
23:49:20cremesthat fixed the bson_ext problem where it couldn't serialize Time objects
23:49:21evanoh, you change it that way.
23:49:31evanby saying that a Time object is a data type
23:49:31evanok
23:49:34evangotcha.
23:49:37cremesthat matches MRI too
23:49:41evani thought you meant you changed bson_ext
23:49:45evancool, thanks!
23:49:58cremesi thought i had to but then i discovered it was a rbx issue, so i fixed that instead :)
23:50:09evanyep, totally the right way.
23:50:32cremesdon't worry, it's got a spec too... ;)
23:50:38evan:D
23:51:20cremescurrently trying to get ruby to compile under mingw-w64... i wouldn't have to if we had rbx on windows (hint, hint)
23:51:42evani need help from a windows expert!
23:52:16cremeswe need more windows guys on the rbx team; i wonder how we could recruit some...?
23:53:13jcxplorerevan: here's that rails app http://dl.dropbox.com/u/1799649/rbx_rails.zip
23:53:27jcxplorergetting up to 3 reqs/s!
23:53:44evanprogress!
23:54:12jcxplorerJust run rake db:seed and hit /
23:54:42cremeswhat are the gcc switches that print all of the defined macros? (like _WIN32)
23:54:55evancremes: cpp -dM
23:54:57evanthen hit ^D
23:55:22evancpp -dM < /dev/null
23:55:23evanworks too
23:55:56cremesgot it... thanks