Index

Show enters and exits. Hide enters and exits.

00:00:22TheProkrammerI gather rubinius does not officially support cygwin today?
00:00:25imajes enters the room.
00:00:30luislavena enters the room.
00:00:59luislavenaback.
00:01:28luislavenaguys, can anyone confirm if it's possible create a file under *nix with "*" as name?
00:01:39drbrainTheProkrammer: I think only luislavena has tried to get rubinius to run on windows
00:01:40luislavena(not the quotes, but the wildcard character).
00:01:42djwhittsure
00:01:43djwhittjust did
00:01:43drbrainluislavena: it is
00:01:47drbraintouch \*
00:01:53jlindley enters the room.
00:01:58TheProkrammerdrbrain: Well now there's another crazy in the crowd :)
00:02:02luislavenadrbrain: ls -a will list it?
00:02:04shame leaves the room.
00:02:06drbrainit is very nerve-wracking to remove
00:02:10drbrainluislavena: yes
00:02:18luislavenaTheProkrammer: welcome aboard! :-D
00:02:20TheProkrammerluislavena: Have you tackled the context stuff yet?
00:02:55luislavenaTheProkrammer: long time since I tried build it, I should give it a whirl this weekend.
00:03:20TheProkrammerluislavena: Ah, alrighty, so there hasn't been a successful mingw build yet?
00:03:26luislavenadrbrain: hmn, * ? are wildcards on windows... and | is the pipe tunneling operator :-P
00:03:40luislavena(looking at the core/dir specs and mocks).
00:03:44drbrainluislavena: you can create all those files
00:03:44DefilerWindows just doesn't support escaped filenames, basically
00:03:57luislavenaTheProkrammer: not thta I'm aware of ;-)
00:04:03DefilerAt least not at the shell
00:04:22luislavenaDefiler: not at the shell and not from ruby :-D
00:04:33drbrainhttp://rafb.net/p/tgdM3t55.html
00:05:52TheProkrammerI can't imagine any sane person using those characters in file names... even if they're supported... they're wildcards in *nix too.
00:05:54luislavenahates it current internet connection
00:06:20luislavenadrbrain: http://rafb.net/p/7XlpXk31.html
00:06:48drbrainluislavena: figures
00:07:10luislavenadrbrain: http://rafb.net/p/YSHXfO76.html
00:07:20luislavenadrbrain: even using MSYS emulation :-P
00:07:51drbrainI suspect FAT/NTFS doesn't allow it
00:08:15rubuildius_amd64Ryan Davis: eda8f33a8; 2091 files, 6666 examples, 23382 expectations, 0 failures, 0 errors; http://rafb.net/p/bk7ubM21.html
00:09:20obiejuan leaves the room.
00:09:27luislavenawe can consider these cases posix and not posix compliant...
00:09:29brapse enters the room.
00:10:38rubuildius_ppcRyan Davis: eda8f33a8; 2091 files, 6668 examples, 23408 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185820
00:11:54TheProkrammerluislavena: don't forget ":" :)
00:12:32luislavenaTheProkrammer: funny, it wasn't listed in the fixtures... it is allowed on posix?
00:12:38luislavenatouch \: works?
00:12:48TheProkrammerluislavena: in linux yeah.
00:12:53TheProkrammernot in cygwin tho
00:13:40luislavenaTheProkrammer: good catch, there is no spec for it... afaik...
00:13:43bitbang leaves the room.
00:14:04DefilerIs it really our job to spec out what are basically OS file semantics?
00:15:00TheProkrammerDefiler: Nah, but it is something to be aware of for build scripts and what not... though again I don't think I've ever seen any of those characters in filenames in the wild... ever.
00:15:26luislavenaDefiler: is not, but if there are specs that is expecting them, these must be platform-aware...
00:15:57drbrainI think fnmatch expects some of them
00:16:00evani wonder if it's hard to install a not-so legal copy of vista under parallels
00:16:09luislavenathose are part of dir/shared/glob_spec.rb, used as matcher for the regexp.
00:16:22TheProkrammerMore likely to see an issue with case sensitivity (or lack there of)
00:16:32drbrainevan: there's some win2003 server images (in qemu/vmware) and ec2
00:16:32luislavenaevan: not hard, not legal, but slow....
00:16:38drbrainyou get a N day trail license
00:16:40brapse leaves the room.
00:16:53luislavenaevan: will be better with win2003.
00:16:57evani don't need it
00:17:01evanjust curious to play with vista
00:17:03evanstill haven't
00:17:07evannot really going to spend time on it
00:17:14luislavenaevan: trust me, you don't miss anything.
00:17:26TheProkrammerevan: There are virtual labs out there that give you a server over remote desktop to play with it.
00:17:30evani have great trust in you when it comes to these matters.
00:17:39luislavenaevan: unless you want to fight and bench your speed clicking the annoying UAC popup ;-)
00:17:46evanhehe
00:17:46drbrainluislavena: ruby 1.8 is slightly faster on FreeBSD in parallels than mac native, but may be due to compile flags
00:18:17luislavenadrbrain: yep, I think apple dudes build it with pthread enabled :-P
00:18:28drbrainluislavena: and -Os
00:18:38obiejuan enters the room.
00:18:57jlindley leaves the room.
00:20:04tarcierievan: so I did a pure Ruby version of the mongrel parser last night... Ragel spits out some weeeeird Ruby code... anyway is that worth checking in? I guess the C version that's there works through subtend still
00:20:16evanplease!
00:20:21tarcieriok, cool
00:20:31tarcierifirst version I did found a bug too, heh
00:20:31evandid you wire it in as the mongrel parser?
00:20:45tarcieriyeah, it's Mongrel::HttpParser
00:20:49evanhot dog!
00:20:50luislavenaback to Dir glob specs, what will be a better regexp match that those special filenames... I guess it's missing to truly test the regexp...
00:20:52evanyou da man!
00:20:56tarcieriheh
00:21:09obiejuan_ enters the room.
00:21:16drbrainluislavena: start with File.fnmatch
00:21:18luislavenatarcieri: we (mongrels) will love to take a look at that! :-D
00:21:20tarcierievan: I'm having to manually munge the Ragel output because Ragel is doing some weird stuff
00:21:22drbrainluislavena: then do Dir glob
00:21:24wyhainesIt'll be interesting to see how it runs under rubinius. It was pretty slow when tested with MRI, IIRC.
00:21:32evantarcieri: thats ok for now.
00:21:35brapse enters the room.
00:21:59tarcierievan: Namely if you define a private attr_writer, you can't self.attr = foo
00:22:19tarcieriin Rubinius... fine on MRI
00:22:29luislavenadrbrain: 1 file, 52 examples, 126 expectations, 0 failures, 0 errors
00:22:41luislavenadrbrain: that means dir specs are doing wrong things...
00:22:52tarcieriwyhaines: yeah considering what Ragel generates that's not surprising at all
00:23:15tarcieriit's doing funcalls to get to *all* of its constants
00:23:22tarcieriit's pretty disgusting
00:23:58wyhainesHeh. Is the Ragel ruby support still labeled as experimental?
00:24:22tarcieridunno... I think I have some old copy of Ragel 5 installed too since I was working on something which wasn't Ragel 6 compatible
00:24:30tarcieriI should probably upgrade
00:24:37drbrainluislavena: hrm, ok, maybe Dir glob specs are broader
00:24:40Arjen_ leaves the room.
00:25:09tarcieriyeah, I have Ragel 5.25, heh
00:25:23Defilerluislavena: ohhh does this mean RubyInline will be possible on Win32, with the new one-click installer?
00:26:08luislavenaDefiler: right now it does, but requires you have VC6... the new will work out of the box with MinGW :-D
00:26:22luislavenalove his job (make users happy) :-D
00:26:23DefilerYeah, I meant work out of the box, sorry
00:26:38DefilerSince Win32 production boxes (ha ha) don't ever have compilers
00:26:51DefilerIt means that relying on RubyInline kinda excludes your Win32 users
00:26:57tarcieriluis: I'll ping the Mongrel list about it
00:26:57luislavenaDefiler: thanks to zenspider it now does, ParseTree pre-built binary was created using it ;-)
00:27:09tarcieriluis: I'm sure someone can point out something I'm doing wrong
00:27:29luislavenatarcieri: great, we would love peek at that, maybe we can correct some of the things are wrong and both get benefits from it :-D
00:31:47luislavenabrixen: ping?
00:32:44Defilerbrixen is at class right now
00:32:57luislavenaDefiler: wow, sorry :-P
00:33:33luislavenawhat do you guys think about this?
00:33:34luislavenahttp://pastie.caboo.se/185830
00:34:22luislavenathe sub part is creating a tmp/mock folder at the checkout/repository level instead of being root based (/tmp/mock)
00:36:04jlindley enters the room.
00:36:09DefilerAah, right
00:36:27DefilerFor sure we want to be good filesystem citizens
00:37:28luislavenaDefiler: dunno if that is good or bad, it is just polluting the checkout... I thought it was wrong, but don't waste anything to ask before break something else :-D
00:37:30obiejuan leaves the room.
00:38:10DefilerI think we should never ever create a file anywhere outside of a tempdir
00:38:14DefilerDuring a spec run
00:38:33Defilerand I mean like Dir.tmpdir
00:38:41Fullmoon enters the room.
00:38:48enebo enters the room.
00:39:13luislavenaDefiler: me too, just wanted to be 145% sure :-)
00:41:26tarcierioh yeah
00:41:33tarcierianyone know about the Rubinius support Ragel claims to have?
00:41:55DefilerNo, but that is an awesome claim to hear about
00:42:03jlindley leaves the room.
00:42:12evanragel claims rubinius support?
00:42:13evansweeeeeeet
00:42:28evani guess we better start a rubinius certification program!
00:42:39tarcieriheh
00:42:54drbrainevan: I'm working on it
00:42:54tarcierirlgen-ruby has:
00:42:55tarcieri -x, --rbx Allow to use Rubinius asm features
00:43:01evanno way!
00:43:05evanNO FUCKING WAY.
00:43:06Defilerduuuuude
00:43:08evanduuuuuude.
00:43:09Defilerduuuuuuuuuuuude
00:43:11evanwe've made
00:43:15evaneveryone, take the rest of the day off.
00:43:16evan:)
00:43:21tarcierihaha
00:43:27tarcieriI can't tell what, if anything, it does though
00:43:32DefilerI won't do that, but I will work drunk :)
00:43:34evani don't care!
00:43:37tarcieriheh
00:44:27luislavenaneed to setup some ubuntu/freebsd/any linux to test rbx before commit :-P
00:44:52evani'm looking at ragle now
00:44:54evanseeing what they do
00:45:02DefilerPlease update us with your findings
00:45:04DefilerI think that is amazing
00:45:17evanoh rad!
00:45:21evani think it outputs rubinius assembly.
00:45:29luislavenathinks evan loves to peek in other source projects ;-)
00:45:35Defiler*squargle*
00:45:53evaninteresting!!
00:46:03evanthere is a generator in ragel called goto
00:46:10evanand has this comment in it.
00:46:18evan<paste>
00:46:24evan if ( rubyImpl == Rubinius ) {
00:46:24evan codeGen = new RbxGotoCodeGen(out);
00:46:24evan } else {
00:46:24evan cout << "Goto style is still _very_ experimental "
00:46:24evan "and only supported using Rubinius.\n"
00:46:26evan "You may want to enable the --rbx flag "
00:46:29evan " to give it a try.\n";
00:46:31evan exit(1);
00:46:33evan }
00:46:36evan</paste>
00:46:38evanSO AWESOME.
00:46:40Defilerruuhahhahhh
00:46:53DefilerNot only are we supported, but we are supported because we are better
00:47:03tarcierioh
00:47:04evanthen there is a file called rbx-gotocodegen.cpp
00:47:08tarcieriI didn't try the goto generator
00:47:18evanah crap.
00:47:23evanthis is sorta funny.
00:47:28evanit used compiler Ruby.asm stuff.
00:47:32evanso it doesn't work anymore.
00:47:38evancompiler1
00:47:39tarcieriAdrian Thurston hopped on here one day
00:47:42tarcieriaah
00:47:46evani should make it work again
00:47:49evanjust so that this code will work
00:47:51DefilerStill, it should be easy to translate
00:47:51evanactually, hell
00:47:56evani could make this work with Rubinius.asm
00:47:59DefilerWe should just patch ragel and submit it
00:48:03evantotally.
00:48:10DefilerTo use the new generator style
00:48:10evani love this.
00:48:37Defilerragel.push :self
00:48:38Defilerheh
00:48:42luislavenaDefiler: can you apply this and see if it passes? (spec/ruby/1.8/core/dir) http://pastie.caboo.se/185839
00:48:52Defilerluislavena: Sure
00:49:08d2dchat enters the room.
00:49:31luislavenaDefiler: thank you, will work setting my jeos/ubuntu install this weekend (don't have one in my notebook) :-P
00:49:56TheProkrammerFound an LGPL'd win32 implementation of ucontext... any issue with incorporating it into rubinius?
00:50:27benburkert leaves the room.
00:51:01evanTheProkrammer: go for it.
00:51:09evanucontext is going to be simplified in the new vm
00:51:10Defilerluislavena: running it now
00:51:17evanfyi.
00:51:28luislavenaDefiler: (drums) :-P
00:51:57bitbang_ leaves the room.
00:52:40agardinerheya Defiler - are you looking at the cvar issue, i.e. @@foo ||= ...?
00:52:48evancrap!
00:52:52Defileragardiner: Yeah. I have it fixed but not pushed
00:52:57evanhow to i have ragel use this rbx awesomeness...
00:53:06Defilerluislavena: An exception occurred in loading spec/ruby/1.8/core/dir/unlink_spec.rb:
00:53:09DefilerNameError: "undefined local variable or method `tmp' for DirSpecs"
00:53:17agardinerok great - hacked around it in ruby-debug for now...
00:53:24Defilerhrm let me make sure I am updated though
00:53:25bitbang enters the room.
00:53:49luislavenaDefiler: was a few revisions back by brian, maybe is not there :-P
00:53:58agardineris playing around with getting Rubinius to run ruby-debug...
00:55:14luislavenaTheProkrammer: what are you using to build rubinius? (I know, mingw, but which implementation).
00:56:10TheProkrammerluislavena: cygwin actually.
00:56:32TheProkrammergcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
00:56:35luislavenaTheProkrammer: really? wow
00:56:47luislavenadoesn't remember last time he used cygwin :-P
00:56:50evanHAHAHA
00:57:00evangot ragel to output rubinius specific .rb files.
00:57:05evanit's.... interesting.
00:57:07TheProkrammerluislavena: cygwin is what keeps me sane on windows :)
00:57:08evanto say the least.
00:57:24luislavenaevan: "interesting" .... hmnnn :-D
00:57:38evanbasically, he only outputs
00:57:44luislavenaTheProkrammer: I take meds and lot of pills for that.
00:57:44evanRuby.asm "goto <some label>"
00:58:07evanie, he's using goto in ruby.
00:58:09luislavenas/take/inject
00:58:30evanwow
00:58:32evanthis is so...
00:58:43evani'm not sure i have the words.
00:58:51evanthis is almost as cool as getting eval working.
00:58:53tarcierisweet?
00:59:11tarcierievan: if you want to play around with generating the Ruby I can just check in the raw Ragel file
00:59:15d2dchat leaves the room.
00:59:21evanthough, this file confuses me
00:59:22DefilerThat sounds like an awesome idea
00:59:25evani think it must only work on C
00:59:30benstiglitz leaves the room.
00:59:30evanbecause it's got chunks of C code mixed with ruby
00:59:38evanso the atoi.rl only works with the C host language
00:59:42tarcieriwhat'd you use for input?
00:59:49evanatoi.rl
00:59:51evanyep,
00:59:57evanlooks like it's got C code chunks embedded.
01:00:06Defilerrad
01:00:18d2dchat enters the room.
01:00:20evansuper rad.
01:00:23tarcieriyeah, the language-specific stuff needs to be modified
01:00:31tarcieriwhat version are you playing with?
01:00:35evan6.1
01:00:38evanjust downloaded it.
01:00:41tarcierithe Mongrel parser needs Ragel 5 atm :/
01:00:47evannow... how to make this work with the current compiler...
01:00:51evantarcieri: oh, ok.
01:00:54Defilertarcieri: why?
01:00:55tarcierishould be easy to fix, but uhh
01:01:02tarcieriDefiler: it still uses %% write eof
01:01:09tarcierito put the machine into a finished state
01:01:29tarcieriapparently there's an execution variable you're supposed to do something with now
01:01:32tarcieribut I can't find any docs on it
01:01:44evanponders.
01:01:47DefilerI'll bet the guy who added rubinius support to ragel could help
01:01:59luislavenatarcieri: ragel 5 to 6.1 shown a few "glitches" for us (mongrel-dev team).
01:02:20tarcieriluis: I was using the latest version of the parser... looks like it's still for 5.x
01:02:42Defilerluislavena: http://rafb.net/p/2D928v23.html
01:03:11lopex leaves the room.
01:03:23drbrainDefiler: needs the absolute path trick
01:03:36drbrainI think an expand_path is the proper trick
01:03:53evanWIERD.
01:04:03evani just got a tweet for someone that i'm not following
01:04:08evanbecause they did @evanphx in the tweet.
01:04:15evanbut in only shows up in twitterific....
01:04:16evanodd.
01:05:17luislavenadrbrain: funny, it already does in common (@mock_dir = File.expand_path(tmp('mock')))
01:06:01luislavenaDefiler: not bad at all anyway, to almost broke the build ;-)
01:08:46jtoy enters the room.
01:09:48agile enters the room.
01:10:22ezmobius_ enters the room.
01:11:20loincloth enters the room.
01:12:19evanmuhah
01:12:29evanthis is going work perfectly.
01:13:11obiejuan_ leaves the room.
01:14:35benny leaves the room.
01:15:03benburkert enters the room.
01:16:06Defilerluislavena: Is that error enough to help you create a fix?
01:16:31d2dchat leaves the room.
01:16:45boyscout1 commit by Wilson Bilkovich
01:16:46boyscout * Rewrite descriptions of language/def specs; 98b0c44
01:16:58Defilertired of having that at the head of the branch all the time
01:16:59Defilerheh
01:17:33luislavenaDefiler: yes, it will for the time being :-)
01:17:38luislavenaDefiler: thank you :-)
01:18:00luislavenalooking with good eyes installing andLinux instead of full VM
01:18:31d2dchat enters the room.
01:18:51TheProkrammerWow.. man... lots of stuff not defined on cygwin... annoying.
01:18:55RyanTM enters the room.
01:21:35obiejuan enters the room.
01:22:29d2dchat leaves the room.
01:23:27jtoy leaves the room.
01:24:36boyscout1 commit by Tony Arcieri
01:24:36boyscout * Pure Ruby Mongrel HTTP parser generated with Ragel; 8687326
01:24:55evansweet!
01:25:15tarcieriguaranteed to be broken in some way!
01:25:20tarcieribut it works well enough on MRI
01:25:26GMFlash leaves the room.
01:25:31evancool.
01:25:36tarcieriI'll run it by the Mongrel mailing list and see if I could actually write specs for it :O
01:25:49obiejuan leaves the room.
01:26:52yugui enters the room.
01:26:52tarcierievan: right now it's storing the entire parser as instance specific data *groan*
01:27:02evanhehe
01:27:03evanoh well.
01:27:06evanit did that before too
01:27:14tarcieriI don't think it was ever intended to be used in a class, only in a module
01:27:35evanok
01:27:47evannow i need a .rl file that will output ruby and work
01:27:55evanie, not use C inline
01:27:55tarcierithat does
01:28:03tarcieri100% C free!
01:28:15tarcieriyou'll most likely need to move %% write data; out of #initialize
01:28:16evanit's complicated though.
01:28:20evani just need a super basic one
01:28:23evanto test my ragel patch
01:28:24tarcierioh
01:28:37tarcierihttp://www.devchix.com/2008/01/13/a-hello-world-for-ruby-on-ragel-60/
01:30:17evanoh damn.
01:30:26evanneed to make it simpler.
01:30:30evanok, take 2
01:30:54ezmobiusevan: http://github.com/bruce/keyword_search/tree/master
01:31:03ezmobiusthat one has a ragel parser that generates only ruby code
01:31:37ezmobiushttp://github.com/bruce/keyword_search/tree/master/lib/keyword_search.rl
01:32:07crafterm enters the room.
01:32:38evani found a dirt simple one
01:33:16obiejuan enters the room.
01:33:30benny enters the room.
01:34:10ezmobiusman no wonder rails is so slow..
01:34:10ezmobiusthis is pretty twisted..., we have a mongrel request wrapped in a rack env wrapped in a Rack::Request object wrapped in a CGIWrapper object wrapped in a CgIRequest object before the rails controllers get at the request object
01:34:30evanman, we need to use the execute.rb plugin more
01:34:31evanit's sweet.
01:34:32rubuildius_amd64Tony Arcieri: 868732662; 2091 files, 6666 examples, 23382 expectations, 0 failures, 0 errors; http://rafb.net/p/lS3syc65.html
01:34:33rubuildius_amd64Wilson Bilkovich: 98b0c4405; 2091 files, 6666 examples, 23382 expectations, 0 failures, 0 errors; http://rafb.net/p/7c1Ddx17.html
01:34:46evanezmobius_: geez.
01:34:58zenspiderevan: ragel patch?
01:35:04evanyep
01:35:11evanragel, it seems, has a rubinius mode.
01:35:15evancrazy eh.
01:35:20evanit uses compiler1 semantics
01:35:22tarcieriezmobius: hahaha
01:35:32evani'm writing a quick patch for it to use the current compiler semantics
01:35:40kw leaves the room.
01:36:03twbray leaves the room.
01:36:13dlee leaves the room.
01:36:49nkpart enters the room.
01:37:31luislavena leaves the room.
01:39:03rubuildius_ppcTony Arcieri: 868732662; 2091 files, 6668 examples, 23408 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185867
01:39:04rubuildius_ppcWilson Bilkovich: 98b0c4405; 2091 files, 6668 examples, 23408 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185865
01:47:52Defilersweeet.. I just got a badass error
01:48:18Defilerhttp://rafb.net/p/QSodga73.html
01:50:58evannice.
01:52:19benburkert leaves the room.
01:53:53evanOOH
01:53:56evanso close!
01:54:02evanalmost got the ragel patch working.
01:56:21evanhrm.
01:56:37evannow i'm hitting where ragel isn't doing the right thing for some reason.
01:56:41evaner. rubinius.
01:56:53bburcham enters the room.
01:58:14tarcierievan: that will be so damn cool when you get it working
01:58:27evanthe code ragel outputs is weird
01:58:31tarcieriindeed!
01:58:33evani'm thinking about write a new output mode for it
01:58:41tarcierithat'd probably be helpful
01:58:45evanrather than using class << self; attr_accessor; end
01:58:47evaneverywhere
01:58:49tarcieriyeah
01:58:58evanjust have it output a class that you make an instance
01:59:04tarcierinice
01:59:28tarcierievan: that stuff doesn't work on Rubinius since it makes all the :foo= methods private
01:59:36tarcierithen assigns values to them with self.foo = ...
01:59:36boyscout3 commits by Wilson Bilkovich
01:59:37boyscout * Merge branch 'cvar'; 82c79a1
01:59:37evanaoeunaoehtnaeohuthaoentuhaeot'nuhnaoeutnaoehuntaoehtnuhaoentuhntaeo'huntaeountoaehunteoahunhntu
01:59:38boyscout * Fix incorrect behavior for @@cvar ||= value; 02fef4c
01:59:39boyscout * Spec for using ||= to initialize a class variable; 24785f7
01:59:41tarcieriwhich rbx doesn't like
01:59:42evanIT WORKS!
01:59:48tarcierinice
01:59:48DefilerOops. Sorry about the merge commit
01:59:48tarcieriheh
02:00:37dfg59 enters the room.
02:01:32evanwooo!
02:01:48evani wonder if this simple one actually has state transitions though...
02:01:57jtoy enters the room.
02:02:05benny leaves the room.
02:02:06agardinerDefiler: thanks!
02:02:53Defileragardiner: no problem. needed a break from method defs
02:04:11obiejuan leaves the room.
02:04:39dfg59 leaves the room.
02:06:22zenspiderDefiler: awesome. thanks for that fix
02:06:59enebo leaves the room.
02:07:13Defilera pleazure
02:07:33rubuildius_amd64Wilson Bilkovich: 82c79a1ec; 2091 files, 6667 examples, 23383 expectations, 0 failures, 0 errors; http://rafb.net/p/lIh81f72.html
02:10:35benburkert enters the room.
02:12:17rubuildius_ppcWilson Bilkovich: 82c79a1ec; 2091 files, 6669 examples, 23409 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185875
02:12:31agardinersweet! got ruby-debug running far enough to get to a command prompt!
02:12:31zenspiderhttp://rafb.net/p/t85ZYt20.html YAY
02:14:21zenspidernice!
02:14:22evansending in ragel patch to support current rubinius compiler!
02:14:31loincloth leaves the room.
02:17:29smparkes leaves the room.
02:18:18smparkes enters the room.
02:20:01bitbang leaves the room.
02:20:12obiejuan enters the room.
02:20:22dfg59 enters the room.
02:25:58headius enters the room.
02:28:28headius_ enters the room.
02:32:12VVSiz_ enters the room.
02:33:42wycats_ leaves the room.
02:33:58Santana_ enters the room.
02:34:51headius__ enters the room.
02:38:48benburkert leaves the room.
02:38:59kw enters the room.
02:39:48RyanTM_ enters the room.
02:39:57bburcham leaves the room.
02:40:31vertiginous enters the room.
02:40:31VVSiz leaves the room.
02:42:47dblack enters the room.
02:42:55RyanTM leaves the room.
02:42:59headius leaves the room.
02:45:27headius_ leaves the room.
02:47:29ruivaldo enters the room.
02:55:19twbray enters the room.
02:56:22dfg59 leaves the room.
03:14:16bitbang enters the room.
03:16:03ruivaldo leaves the room.
03:17:53twbray leaves the room.
03:22:41samsarin enters the room.
03:23:11wycats enters the room.
03:25:03benburkert enters the room.
03:27:36TheProkrammerbah... can't get networking stuff to link up right...
03:31:18crafterm leaves the room.
03:33:48obvio leaves the room.
03:35:01ezmobius_ leaves the room.
03:35:01ezmobius leaves the room.
03:37:50rueDang. There are 200 people signed up for rubinius-dev
03:41:16obvio enters the room.
03:42:49boyscout1 commit by Evan Phoenix
03:42:50boyscout * Some bug fixes, found while debugging ragle; d7e27a7
03:43:10therealadam_ enters the room.
03:44:04evanman, i can't spell ragel
03:44:07evani always do ragle
03:44:09evanwhatever.
03:44:31evanseriously though, we need to do more with execute.rb
03:46:09samsarin leaves the room.
03:46:44TheProkrammercurses.
03:46:49headiusevening
03:47:18dblack leaves the room.
03:48:21obiejuan leaves the room.
03:50:17TheProkrammerheadius: heyya
03:51:40rubuildius_amd64Evan Phoenix: d7e27a745; 2091 files, 6667 examples, 23383 expectations, 0 failures, 0 errors; http://rafb.net/p/r9rRHz41.html
03:52:01therealadam leaves the room.
03:53:00evanevening.
03:53:42brainopia enters the room.
03:55:42rubuildius_ppcEvan Phoenix: d7e27a745; 2091 files, 6669 examples, 23409 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185926
03:58:28ezmobius_ enters the room.
04:00:07bitbang leaves the room.
04:14:30ezmobius_ leaves the room.
04:17:19lstoll_ leaves the room.
04:17:39tarcierievan: where'd you get with Ragel?
04:18:10tarcieri(this is seriously some awesome shit, btw)
04:18:50tarcierioh, guess you submitted a patch?
04:18:53tarcierinice
04:19:19headiuswhat's up with ragel
04:20:01tarcieriafaik, evan just submitted a Ragel patch for doing goto-driven FSMs using compiler2 semantics, but uhh, you might want to confirm with evan :)
04:20:27tarcierilike uhh, goto w\ Rubinius asm
04:21:59tarcieriand for all the CI bots here, it'd sure be nice to have ones with !next <nick> <msg>
04:21:59tarcieriheh
04:22:37headiusnot sure I understand
04:22:52headiusa ragel feature just for rubinius?
04:23:23tarcieriyeah, a way to output a goto-driven FSM that might actually be quasi-performant
04:23:37tarcieriI haven't even tried the goto-driven FSM on Ruby otherwise
04:23:41tarcierino idea how it would work, heh
04:23:44tarciericallcc maybe?
04:24:36headiuswell that certainly wouldn't perform
04:24:56tarcieriI'd hope it performs better than the table-based FSMs it spits out by default :)
04:25:08tarcierithat do all table lookups through funcalls!
04:25:24headiuscallcc is dead slow in mri at least
04:25:28tarcierihaha
04:25:31tarcieriwell screw MRI
04:25:47headiusand on yarv
04:25:56tarcierithe best solution for MRI/YARV is a C extension
04:26:10tarcieriwith Rubinius: there may be an alternative!
04:26:11tarcieri*gasp*
04:26:25headiuswhat alternative?
04:26:50tarcieriwell, for now, use Rubinius ASM to do a goto-driven FSM
04:27:32headiusis this goto within a given method?
04:27:38tarcieriyes
04:27:58headiuswell that much is possible on the JVM as well...not sure I understand why it would be something new
04:28:04tarcieriheh
04:28:12tarcieriI'm sure it could target YARV bytecode too
04:28:59tarcieriI think the point is that there's a lot more optimization opportunities than afforded on, say, 1.8
04:29:33MenTaLguY enters the room.
04:29:34tarcieriRagel already targeted the compiler1 stuff... evan just updated it
04:29:38MenTaLguYhello
04:29:45MenTaLguYevan: what's your thinking on m:n threads these days?
04:29:46tarcieriand I'm sure if he wanted to he could massively improve it
04:30:02tarcierilikes the LWP == VM idea a lot
04:30:53tarcieriit's (almost) shared nothing
04:31:00MenTaLguYme also
04:31:07headiustarcieri: I look forward to these optimization opportunities :)
04:31:08MenTaLguYI think it's going to be a benefit on more NUMA systems
04:31:16tarcieriMenTaLguY: for sure
04:31:18TheProkrammerhmm looks like I'm going to have to implement getaddrname and gai_error on cygwin... poo.
04:31:23tarcieriand that's all that really matters to come
04:31:27tarcieriwhat with QuickConnect
04:31:33tarcieri(and HyperTransport)
04:32:11RyanTM_ leaves the room.
04:32:13tarcieriEverything's gonna be NUMA soon
04:32:24tarcieriat least as far as your everyday computer
04:34:45tarcieriIntel finally got their shit together
04:34:50tarcieriright about the time the market demanded it
04:35:02tarcierithey seem to have an uncanny ability at doing that
04:36:59jicksta leaves the room.
04:43:06evanMenTaLguY: my feeling on m:n is that they're hard
04:43:12evanbut that we'll support them eventually most likely.
04:43:44agardinerdang! there's still a bug of some description with cvar ||=...
04:43:57agardinerDefiler: you around?
04:47:55agardinerpastie
04:48:19pastiehttp://pastie.org/185955 by agardiner.
04:48:29evannew cpp code is in.
04:48:38tarcierievan: or... promote solutions for distributing your program across VMs :)
04:48:39evanthe instruction test stuff is in place now.
04:48:41agardinerthat shows the problem with cvar ||=
04:48:51agardinerseems to be some interaction of that and class << self
04:51:59Santana_ leaves the room.
04:52:26headiusevan: why m:n rather than just native threads first
04:55:23tarcieriwhy more than one native thread per VM? :)
04:57:08MenTaLguYheadius: that makes every thread very expensive compared to user threads or m:n
04:57:13tarcierithe way I see it: you have 3 tiers... Erlang on BEAM, which manages throughput between stacks/context/whatever in the millions of messages per second (on my computer), Scala on the JVM which manages throughput between stacks/contexts in the hundreds of thousands of messages per second, and Rubinius which is presently in the tens of thousands of messages per second
04:57:33headiusyes, and I'm certainly all for doing the best thing possible, but perhaps it would be better to take steps towards it first
04:57:43tarcierithe JVM has had over a decade of development to get to fine grained locking
04:57:58tarcieriand Erlang still kicks its ass
04:58:32tarcierimaybe if you just require people structure their programs ever so slightly differently from your typical threaded system they'll perform better without a decade+ of work
04:58:44headiusyou're pretty cocky
04:58:49tarcieriheh
04:58:57tarcieriI'm just trying to be pragmatic
04:59:00headiuslast I heard Java on JVM was a hell of a lot faster than erlang
04:59:08tarcierifaster at what?
04:59:13headiusexactly
04:59:16tarcieriheh
04:59:20tarcieridon't get me wrong
04:59:29tarcierithe JVM is probably the most advanced VM there is
04:59:40tarcieriI *REALLY* don't like their approach to concurrency
05:00:20tarcieriit's an approach that made sense in the 90s
05:01:25headiusyes, well, things change, and the jvm isn't standing still either
05:01:34evandrbrain: you around?
05:02:34lstoll enters the room.
05:02:45headiusit's entirely feasible we're going to have a JVM within the next year that does all it does now and also has optimized dynamic invocation, continuations, intrinsic tuples, and a lot more
05:02:49tarcieriheadius: I think Scala does a nice job with it, it's just that the underlying architecture is still ridden with lots and lots of locks and context switches and other things which get in the way
05:03:18MenTaLguYI think the main thing is to modify the JVM so that the Scala model can be implemented without explicit continuation passing
05:03:33MenTaLguYthe rest can be worked on in a more transparent fashion
05:03:35headiusand that's certainly possible
05:03:38tarcieriheadius: That'd all be great, but in the end it's really nice to have a pre-emptive user context that you can load-balance across hardware threads as the main concurrency primitive in the VM
05:04:13tarcieriif you can do that, then your program runs N times faster on N cpu cores
05:04:28headiusas is that...with switch profiling a bytecode-based VM implemented atop the JVM could provide user threads and probably be a lot faster than erlang
05:05:12tarcieriheadius: for all the years Java has had at optimizing execution of code in sequence, Erlang has spent optimizing execution of code in parallel
05:05:13headiusit's a matter of there being a demand for such features, and they can happen...from talking with john rose, I don't think there's anything he would find impossible
05:06:10headiusI hope you're not going to tell me erlang is going to overtake the JVM ;)
05:06:14tarcierigod no
05:06:31tarcierihowever, if your intended model is user contexts that communicate with asynchronous messages, you're going to have a really hard time beating Erlang
05:06:48crafterm enters the room.
05:06:52evanheadius: i didn't say m:n before native threads sharing heap
05:07:05tarcieri:( @ native threads sharing heap
05:07:12Defileragardiner: back
05:07:17headiusgood, glad there's someone thinking practical here
05:07:30tarcieriheh
05:07:43Defileragardiner: Yeah, I suspect that is the same bug that I am already working on
05:07:48agardinerah, ok
05:07:53evangetting things shored up in the VM to run native threads with a shared heap is the first step of getting m:n anyway
05:08:01evanit's a natural first step
05:08:02DefilerI think it is going to be simple.. but I want to have a lot of spec coverage on it first
05:08:03trythil leaves the room.
05:08:06agardineri've managed to determine there is no difference in the bytecode for the settings_map method
05:08:33agardinerdo you want me to add this as a test case?
05:08:35tarcieriheadius: Erlang sucks at CPU bound tasks
05:08:42tarcieriheadius: JVM FTW in that case
05:08:48agardineror i suppose you could, since you've got the pastie... :-)
05:09:32tarcieriheadius: However, NIO is an abortion, MINA is a nice try at building a sane Reactor on top of it, and as far as concurrent I/O processing goes BEAM/HiPE blows the JVM out of the water
05:09:47evanabortion?
05:09:47headiusNIO is far from an abortion
05:09:53headiusyou don't know what you're talking about now
05:09:58evanaboration?
05:10:05tarcieriheh
05:10:22tarcieriheadius: Have you ever looked at how Erlang handles network I/O?
05:10:27tarcieriit's *beautiful*
05:10:36headiusyes, I'm sure it's the bees knees
05:11:02tarcieriheadius: MINA is pretty cool
05:11:19tarcieriheadius: MINA is... NIO made sane
05:11:22therealadam_ leaves the room.
05:11:50tarcieriheadius: I would not say that the NIO API is very useful when used directly in the general case
05:12:15tarcieriit's performant but very ugly
05:12:24headiusI would not say erlang's syntax is very useful when used directly either
05:12:31headiusbut you can't judge based on that
05:12:33tarcierilol
05:12:35tarcieritouche
05:13:41tarcieriwhen it comes right down to it, I think Reactor is pretty ugly too
05:13:44tarcieridue to inversion of control
05:15:52Defileragardiner: please feel free to add it as a spec
05:15:58DefilerI was reading all the scrollback I missed. Heh
05:18:02agardinerok, np... which spec should it go in though?
05:18:57DefilerI've got a semi-similar one that is going to go in language/def_spec..
05:19:05Defilerso maybe you should put your version elsewhere
05:19:39agardinerhmmm... so what exactly is the problem my spec will show? :-)
05:19:51Defilermaybe class_variable_spec? To assert that a class variable reference in the metaclass finds the cvar in the class itself
05:20:05agardinerah, ok - that makes sense
05:20:17vertiginous leaves the room.
05:21:55agardinergeez, class_variable_spec is pretty minimal!
05:22:22tarcieriMenTaLguY: oh, I've been meaning to ask you
05:22:27tarcieriI know you're a fan of join calculus
05:22:32tarcierihave you looked at JoCaml at all?
05:23:30evanhm
05:23:34evangetting one failure on linux
05:23:43evanlooks like a DRb bind problem
05:23:52evanhttp://ci.rubini.us/ci/1209010907.M853302P2089.hoshi.fallingsnow.net.html
05:23:59DefilerProbably the usual race thing
05:24:04MenTaLguYtony: yeah
05:24:12Defilerwhen two pushes happen almost back to back
05:24:25evanhuh?
05:24:33evanwhy would that matter?
05:24:50Defilerwell, only one process can bind to a given ip on a given port
05:24:51tarcieriMenTaLguY: have you thought about pursuing join calculus in Ruby?
05:24:56evanDefiler: yes, i know.
05:25:02evanbut there isn't anything else bound to that port.
05:25:11Defilerwhen two CI runs are going at the same time, there are problems
05:25:35headiushmm, gotta go, bbl perhaps
05:25:36MenTaLguYtony: actually one of the first things I committed to Rubinius was a join calculus implementation
05:25:45tarcieriorly
05:26:00MenTaLguYtony: however the API kind of sucked and it was also beyond what was actually implemented in Rubinius as far as language features at the time
05:26:07tarcieriheh
05:26:10MenTaLguYI'm planning on trying again soon based on my experience implementing joins in JRuby
05:26:18tarcierinice
05:26:23djwhittevan: you guys going to setup bot(s) for the new ci system?
05:26:35evanyeah
05:26:44evani'm doing black box testing
05:26:49evani'm the first user
05:26:59evanfound a few bugs.
05:27:04djwhittah, so they're sending messages to you?
05:27:11evanyeah
05:27:23evanthey post a yaml payload to a cgi running on git.rubini.us
05:27:30evanand a crontab picks up the data and writes out the reports
05:27:37djwhittcool, not that I mind running a bot, but it's probably best if you guys have access to them
05:28:19evanyeah, we totally love you guys running them
05:28:31evanbut we're trying to get a handle on running them on hosts we have access to
05:28:38djwhittyeah, makes sense
05:28:40evanfor platforms we need to be on top of
05:31:45evanok, i'm putting in a bug to fix the DRb.start_service race condition
05:31:45benburkert leaves the room.
05:31:47evanwe can't have that.
05:33:57MenTaLguY leaves the room.
05:34:45trythil enters the room.
05:34:53benburkert enters the room.
05:34:54dfg59 enters the room.
05:35:58wmoxam enters the room.
05:39:48dfg59brixen: thanks for the help getting started last night. i have a patch i want to submit and wanted to run through the process with you real quick if you have time. my first patch here.
05:43:36headius leaves the room.
05:44:14boyscout1 commit by Evan Phoenix
05:44:15boyscout * Fixes to get ci.rb running on linux; 6eee633
05:44:47agardinerDefiler: so i added a couple of metaclass examples...
05:45:00agardinerand i'm getting a failure on the superclass for class << self
05:45:10agardinerits returning a MetaClass, instead of Class
05:45:17agardineris that the bug you are working on?
05:46:04agardiner...or have i stuffed up the spec :-)
05:48:23brixendfg59: sure, best bet would be to post a ticket on LH
05:48:41dfg59brixen: alrighty, will do
05:49:11brixendfg59: also, you can mention it here to get people's attention :)
05:49:17brixenticket #
05:49:45dfg59alright, will do, it's a fix for File.join dealing with recursive arrays, i'll post the ticket #
05:50:09brixenk
05:50:47nicksieger leaves the room.
05:51:06evanhm, now getting a failure of Singleton.new
05:51:11evanthats not a race, right?
05:51:17nicksieger enters the room.
05:51:38brixenevan: that is an odd failure
05:51:43rubuildius_amd64Evan Phoenix: 6eee6331d; 2091 files, 6667 examples, 23383 expectations, 0 failures, 0 errors; http://rafb.net/p/Wgvrzz20.html
05:51:47brixenI got it several times today, and only a rake clean build fixed it
05:51:53evanbtw, http://ci.rubini.us is live.
05:51:54brixendidn't have time to debug
05:52:12evani've got it running incremental on linux on the macmini
05:52:26brixenevan: what os for linux?
05:52:31evanubuntu
05:52:31brixenor distro
05:52:34brixenk
05:52:37evanthe 8.whatever beta
05:52:41brixenk
05:52:43evansince tomorrow 8.real comes out
05:52:54brixenheh, just when I got 7.10 working
05:52:58evan:)
05:53:49brixenheh hardy heron
05:53:55brixenwhat will i be
05:54:35benburkert leaves the room.
05:54:54brixenhmm ff3 is default
05:55:53benburkert enters the room.
05:57:08rubuildius_ppcEvan Phoenix: 6eee6331d; 2091 files, 6669 examples, 23409 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185976
05:58:06dfg59when i run a git format-patch where are the patch files placed?
05:58:16wyhaines leaves the room.
05:58:25evandfg59: in the current directory
05:58:33evandfg59: but you have to tell it how many patches to make
05:58:37evaneasiest is to do
05:58:40evangit format-patch origin
05:58:52dfg59should i specify the patch hash?
05:58:54evanwhich indicates it should generate patch files for all commits that aren't in origin
05:58:54tarcierican't wait for Ubuntu Irascible Ibex
05:58:57dfg59sorry, the commit hash
05:59:06evandfg59: it's how far back
05:59:09evannot a particular one
05:59:10evani think.
05:59:13dfg59ah, i see
05:59:27dfg59oh, right, it's the previous hash i have to specify, doh
05:59:33brixentarcieri: is that I?
05:59:42brixentarcieri: I mean, has that already been selected?
05:59:56tarcierino
05:59:56tarcieriheh
06:00:00brixenheh
06:00:18dfg59evan: that did the trick, thanks
06:00:37evandfg59: np
06:03:36DefilerAwesome. I've found four kinds of method definitions that we don't handle correctly
06:05:52evanhttp://rubini.us/lh now redirects to lighthouse
06:06:01evanbecause the url for lighthouse is too damn long.
06:06:14dfg59ok, ticket #513 has been created for a patch to File#join to deal with recursive arrays
06:06:29brixenevan: sweet
06:07:39headius enters the room.
06:09:46brixendfg59: I've only briefly glanced at your patch, so this might be off base, but did you see RecursionGuard kernel/core/misc.rb?
06:09:56headiusevening again
06:10:03brixenevening headius
06:10:05dfg59brixen: yes, that seemed to be causing the issue
06:10:13boyscout1 commit by Wilson Bilkovich
06:10:14boyscout * Add specs for nested method definitions and other complex scenarios; ff3756e
06:10:16brixendfg59: ah ok
06:10:26Defilerevan: OK. I think that covers everything from today
06:10:30dfg59brixen: RecursionGuard was raising the error as it would not allow flattening of recursive arrays
06:10:35Defilerevan: we fail 4 of those specs currently
06:10:39evanchecking now.
06:10:47brixendfg59: k
06:11:08brixendfg59: I admit, I've never contemplated calling File.join on a recursive array :)
06:11:22brixenI wouldn't begin to know what behavior to expect
06:11:26dfg59brixen: who has :) the behavior is even more bizarre
06:11:31brixenheh
06:11:47headiusthat was surprisingly fast
06:11:48dfg59it essentially goes one level into the recursion then replaces the recursive element with the string '[...]'
06:11:53headiuser, misfire
06:12:19brixenheadius: 0 to patch in 3.49 minutes
06:12:30headiusheheh
06:12:36headiusI was talking about openjdk build
06:12:41headiustook only about 30 min
06:12:43brixenoh nm then
06:13:06evanDefiler: ha! nice.
06:13:13evanclass; class <<; def; def
06:13:13brixenlet's hope we don't intend to compete with openjdk builds :)
06:13:15evanthats a good one.
06:13:23brixenoh god
06:13:43evan__add_method__ to the rescue!
06:13:53brixengoes to boggle
06:14:07Defilerbrixen: See if you like what I did to that file, actually
06:14:42DefilerThis file is a syntax highlighting hellscape
06:14:48DefilerTruly an editor test
06:14:49agardinerhehe
06:15:13evanthat would be an awesome name for a code refactoring/viewing browser
06:15:15evanhellscope
06:15:18DefilerYou would be surprised by how confused some editors get by simple invocations like: def a.foo(x = ($foo_self = self; nil)); 5 ;end
06:15:59agardinerso, tell me, is this correct for Rubinius? class A; class << self; self; end.should == Class; end
06:16:08Defileryes
06:16:17zenspidersimple?
06:16:20agardinerok, cause that fails at present
06:16:25evanwell
06:16:27Defileryep
06:16:30evan.should be_kind_of(Class)
06:16:35evanit's a MetaClass object.
06:16:41evanwhich is a Class subclass
06:16:50Defilerin MRI it is == to the class
06:16:51agardinersorry, my bad
06:17:13agardinerthat should have been class A; class << self; self; end.*superclass*.should == Class; end
06:17:13evanno prob
06:17:19agardinerright?
06:17:29evanimp
06:17:30evanum
06:17:31evanno
06:17:36evanuse .should be_kind_of()
06:17:59evanzenspider: make some changes to ci.rb
06:18:10evani YAGNI'd the CGI_URL regex
06:18:12Defileroh, huh. You are right.
06:18:28Defilerinteresting.
06:18:28evanand changed the git url to the anonymous one for all operations.
06:18:49agardinerDefiler: who is right? :-S
06:18:50DefilerThe self of the metaclass body and the self of the methods that get defined there.. that distinction is pretty interesting
06:19:04zenspiderevan: yagni'd?
06:19:07evanremoved.
06:19:44Defilerfor example, this code passes on 1.8.6: http://rafb.net/p/nCXCSD56.html
06:20:03evanDefiler: yes, the methods aren't added to self.
06:20:09zenspiderOK... I had that in there because we're really close to having a 100% generic git CI system
06:20:10Defilerright
06:20:16zenspiderbut if you want to yank it, that's fine
06:20:17brixendfg59: ok, long day so bear with me: in if recursive_index, doesn't the 2nd assignment to clean_part[recursive_index] just overwrite the 1st?
06:20:28evanzenspider: people probably wont follow the URI convention anyway
06:20:29zenspiderI need a new package name for miniunit
06:20:33evanzenspider: so they'd always override it
06:20:35dfg59brixen: ok, so here's what happens
06:20:52dfg59first, we need to replace the recursive element with the string '[...]'
06:20:56Defilerwall unit
06:21:00zenspiderevan: so what changes do you want me to make?!?
06:21:04evannone
06:21:06evanjust a heads up.
06:21:08dfg59upon replacing it, we need to add one level of recursion, hence the second assignment
06:21:20Defilerzenspider: You should call it The Intimidator
06:21:23zenspiderevan: you said make changes to ci.rb ?
06:21:25dfg59i have no idea why those are the expected results, but that's what the spec wants and how MRI behaves
06:21:25evani did
06:21:27brixenzenspider: I think that was a s/make/made/ :)
06:21:31evanzenspider: oh noo
06:21:34zenspiderah
06:21:34evanzenspider: i said i made changes.
06:21:56evanprobably my typelexia again
06:22:46zenspiderso, I've added mini/spec.rb and mini/mock.rb to mini/test.rb... and it all comes in at < 1000 loc including tests (I need to write some for spec)...
06:22:49dfg59so, yes, we are replacing the first assignment, but with itself, which now has the string rather than the recursive element... confusing to type :)
06:22:54zenspiderso I can't call it miniunit anymore
06:23:01zenspiderI was thinking "mini de sade"
06:23:07brixendfg59: heh, confusing to parse the code
06:23:09zenspiderto go with the vlad theme / precident
06:23:13rubuildius_amd64Wilson Bilkovich: ff3756e17; 2091 files, 6673 examples, 23401 expectations, 0 failures, 0 errors; http://rafb.net/p/jiBe3j29.html
06:23:15brixendfg59: I'll look at it in the debugger
06:23:32rubuildius_ppcWilson Bilkovich: ff3756e17; 2091 files, 6675 examples, 23427 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/185993
06:23:39Defilerminihorde
06:23:55zenspiderhaha
06:24:03zenspiderI kinda like that
06:24:06dfg59brixen: k, let me know if it is too "clever" and i can take another cut. tried to refactor it as much as possible, it's just tricky dealing with the recursive references, hence the necessity to dup
06:24:12zenspidercould have a good logo too
06:24:19brixenprecedent?
06:24:24brixenheh
06:24:49brixenribs zenspider for ribbing evan about spelling
06:25:06evannah, it's cool.
06:25:12evanmy spelling is terrible.
06:25:21evani can't even sound out words.
06:25:30brixenheh
06:25:30evanit seems to be a skill my brain just can't process.
06:25:37brixenhooked on phonics
06:25:41evannever worked!
06:25:46evani can read and speak fine.
06:25:59zenspiderI've always had a hard time with e/i
06:26:07lopex enters the room.
06:26:27zenspideresp when I'm thinking 4-5 words ahead of the fingers
06:26:36evanthe spelling part of my brain seems to be sub let to the spacial memory portion, since i can tell you the layout of hotel rooms I said in years ago.
06:26:51evanstayed
06:26:52brixenhah
06:26:53evansee!
06:26:54dfg59heh
06:27:10Defilerevan: So, tell me if this is naïve, but it seems like we just aren't setting the proper StaticScope for the current CompiledMethod when class << self comes along
06:27:14brixenwell, laughter is supposed to be great for your health
06:27:20brixenI'm getting a good dose today
06:27:20evanDefiler: nice unicode.
06:27:26evanbrixen: :)
06:27:36evanDefiler: thats exactly right.
06:27:51DefilerOK, so it really is one thing to fix instead of two
06:28:00evanvery likely.
06:28:02evanwell
06:28:15evani think that the static scope inside instance_eval has to be adjusted too
06:28:41headius leaves the room.
06:28:56DefilerSo, we need an "adjust static scope to be metaclass" thing that they both can use.
06:29:04evanactually!
06:29:15evanwe just need to define MetaClass#__add_method__
06:29:15DefilerPresumably you added this three months ago
06:29:16evandone and done.
06:29:23Defileroh hoh
06:29:30evansince inside class << self, it's an instance of MetaClass
06:29:39DefilerSo it's getting called there but using the superclass impl?
06:29:42evanit just needs to always add methods to itself if asked.
06:29:59evanyeah
06:30:14Defilerso if I defined that method to do "puts lol; super" it would work?
06:30:25evanactually..
06:30:28evanwhy doesn't this work?
06:30:35evanbecause thats already happening.
06:30:58DefilerGood question
06:31:00evanMetaClass#__add_method__ is really Module#__add_method__
06:31:02DefilerI am listening to this right now, and it helps
06:31:04evanwhich adds methods to itself.
06:31:05Defilerhttp://darklyrics.com/lyrics/doomsword/mynamewillliveon.html#2
06:31:24zenspiderdoomsword?!?
06:31:30evanhey, you should make us a rubinius mixtap
06:31:30Defilerdoomsword is the best
06:31:33evanmixtape
06:31:35Defileroh good idea
06:31:37evanof your favorite music.
06:31:52zenspideromg how gay
06:31:55evanmixtape == zip of mp3/flac
06:31:57DefilerI went through the other day and assigned star ratings to everything tagged 'epic metal' or 'doom metal' in my library
06:32:06zenspiderit's like death metal "artists" never pass 13
06:32:07evanzenspider: thanks drama fag.
06:32:14DefilerSo I can now use MATH to determine which is the best doom metal album
06:32:22zenspidermakes me a fucking authority
06:32:26evantrue
06:32:42evanabby needs black eye liner, whats the best?
06:32:42evan:)
06:32:45zenspiderDefiler: have you seen black mask?
06:32:49zenspiderjet li
06:32:54DefilerYeah.. terrible, right?
06:33:10zenspideractually I loved black mask. tre campy but good
06:33:21zenspiderbut... black mask 2!!! now THERE is a movie
06:33:27evanhahah
06:33:32evani've heard about this movie
06:33:34evanfrom you I think.
06:33:35zenspiderwe had bad movie night at my house and we watched with our jaws agape
06:34:06zenspiderit is JUST like if two ten year old boys were sitting there writing the script going "and THEN ..." back and forth to each other
06:34:08evanDefiler: ok, test 1, class; class <<; def works properly
06:34:21zenspiderI was reminded of it by doomsword... same fucking thing
06:34:24evani can call T.thing
06:34:50DefilerOh, so..
06:34:52brixenagardiner: Kernel.debugger broke :(
06:35:05agardinerohoh
06:35:05brixenagardiner: is it deprecated? should I use breakpoint ?
06:35:07Defilerwhat if it is the case that def foo resets the scope?
06:35:14DefilerSo that the next def in the body has the wrong scope?
06:35:22evani think thats what it is.
06:35:23DefilerBecause you are right, class << self; def blah... works fine
06:35:25