Index

Show enters and exits. Hide enters and exits.

00:07:27brixenevan: I can't think of one either and everything passes with this diff http://gist.github.com/456581
00:07:48brixenthat sequence is a little different than the one I was working with before I refactored a bit
00:07:54evanif we do that
00:07:56brixenwhich is why I didn't notice it
00:08:00evanthen we don't need the next_local either
00:08:03evanwhich seems wrong
00:08:06evanlet me think about it
00:13:14evanoh oh
00:13:29evanyeah, they'll always go the same place i think
00:13:34evanlet me do one more test.
00:13:57evanbreak uses that code because from the ensure, we might want to get out of the loop, or return to the header
00:14:03evanbut with next, you're always returning to the header
00:14:08evanthats why they always point the same place
00:14:11brixenwell, I have at least one case in next_spec where check_next is true but g.next is nil
00:14:17brixeni'm trying to figure out which
00:14:59evanthat should be in a block
00:15:08evan1.times { begin; next; ensure; 1; end }
00:15:46evanin that case, the end has
00:15:54evan0062: push_stack_local 1
00:15:55evan0064: goto_if_false 66
00:15:55evan0066: ret
00:16:07evanwhich is clearly redundent.
00:16:21evanwe can remove the used_next_local
00:16:23evanand the code that uses it
00:16:31evanbecause if you make it to the bottom of an ensure because of a block
00:16:53evanthen you should just goto g.next or ret
00:17:09evanbecause you're done with the current iteration if you're in the ensure
00:17:17evanso you just want to go to the next iteration
00:17:30evanwhich is either going to a header or returning from the current block
00:18:55evanbrixen: thoughts?
00:19:09brixenseems right
00:19:35brixendid you try it?
00:19:59evannot yet
00:20:10evanjust thinking through it.
00:20:31brixenheh, my thinking is greatly assisted by running code
00:20:53evan:)
00:25:42brixenyep, works for me without used_next_local
00:25:50evanok
00:25:51evancool.
00:26:01evanyou see the reason?
00:26:08brixenchecking the bytecode in my example scripts
00:26:29evanwhen you're done with next, the 2 things you do are "go to the next iteration" or "go to the next iteration"
00:26:30evan:D
00:26:35evanwhere as with the break code
00:26:44evanthe other option is "exit the loop"
00:26:59brixenyeah, that makes sense
00:27:02evanthus the used_break_local flag
00:27:08evanto figure out which path was used.
00:28:45brixenthis is my diff http://gist.github.com/456604
00:31:03brixenhmm
00:31:47evanseems good
00:31:48evansomething up?
00:31:52brixensomethings not right
00:32:00evanoh
00:32:01evanyou need
00:32:17evang.next ? g.goto(g.next) : g.ret
00:32:19evanat the end
00:32:43evanbecause when next is run inside a block with begin; ensure
00:32:54evannext just jumps to the ensure code
00:33:10evanso you need to handle the case where there is no outer next at the bottom of ensure
00:33:52brixenwell, I was looking at the output from your example
00:34:01brixenack, I need to go to class...
00:34:06evanok
00:34:08brixenevan: do you want to commit it?
00:34:12evannah
00:34:15evani'll let you ponder it.
00:34:18brixenk
04:53:50evanhttp://itpro.nikkeibp.co.jp/article/NEWS/20100628/349693/ O_o
05:36:33dbussinkevan: ah, saw you were able to fix it? :)
05:36:43evanyep
05:36:46evanyou had the wrong commit though :D
05:36:48evanit was a few days ago.
05:37:36dbussinkevan: that's weird, maybe it triggered it at some other point then
05:37:50dbussinkevan: because it failed a lot faster after the last commit
05:37:52evanmaybe you hadn't run the specs fully?
05:38:01evananyway, it's fixed.
05:38:18dbussinkwould there have been an easier way to find it?
05:42:22evannah
05:42:30evanit was an ommision on my part.
05:44:21dbussinki guess stuff like this is pretty hard to test / spec too, to prevent regressions etc.?
05:44:41evanyeah
05:47:58dbussinkevan: hmm, as comparison, 1.8.7 takes 3 minutes for that spec run, rbx 30
05:48:15evanyeah, so I noticed.
05:49:04evanyou need to dig in there and figure out whats slow
05:49:06evanuse -Xprofile
05:49:22dbussinki guess it's pretty killing on the gc, since it creates tons of new shortly lived objects
05:49:35evanguess is nothing.
05:49:36evanknow.
05:49:38evanor don't know.
05:49:41evan:)
05:49:58slavabut MRI doesn't have a generational GC so you'd see the opposite outcome if that were the case
05:50:00evanbtw, go Holland!
05:50:12evan#worldcup
05:51:01evanyeah, if it's swamping the GC, i have to wonder if i have perf bug in there
05:51:09evanand if so, we need to shake it out with some benchmarks
05:51:24dbussinkevan: hehe, if they play bad and win, that's only a good thing :P
05:51:34dbussinkthey're already saying here that we play like germans :P
05:51:37dbussinkand they always get far
05:51:50evanhah
05:51:56parndtwell they sure whooped england
05:52:12evanwell, i'm rooting for you!
05:52:17dbussinkgood! :)
05:52:42dbussinkevan: do you like optical illusions?
05:53:00evanis this the goal one? :)
05:53:06dbussinkah, you saw it :P
05:53:46dbussinkthe way the fifa is handling it is such a painful way
05:54:09dbussinkthey showed a press conference on tv, the fifa guy said, no questions about yesterday's game
05:54:18dbussinkso every reporter started asking questions about it
05:54:43evanyeah
05:54:49evanfifa is looking pretty fucking poor
05:54:50dbussinkevan: but it's churning away with a profile, if i have one, i'll gist it
05:54:57evanyeah
05:55:04evansee if you can isolate it down to a short sequence
05:55:18evana 10 spec grouping is even better than the current setup
06:00:25dbussinkevan: yeah, i'll check the profile to see if anything stands out or that it's across the board
06:00:38dbussinkif it's across the board, running a smaller spec set should be fine to perf test too
06:00:47evanright
06:00:53evanif the GC is getting swamped
06:00:57evanthen it should be slowing.
06:06:52dbussinkevan: is there more english info on that fpga board?
06:07:40dbussinkmaybe know a few people in our company who'd be interested in that
06:13:01parndtare there any known incompatibilities with rbx and json-pure
06:14:22parndtah yep - http://github.com/evanphx/rubinius/issues/issue/311
06:15:30evandbussink: not that I'm aware of, no.
06:15:39evanparndt: thats not json-pure
06:15:40evanthats json.
06:15:46evanand i've put in a ticket with them
06:15:50evanand they've not fixed it.
06:16:01evanthe json gem actually won't build in a lot of scenarios
06:16:05evanrbx is just one of them.
06:17:22parndtyeah it also won't build from rubygems.org from me on 1.8.7 so was kinda expecting it to break..
06:18:47evanyeah
06:18:53evanyou know, fuck this, i'm going to clone their repo and fix this.
06:19:13parndtI actually looked under your account for a fork before ;)
06:20:16boyscoutAdd ObjectSpace.find_references - dfbad09 - Evan Phoenix
06:20:52evani'm fixing it now.
06:21:08parndtnice one.
06:21:38parndtI can't even install json_pure gem on OSX under 1.8.7 from rubygems.org -- bad metadata, had to build my own. So many problems just from this one library.
06:23:21evanok pushed
06:23:27evanif you clone and use evanphx/json
06:23:29evanit will work fine.
06:23:41parndthot. i'll just pull into my existing fork
06:25:42parndthttp://github.com/parndt/json -- mine has a gemspec which means I can use this as my gem source for bundler
06:25:44parndtthanks evan!
06:26:06evanno prob.
06:28:45boyscoutCI: rubinius: dfbad09 successful: 3457 files, 13653 examples, 41219 expectations, 0 failures, 0 errors
06:28:57evandbussink: raw allocations isn't the problem
06:29:33evanon a straight allocation benchmark, 1.8 is 4.12s, rbx is 1.2s
06:34:08evandbussink: also, try running the specs with -Xgc.show
06:36:42brixenevan: not right yet :( http://pastie.org/1022928
06:40:11postmodernwhats the command to attach to a running rbx process?
06:40:21postmodernrbx seems to take forever when loading Bundler
06:40:24brixenpostmodern: in what? gdb or rbx console?
06:40:33postmodernrbx console
06:40:44brixenstart the first with rbx -Xagent.start
06:40:54brixenthen in another terminal, rbx console
06:41:30postmodernneat, how does rbx know which process to bind to?
06:41:42brixenmagic :)
06:41:49brixenit writes a file to tmp
06:41:52postmodern"Unable to find any agents to connect to please specify one"
06:42:05brixenyou need to start the first instance with -Xagent.start
06:42:30postmodernyes, i did that
06:42:38brixenhrm, it's working here
06:42:41brixenwhat platform?
06:42:59postmodernLinux light.lab 2.6.33.5-124.fc13.i686 #1 SMP Fri Jun 11 09:48:40 UTC 2010 i686 i686 i386 GNU/Linux
06:43:12evantry "bin/rbx console --ps"
06:43:12brixencould you be more specific?
06:43:14brixenheh
06:44:18postmodernseems to be a considerable hang with all rbx console commands
06:44:21postmodernAgents found: 0
06:44:34postmodernI think rubinius might have a bug
06:44:41postmodernshocking propisition i know
06:44:45evannot unless you can show me.
06:45:11evanhow long is considerable?
06:45:20brixenevan: well, hum, I'm thinking the check_next_local is require
06:45:20evanand by console commands, do you mean stuff like -v?
06:45:21postmodern~10 seconds
06:45:23brixener required
06:45:44postmodernwhat tmp file name does rbx use for console pipes?
06:45:47brixenevan: my ensure.rb in that pastie passes with my original code
06:45:51evanbrixen: yes yes
06:45:55evanok
06:45:56evani see why
06:45:59evango back to your original code
06:46:06brixenI have one fix though
06:46:10evanthe case I was missing that you've shown me is this case
06:46:18brixenI forgot the g.ret that you showed me
06:46:21evanwhen there is code after the 'begin;ensure;end'
06:46:30brixenyeah, I'll add a spec
06:46:33evanthats where post goes to run stuff when there is no next
06:46:41brixenI had so many test files originally
06:46:51postmodernah wow the performance is just really really bad with Bundler.setup
06:47:00postmoderna couple minutes later, it finally ran the specs
06:47:04brixenpostmodern: could you -Xprofile it?
06:47:05evanpostmodern: how many seconds to run bin/rbx -v
06:47:13evanpostmodern: the bundler specs are very slow
06:47:14evani'm aware
06:47:18evandon't bother reporting that
06:47:30evanbut if it's extremely slow running, that is something i'm interested in.
06:47:37evanthe bundler specs shell back out for every it block
06:47:38evanbasicalyl.
06:48:11postmodernevan, im running my project's specs after Bundler.setup
06:48:18postmodernevan, to ensure a self contained dev environment
06:48:33evanso
06:48:38evanBundler.setup just hung?
06:48:40evanbasically
06:48:42evanfor 10 minutes
06:48:46evanthen finally our specs started?
06:48:51evanyour specs, rather.
06:49:14postmodernevan, http://pastie.org/1022943 times
06:49:26evanwow.
06:49:29postmodernevan, yeah more like a minute for Bundler.setup
06:49:31evanyour system is completely swapped out
06:49:37evancheck your cpu
06:50:09postmodernevan, nope, not seeing anything above 10% of CPU
06:50:22evansomething is very wrong on your machine
06:50:32postmodernevan, although when i run rbx, it consums 140% of the CPU
06:50:33evanelle :: git/rbx> time bin/rbx -v
06:50:33evanrubinius 1.0.0 (1.8.7 ff84fbf6 2010-05-14 JI) [i686-pc-linux-gnu]
06:50:33evanbin/rbx -v 0.67s user 0.08s system 101% cpu 0.739 total
06:50:39evanthats on a linux machine
06:50:44evanwith a lot less CPU than yours
06:50:53evanwhat about your load?
06:50:56evanis it very high?
06:51:07postmodernload spikes to 0.99 when running rbx
06:51:21evanit's going to consume more than 100% because it makes use of multiple cores with threads
06:51:32postmodernafter rbx has exited, it goes back down to 0.20
06:51:34evanbut the times you're seeing aren't anything i've seen before.
06:51:41brixenpostmodern: can you give evan access to the box?
06:51:42evannor have they ever been reported
06:51:59postmodernbrixen, im affraid not
06:52:07postmodernbrixen, this is my work netbook
06:52:09evanpostmodern: how did you build rbx?
06:52:19postmodernevan, ./configure --skip-system && rake
06:52:24evani wonder if there is something about your system...
06:52:30evannever seen it that bad, ever.
06:52:34postmodernevan, im on a stock FC13 i686 install
06:52:37evaneven in the worst of conditions.
06:52:51evannetbook? is that using an SSD?
06:52:57postmodernevan, not an SSD
06:53:05evanwhat kind of drive?
06:53:25evanis this the first time you've used rbx on this machine?
06:54:30postmodernevan, i've recently got rbx compiled on this system, since the only version of MRI I got to compile against OpenSSL 1.0.0 was 1.9.2-preview3
06:54:46postmodernevan, and brixen finally got the build-system working under 1.9
06:54:58evanso is this the first time you're running rbx?
06:55:07evanie, did it ever work better on this machine?
06:56:58postmodernevan, i did run rbx under Fedora 11 for a while
06:57:03postmodernevan, and it ran fairly snappy
06:57:06evanon this machine?
06:57:08postmodernyes
06:57:18evansomething is majorly up.
06:57:21postmoderni recently upgraded to FC13
06:57:31evandid you recompile when you upgraded?
06:57:50evanrecompile rbx
06:58:04postmodernevan, yes i regularly rake clean && rake
06:58:08postmodernevan, http://www.wdc.com/en/products/products.asp?driveid=513
06:58:20postmodernevan, that's what Acer put in this thing
06:58:25evanhm...
06:58:45postmodernevan, most all netbooks are exactly the same
06:59:02evanwell, you've told me it worked fine before
06:59:05evanso it's not the hardware
06:59:09evanit's something about FC13
06:59:21postmodernim guessing it's a preformance bug due Bundler
06:59:25evanunder FC11, did you use 1.9 or 1.8 to compile
06:59:25evanno
06:59:28evanit's not.
06:59:30postmodernrbx -v could be faster
06:59:32evannot if -v takes that long.
06:59:41evanit should be max 2 seconds
06:59:49evanare you setting RUBYOPT?
06:59:51postmodernlet me reconfig
06:59:59postmodernyes
07:00:01postmodern-rrubygems
07:00:07evanremove it.
07:00:09evansee what -v does
07:00:27postmodernrecompiling rbx
07:00:31postmodernwill test that once completed
07:01:47parndtreal 0m0.236s :D
07:09:27boyscoutAnother next with ensure spec. - 79c86f7 - Brian Ford
07:09:27boyscoutFix for next with ensure (pair Evan). - d36b054 - Brian Ford
07:12:43evanok, well, i should get to bed.
07:12:51parndtnight evan
07:12:53evanpostmodern: let me know how it goes tomorrow
07:13:15postmodernevan, night
07:18:50boyscoutCI: rubinius: d36b054 successful: 3457 files, 13654 examples, 41220 expectations, 0 failures, 0 errors
07:38:13dbussinkevan: still there?
07:38:21dbussinkprobably not though
07:50:10dbussinkevan: for when you're back: https://gist.github.com/da780095fe7bdc3f983d
07:53:35kronos_vanodbussink, ^^ which code?
07:53:47dbussinkkronos_vano: complete run of the datamapper specs
07:53:55kronos_vanoah.
07:53:55dbussinkwith an in-memory database
07:54:43kronos_vanoAnd how it is in comparsion with mri?
07:55:36dbussinkkronos_vano: around 10x slower
07:55:46kronos_vanoer. not good.
08:35:30postmodernwell i confirmed that RUBYOPT="-rrubygems" was slowing down rbx -v
08:35:45postmodernbut running Bundler.setup in rbx, is *painful* slow
08:35:54postmodernit would seem someone needs some optimization
09:35:40dbussinkpostmodern: did you profile it?
09:35:52postmoderndbussink, ah right let me do that
09:36:02postmodernrbx -Xprofile ?
09:36:56postmodernah right
09:59:16postmoderndbussink, http://pastie.org/1023114
10:00:10dbussinkpostmodern: current master?
10:00:16postmoderndbussink, yup
10:00:22postmoderndbussink, bundler 0.9.26
12:06:58dbussinkpostmodern: could you run that with -Xprofiler.graph added as option too?
12:07:46postmoderndbussink, sure, but it will take like 15 minutes
12:08:10dbussinkpostmodern: i guess bundler scans all installed gems or something?
12:08:28postmoderndbussink, yeah, and probably does a bunch of Array manipulation
14:27:26goyox86morning
17:13:52dbussinkevan: ping?
17:13:57evanhey
17:14:23dbussinkevan: did you see my gist?
17:14:25dbussinkalso saw you're doing a webinar?
17:14:42evannope and yep.
17:14:45evanwhat gist?
17:16:05dbussinkevan: this is the dm spec run profile: https://gist.github.com/da780095fe7bdc3f983d
17:16:27evando you have the flat one too?
17:16:41dbussinknope, haven't run that, i can run it but it takes a while :P
17:16:41evanI should really make it output both
17:16:50dbussinkhehe, probably yeah :
17:16:52dbussink:)
17:17:06dbussinki can run a bunch of specs separately
17:17:46evanfuck geez.
17:17:53evan2725431 Rubinius::VM.reset_method_cache
17:17:56evanwtf rspec.
17:18:07dbussinki guess it's more rspec than datamapper that is to blame here
17:19:58brixenstares at a Hash spec
17:20:12dbussinkbrixen: stare it down!
17:20:20brixenI should get some of those fake sunglasses with WTF! in the lenses
17:20:20dbussinkbrixen: make it bend to your will
17:20:29brixenand take pics of myself working on rubyspec
17:20:30brixen:(
17:21:10evanalso
17:21:12evanrspec
17:21:13evanfail.
17:21:41evanit creates 271726 Modules.
17:22:18evandbussink: can you isolate some dm benchmarks outside of rspec?
17:22:25evanrspec completely overwhelms this profile
17:22:33dbussinkevan: i can look at that yeah
17:22:45dbussinkevan: i guess the rspec performance is pretty killing here yeah
17:22:59evanlooks like it did 3M string evals
17:22:59evanalso.
17:23:02evan*eyeroll*
17:24:05brixenrspec is the new haskell
17:24:20dbussinkevan: this is a small part of the spec run in a flat profile: https://gist.github.com/39f503decb527ee74638
17:24:31evanand 5.7M calls to Kernel#caller
17:24:33evan5.7
17:24:36evanmillion.
17:24:59dbussinkwe need to optimize that!
17:25:01dbussinkright now!
17:25:12dbussinkcaller() performance is a major issue of course
17:25:22brixendbussink: can you try with rspec2 ?
17:25:25evandbussink: how many exceptations did this run?
17:25:47brixenwow, that is a beauty: exceptations :)
17:25:47dbussinkbrixen: didn't work last time i tried, but also haven't checked it out further
17:25:53brixenI'm going to use that for rubyspec
17:26:08brixenwhen you have no idea if this spec is even valid: exceptation
17:26:10dbussinkevan: that second flat profile ran 1418 examples, 0 failures, 51 pending
17:26:26dbussinkbut the whole run is a whole bunch more
17:26:34evanwhat flat profile?
17:26:47evanoh
17:26:49evanabove
17:26:49dbussinkevan: that i just gisted
17:26:53evansorry
17:26:54evani see.
17:26:56dbussink:)
17:28:02dbussinkevan: i can run a graph from that second case too
17:28:06dbussinkshouldn't take that long
17:30:16evank
17:30:27evani can't believe how long the big profile took :( :(
17:30:40dbussinkyeah, pretty sad
17:31:06dbussinkevan: i've added it to https://gist.github.com/39f503decb527ee74638
17:31:14dbussinkbrixen: rspec2 should be better from what i've heard
17:31:19dbussinkbut haven't tried
17:31:34brixendbussink: yeah, I'm curious if you could try it
17:33:42evanour instance_eval is about 3x slower than MRI
17:33:46evani'm going to poke a little bit.
17:34:28brixenwoohoo: http://skitch.com/brixen/dkmk1/gmail-inbox-1305-brixen-gmail.com
17:34:41brixenpretty sure that's the first ad I've seen for rbx
17:34:56evanwow.
17:34:57evanWOW.
17:35:01evandefinitely my first!
17:35:10BrianRice-workhuh
17:35:38brixenalso, I'm shooting for inbox 1500 :)
17:35:45brixenwho needs inbox 0
17:35:52brixen<-- not this guy
17:36:11dbussinki have a read / flagged 0 policy
17:36:32brixendbussink: you don't read or flag any? :)
17:36:45dbussinkbrixen: unread :P
17:36:49dbussinkbrixen: and flagged as done
17:36:56dbussinkyou get the point :P
17:37:19brixendbussink: heh
17:40:04dbussinkevan: this is the same benchmark that trigger the hash performance stuff spike: https://gist.github.com/c3db2cc6224b9485a839
17:40:25dbussinksome initial numbers at the bottom
17:40:30evandbussink: ok, well, we're doing better than 1.8
17:40:33evantry with -Xjit.inline.blocks
17:42:53dbussinkevan: updated the gist
17:43:07dbussinkevan: quite a bit faster, no 1.9 performance yet though ;0
17:43:08dbussink;)
17:43:12evani was hoping for more
17:43:13evanbut yeah,
17:43:15evan not bad.
17:43:32evanok, so it's not this thats causing the specs to run so slowly.
17:44:20dbussinkevan: could write some rspecs that just do 2.should == 2 ;)
17:44:24dbussinkand see how much slower that is
17:44:27evanyeah
17:44:29evani'm going to.
17:45:17dbussinkbut i have to go, back later
17:45:24evank
17:45:24evanlater.
17:52:20evanthings that rspec does that are stupid: requests 40k backtraces to run 10k it blocks
17:52:36evannone of those it's failed
17:52:37evanmind you.
17:52:46brixenugh
17:53:04evanyeah
17:53:06evanugh is right.
17:53:46evani'm considering making Kernel#caller a primitive.
17:59:21evanmm, maybe not 40k
17:59:23evanbut at least 10k
18:00:35brixenit's good to always have a bt in your back pocket, never know when you might need it
18:00:54evan"now where did I put that backtrace..."
18:01:07evani wonder if i could cheat.
18:01:17evanand have Kernel#caller return a lazy array
18:01:23brixenI was wondering that too
18:01:34evanstill need to pull in the location objects
18:01:43brixenyeah
18:01:44evanin which case, i think i'd be better off just having a caller primitive
18:01:48evanthat outputs the MRI format.
18:01:52brixenprobably
18:08:09cremesis there a ruby call i can make to retrieve the amount of heap my running process has consumed?
18:13:00evancremes: rubinius specific?
18:15:21cremesevan: yes
18:15:54evanthere is no single method, you have to sum it up because i provide various ones
18:15:57evanbut let me show you.
18:16:14cremescool...
18:17:19evancremes: http://github.com/evanphx/rubinius/blob/master/lib/bin/console.rb#L137-164
18:17:30evanyou connect to the agent running in the current process by doing
18:17:33evanrequire 'rubinius/agent'
18:17:37evanagent = Rubinius::Agent.loopback
18:19:04cremesagent.get "system.memory.young.bytes", etc?
18:19:14cremesvery neat
18:20:39cremesit would be nice if all of the runtimes had this kind of functionality
18:22:43evancremes: read console
18:22:46evanyou'll see how to use the agent
18:22:53evangenerally, though, yes #get is how you ask for a variable.
18:23:10brixenevan: for you to ponder as you work on hash http://redmine.ruby-lang.org/issues/show/1535
18:23:15brixenwell Hash
18:23:23brixenI hope you do not work "on" hash
18:24:09evanrad.
18:24:19evanno, no, not since college.
18:24:35evaneven then, no.
18:37:20evanbrixen: thats all crazy sause
18:37:21evanimho.
18:37:44evani'm happy to see that 1.9.2 has more obvious behavior.
18:38:08brixenwell, 1.9.2 should raise on modifying during iteration
18:38:17brixenthat ticket is for 1.8.8+
18:39:00brixenthe wacktastic part of it is that if rehash were triggered, you'd get the error in <= 1.8.7
18:39:16brixenso it's hard to say "bug" or "version difference"
18:40:28brixenit's so damn hard to find issues on the ruby tracker
18:41:21evanyeah, it's definitely completely hit/miss on 1.8
18:41:31evanbecause even Hash#[]= could trigger a rehash
18:41:38evanand you'd get an exception
18:42:08brixenwell, you shouldn't unless you are iterating
18:42:30evanright
18:42:38evanrunpaint only mentions merge!
18:42:38evanbut
18:42:53evanhash.each { |k,v| hash[k] = f(v) }
18:42:56evancould trigger a rehash
18:43:15brixenyeah
18:49:32evanwtf....
18:56:03sbryant...
18:58:40brixen.... . .-.. .-.. ---
19:01:25sbryant!
19:02:59brixenoh man http://bash.org/?925050
19:03:48evanhah
19:03:54evan 14.60 0.94 0.94 20003 0.05 0.05 Rubinius.mri_backtrace
19:04:03evanthats better, but rspec is still a hog.
19:04:13evani don't see any way to improve on that either.
19:18:06Defilerrspec expects all the slowest parts of ruby to be fast
19:18:54evanyeah
19:19:03evanit's pretty ridiculious
19:25:37brixenheh, funny
19:25:55brixenI put Ruby.check_frozen in Hash#initialize to make this spec pass
19:26:03brixenit's faster with the JIT on!
19:26:12brixenas expected, it's slower with the JIT off
19:26:32brixenbut, having that as the first insn is consistently faster
19:30:39evanhehe
19:30:41evanwell, lunch time.
19:35:52QaDeShiyas. just noticed the "How to install" section is missing a note how to install via rvm :o)
19:36:18QaDeSor pik
19:37:43brixenpik runs on windows, rbx does not run on windows
19:37:51brixenrvm has instructions on how to install
19:37:59brixenwhy would we put rvm instructions in rbx?
19:38:51QaDeSforgot about the windows thing
19:39:07QaDeSwell, because it's arguably the easiaest way to install ;o) didn't get 1.0.1 to install on it, tho. that's why i looked
19:39:45boyscoutSome fixes for Hash specs. Closes #364. - 2a16a08 - Brian Ford
19:39:45boyscoutCheck frozen on Hash#initialize. - a63fc1d - Brian Ford
19:39:45boyscoutUpdate Hash CI tags. - e0f7fa7 - Brian Ford
19:39:57brixenwell, I would say "arguably" indeed
19:40:20brixenrbx has 3 steps: clone; ./configure --prefix; rake install
19:40:29brixenwe document that because that is our system
19:40:34brixenrvm has good documentation
19:40:48brixenI can see mentioning "see rvm" but we're not going to include rvm docs
19:43:34QaDeSumm
19:43:54QaDeS"rvm install rbx-head" would be sufficient, really
19:44:17brixenrvm can also change that anytime
19:44:18QaDeSwhatever, i got it running now
19:46:01QaDeSok, that sounds like you had your fill of rvm already ;o)
19:46:15brixennot at all, rvm is great
19:46:22brixenand comes with great documentation
19:47:44brixenbut just like we won't document how to install via apt-get etc
19:47:49boyscoutCI: rubinius: e0f7fa7 successful: 3457 files, 13665 examples, 41242 expectations, 0 failures, 0 errors
19:47:53brixenrvm docs are outside the scope of rbx, IMO
19:52:08QaDeSi'm not gonny try to talk you into that ;o) just saw something on, i think, the maglev website and thought it was really nice
19:52:23QaDeSnever mind :)
21:27:19toulmeanhey guys, so I discussed with Assaf some more
21:27:26evanok
21:27:31toulmeanhe told me master was a bit rough, I should try with the 1.3 tag.
21:27:47toulmeanwith that tag I still had to add a "require "rubygems" instruction at the top of the test_helper
21:28:05toulmeanI think it's fair to require rubygems explicitly
21:28:24toulmeanI have 6 failures after that over redis communication.
21:28:46toulmeanI am going back to meetings today so if you want I can create a gist ?
21:28:53toulmeanotherwise feel free to ignore.
21:35:44toulmeanactually this looks maybe interesting:
21:35:45toulmeanTypeError: Coercion error: #<File:0x28a08 path=tmp/config/redis.yml>.to_str => String failed
21:35:59evanwhats the backtrace?
21:36:01evangist it.
21:36:20evancreate a gist of all of them, sure.
21:36:38toulmeanhttp://gist.github.com/457846
21:36:51toulmeanevan: giving a screencast on rubinius soon ?
21:36:58evannext wednesday, yep!
21:37:01toulmeanjust saw a google ad about that.
21:37:06toulmeancool, good luck!
21:37:52evanwow, that google ad is making it around
21:38:37toulmean:)
21:38:56BrianRice-worknot enough ruby content in my gmail, but I am getting a kaazing ad
21:39:02BrianRice-work(websockets)
21:39:14toulmeanevan: here are the diffs I had to make to make vanity 1.3 run with rubinius ok http://gist.github.com/457850
21:39:19evanok
21:39:34toulmeanok back to my java grind
21:40:23Defilerhttp://itpro.nikkeibp.co.jp/article/NEWS/20100628/349693/
21:40:26Defilerruby on an FPGA
21:40:59Defilerhttp://www.f-ruby.com/
21:42:28evanyeaH!
21:42:39evanmatz said they're using a generic CPU to run most of ruby
21:42:43evanjust the GC is in FPGA
21:42:56Defilermakes sense
21:43:54boyscoutAdd a primitive to calculate the MRI format backtrace. @perf @rspec - a2470f3 - Evan Phoenix
21:44:52BrianRice-workjust to reduce GC pauses?
21:46:09evanBrianRice-work: i guess so?
21:46:24evannot much is known (not in japanese at least)
21:49:10BrianRice-workok. just seems like too specific a product
21:56:02boyscoutCI: rubinius: a2470f3 successful: 3457 files, 13665 examples, 41242 expectations, 0 failures, 0 errors
23:43:38toulmeanevan: are you recording the webinar ? curious, it looks like it was not tweeted by engineyard or rubinius
23:43:44evanyep
23:44:51evanit will be recorded
23:44:55evani need to tweet it was rubinius
23:45:28toulmeanevan: thx.
23:49:45brixenevan: you could get kinda verbose with StaticCall.blah a, b
23:50:04brixencodesearch doesn't find any "class StaticCall" in Ruby code
23:51:53evanwho is the reciever? a?
23:55:17brixenhmm
23:55:35brixenI guess in that form it would have to be
23:56:17evanI worked around it
23:56:21evanin a very verbose way
23:56:29evanbasically, i'm getting rid of the copy_object methad
23:56:31evanmethod
23:56:36evanand having dup/clone invoke the prim directly
23:56:43evannow that we have .invoke_primitive
23:56:54brixenthat's totally reasonable for those cases
23:57:01brixenI thought you meant as a generic extension
23:57:07evanI did
23:57:10evani was just musing.
23:57:12brixenok