Index

Show enters and exits. Hide enters and exits.

00:05:59rueantares: Broadly looks OK. There is some unnecessary stuff (like the FASTCTX macro, the key part is not that it casts context to a fastctx which is already obvious in the code--specifically it treats an opaque OBJECT as a series of bytes instead of a normal object) and some of it could be addressed bit better variable names
00:06:13rueI can try to annotate it later if you want
00:06:55antaresrue, alright, will try to improve it. Thanks!
00:07:20rueBut, say 167 and 173 are kind of pointless as comments because you are just writing out exactly what the code already says
00:07:46rueFor example, instead of 'flushes the sp' you could explain what that exactly means--the code already says flush_sp
00:08:02rueantares: Good work, though, do not get me wrong
00:11:23graza_ enters the room.
00:11:24graza leaves the room.
00:11:40dewd leaves the room.
00:11:46djwhittquestion for anyone: what is the best source for understanding what is going in the vm at a high level?
00:12:07djwhittis it helpful to work through the bluebook first?
00:12:14djwhittor is just reading the source the best method?
00:13:12radarek leaves the room.
00:14:04drbrainI'm sure it's helpful to read the blue book
00:14:12agardinerdjwhitt: the bluebook is useful background for a lot of the whys...
00:14:38agardinerand as an explanation of building a VM
00:14:56agardinerbut in the end, reading the source is key
00:15:23djwhittI've mostly been reading the source so far (not that I've gotten terribly far yet)
00:15:30djwhittI wasn't sure how relevant the blue book was at this point
00:16:17rightondev leaves the room.
00:17:30anonuser leaves the room.
00:17:35rightondev enters the room.
00:19:28agardineri guess it depends on how comfortable you are with concepts such as VMs, bytecode, primitives, etc
00:19:57agardinerif you aren't all that familiar with these, then the bluebook is probably a good reference
00:22:07agardinerotherwise, i guess i'd suggest looking at the bytecode and tracing how the various opcodes are implemented
00:22:20agardinerthat's what i did... :-)
00:23:17zenspiderI've got a regexp escaping bug I introduced, but current numbers show that my lexer work has sped up the parser 70%... still not great, but much much better
00:23:24zenspider(YAY)
00:24:04zenspiderdjwhitt: relevant or not, it is worth reading
00:25:05RyanTM leaves the room.
00:26:06RyanTM enters the room.
00:32:46mae enters the room.
00:33:01mae leaves the room.
00:36:01Silex70% improvement is nice tho
00:37:20antareszenspider, 70% is definitely good
00:37:56Silex20% is already good
00:38:07Silexif you talk about optimisation
00:38:28Silex70% sounds like major design improvement tho
00:38:31Silex:)
00:39:43jessop leaves the room.
00:52:01brixenwell, le'see if I can break rubuildius
00:52:03mae enters the room.
00:52:20mae leaves the room.
00:52:24boyscout20 commits by Brian Ford
00:52:25boyscout * Added new MSpec runner scripts.; b23ce76
00:52:26boyscout * Removed deprecated $deferr from getoptlong.rb. Moved to /lib.; 10dd379
00:52:27boyscout * Hopefully fix autotest config script.; 8e995f2
00:52:28boyscout * Added MSpec.register_exit, .exit_code. Various fixes.; 921154b
00:52:29boyscout * Use the spec guards properly.; ee2dabf
00:52:30boyscout ...
00:52:33rueHurray
00:52:37brixenrue: :D
00:52:38rueHow was the talk?
00:52:42agardinerwoohoo!
00:52:51graza_ leaves the room.
00:52:56brixenok, folks, this is *not* a regression in time to run specs
00:53:02brixenwe're now running over 500 more specs
00:53:12brixenI've added library to CI
00:53:27ezmobiusw00t
00:53:28rueGotcha, you broke Rubinius
00:53:30brixenrue: quite interesting, have an email in to the prof that hosted the talk to get his slides
00:53:34graza enters the room.
00:53:37brixenrue: :P
00:53:52brixener, get the other prof's slides
00:56:08brixenso, bin/ci will give you a deprecated message
00:56:12mae enters the room.
00:56:25brixenthe new runners are mspec/bin/mspec-run and mspec-ci
00:56:45brixenaccess them with: bin/mspec [options] [spec files]
00:56:48brixenor bin/mspec ci
00:57:00mae leaves the room.
00:57:22brixenI'm working on mspec-tag atm, which will add, remove tags for the specs
00:58:02brixenthe options for including/excluding specs have also changed a bit
00:58:29brixen-e/-E, -p/-P, -g/-G for including/excluding based on strings, patterns (i.e. regexp), and tags
01:00:47dancroak enters the room.
01:02:19ezmobiusbin/mspec ci is broekn for me on a fresh rebuild of everyting http://pastie.caboo.se/154020
01:02:44rubuildiusBrian Ford: b23ce76a7; bin/ci failed! http://rafb.net/p/xJKTvd49.html
01:03:21brixenezmobius: k, one sec
01:03:28brixenthere should be an exclude for that
01:03:46brixenlet's see if I can repro it
01:03:57ezmobiuslooks like the build bot got the same error
01:04:32brixenyep
01:05:04rubuildius_ppcBrian Ford: b23ce76a7; bin/ci failed!
01:05:18eventualbuddha leaves the room.
01:05:31drbrainor, you could fix it with one line
01:05:36drbrainraise IOError if closed?
01:06:25brixendrbrain: yeah, I'm more worried about where the tags are
01:06:41brixenezmobius: do you have a file: spec/tags/ruby/1.8/core/io/each_line_tags.txt ?
01:06:48ezmobiussec..
01:06:52brixenand does it contain: fails:IO#each_line raises IOError on closed stream
01:07:42ezmobiusnope no each_line_tags.txt
01:07:56ezmobiusonly each_byte_tags.rb
01:09:08cored enters the room.
01:09:18brixenezmobius: ok, but you do have the tags dir, just to double check ?
01:09:54ezmobiusyes
01:10:15brixenk
01:12:02brixenyep, odd, both each and each_line tag files are missing from git.rubini.us tree, but I have them here
01:12:17lopex leaves the room.
01:15:29Fullmoon enters the room.
01:15:55sudothinker enters the room.
01:15:58Fullmoon_ leaves the room.
01:19:25boyscout1 commit by Brian Ford
01:19:26boyscout * Raise IOError if attempting to read from a closed descriptor.; b179f10
01:19:42brixenwell, git add . picked up those two files, but git status showed nothing before that
01:20:02ezmobiuscool
01:20:05brixenI guess if you change a bunch of files, git add just to be sure instead of relying on git status
01:20:34ezmobiushmm still no luck
01:21:14brixenezmobius: pastie ?
01:21:35ezmobiushttp://pastie.caboo.se/154035
01:21:48ezmobiusthe file for that exclude still doesnt seem to be added
01:21:54brixenI didn't add it
01:21:59brixenI fixed it
01:22:01ezmobiusoh
01:22:27brixenI just wanted to try to understand why it wasn't in HEAD
01:22:31brixencan't say that I do ;)
01:23:09crafterm leaves the room.
01:24:03brixenezmobius: hmm, checking gitweb for that tags file
01:24:48brixenezmobius: yep, missing
01:24:49tarcieriso here's a pointless pedentic question
01:24:52brixendamn this is silly
01:24:59ezmobiusheh
01:25:12tarcieriI've always heard the Rubinius compiler described as producing "Rubinius bytecode"
01:25:17tarcieribut isn't it technically shotgun bytecode?
01:25:23brixentarcieri: yes
01:25:51wvl leaves the room.
01:25:52ezmobiusisnt is rubinius assembly that is translated into shotgun bytecode?
01:26:13ezmobiusso compiler => rubinius ASM -> shotgun bytecode?
01:26:29ezmobiusor are rubinius ASM and shotgun bytecode the same thing?
01:26:35brixenwell, it's all rubinius, so rubinius asm/btypecode really doesn't matter
01:26:47brixenif we had more than one vm, it might be confusing
01:27:18brixenezmobius: dunno what's up with git, I'll push some fixes in a sec..
01:27:18tarcierior if the VM hosts more languages than just Ruby/Rubinius
01:27:31brixenwell, rubinius is not a language
01:27:34rubuildiusBrian Ford: b179f10bd; bin/ci failed! http://rafb.net/p/j40Zho53.html
01:27:48tarcieriyeah, just meant that as the Rubinius implementation of Ruby
01:28:21rubuildius_ppcBrian Ford: b179f10bd; bin/ci failed!
01:28:35brixenit's all a bit confusing. I think using rubinius to broadly mean what can compile Ruby and execute it is reasonable
01:28:52defunkt enters the room.
01:29:45gnufied leaves the room.
01:32:54boyscout1 commit by Brian Ford
01:32:55boyscout * Raise IOError in IO#read and #sysread if descriptor is closed.; 6282aed
01:33:07brixenezmobius: could you give that a try, please
01:33:12ezmobiusyup sec..
01:33:21brixenthanks
01:35:06ezmobiusdifferent error now
01:35:07ezmobiushttp://pastie.caboo.se/154040
01:36:14brixencool
01:36:23brixenI just completely removed the branch
01:36:30brixenle'see if I can get that
01:38:48cremesanybody have a pastie script that can read stdin and return a url so i can get rubuildius_ppc working right?
01:39:31rueNot I
01:41:12boyscout1 commit by Brian Ford
01:41:13boyscout * Added new tags files for excludes.; 431af59
01:41:23lstoll enters the room.
01:41:23brixenezmobius: heh, one more time ?
01:41:33ezmobiusyup..
01:42:31ezmobius1569 files, 5471 examples, 18929 expectations, 0 failures, 0 errors
01:42:34ezmobiusyay
01:43:58brixenezmobius: cool! thanks
01:44:00rueWee, 5k handily down
01:44:24rueDid you revise the README?
01:44:32rueBe back in a bit
01:44:37brixenhehe
01:44:42rubuildius_ppcBrian Ford: 6282aed5c; 1569 files, 5504 examples, 18939 expectations, 0 failures, 47 errors;
01:44:43brixenupdating LH right now
01:50:43mae enters the room.
01:51:07mae leaves the room.
01:51:46binary42 leaves the room.
01:52:01binary42 enters the room.
01:54:16mae enters the room.
01:54:21rubuildius_ppcBrian Ford: 431af5920; 1569 files, 5471 examples, 18889 expectations, 0 failures, 28 errors;
01:54:34mae leaves the room.
01:59:37yipstar leaves the room.
02:03:51cjheath_ enters the room.
02:06:33crafterm enters the room.
02:10:26MenTaLguY enters the room.
02:11:38cjheath leaves the room.
02:13:26binary42 leaves the room.
02:15:34twshelton enters the room.
02:15:38mernen enters the room.
02:19:04yipstar enters the room.
02:21:10kofno enters the room.
02:25:57wvl enters the room.
02:30:37jacen_ enters the room.
02:31:19binary42 enters the room.
02:36:42antaresin case someone is also interested in Baker's copying GC algorithm, here's an overview: http://web.media.mit.edu/~lieber/Lieberary/GC/Realtime/Realtime.html
02:37:09antaresit seems that one shotgun uses may differ a bit though but the idea is the same
02:41:33cored leaves the room.
02:44:47tbmcmullen leaves the room.
02:45:12tbmcmullen enters the room.
02:46:15VVSiz_ enters the room.
02:47:07antares leaves the room.
02:49:49_mutle enters the room.
02:54:12mae enters the room.
02:54:36mae leaves the room.
02:58:06agile leaves the room.
02:59:32boyscout1 commit by Brian Ford
02:59:33boyscout * Removed :version guarded specs that are not current stable.; aa585b7
03:00:09brixenrue: grabbing some dinner, I'll update the runner docs tonight
03:00:31mernen leaves the room.
03:04:09VVSiz leaves the room.
03:05:31mutle leaves the room.
03:05:51rubyconsumer enters the room.
03:06:34jeremydurham leaves the room.
03:08:37rubuildius_ppcBrian Ford: aa585b7e6; 1569 files, 5477 examples, 18910 expectations, 0 failures, 28 errors;
03:16:23bitbckt enters the room.
03:25:18djwhitt enters the room.
03:25:55te enters the room.
03:26:03te'lo
03:26:13rue Hello
03:26:18teI was just googling my own name, and I found myself in the Rubinius slides
03:26:23teI was shocked.
03:26:24te:)
03:26:26ruecremes: Looks like you were successful?
03:26:41cremesrue: successful at what?
03:26:59ruerubuildius_ppc: <---
03:27:21cremesrue: ah, yes... plus i just figured out how to get the pastie script to work. success!
03:27:30RyanTM leaves the room.
03:27:34RyanTM_ enters the room.
03:30:39djwhitt enters the room.
03:30:44graza_ enters the room.
03:31:12graza leaves the room.
03:33:12ezmobius leaves the room.
03:36:38rueDefiler: I can seeee youuuuu
03:49:16DefilerOh yeah?
03:49:41rueYep. Red shirt
03:50:21DefilerHeh
03:50:24dysinger enters the room.
03:50:40DefilerThrough the.. time portal ...
03:53:38bitbckt leaves the room.
03:54:30mae enters the room.
04:01:15headius leaves the room.
04:02:55bitbckt enters the room.
04:03:19enebo_ leaves the room.
04:09:39VVSiz_ leaves the room.
04:09:39crafterm leaves the room.
04:09:39Ingmar leaves the room.
04:09:39rue leaves the room.
04:09:39rubyconsumer leaves the room.
04:09:39MenTaLguY leaves the room.
04:09:39nicksieger leaves the room.
04:09:39nemerle_afk leaves the room.
04:09:39geekounet leaves the room.
04:09:39context leaves the room.
04:09:39maharg leaves the room.
04:09:39rudebwoy leaves the room.
04:09:39fearoffish leaves the room.
04:09:39ko1_ leaves the room.
04:09:39kevinclark leaves the room.
04:09:54rubyconsumer enters the room.
04:09:54VVSiz_ enters the room.
04:09:54MenTaLguY enters the room.
04:09:54crafterm enters the room.
04:09:54nicksieger enters the room.
04:09:54nemerle_afk enters the room.
04:09:54geekounet enters the room.
04:09:54Ingmar enters the room.
04:09:54context enters the room.
04:09:54rue enters the room.
04:09:54kevinclark enters the room.
04:09:54ko1_ enters the room.
04:09:54rudebwoy enters the room.
04:09:54maharg enters the room.
04:09:54fearoffish enters the room.
04:10:49bitbckt leaves the room.
04:11:33rueDefiler: Looks like the time portal has torn a hole in the space-IRC continuum!
04:12:01DefilerSome sacrifices may need to be made for the good of the continuum.
04:13:40mae leaves the room.
04:17:39bitbckt enters the room.
04:18:27_ADS enters the room.
04:23:13nicksieger leaves the room.
04:24:41imajes leaves the room.
04:33:36benburkert leaves the room.
04:36:48_ADS enters the room.
04:36:51graza_ leaves the room.
04:37:07graza enters the room.
04:37:32headius enters the room.
04:40:17mae enters the room.
04:41:27mae leaves the room.
04:44:03agile enters the room.
04:47:13zenspiderheh. I keep finding bugs in jruby that I ported. :)
04:47:38headiusfeel free to let us know about them
04:47:46headiusthey may be gone in the new lexer
04:48:26zenspiderI just verified the latest is in the new one, unless old code is sitting around
04:48:39zenspidervery end of StringTerm.java, the default section of the switch
04:49:05zenspiderif (c != '\\' || c != end) is wrong
04:49:34zenspiderI can't exactly tell what the original author was trying to say, but I doubt it is that
04:50:59aotearoa leaves the room.
04:51:10MenTaLguY leaves the room.
04:51:55zenspiderhaha... ok. that's a bug in cruby too
04:52:12zenspiderI wonder if that is just japanese logic or something... R2L and all
04:52:30zenspiderwell... that's a really old cruby I'm looking at... sec
04:53:49zenspiderthe prev bug I found in jruby I didn't verify against the newer code... but the gist was this: { :identifier==>42 }
04:54:23headius==>
04:54:24headius?
04:54:44zenspidershould parse as: { :identifier= => 42 }
04:55:08headiusahh that's an interesting one
04:55:11headiusstill seems to be on trunk
04:55:23headiusI don't suppose I could get you to file bugs for these? :)
04:55:37headiusif you figure out what that other one is that would be nice too
04:55:41headiusif it's a bug
04:56:43zenspiderall I know thus far is the literal translation is the only form I can get to work... I think it is a secret spell that causes my brain to not be able to translate it to something more understandable
04:58:12zenspidercause it SHOULD be if (c != "\\" || c != term) => if ! (c == "\\" && c == term) => unless (c == "\\" && c == term) => unless (c == "\\" && "\\" == term) which totally boggles my brain
04:58:43zenspiderI was a tad low on blood sugar tho, so I might be totally borking the logical morphs
05:00:33ttmrichter_ leaves the room.
05:00:39headius leaves the room.
05:01:20ttmrichter enters the room.
05:02:06zenspiderdrbrain: am I still f'd up? or does that look right?
05:02:18drbrainit still looks right to me
05:04:06dancroak enters the room.
05:05:58zenspiderdrbrain: buttttt... is that actually what is / should be checking for?
05:06:22zenspiderthat's what stumps me... does it matter if the term is \\ ? (and can it be?)
05:06:33drbrainwell, in r 2547, it changed from c != '/' || ...
05:06:33zenspiderok. wow. it can be... that's f'd up
05:06:39drbrainerr, 2548
05:06:59zenspider%r\blah\ => /blah/
05:07:15drbrain"parse.y (tokadd_escape): wrong backslash escapement."
05:07:42zenspiderso... maybe it should read: unless c == term && term == "\\" ?
05:08:13drbrainmaybe
05:08:42wmoxam leaves the room.
05:09:19zenspiderI think that's it...
05:09:26zenspiderwhich is JUST FUCKED imo
05:10:02drbrainwell, that line previously read if (c == '/' && c != term)
05:10:15drbrainbut was changed to the modern version due to "escaped backslashes too much"
05:11:13zenspiderheh
05:11:28zenspiderI like the old version better
05:11:49zenspiderbut I like comparing term to the string literal even more
05:12:07zenspiderI'm going with unless c == term && term == "\\" then
05:12:16zenspiderbut having a hard time writing a test to trigger the case
05:13:19drbrainhttp://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?view=diff&r1=1702&r2=1703
05:13:28drbrainthat's the original change to parse.y that added the feature
05:13:39drbrain* parse.y (parse_regx): handle backslash escaping of delimiter here.
05:13:58benburkert enters the room.
05:15:21zenspideris that all it's for?
05:15:32zenspidernot specifically for %r\....\ ?
05:15:33drbrainseems to be
05:15:34zenspiderfuck
05:15:53zenspiderso %r%blah\%blah%
05:15:53drbrainthere's all of 3 changes for that line
05:26:18twshelton leaves the room.
05:26:23graza leaves the room.
05:30:06RyanTM_ leaves the room.
05:31:32bitbckt leaves the room.
05:34:23d2dchat leaves the room.
05:34:41agardineranyone else seeing problems running ci on library/socket/tcpsocket/new_spec.rb? seems to hang for me on that spec...
05:43:29benburkerti'm getting 3 errors
05:44:02benburkerthttp://pastie.caboo.se/154123
05:44:57drbrainbenburkert: you have an extra alias for your machine on loopback
05:45:37zenspiderdrbrain: I think what they really want is this: if c == "/" || c != term then
05:45:42zenspider
05:45:48zenspiderwhich is opposite of the previous version
05:45:53zenspiderslightly
05:46:02drbrainI wonder why they changed it to the present version
05:46:37nicksieger enters the room.
05:46:43zenspiderwhich is, backslash if term is slash: /blah\/blah/ but don't backslash if the term is an alternate and that char is escaped: %r%blah\%blah% => /blah%blah/
05:46:52zenspiderthat seems to make the most sense
05:47:48drbrainyeah
05:47:50zenspiderwhat they want, internally, is a source properly backslashed for a regular forward slash form /blah/
05:47:53zenspidercurrently:
05:48:00zenspider>> %r%blah\%blah%
05:48:04boyscout1 commit by Adam Gardiner
05:48:05boyscout * Re-enable debug on context change; ec990b6
05:48:05zenspider=> /blah\%blah/
05:48:10zenspider>> %r%blah/blah%
05:48:16zenspider=> /blah\/blah/
05:48:23zenspiderI think that first result is a bug in ruby
05:48:41drbrainyeah
05:48:59zenspiderdrbrain: do you agree that the % one is a bug?
05:49:06drbrainI do
05:49:13zenspiderIf so, I'm gonna experiment with my change in the real parse.y
05:49:41drbrainwell, for some reason they changed it to the present version, but I don't know why
05:49:49drbrain... they did it a long time ago, though (r2500ish)
05:51:22zenspideralso, I'm adding an irc rule to mri's makefile, damnit.
05:52:21zenspiderer. irb
05:52:43rueagardiner: Did you by any chance come about new ideas what the field calculation problem may have been? I will try to track it down tomorrow maybe
05:52:46brixenagardiner: what platform? I'm getting a hang on ubuntu gutsy it looks like
05:53:01agardinerbrixen: yeah, same platform
05:53:24brixenagardiner: ok, the "refuses the connection when there is no server to connect to" ?
05:54:22tongueroo enters the room.
05:54:35agardinerbrixen: dunno... my VMware image has ground to a virtual standstill since i ran ci a few times!
05:54:45agardinerneed to reboot
05:55:05brixenk
05:55:20agardinerrue: no, i haven't looked into it
05:55:25headius enters the room.
05:58:37rubuildius_ppcAdam Gardiner: ec990b6eb; 1569 files, 5477 examples, 18910 expectations, 0 failures, 28 errors; http://pastie.caboo.se/154128
05:58:49agardinerrue: it's a strange one, no doubt about it. i can't think of what scenario could lead to the observed behavior... if there's a problem with unused fields, why doesn't it crash?
05:59:06rueYeah
06:00:39d2dchat enters the room.
06:00:51rubyconsumer leaves the room.
06:02:03technomancy leaves the room.
06:11:23enebo enters the room.
06:14:05hornbeck enters the room.
06:16:10GMFlash leaves the room.
06:16:19GMFlash enters the room.
06:23:28crafterm leaves the room.
06:26:08agardinerlater o/
06:26:28agardiner leaves the room.
06:28:19headius leaves the room.
06:32:52rubuildiusAdam Gardiner: ec990b6eb; bin/ci failed! http://rafb.net/p/AzARkg45.html
06:32:53rubuildiusBrian Ford: aa585b7e6; bin/ci failed! http://rafb.net/p/souDbr21.html
06:33:10binary42 leaves the room.
06:36:11sudothinker leaves the room.
06:38:05maduyb__ enters the room.
06:38:56dysinger leaves the room.
06:41:38tbmcmullen leaves the room.
06:46:50rueYou broked it
06:48:43imajes enters the room.
06:52:12lstoll leaves the room.
06:56:16drbrainoh, Time::at spec is suck
06:56:26drbrainbecause localtime needs to die
07:08:17boyscout2 commits by Brian Ford
07:08:18boyscout * Exclude TCPSocket.new for now, hangs on ubuntu gutsy.; cbcdb83
07:08:19boyscout * Fixed platform_is guard for when no platform is given.; e956b94
07:09:16_mutle leaves the room.
07:10:20mutle enters the room.
07:12:35kofno leaves the room.
07:12:57evanhi yall
07:13:34rueHi, who are you again?
07:14:30evanheh
07:14:40evanrue: wanted to talk mod_rubinius with ya
07:14:43evangot a few minutes?
07:15:08rueSure
07:15:34maduyb__ leaves the room.
07:16:04evanso
07:16:17evanare you thinking mainly about mod_wsgi or mod_scgi?
07:16:23evanin terms of model
07:17:16rueWell, it is sort of a twofold issue
07:17:17ragnard enters the room.
07:18:12ruemod_scgi is basically like mod_fcgid in that it balances to child processes which then launch whatever scripts are requested using the SCGI env
07:18:22rubuildius_ppcBrian Ford: cbcdb8346; 1569 files, 5485 examples, 18943 expectations, 0 failures, 30 errors; http://pastie.caboo.se/154137
07:18:24evanseems like the daemon mode of mod_wsgi is what you've been thinking about
07:18:54rueYeah, broadly the mod_wsgi model is pretty nice--the only drawback is the very tight coupling
07:19:03rueAnd the ten freaking thousand lines of C :P
07:19:17evanyikes.
07:20:23evanso mod_fcgi launched proceses to run requests
07:20:24evanyes?
07:20:29evanand it pooled requests
07:20:48rubuildiusBrian Ford: cbcdb8346; 1569 files, 5484 examples, 18971 expectations, 0 failures, 7 errors; http://rafb.net/p/Cl0fJU68.html
07:20:48evanso, the idea would be to move that kind of logic out of apache all together
07:21:14rueYeah, the module only makes sure at least one process is available to take requests as they come in
07:21:17evanfor each site, a apache module would hand a request to the same backend daemon
07:21:26evanfor us
07:21:26tarcierihey evan, how hard would it be for a Task to have a separate heap, and anything sent over the channel is copied rather than referenced...
07:21:53evanvery
07:21:56rueevan: That is possible, sure, but not mandatory. We could just as well load-balance it
07:21:56evannot possible.
07:22:01tarcieriheh, ok
07:22:39rueevan: Or we could have each site with a dedicated thread (that lives in one of the daemon process)
07:22:42evanrue: well, what is your thinking for mod_rubinius? what would happen?
07:22:49evanwalk me through a request coming into apache
07:24:12rueThe module grabs all necessary request data and the output fd, serialises it somehow and sends it over to one of the daemons
07:24:30evanthe same daemon each time?
07:24:52rueI would make that configurable.. by default probably no
07:25:14evanwhy not?
07:25:18evani mean
07:25:41evanthe model i have in my head for this is say there are 7 apps running
07:25:53evanthat would mean there are 7 rubinius daemons
07:26:08rueAh, narrow it down--a request for the same site? Sure, we could send it to the same daemon based on the route
07:26:18evanapache would just hand off request data to the same daemon for the app the request is for
07:26:37evanso, apache does simple app routing
07:27:24rueRight. The module would ideally do as little translation as possible and then (configurable) routing/load balancing and so on
07:27:39rueThe module is basically a balancer proxy
07:27:48evanwhat is it balancing?
07:28:00evanrequests to a pool of daemons for one app?
07:28:06evanie, one app has a pool of daemons
07:28:10evanis that it?
07:28:27ruePossibly, sure, one site/app could have multiple daemons
07:28:27evani think we need to have a phone call about this
07:28:49evanok, don't say sure for everything :P
07:28:54tarcierievan: so... nested libev loops
07:28:59radarek enters the room.
07:29:00evani'm asking what you think would be the default configuration for 1.0
07:29:19tarcierievan: sounds like something you could use for mod_rubinius
07:29:25rueNo, you were asking about a request coming through ;)
07:30:23rueBut broadly, yes, the module would dispatch a serialised request based on the site (or other configuration parameter) to any of N daemons responsible for that site
07:31:14tarcieriIn the end, don't you just want a lightweight Reactor-to-Rack binding?
07:31:17tarcieriala Thin
07:32:03rueThat would probably be the default. Other simple one-line configurations would be to pool daemons per app instead of site/location or to simply use the entire pool for any incoming requests
07:32:20ruetarcieri: Yes and no
07:32:27tarcieriare you planning on running a VM per core?
07:32:49rueI dunno what the normal load level recommendation is these days
07:33:06tarcieriwell, should I say... are you planning on using MVM?
07:33:35rueYes
07:33:39tarcierisweet
07:33:56evanactually
07:33:57evanno
07:34:02evanwell
07:34:06tarcierino?
07:34:16evannone of the scenarios we've detailed so far have anything to do with MVM
07:34:28evanit's all process based
07:34:33evanin terms of current discussion.
07:34:33rueI guess maybe VMs per core
07:34:47tarcierioh, so the VM runs as a separate process?
07:34:52tarcieriand talks over a unix socket or something?
07:34:54rueRighty, the threads only come to play *in* the daemons
07:37:09tarcieriwell that works, and simplifies things greatly
07:37:12evanthats the direction the current discussion is taking
07:37:25rueSo, to pick up on that--say the default model is to have a daemon per site
07:38:04rueThe request gets sent over to the daemon, which in turn is running N threads for each application for the site
07:38:31evanN ruby Thread's?
07:38:37rueNative
07:38:40evanok
07:38:47evanlets clean up the terminology
07:38:52evannthread == native thread
07:38:53rueTo clarify, N VMs running
07:38:55evanrthread == ruby thread
07:39:00evanthread is too ambigious.
07:39:19rueYeah.. although Ruby threads do not really come into the picture at all at this level
07:39:24evanrue: ok, if it's N nthread's then you are thinking we use MVM
07:39:28evanrue: if so, why?
07:39:32evanwhats the use?
07:39:45evanwhy not just start up another process and have apache give it data directly?
07:40:01rueLighter-weight
07:40:11evanbut they're not.
07:40:13ruePlus we get I(VM)C
07:40:27evanMVM is not lighter weight than multiple processes
07:40:34evani'm not sure where that thinking began
07:41:00evanwhats I(VM)C?
07:41:15benburkert leaves the room.
07:41:21rueInter-VM-communication
07:41:56rueI would venture to say that broadly OS threads are still a bit lighter than processes
07:41:57evanbut whats the use case for that feature?
07:42:24rueCaching, request parallelisation come to mind
07:42:36rueWe could split requests over several VMs
07:42:38tarcieriWhere the MVM model is more "lightweight" is when there's a high degree of intercommunication between VMs
07:43:15tarcieriThen messages can be buffered, and delivered over shared memory in bulk, with zero copy if you so desire
07:43:33dysinger enters the room.
07:44:07evanbut in terms of this framework
07:44:16tarcieriYeah
07:44:17evani'm not sure how thats possible
07:44:19tarcieriTotally irrelevant
07:44:22tarcieriHeh
07:44:46rueWhat is, shm?
07:45:05tarcieriHigh performance intercommunication between VMs
07:45:08evanthe ability for a VM to get a request and hand it to a sub-VM in the same processes is ok, but it requires serializing the request AGAIN
07:46:00tarcieriWhat if each VM created a unix socket, that talked to a multithreaded extension in the daemon?
07:46:16evansure, but then you should just use processes
07:46:20evannot MVM
07:46:51tarcieriWhat would the disadvantage of MVM be in that case?
07:47:02evanthere is no advantage
07:47:12evanthats a disadvantage
07:47:14tarcieriIs there a disadvantage?
07:47:20evanbecause it's more complicated than process based.
07:48:07tarcieriWhere's the extra complexity?
07:48:20rueWhy are we serialising the request again?
07:48:21evanit's just a more complicated feature
07:48:33evanrue: because VMs can only talk via a serialized mechanism.
07:48:38evanthey can not share data
07:49:56ruetarcieri: Just to be clear, MVM and a native thread with a Rubinius running each are two different things
07:49:57tarcieriYou don't have to serialize the request... you can just emit events to Ruby, and handle them there....
07:51:37evanrue: how are you thinking about them being different?
07:51:49evanrue: are you still thinking about a native thread running inside apache's process?
07:52:05rueNo
07:52:09tbmcmullen enters the room.
07:52:51rueBut multiple independent Rubiniuses in different threads do not have any limitations except those placed by us
07:53:25tbmcmullenI think that'd be Rubinii, technically. ;)
07:54:02evanrue: sure, thats true, we can certainly add new features
07:54:06evanrue: but i'm telling ya right now
07:54:26evanany feature that requires multiple VMs to share objects (ie, references) is not going to be done for May.
07:55:13rueI am not necessarily expecting it to, but that is what the main difference is
07:55:29tarcierithe VMs would be shared-nothing, though... right?
07:55:49evanthey are shared nothing now
07:55:52evanand they will be for 1.0
07:56:03tarcierithat's awesome
07:56:07imajes leaves the room.
07:56:14tarcieritoo bad you can't have shared-nothing tasks, heh
07:56:22TheVoicewasn't there something mentioned about them sharing a few things to help with memory usage and mod_rubinius etc?
07:56:35benburkert enters the room.
07:56:41TheVoicelike you'd get with forking
07:56:51enebo leaves the room.
07:57:39tarcierithe penalties of spawning LWPs are lower than HWPs...
07:58:18d2dchat leaves the room.
07:58:40tarcierialthough what evan's saying is that it's pointless... as compared with an application with a high degree of intercommunication
07:59:56tarcieriwhich doesn't really pertain to web frameworks at all, at least if you go with the Rails / Merb model where the DBMS is the way intercommunication takes place
08:00:21rueCurrently
08:00:47evanwe're going to what they currently do
08:00:49evannot what they might do
08:00:51evanif we do that
08:00:58evanwe'll never finish with a mod_rubinius 1.0
08:02:24ragnard leaves the room.
08:02:51tarcierisee, here's the thing evan...
08:03:02tarcieriif there aren't any disadvantages
08:03:23tarcierithere's a wide-open future for frameworks witch could leverage that shared-memory message bus
08:03:28evansure
08:03:37evani'm not really arguing one side or the other on this
08:03:49evanor at least, i'm not trying to
08:04:05tarcieria friend of mine wants to write such a framework.. using Presentation-Abstraction-Control on top of Actors
08:05:04TheVoicewould there be any usefulness is cloning a VM into a sandbox so you could do read only operations on the cloned VM's objects?
08:05:28evanwhats the usecase?
08:05:33srbaker enters the room.
08:06:18tarcieriif you could clone a VM, you could leverage copy-on-write semantics
08:06:25evanthats not a use case.
08:06:25tarcieriplus it'd simplify loading of code
08:06:28TheVoiceno idea, it just popped into my head. Worry free scaling like you get with master-slave is what comes to mind.
08:07:13benburkert leaves the room.
08:07:25tarcieriIt'd be really handy to load everything -> go MVM -> spawn whatever VM supervisory/spawner thingy you want to kick off your app in the new VM
08:08:11_ADSis anyone else having mspec ci just die somewhere in lib/generator?
08:08:45_ADSit's getting a SIGKILL from somewhere
08:08:53headius enters the room.
08:10:34evantarcieri: handy why?
08:12:01tarcierievan: well, in an Actor world, so you can depend on certain init routines for Actors being there...
08:12:19tarcierievan: Erlang works kinda like AciveSupport's const_missing
08:12:50jessop enters the room.
08:13:02benburkert enters the room.
08:13:07evanseems like a nasty hack.
08:13:12evanusing MVM for that.
08:13:24tarcieriSo don't...
08:13:51tarcieriLoad everything you need beforehand, clone the VM, then you don't need any nasty const_missing hacks to spawn stuff remotely
08:13:57rue_ADS: Somewhere in sockets for me I think
08:14:03tarcieriOr you can just require it explicitly
08:14:49tarcieriAll clone really has is COW
08:15:20tarcieriCOW + nicer startup for MVM
08:15:48evanplease implement that
08:15:55tarcieriheh
08:15:58evanbecause i currently don't have the time to
08:15:59tarcieriok, point taken
08:16:24tarcierijust a suggestion :)
08:16:48headius leaves the room.
08:17:09tarcierinested event loops though... that's something I'd be willing to implement
08:17:14thehcdreamer enters the room.
08:17:18tarcieribut I guess you don't buy into those
08:17:37evanwhats the use case for a nested loop?
08:17:42evani don't see it.
08:17:48tongueroo leaves the room.
08:17:54tarcieria set of descriptors that you poll when you aren't dispatching events
08:18:13tarcierisynchronously, without the use of threads
08:18:35evanthats a how, not really a why
08:18:57evanwhats the why?
08:18:58tongueroo enters the room.
08:18:59tarcieriis implementing Reactor a why?
08:19:13evanno clue how Reactor works
08:19:20evannor do I know it's API
08:19:30evanassume I know nothing about event programming.
08:19:33tarcieriit's just a simple loop
08:19:36srbaker leaves the room.
08:19:39tarcieriwait for events
08:19:44tarcieridispatch events
08:19:46tarcieririnse, repeat
08:20:13tarcieriwhat a nested loop lets you do is segregate the waiting from the dispatching
08:20:43tarcierithat happens over and over in a loop, so it's nice if it's efficient
08:21:06evanso, a use case might be:
08:21:23evanyou have to kinds of things you do
08:21:31evanso you group the fds related to each thing in a loop
08:21:44evanie, 2 loops for 2 kinds of things
08:21:57tongueroo leaves the room.
08:22:16evanwtf.
08:22:24evani'm getting Fixnum#size expecting 8
08:22:35evanci is busted?
08:22:53brixenevan: on leopard?
08:22:56evanyep
08:23:07tarcierievan: heh, I take it you have more important things to deal with now
08:23:07evani'm doing a 'rake clean build' now
08:23:14tarcierievan: I'll tak to you about it later
08:23:18evank
08:24:08brixenevan: it's cus the :size got changed to :wordsize, I'll update it
08:24:40drbrainevan: btw, buffered IO is all kinds of broken
08:25:04drbrainfor example, io.read 1; io.pos; io.read 1
08:25:06evanare there specs for this brokeness?
08:25:31drbrainI've fixed some of the ones I've found, but I'm sure there are more
08:25:34langenberg enters the room.
08:25:39drbrainno, since it involves interactions between methods
08:25:46drbraingets/read was an important one I fixed
08:25:51evanomg.
08:25:53evanwho wrote
08:25:58evan" io_close or raise SystemCallError, "Invalid file descriptor"
08:25:58evan"
08:26:18drbrainno idea
08:26:55evanslaps rue's hand
08:27:27evandrbrain: so
08:27:31evanis this
08:27:36evanio.read 1; io.pos; io.read 1
08:27:40evanproblem the only one you know about?
08:27:43_ADS leaves the room.
08:27:50drbrainyeah
08:28:09drbrainanywhere Buffer#reset! is called is suspect, too
08:28:15evanwhy?
08:28:18evanwho do you suspect that?
08:28:20evaner. why
08:28:49drbrainit seems to throw away data and move the read pointer
08:29:08evanthats the whole point
08:29:13evanbecause the buffer is invalid
08:29:18evanso it's refilled from the new read point.
08:29:25boyscout1 commit by Brian Ford
08:29:26boyscout * Convert platform guard :size option to :wordsize.; 33b1894
08:29:48drbrainIO#pos does a seek 0, so the read pointer shouldn't move, but it seems to
08:30:06_ADS enters the room.
08:30:20evanwell
08:30:25evanthats an edge case bug
08:30:32evanpos should be using tell
08:30:33evannot seek
08:30:40evanthat btw
08:30:42evanworks here fine
08:30:44evanthe
08:30:51evanio.read 1; io.pos; io.read 1
08:30:57evanit works fine here
08:31:08evanwhat should I have gotten?
08:31:37drbrainsec, let me see if I still get it, I last tried Friday
08:31:47brixen_ADS: can you make sure that's a real hang you are seeing. the specs for generator and ipaddr run *really* slow on linux for me
08:31:57drbrainI did write specs for the bugs I found with read/gets
08:32:19_ADSbrixen, it's not a hang, it's a sigkill
08:32:30brixen_ADS: ah ok
08:32:30scoopr leaves the room.
08:33:09brixen_ADS: do you know which spec?
08:33:32evani'm getting some bizarre String#% failure
08:33:40rueevan: N-uh, not my fault! :P Although I admittedly did not catch it when I was converting that
08:33:42drbrainevan: seems to work now
08:33:45drbrainbut...
08:33:53_ADSthe strange thing is if i do mspec ci --verbose, it dies in lib/generator/, but if do mspec run ...lib/generator/*.rb it finishes fine
08:33:56brixenevan: did you update?
08:34:03drbrainFile.open 'x' do |io| p io.read(1), io.pos, io.read(1) end
08:34:04brixenevan: I just fixed that on leopard, for me at least
08:34:11drbrainsomething is wrong with order of evaluation
08:34:45brixen_ADS: mspec ci -fs, what does that do?
08:34:48drbrainx is `echo x > x`
08:35:18evandrbrain: thats because rubinius is still right to left
08:35:20evannot left to right.
08:35:21brixen_ADS: oh, what system btw?
08:35:24drbrainevan: I see the newline first, instead of last
08:35:52drbrainok
08:36:08evando you have code that depends upon that behavior?
08:36:19evani hate people that write code that depends on arg evalution order.
08:36:20_ADSbrixen: ubuntu on coLinux
08:36:34drbrainno real code, but it was surprising to see p print things in the wrong order
08:36:42evanit's not p
08:36:44evanit's everything.
08:36:55drbrainyeah, I know
08:36:57evani guess i have to fix it.
08:37:06drbraineventually
08:37:27drbrainI was just pointing out that it didn't match my expectations
08:37:31evanhuh
08:37:37evanthe specs take 8 seconds longer now
08:37:39evanthat they used to
08:37:47evanbrixen: is this the new mspec code?
08:37:49drbrainI was only using it for my test because it's easier to type ,
08:37:56brixenevan: it's running library specs now too
08:38:05brixenevan: the new mspec, yes
08:38:13drbrainevan: I did add about 1s to the IO#read specs
08:38:21evanwhy?
08:38:25evandid you add a sleep?
08:38:31drbrainno
08:38:31brixenit's running ~500 more specs
08:38:35rubuildius_ppcBrian Ford: 33b189478; 1569 files, 5484 examples, 18946 expectations, 0 failures, 28 errors; http://pastie.caboo.se/154157
08:38:38drbrain#read couldn't read > 8k
08:38:58evanbrixen: how do I run ci for just spec/ruby/1.8/core
08:38:58evan?
08:39:07drbrainsec
08:39:09brixenbin/mspec ci spec/ruby/1.8/core
08:39:43headius enters the room.
08:39:54drbrainhttp://git.rubini.us/?p=code;a=commitdiff;h=08982321472008f7645212289d2624d19053ed7e
08:39:58rubuildiusBrian Ford: 33b189478; 1569 files, 5483 examples, 18974 expectations, 0 failures, 5 errors; http://rafb.net/p/0m9BNA92.html
08:41:26evandrbrain: whats the reason for the 'buffer.replace output' code?
08:41:28evanit seems gross.
08:41:37wifelette leaves the room.
08:41:58drbrainevan: the C code uses the same object
08:42:08evanfor what?
08:42:14drbrain... in MRI
08:42:36drbrainsince you have a char* sitting around, you can have read(2) write directly into it
08:43:10drbraineww, what's up with this AF_INET6 check in the getaddrinfo spec
08:43:11_ADSbrixen, mspec ci -fs got to "Generator#next - returns the element at current position", and seems to be frozen now
08:43:34evandrbrain: why not just append directly into like before?
08:43:51drbrainit's wrong, as you may not have an IPv6 address set up anywhere, even if you have IPv6 support
08:43:57evandrbrain: building up output then doing replace defeats the whole idea of passing in the buffer
08:43:59wifelette enters the room.
08:44:18drbrainevan: we can't replicate the C behavior anyhow
08:44:32evanwriting directly to the object?
08:44:46drbrainin MRI you'd say: buf = ' ' * 1024; io.read 1024, buf; ...
08:44:50wifelette leaves the room.
08:44:54drbrainso you can reuse memory and GC less
08:45:18drbrain(where you'd io.read in a loop)
08:45:29evanwe can actually duplicate that
08:45:33drbrainsorry, I mean MRI when I say C again
08:45:41drbrainyes, we can, but don't currently
08:45:53evanso you made it twice as bad rather than one time as bad?
08:46:08drbrainso, I made better specs, then wrote the least-ugly thing I could think of to make it pass
08:46:17drbrainI made it more correct and possibly slower
08:46:27evanthe behavior is in specs now, yes?
08:46:40drbrainyes
08:47:02_ADSwhen I hit C-z it prints one more line and then 'Killed'
08:50:05drbrainevan: also, I am curious about how to implement #close_read and #close_write
08:50:10crafterm enters the room.
08:50:23crafterm leaves the room.
08:50:34ragnard enters the room.
08:50:43evandrbrain: they're only on pipes, right?
08:50:52drbrainno
08:51:01evanI don't think they work on normal IO objects
08:51:18drbrainI think they work on socket
08:51:21drbrains
08:51:31evanthey probably do the same as just close
08:51:38evanin that case
08:51:57evanthey only have a unique behavior when the IO object is for a pipe
08:52:06evanie, where the IO object has actually 2 seperate fds inside it
08:52:11evanin all normal cases, there is only one fd
08:52:18evanand there is no way to close half on one fd
08:52:32drbrainyeah
08:52:42graza enters the room.
08:52:51evanactually.. wait..
08:52:52drbrainwell, a Socket doesn't
08:52:58evandoesn't what?
08:53:08drbraindoesn't have two fds
08:53:13headius leaves the room.
08:53:18evannothing does
08:53:35evanexpect for IO.popen(..., "r+") etc.
08:53:37drbrainfor File opened in r+, close_read raises IOError: closing non-duplex IO for reading
08:53:57drbrainTCPSocket.open 'localhost', 'http' do |io| io.close_read; end
08:54:02evanok, i'm a little wrong
08:54:15evanSocket's have a unique ability to close half of an fd
08:54:23evanvia shutdown(2)
08:54:47evani'd have to check if there is a Socket#close_read that calls shutdown
08:54:54drbrainok, then it's simpler than I thought
08:55:11evanfor Socket, yeah, it's pretty easy
08:55:39evanis rubygems closing half a socket?
08:55:57drbrainno, I just wanted to spec some stuff correctly
08:56:07drbrainright now it checks closed?, but that's too strict
08:56:08evanok
08:56:35evanwe don't have the duplex IO that MRI does
08:56:47evaninstead, popen returns a BidirectionalPipe object
08:56:47drbrainthere's a BasicSocket#close_read
08:57:00evanso doing close_read/close_write on a pipe is easy
08:57:07evanjust make them methods of BidirectionalPipe
08:57:21drbrainso IO#close_read should probably just raise the IOError
08:57:25evanyep
09:02:03evanok, bed time.
09:02:03evannite.
09:02:07imajes enters the room.
09:02:17langenbergmorning
09:13:35wycats enters the room.
09:13:39graza leaves the room.
09:13:58graza enters the room.
09:14:21_ADS leaves the room.
09:23:04wycats leaves the room.
09:23:47wycats enters the room.
09:29:20VVSizbrixen: alive?
09:29:34VVSizwith the latest mspec updates, how are we supposed to run JRuby in CI mode?
09:30:00VVSizci is deprecated, and mspec doesn't accept -E option (to specify our, external, excludes)
09:30:15imajes leaves the room.
09:30:29imajes enters the room.
09:31:12TheVoice leaves the room.
09:31:17ruemspec ci
09:32:12geekounet leaves the room.
09:33:00VVSizrue: yeah, but it doesn't accept -E option which we use extensively to specify JRuby excludes
09:33:52VVSizoh, now there is TAGS_DIR env variable
09:33:59rueYou can do the mappings manually
09:34:16VVSizhow?
09:36:36geekounet enters the room.
09:38:10w1rele55 enters the room.
09:38:53langenbergAnyone willing to look at the patches I've submitted? Ticket #327
09:39:03rueVVSiz: Syntax is something like fails:blah blah
09:39:03Arjen_ enters the room.
09:39:13rueVVSiz: Check spec/tags
09:40:05ruelangenberg: I can get it tomorrow but just bother anyone who happens around
09:40:12VVSizrue: yep, will do. I sure hope that it will not be required to change all our exclude files to new format, or at least the amout of manual changes will be minimal :)
09:40:12ruedbussink will probably be up shortly
09:40:26langenbergalright :)
09:40:51langenbergJust want to be sure I didn't forgot anything.
09:41:14drbrainwhat was wrong with the _excludes.txt files?
09:43:46VVSizdrbrain: yeah, I remember there were some discussions about excludes being not good for some reason...
09:44:11VVSizbut we actually been using them for a while in JRuby
09:44:33VVSizone of the reasons is the ability to add some metadata to excluded tests, like bug number, platform, etc
09:45:03drbrainseem sodd that it needed a rename
09:45:27octopod enters the room.
09:45:27drbrainanyhow, back to Lost
09:45:32VVSizyeah, the old functionality is gone, if I'm not mistaken, not good :)
09:54:38tbmcmullen leaves the room.
09:59:38ariekere enters the room.
10:00:34ariekere leaves the room.
10:09:36scoopr enters the room.
10:10:17wycats leaves the room.
10:11:15jero5 enters the room.
10:11:39zenspider leaves the room.
10:18:22benburkert leaves the room.
10:20:59dysinger leaves the room.
10:25:17boyscout1 commit by Vladimir Sizikov
10:25:18boyscout * Added possibility to override CI_FILES and TAGS_DIR.; 5398a79
10:28:15jero5_ enters the room.
10:38:52rubuildius_ppcVladimir Sizikov: 5398a792e; 1569 files, 5484 examples, 18946 expectations, 0 failures, 28 errors; http://pastie.caboo.se/154187
10:40:07rubuildiusVladimir Sizikov: 5398a792e; 1569 files, 5483 examples, 18974 expectations, 0 failures, 5 errors; http://rafb.net/p/9jTGR884.html
10:40:17geekounet leaves the room.
10:44:37graza_ enters the room.
10:44:38graza leaves the room.
10:45:05jero5 leaves the room.
10:57:14graza enters the room.
10:57:15graza_ leaves the room.
11:03:01comboy leaves the room.
11:04:37ruivaldo enters the room.
11:18:56graza_ enters the room.
11:18:57graza leaves the room.
11:46:09graza enters the room.
11:46:10graza_ leaves the room.
11:49:18claudio_ enters the room.
11:51:04ruivaldo leaves the room.
11:54:18langenberg leaves the room.
11:54:50langenberg enters the room.
11:54:54langenberg leaves the room.
11:54:56claudiohi
11:55:23graza_ enters the room.
11:55:53langenberg enters the room.
11:56:09cremesclaudio_: i don't think any of the core team is awake right now; i just got up to get ready for my day job
11:57:42claudioah, I know :-)
12:00:45cremes leaves the room.
12:01:09w1rele55 leaves the room.
12:01:26w1rele55 enters the room.
12:05:47xmlhacker_ enters the room.
12:13:37graza__ enters the room.
12:13:38graza_ leaves the room.
12:16:58ragnard leaves the room.
12:18:51graza leaves the room.
12:21:18xmlhacker leaves the room.
12:21:56ctennis leaves the room.
12:28:56graza enters the room.
12:28:58graza__ leaves the room.
12:45:10FFighter enters the room.
12:45:13FFighterhello!
12:50:46rue Hello, good night
12:55:32ragnard enters the room.
13:07:52jtoy enters the room.
13:07:53graza leaves the room.
13:08:09graza enters the room.
13:13:55kofno enters the room.
13:33:35geekounet leaves the room.
13:33:36graza leaves the room.
13:33:45graza enters the room.
13:37:00geekounet enters the room.
13:44:47srbaker enters the room.
13:49:03graza_ enters the room.
13:49:04graza leaves the room.
13:51:28bitbckt enters the room.
13:54:30RyanTM_ enters the room.
13:56:49srbaker leaves the room.
14:14:08AndrewO_ enters the room.
14:16:35graza enters the room.
14:16:36graza_ leaves the room.
14:18:01bitbckt leaves the room.
14:20:30srbaker enters the room.
14:26:18RyanTM_ leaves the room.
14:26:46ragnard_ enters the room.
14:28:07ragnard leaves the room.
14:32:13ragnard_ leaves the room.
14:33:32graza_ enters the room.
14:33:33graza leaves the room.
14:35:32srbaker leaves the room.
14:36:13wmoxam enters the room.
14:40:10ttmrichter leaves the room.
14:41:13ragnard enters the room.
14:42:07chris2 enters the room.
14:43:43shevy enters the room.
14:44:11RyanTM enters the room.
14:51:45skaar enters the room.
14:52:23rubymaverick_ enters the room.
14:54:35moofbong enters the room.
15:10:53d2dchat enters the room.
15:26:39gdagley enters the room.
15:34:55graza_ leaves the room.
15:35:26agile leaves the room.
15:36:55binary42 enters the room.
15:46:02Fullmoon_ enters the room.
15:46:15cored enters the room.
15:46:17Fullmoon_ leaves the room.
15:48:05RyanTM leaves the room.
15:48:41RyanTM enters the room.
15:49:19lopex enters the room.
16:06:48ttmrichter enters the room.
16:16:40jtoy leaves the room.
16:20:56gdagley leaves the room.
16:29:39pietia enters the room.
16:30:48headius enters the room.
16:32:24sudothinker enters the room.
16:33:08ragnard leaves the room.
16:34:32agile enters the room.
16:34:42langenberg leaves the room.
16:35:46_ADS enters the room.