Index

Show enters and exits. Hide enters and exits.

00:05:54wayneeseguinevan: http://rvm.beginrescueend.com/benchmarks/2010-02-02/
00:06:03evanUPDATES!
00:06:20wayneeseguinsortof
00:06:24wayneeseguinThe summaries are accurate but
00:06:30wayneeseguinthe individual reports got borked
00:06:38wayneeseguinso I have to track down a logical bug in the code
00:06:45wayneeseguinmight use it as an opportunity to refactor ;)
00:07:03wayneeseguinAlso, the pathname wouldn't run under any ruby but MRI
00:07:11wayneeseguinwhereas it ran before
00:07:14wayneeseguin2/pathname
00:07:22evanhuh?
00:07:27evanoh, the pathname one? really?
00:07:29wayneeseguintiers/2/pathname
00:07:30wayneeseguinyeah
00:07:30evanwhat did everyone do?
00:07:38wayneeseguinI nuked it for this run so that it would complete
01:27:04brixentrying to figure out why mocks are broken is such a pita
01:27:36brixenworks on 1.8.6, breaks on 1.8.7
01:27:43burkelibbeythat's like 50% of my day job >_<
01:33:59brixenooohh hmm
01:34:38brixenmutable state is hard, let's go do haskell
01:34:49evanwooo!
01:34:52brixenheh
01:34:54burkelibbeyyeah, that'll be much easier.
01:34:57evanthunk trunk trunk
01:35:11evanthunk trunk think thunk tank.
01:35:23brixenme thinks my mock's be out of sync
01:37:34burkelibbeySo I'm trying to build rubinius from source. I run rake or rake build, and it complains about ext/digest/sha1/sha1. So then I run rake extensions, and rake build again, and I get dyld: Symbol not found: _capi_get_constant. How do I fix that?
01:37:53brixenare you building with 1.8.7?
01:38:11burkelibbey1.9.1. do I need to use 1.8.7?
01:38:14brixenyes
01:38:16burkelibbeyok, thanks
01:38:45brixenhttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/27522
01:39:12brixenwe'll fix the build for 1.9 eventually, but rvm makes it so deliciously easy to build, there's not much incentive atm
01:39:22wayneeseguinw00t
01:39:22brixenin fact, you can just use rvm to build rbx
01:39:31brixenwayneeseguin: :D
01:39:37wayneeseguinintends on keeping it that way ;)
01:39:38wayneeseguin::grin::
01:39:41brixenheh
01:39:48brixenbe my guest :)
01:39:52burkelibbeythree cheers for rvm? It's nice having 11 versions installed just in case :)
01:40:03brixenwhy stop at 11?
01:40:06wayneeseguin11?! lol
01:40:09brixenheh
01:40:23wayneeseguinoh wait
01:40:25wayneeseguinI have 15
01:40:26wayneeseguinnm
01:40:28burkelibbeyhaha!
01:40:29wayneeseguincan't talk
01:41:04evanok!
01:41:13evani've fixed the resolv specs to NOT depend on DNS anymore
01:41:23brixenoh sweet
01:41:45evanwhy might you ask? because i'm at a coffee shop that has a DNS server that seems to just not respond to queries it can't answer
01:41:53evanand thusly rake takes 220s
01:42:03wayneeseguinw00t
01:42:07evanResolv has this built right in
01:42:16evanyou can pass it the resolver objects to use
01:42:18wayneeseguinit's amazing how certain optimizations come about ;)
01:42:30evanso I only use Hosts (from /etc/hosts) or none
01:45:15boyscoutAdd Module#append_features spec for cyclic includes - c91a7a9 - Evan Phoenix
01:45:15boyscoutDetect cyclic includes properly. Fixes #33. - ba1e1ff - Evan Phoenix
01:45:15boyscoutFix Resolv specs to not depend on DNS - 6eb3b43 - Evan Phoenix
01:49:35boyscoutCI: rubinius: 6eb3b43 successful: 3041 files, 11836 examples, 36111 expectations, 0 failures, 0 errors
02:20:26burkelibbeyIf you had to describe rubinius in just one unicode character, which would you use?
02:21:07burkelibbeySo far, I've arbitrarily chosen ☃, because snowman is awesome.
02:21:26evansnowman is good.
02:21:32evanesp. since my domain is fallingsnow.net
02:21:36burkelibbeydone.
02:21:46evanif you want, i can get you ☃@fallingsnow.net
02:22:00burkelibbeyahaha, that's awesome.
02:22:18evani wonder if exim4 supports unicode usernames...
02:22:25burkelibbeyI have my terminal set up to show me a little graphic describing which ruby version I'm using: http://grab.by/26hX
02:22:36burkelibbeyit's incredibly handy.
02:23:13evanthats awesome.
02:23:30evanyou should get wayneeseguin to embed that into rvm
02:23:46burkelibbeyhmm, that would be cool.
02:23:55evanPROMPT="$(rvm --prompt-char) >>"
02:23:58burkelibbeyrather than having to write ugly stuff to parse rvm info
02:24:18wayneeseguinsexy, I'm game
02:24:21wayneeseguinit's short
02:24:22wayneeseguin<3 short
02:24:29evani'm honored for rubinius the unicode snowman
02:24:36evanit is with great pride that I accept this award
02:24:39burkelibbeyhaha
02:25:36wayneeseguindunno I'd probably go with ying-yang for that ;)
02:25:54burkelibbeyI considered that too.
02:25:54wayneeseguinburkelibbey: I like the idea a lot so if you're game I'm game :)
02:26:06wayneeseguinor maybe the nuclear symbol ;)
02:26:56evan:)
02:27:20evanunicode snowman does well to exemplify the playful tone I try to keep up in here
02:27:56burkelibbeywaynseeseguin: yeah, sure. my incredibly horrible shellscript is at http://github.com/burke/dotfiles/blob/master/.config.d/zsh/ruby.zsh
02:28:08burkelibbeythere's essentially nothing to what I did.
02:28:43burkelibbeyI'll look at the rvm source :)
02:28:47evanit's more fun to have it builtin :)
02:29:03wayneeseguinburkelibbey: I hang out in #rvm when you're ready :)
02:29:13burkelibbeyk
02:29:25wayneeseguinHopefully the 4.6K lines of bash don't make your eyes glaze ;)
02:29:35wayneeseguingets that reaction a lot
02:29:48burkelibbeyhaha
02:29:54evanwayneeseguin: don't listen to them.
02:29:57evankeep up the good work.
02:30:06wayneeseguinevan: Thank you
02:30:17evanbash is like empire credits in scifi
02:30:26evaneveryone dislikes them, but everyone takes them anyway.
02:30:26wayneeseguinI do get a LOT of criticism for not doing it in Ruby
02:30:41wayneeseguinwhich would deny a lot of my reasons for doing it in bash ;)
02:31:51wayneeseguinI have to say, it's been quite a challenge and good
02:32:03evanpeople tell me that about C++ too
02:32:04wayneeseguinThat Monty guy from MagLev is a real treasure to work with
02:32:08evani just keep going.
02:32:19wayneeseguinYes! It's all about using the best tool for the job.
02:32:29burkelibbeySo how about rvm-prompt --single-char or something?
02:32:37evansounds good
02:32:40evanperhaps
02:32:44evan--unicode
02:32:54burkelibbeyshorter. Shorter is good :)
02:33:00wayneeseguinburkelibbey: I'm thinking yours can be default ;)
02:33:08wayneeseguinand --verbose for the other maybe
02:33:10burkelibbeyheh k
02:33:13evanthen you can have --single-char be stuff like [6,7,8,x]
02:33:22evanie, unicode and ascii versions
02:34:53burkelibbeyyeah
02:53:16burkelibbeyhttp://github.com/burke/rvm/commit/ad046cd84c2fb8a7e3a6aa0e748154178c61833c
02:54:03mahargsee
02:54:11mahargany language where "[[ x$interpreter = xree ]]" is standard practice
02:54:13mahargis evil
02:54:31burkelibbeyI agree.
04:58:43burkelibbeyWow. now I'm afraid.
04:58:44burkelibbey~/src/rubinius/vm ✪ ❼ ▸ wc -l **/* 2>/dev/null | tail -n1
04:58:44burkelibbey 790716 total
04:59:18burkelibbeyruns back to MRI
05:00:07brixenhaha
05:00:22brixenexclude vm/external_libs
05:00:58burkelibbeyoh. ~/src/rubinius/vm ✪ ❼ ▸ wc -l **/* 2>/dev/null | tail -n1
05:00:59burkelibbey 103132 total
05:01:03burkelibbeythat's totally manageable.
05:01:04burkelibbeycool
05:01:07brixenbetter yet, check LOC of just .rb files :D
05:01:27brixenhasta pronto, pdx.rb is done
05:01:46burkelibbeyheh, half a million lines of ruby
08:12:26evanI hope that facebook releases Hiphop sooner rather than later.
08:12:38evani'd love to compare and constract it against the Rubinius JIT.
08:12:41evancontrast.
08:13:09brixenyeah, that'd be cool
08:14:09scooprI'm sure digesting it will be a thrill-ride.
08:15:04evanlike the tilt-a-whirl
08:15:06evanfor an hour.
08:15:09evanon fast.
08:15:16evanafter eating 3 hotdogs.
08:53:30dbussinkmorning
09:24:29slavahi evan
09:24:33slavafibers eh
10:03:59dbussinkslava: i guess he's sensitive to people daring him ;)
11:55:03rueDunno how a source translator compares
14:22:40burkelibbeythe flip-flop operator seems like such a weird misfeature.
14:23:42slavayeah
14:30:54burkelibbeywow. BEGIN too.
14:31:37burkelibbeyI've never seen that one before.
14:45:00ruescoopr: Tried out Ovi Maps yet?
14:48:19wayneeseguinand END !
16:35:33burkelibbeyI fixed a few failing specs in the C API, where should I send the patch? The website says the rubinius lighthouse, but I can't create an account there..
16:36:16burkelibbeyhttp://burkelibbey.org/0001-FIXED-failing-class-variable-related-specs-in-C-API.patch anyway
16:36:54burkelibbeyOr should I just send a pull request?
16:37:29rueSure
16:37:36rueOr make a ticket
17:26:14brixenburkelibbey: please make a github issue and include your link or you format-patch in a gist
17:26:35burkelibbeyok, will do
17:29:26brixenthanks
17:30:17burkelibbeyhttp://github.com/evanphx/rubinius/issuesearch?state=open&q=C+API#issue/182
17:32:11evanburkelibbey: i'll commit it shortly
17:32:15evanjust finishing up something else.
17:32:26evanmainly, turns out that alias_method is weird.
17:32:53burkelibbeyCool, thanks. I'm in no hurry. Boring meeting :(
17:33:02evanha.
17:33:04evansorry to hear that.
17:33:38kronos_vanoevan, Are you about #180?
17:33:50evankronos_vano: yeah
17:34:07evanturns out that alias doesn't just reference the same object in a different slot
17:36:56kronos_vanoHeh. I found it when testing rubinius with 1.8.7 tests, there are also some bugs, I'll reported most of them due this week.
17:37:29brixenkronos_vano: please include rubyspecs with your patches unless there are already specs
17:37:37brixenor you are refactoring
17:37:47brixenand there are already specs :)
17:38:41kronos_vanobrixen, ok!
17:38:49brixenthank you!
17:39:02evani'm writing a spec for the alias behavior.
18:07:18slavayo evan
18:07:23evanhey slava.
18:16:05dwaitegood morning
18:17:10brixenhey dwaite
18:38:33slavaevan: how do you switch fibers?
18:39:03evanwith the Fiber#resume method
18:39:05evan:)
18:44:19slava // Beware here, because the GC has probably run so GC pointers on the C++ stack
18:44:22slava // can't be accessed.
18:44:34evanyep.
18:44:44evanthat should be "pointers set before this can't be accessed"
18:44:46slavahow does it work?
18:44:52slavaI mean, don't you mix C++ and rbx frames?
18:44:59evanyeah, i do.
18:45:09slavawhat happens if a fiber is suspended, and there's a C++ frame in it which references a GC pointer?
18:45:57evanwell, it's the same as normal
18:46:13jvoorhishello
18:46:37slavaevan: I'm going to do fibers without set_context()
18:46:38evanif they're accessed after a call that might GC, they have to be registered
18:46:44evanotherwise, it's fine.
18:46:52slavaah, ok
18:47:43slavaevan: do FFI calls run on the fiber's stack?
18:47:49evanyeah
18:47:54slavabut its so small
18:47:56slavathis could cause issues
18:48:03evan*shrug*
18:48:06evanit's experimental
18:48:13evani don't claim to have worked out all the kinks.
18:48:19slavaI'm going with an approach where it switches back to the main C stack for calls into C
18:48:48evanbut then you can't suspend a one while it's doing a call to C, yes?
18:48:55evanso you can't call mix frames
18:49:03evanwon't that break your callback stuff?
18:49:18slavawell, callbacks are already funny because of continuations
18:49:38slavawhen a C callback runs, its effectively making a new green thread
18:49:46slavaif you capture a continuation, the bottom is at the innermost call from C
18:50:01slavaso it won't break it, no. callbacks will run in a new fiber
18:50:09evanoooh
18:50:11evanthats a great idea!
18:50:18evani'll support ffi callbacks with fibers
18:50:23evanyou're so smart.
18:50:26evanthats why we keep you around
18:50:36slavait only works if you don't have too many levels of callback nesting, though
18:50:53evantrue
18:52:04dbussinkburkelibbey: i wonder, did you also work in the specs to make sure your changes work ok?
18:52:57burkelibbeydbussink: I just made the changes because there were a few failing specs. They're no longer failing with these changes
18:54:55dbussinkburkelibbey: ah ok, i see
18:57:19jvoorhisevan: check it out :)
18:57:21jvoorhismod.types[:list] = Type.rec { |t| Struct(Int, Pointer(t)) }
18:57:26jvoorhisproduces this
18:57:36jvoorhis%list = { i32, *%list }
18:58:47evanjvoorhis: nice!
18:58:59jvoorhisi need to mess with it a little longer, but i have structs, arrays and pointers handled now
18:59:11jvoorhisType.rec doesn't do any magic
18:59:33jvoorhisit yields an opaque type and then refines it with the value from the block
18:59:47evannice
18:59:50jvoorhisi haven't tried yet, but i imagine it works fine nested
19:00:09boyscoutFIXED failing class variable-related specs in C API. - b5d1674 - Burke Libbey
19:00:09boyscoutRemove tags for now passing specs - 35aae59 - Dirkjan Bussink
19:00:17dbussinkburkelibbey: there you go :)
19:00:29burkelibbey:)
19:00:59evandbussink: thanks
19:01:21dbussinkevan: stuff like this is easy for other people to pick up :)
19:01:28evan:D
19:04:35boyscoutCI: rubinius: 35aae59 successful: 3041 files, 11841 examples, 36116 expectations, 0 failures, 0 errors
19:10:31evanman, alias is fucking tricky.
19:12:03jvoorhisthe keyword?
19:12:21evanhow you actually alias a method.
19:12:41evanit's not as easy as taking something from one method_table and put in in another under a different name
19:12:45evanwhich is what we did before
19:13:03evanbecause the place where it was originally from has to be maintained
19:13:07evanotherwise super breaks.
19:13:22jvoorhisoh, interesting
19:15:04rue#180 seems straightforward, behaviourwise
19:15:12boyscoutImplement 'w' directive for String#unpack - 6594450 - Ivan Samsonov
19:15:18evanrue: it's not.
19:15:29evanif you follow it through.
19:15:55evanum
19:15:58evanwho commited that?
19:16:02evanbecause i twas already in there I thought....
19:16:21dbussinkevan: i did, only packing it was in
19:16:24dbussinkevan: not unpacking it
19:16:28jvoorhisevan: so it does!
19:16:29evanmm, ok.
19:16:30jvoorhisclass B < A; def a; super end; alias :b :a end
19:16:37jvoorhisB.new.b # calls A.a
19:16:53dbussinkevan: the ber packing was actually my first contribution :)
19:16:55jvoorhisA#a even
19:17:42rueIt is a full copy of the original, including the super chain
19:17:57jvoorhishow is the super chain represented?
19:17:59rueIt carries the same "immutability"
19:18:12rueNot that it is straightforward to *implement*
19:18:29evanit's more complicated than that
19:18:39evanwhen you alias a method defined in a superclass
19:18:43evanand call the alias
19:18:59evanthe "module the method is from" must be set to the superclass
19:19:06evannot the subclass, where you actually found the alias.
19:19:33boyscoutCI: rubinius: 6594450 successful: 3041 files, 11842 examples, 36122 expectations, 0 failures, 0 errors
19:19:55evanso i guess it depends on your defintion of "module the method is from"
19:20:19evanthe simple answer is the one you find the an entry in, which was what rubinius did
19:20:24evanie, it made it the subclass
19:20:37evanif you run #180 under rbx
19:20:43evanyou'll see it goes into an infinite loop though
19:21:00evanbecause of the complicated interaction between alias/the module the method is from/super
19:22:45dbussinkevan: i can close this one right? http://github.com/evanphx/rubinius/issues#issue/77
19:22:58evanyep.
19:23:15dbussinkburkelibbey: you can ask evan for commit access btw
19:23:32rueRight, because it is not really a method, it is an alias to one
19:23:54evansure
19:24:03evandepends on definition
19:24:15evanit's complicated to implement because there has to be this new check in the method lookup logic
19:24:23evanto detect an alias and handle it differently
19:24:30rueRight
19:25:08evanand before we have first class method_tables
19:25:14evanit's possible to do
19:25:19evan@method_table.lookup(name)
19:25:29evanand get a Bucket that has an Alias object for it's method
19:25:46evanwhich complicates logic that manipulate method_tables
19:32:30dbussinkevan: i think stuff like this fine, right: http://gist.github.com/287185
19:32:48evanit's already in
19:32:52evani pushed it last night
19:33:09evandid the ticket not close automatically?
19:33:34dbussinkevan: hmm, then it probably wasn't pushed properly
19:33:39dbussinkevan: since i don't see it here
19:33:42dbussinkjust did a pull
19:33:50kronos_vanoI'm too.
19:34:31dbussinkevan: that could also explain your confusion with the ber decompression, if you though you pushed it too
19:35:08evanhrm
19:35:13evani'll bet i forgot to push.
19:35:19kronos_vano)))
19:35:20evanyeah
19:35:20evancrap.
19:35:21evanfuck.
19:35:26evannow i'll have a big conflict
19:35:30evandbussink: please wait.
19:36:18dbussinkevan: ok, won't do anything
19:51:04dbussinkevan: big conflicts?
19:51:11dbussinkkronos_vano: flaky internet?
19:51:21kronos_vanodbussink, very :(
19:54:14kronos_vanooh, I found new bug. But first Lost, then patch :)
20:06:26evanalias macrib="echo 'The McRib is back!'"; macirb"
20:07:02burkelibbeyI made some more specs pass. Should I submit another patch, or can I have commit access?
20:07:12burkelibbeyboring day at work :P
20:07:43evanall the better for us!
20:09:11dbussinkburkelibbey: maybe get a more interesting job, although that would be bad for us then ;)
20:09:49burkelibbeydbussink: heh, it's plenty interesting, but our sprint is over today, so I have essentially nothing to do until our next sprint planning meeting tomorrow morning.
20:09:52burkelibbeyoh, SCRUM.
20:16:05dbussinkburkelibbey: evan is the only one who can give you access btw
20:16:18burkelibbeyk
20:16:19evanTHE POWER
20:16:22evanFEEL THE POWER
20:16:27burkelibbeyheh
20:16:32dbussinki bow for your might
20:17:07evanflexs and reality bends around him
20:18:02burkelibbeywell, this fixes 4 or 5 specs in :language : http://gist.github.com/293983
20:18:33burkelibbeyI couldn't think of any better way to handle that
20:26:31evanburkelibbey: hm, thats probably ok.
23:29:04burkelibbeyI'm pretty sure I found the coolest thing ever: http://www.etsy.com/view_listing.php?listing_id=39945774 </OT>
23:34:03brixensweet
23:38:45BrianRice-workah, too bad that won't work with a black macbook
23:39:34BrianRice-workmaybe this: http://www.etsy.com/view_listing.php?listing_id=39713297
23:48:51burkelibbeyyeah that was a close runner-up for me