Index

Show enters and exits. Hide enters and exits.

00:00:03rue.fi
00:00:24rueAnd, nope, still blocked.
00:00:51bennyI can upload the flv if you really want to see it
00:00:54bennybecause it works for me
00:02:07scooprum, what is blocked?
00:02:33bennythedailyshow.com
00:02:45scooproh, works for me ..
00:02:50scoopr(and I'm .fi too)
00:03:41bennyspecifically the embedded player in the url posted an hour ago
00:04:13rueThe clips work, the "full episode player" does not
00:04:13scoopryah, thats what I'm watching right now
00:04:18scooprah
00:05:30bennythe full episode player works for me too: http://www.thedailyshow.com/full-episodes/index.jhtml?episodeId=225916
00:06:08rueHm, might have to block some ports
00:06:29scoopryah full-episodes don't work
00:06:57rue1935, 443 and 80 probablies
00:08:09rueMight worry about it later at some point...really meant to look for solutions for Hulu, but this will not work
00:08:22rueLeastwise I have /a/ proxy now.
00:16:31boyscoutMade UnMarshaller::get_*_varint() work on 64 bit systems. - 24022e7 - Tilman Sauerbeck
00:19:27boyscoutCI: 24022e7 success. 2647 files, 10140 examples, 32380 expectations, 0 failures, 0 errors
00:26:16rueHere too: http://crosstwine.com/linker/ruby.html
00:48:30brixeninterestingly, they say the 1.8.6 enhancements pass the tests
00:48:36brixenbut they don't mention rubyspec
00:48:48brixenI hope they are not relying on the MRI tests :P
00:52:51ezmobheh
00:52:54ezmoball 3 of them?
00:53:06drbrainprobably test-all
00:53:26drbrainthere's a good 20k assertions in test-all, but it's nowhere near complete
00:53:30ezmobthey twittered that it can run the sup gem which is fairly big and complex code wise
01:03:25evanit appears to be a simple tracing jit
01:03:41evanthat identifies hot AST sequences and collapses them down into machine code
01:07:26ezmobthey are making me a gentoo build to test out
01:08:09headiusyeah
01:08:15headiuslooks like it's only improving execution perf
01:08:35ezmobthats a good thing to improve no?
01:08:52headiuswell, it's not what slows things like rails down though
01:09:21ezmobmeh i dont care about rails anymore. i only write fibonaci these days anyways
01:09:33ezmob;)
01:09:36headiusthen you should be all set :)
01:09:45headiusI'm interested to see how it runs at any rate
01:10:12ezmobyeah definitley interesting
01:10:29ezmobi heard maglev will demo running rails at railsconf
01:10:31headiuscould at least solve one aspect of the C impls
01:10:54headiusyeah, I'm not too surprised
01:11:03ezmobprobably sans active record
01:11:10headiusespecially if they're still piggy-backing off rbx core classes
01:11:41headiusevan: do you know if they're still using rbx stuff?
01:14:06headiushmm, I don't have an x86_64 linux handy
01:18:49boyscoutCompiler plugin to protect critical rbx kernel methods. - 5935d13 - Brian Ford
01:18:49boyscoutModule#instance_method specs for undef'd methods. - b3b7d5c - Brian Ford
01:18:49boyscoutFixed Module#instance_method for undef'd methods. - 8550eac - Brian Ford
01:25:19boyscoutCI: 8550eac success. 2647 files, 10146 examples, 32387 expectations, 0 failures, 0 errors
01:42:54bitsweatbasic rails hello-world is slower on xtruby
01:43:14bitsweatby roughly 60%
02:00:31headiusbitsweat: yeah, not too surprising I suppose
02:00:40headiuseveryone can make the microbenchmarks faster
02:01:15headiusbitsweat: I saw he mentioned eval, but I don't think there are any evals now during a typical production request, right?
02:02:42bitsweatfor rendering block helpers, yeah
02:03:03bitsweatbut I'm testing head :ok basically
02:03:16bitsweatso webrick + controller dispatch
02:03:37slavahi guys
02:03:46brixenthe benchmarks they show would benefit from collapsing boxing and removing dispatch I think
02:03:57brixenit's telling they don't publish more results
02:04:32brixencollapsing boxing on floats that is
02:04:34bitsweat100% rubyspec?
02:04:50brixen100% what? passage?
02:05:15brixendo you see where they mention rubyspec? whitepaper doesn't
02:06:02bitsweatthey don't, I'm asking
02:06:22headiusI'm not too skeptical
02:06:57headiusif it's actually an in-place enhancement of MRI/YARV it could easily improve execution perf quite a bit
02:06:57brixenbitsweat: yeah I see the test mentioned but not rubyspec
02:07:06headiuswithout breaking too much
02:07:11brixenheadius: yeah, I'd expect that too
02:07:16brixenbut curious they don't say
02:07:25headiusit's still going to be bound by MRI/YARV code class perf and memory characteristics though
02:07:29headiuscode=core
02:07:36headiusyeah
02:08:00bitsweattoo bad no source
02:08:01headiusI don't have the stomach for this stuff anymore
02:08:48headiusI keep expecting someone to blindside us all
02:08:59headiusso far nobody's managed to do anything but speed up microbenchmarks though
02:09:43brixenyeah, I don't expect any blindsiding
02:09:50brixenthis shit is hard work
02:09:59brixenmuch harder than people wish
02:10:03headiusbootstrapping off MRI's core classes certainly cuts to the chase
02:10:21headiusevery couple weeks a more likely candidate comes along
02:10:37headiusat this rate Java 7 will be done
02:12:32slavaevan: so I figured out how to do PICs for tail call sites
02:15:18brixenslava: how do you debug writes to an object beyond its bounds?
02:24:50brixenhm, looking promising, the obj before the mangled one is a string
02:26:12brixenperhaps some food will help..
02:27:11slavabrixen: I have a bunch of #ifdef FACTOR_DEBUG which enable additional assertions
02:31:26slavabrixen: I'm actually hunting down a GC bug right now
02:31:43slavabrixen: how does your GC scan C local variables for pointers into the heap?
02:34:08brixenslava: it doesn't scan C locals
02:34:10brixensee http://github.com/evanphx/rubinius/blob/24022e70f59e2e5ad9d90929e65a1779f2ed7731/vm/on_stack.hpp
02:34:20brixenif you leave a obj on the stack, you have to use that
02:35:52slava"on the stack" = C stack or VM bytecode stack?
02:36:34brixenC stack
02:37:47brixeneg http://github.com/evanphx/rubinius/blob/24022e70f59e2e5ad9d90929e65a1779f2ed7731/vm/builtin/io.cpp #L366
02:38:01slavathat's so elegant
02:38:03brixenok, dinner, bbl..
02:38:06brixenheh
02:38:12brixenthat's evan for ya :)
02:39:12slavait makes me want to switch to C++
02:39:52slavabrixen: http://gitweb.factorcode.org/gitweb.cgi?p=factor/.git;a=blob_plain;f=vm/inline_cache.c;hb=HEAD
02:39:59slavabrixen: look at the REGISTER_ROOT / UNREGISTER_ROOT stuff
02:40:06slavabrixen: that's my approach (in C) and its not nearly as nice
02:42:37slavabrixen: I want to do something like OnStack, but for all locals
03:24:24headiushey brixen, does that safe kernel methods change basically just emit the longer safe names for certain methods when compiling core?
06:41:54brixenheadius: yeah, that's all it does right now
06:43:54headiuscool, it's a good idea
06:44:20headiusit made me think of another idea
06:44:28brixenin this case, it's to prevent BlankSlate from blowing up our method_missing, which does obj.class
06:44:41brixenbut we may discover other methods too
06:44:55headiusit seems like you could lift those key core methods into additional opcodes and emit the opcode instead
06:45:16brixenyeah, probably could
06:45:25brixenthat would require a lot more work potentially
06:45:30headiusI don't think that would scale as a general-purpose optimization, but it would at least give the VM the option of choosing the right method, regardless of overrides
06:45:43brixenright
06:46:06headiusI assume you did this so you didn't have to start writing __class__ everywhere you really want it to be the core impl
06:46:15brixenyeah
06:46:25brixenthis is more like "I said don't cross this fence"
06:46:34brixenbut there's not really a fence there
06:46:45headiusit's kinda funny...john rose often tells us that if you want to add another operation to the JVM, just implement it as a static method
06:46:56headiussince it will jit and inline everywhere as if it were an opcode
06:47:01headiusthis is a form of that, really
06:47:15brixeninteresting
06:47:31headiusyou could also have a marker sequence like CORE.class(receiver) that the compiler turns into an operation
06:47:36headiuswhich would make it exactly like that
06:47:59brixenyep
07:33:27headiusevan: I have been slacking, but I finally bought keynote yesterday
07:33:43headiusI'll do some slide work between now and monday, probably on the flight or something
07:36:15erikhdid the rubinius talk get accepted at osbridge?
07:36:21erikhI guess I could check.
07:36:33headiusthe "1.0" talk?
07:37:17evanheadius: ok, no sweat
07:37:25evanjust got back from wolverine and dinner
07:37:29evanabout to get some sleep
07:37:52erikhheadius: yessir
07:38:06headiusI thought I heard something about it
07:38:13headiusso I guess you'll have to check ;)
07:38:36erikhheh
07:39:17brixenerikh: nah, just the rubyspec talk was accepted
07:39:32brixenerikh: the rubinius 1.0 talk was accepted for oscon though
07:39:36erikhcool
07:42:11slavabrixen: my VM is C++ now :)
07:42:14slavabut ist still C
07:42:21slavaI just fixed all the errors from recompiling it with G++ :)
07:42:34evanwelcome, to the dark side.
07:43:54brixenslava: heh, cool!
07:46:44headiusevan: railsconf site shows you as "not yet registered" btw
07:47:56evanwah?
07:48:00evanmmm
07:48:26evanI appear to be
07:48:28evani just logged in
07:48:31evanwhere do you see this?
07:51:13headiuswhere it lists the talks I'm doing
07:51:22headiusEvan Phoenix. Not yet registered.
07:51:32headiusright below "Charles Nutter. Registered."
07:51:38evanurl?
07:51:45headiushttp://en.oreilly.com/rails2009/user/proposal/speaking
07:51:50headiusif you're logged in
07:52:30evanumm....
07:53:50headiusI think it refers to being registered for the conf
07:53:57headiusyou're supposed to register as a speaker for $0
07:54:06headiusI don't remember the link for that
07:54:39evanbingo
07:54:42evanyeah
07:54:46evani guess I never registered
07:54:47evanjust did it
07:55:00headiusok
07:55:29evanthanks for the heads up
07:55:33evani guess I thought that was done for me
07:55:39evanwell, i'm off to bed
07:55:40evannite.
12:11:13boyscoutTest unmarshalling of large varints in the VM. - 8f507e3 - Tilman Sauerbeck
12:16:38boyscoutCI: 8f507e3 success. 2647 files, 10146 examples, 32387 expectations, 0 failures, 0 errors
12:34:27dbussinktilman: btw, we have a mp_set_long in bignum.cpp afaik
12:34:36dbussinktilman: perhaps that's also reusable for http://github.com/evanphx/rubinius/commit/24022e70f59e2e5ad9d90929e65a1779f2ed7731
18:48:09headiusevan: around?
19:07:19evanheadius: sup?
19:07:35headiusah, was just going to show you timeout numbers with us using a thread pool now
19:07:37headiushttp://gist.github.com/105641
19:07:52headiusmakes it essentially free
19:08:59evanquite nice
19:09:02evanwhere is the java code?
19:09:22evani'm betting I could easily port it
19:12:01headiuswell it uses a thread pool library in java, but I can point you toward the code on the jruby side
19:14:08headiusevan: http://github.com/jruby/jruby/blob/1cd554c7c6b5981889e21e9edfa15b5f48f0dac0/src/org/jruby/ext/Time out.java
19:14:51headiusoh, hmm
19:14:58headiusI haven't pushed the pool changes
19:15:58headiusshould be there in about 5 min
19:17:02evank
19:20:17evanheadius: so, Thred::interrupt is whats used to signal between threads
19:22:30headiushttp://github.com/jruby/jruby/blob/3a88d8790fb7734c6600523e398e1ea28c39606e/src/org/jruby/ext/Time out.java
19:22:46slavaevan: my C++ VM port is almost ready
19:22:48headiuswell interrupt interrupts it if it's in the middle of waiting
19:22:59evanah
19:23:07headiusit's part of the communication, but it's not the only bit of data passed
19:23:41evanso the user thread than needs to be stop from running the block won't stop until something checks that it's supposed to be interrupted
19:23:50evanslava: oh?
19:24:07headiusevan: I'm not sure I understood that sentence
19:25:09evanok, nm.
19:25:30headiusthe timeout event propagates the same way as it does in the ruby version, by setting a flag on the target thread
19:25:37headiusit won't die itself until it picks up that message
19:26:13headiusobviously a lot of the complexity of this is due to having actual parallel-executing threads, which you don't have to worry
19:29:16headiusevan: let me know what you come up with
19:37:05evansure
19:40:18joachimmis the master branch the place to with all the action right now?
19:52:18joachimmI get => Failed 62 of 726 tests, when running rake on master.
19:54:23brixenjoachimm_: yes, master is the active branch
19:54:26brixenwhat platform
19:54:33brixenand pastie the errors please
19:54:36joachimmMac os X
19:54:52brixenyou might try a rake distclean
19:55:00brixenit's running fine for me on os x
19:55:29brixenare you on intel or ppc?
19:56:17joachimmintel
19:57:03brixenwell, try rake distclean; rake then
20:07:37joachimmbrixen: that seems to have fixed it.
20:12:23joachimmbrixen: What issues needs to be solved before declaring 1.0. I saw you had a talk about 1.0 which is why I ask.
20:12:54joachimms/had/will give/
20:15:41brixenjoachimm_: broadly, compatibility ond perf, most of the infrastructure is really solid now
20:15:58brixenjoachimm_: we'll be putting out a roadmap very soon
20:16:46brixenjoachimm_: if you have ruby gems or code that you maintain or use, trying to run it on rbx is a good way to contrib
20:17:28slavawhat kind of perf goals do you have
20:17:51dbussinkbrixen: did you get rspec to work?
20:17:56brixen1.8.6 parity is the minimum
20:18:17brixendbussink: how do you mean? do you know of specific issues? or have you not tried it?
20:18:21dbussinkbrixen: if that runs it also opens up a whole bunch of tests for other tools
20:18:26dbussinkbrixen: more in general actually
20:18:36brixenI can try it
20:18:43brixenI've been working on other gems
20:20:47dbussinkbrixen: going to railsconf?
20:21:05brixenyep
20:21:12brixendbussink: you?
20:21:31dbussinkbrixen: nope, am going to euruko though which is next weekend
20:22:18brixenahh no stroopwafels then :)
20:25:24evanBOOO
20:25:27evanstroopwafels!
20:25:30brixendbussink: well, I got rbx -S rake -T to run in rspec 1.2.6 gem dir, which involves installing 6 other gems
20:25:53dbussinkbrixen: hehe, nope, maybe another year :P
20:26:01dbussinkbrixen: cool :)
20:26:28dbussinkbrixen: did you ever look at the problem i had with do_postgres?
20:26:38brixenI looked at the bt :)
20:26:52dbussinksome const lookup that failed, didn't know if that part has changed lately
20:26:53brixenI've been focusing on rails stuff using sqlite3
20:27:00brixensince that's the default
20:27:09dbussinkunderstandable
20:27:26dbussinki'll check whether it's still an issue
20:28:05brixenhrm, rake spec in rspec depends on autotest
20:28:21brixenby the time this thing runs anything, I'll have 50 new gems installed
20:29:25evanbrixen: could you do 'which rake' for me?
20:29:47brixenevan: you mean for MRI or rbx?
20:30:10evanwell, i think that our -S doesn't pick up our bin/ dir
20:30:20evanand that 'rbx -S rake' works by accident
20:30:27evanbecause you have a /usr/bin/rake
20:30:57brixenI think you are right
20:31:06evanI think i'll fix that
20:31:38brixendbussink: rbx -S rake examples in rspec gem => 171 examples, 28 failures, 2 pending
20:32:49dbussinkbrixen: is there a way to run specs in a directory outside the rbx dir with rbx?
20:33:42brixendbussink: yeah, you can ln vm/vm to anywhere
20:33:49brixenor you can even move vm/vm
20:33:56brixenbut don't change the name of the build dir
20:34:14dbussinkbrixen: but if i'd want to run rake spec for another project using rbx, how'd i do that?
20:34:33brixenrbx -S rake spec
20:34:36brixentry that
20:35:19brixenor path/to/rbx/dir/bin/rake
20:35:22dbussinkhmm, ../rubinius/bin/rbx -S rake spec doesn't work for me
20:35:24brixenif you installed rake in rbx
20:35:35brixenwhat does "doesn't work" mean?
20:35:56dbussinkNo method 'bin_path' on Gem (Module) (NoMethodError)
20:36:10dbussinkbut using rake directly from the rubinius bin dir seems to do something
20:36:21brixencool, evan is fixing the other thing
20:37:51dbussinkbrixen: ah, got some more capi fun :P
20:37:53dbussinkhttp://gist.github.com/105682
20:38:33brixenI saw that trying to install hpricot
20:38:42brixenyou'll have to use pure ruby json for now
20:39:06brixenuse of RHASH in those gems is mega lame
20:39:41dbussinkbrixen: i've tried to contact the json guy for some other issue, but haven't heard back from him
20:39:52brixenok
20:39:57dbussinkdunno if anyone knows him
20:41:26brixensomething must be wrong with our rbconfig or mkmf because it should not find ruby/st.h
20:41:38brixenanyway, I'm not messing with that now
20:42:08dbussinkah, cool, got the extlib specs running :)
20:42:15brixennice
20:42:27brixendbussink: what are your top 10 gems that you use?
20:42:57dbussinkbrixen: atm, mainly merb / datamapper stuff and it's dependencies
20:43:03brixenok
20:44:04dbussinkuse rspec for specs, cucumber for features
20:46:22headiusjson and hpricot use RHASH eh?
20:46:44dbussinkbrixen: a lot of failures are due to failures in rspec, not extlib per se
20:46:54dbussinkheadius: looks like it yeah
20:49:18brixendbussink: ok, good to know
20:49:24headiusthat sucks
20:49:41headiushpricot must have been one I looked at when we were working our version of capi
20:50:40brixendbussink: it'd be great if you could get new datamapper gems out that don't reassign rb_cTime etc :P
20:50:55brixenI'll have to go build my version of do_sqlite3
20:52:05dbussinkbrixen: hehe, yeah, they are ready to release
20:52:14dbussinkbrixen: gonna do that this week or during euruko
20:52:43dbussinkbrixen: but there is a bit more included, like precompiled windows gems that i can compile on my os x machine now :)
20:52:50dbussinklong live cross compiling :)
20:52:52brixendbussink: did you fix do_sqlite3?
20:53:41dbussinkbrixen: yeah, it's fixed but not yet released
20:54:21brixendbussink: is it not in master?
20:54:32dbussinkbrixen: no, in next
20:54:38brixenk
20:59:06brixendbussink: sweet, do_sqlite3 from next installed
20:59:17dbussinkbrixen: cool :)
20:59:54brixenI mistakenly typed gem install merb :P
21:00:01brixennow I have a universe of gems
21:00:04dbussinkhehe
21:00:37dbussinkapparently the be_kind_of matches is problematic
21:00:37brixenI think I now have more gems installed in rbx than in mri
21:03:44dbussinkbrixen: hmm, still the same lookup issue that goes into infinite recursion
21:04:06brixenok
21:18:36dbussinkbrixen: did you try reproducing it too?
21:18:56dbussinkbrixen: or if you have pointers on how to debug it, that would be cool too ;)
21:18:57dbussink:)
21:19:52headiusI didn't realize until yesterday that I'd gone over a month without installing any gems in MRI at all
21:20:08headiusI hadn't even updated rubygems from whatever OS X ships
21:20:48brixendbussink: um, I'll take a look, sec..
21:36:25brixenlord, const_get is so lame
21:36:35brixenlet's wrap another method
21:36:38brixenconvert to a symbol
21:36:42brixenconvert back to a string
21:36:47brixenmake a regexp
21:36:56brixena few conditionals
21:39:12brixenI think it would work fine to put the sentry on setting the const
21:39:26brixento get it, just try. if it fails, check the name
23:35:34brixendbussink: correct me if I'm wrong, but I believe if we translate what you are doing in do_postgres ext into ruby, this is what you have
23:35:46brixenhttp://gist.github.com/105737
23:35:53brixentry running that in MRI