Index

Show enters and exits. Hide enters and exits.

00:09:07brixenunpack X* is just bazinga dinga
00:10:22evanbazinga dinga?
00:11:25brixenyeah, that's MRI dialect for "you so fucking crazy"
00:11:37evanaah.
00:13:35evani have no clue why X and x are even in there
00:13:40evanwhy would you want to skip backward?
00:14:04evanto interprete the same bytes as 2 different types?
00:14:25brixenwho knows
00:14:30brixenask Larry
00:15:29evanwait
00:15:33evanwhat does X* do?
00:15:36evango to the beginning?
00:15:42brixenif you are at the end
00:15:47brixenbut it doesn't really
00:16:06brixeneg "abc".unpack('C*X*C')
00:16:14brixenit's just stupid
00:16:40brixenbasically, raises an ArgumentError unless you are at the end, then no-op
00:19:47brixenah yes, I get this code now
00:21:09brixenit's even dumber
00:21:21evanrad.
00:21:37brixenX* backs up the delta between where you are now and the end of the string
00:22:45brixenie "abcd".unpack('C3X*C') == 'C3X1C'
00:23:02evan@_o
00:23:07brixenyeah
00:23:15brixenputs gun to head
00:30:43brixenthe existing spec for this behavior (vaguely accurate) was buried in: String#unpack with 'a', 'X' and 'x' directives returns an array by decoding self according to the format string
00:30:59brixenbasically, it "does correctly"
00:31:16brixenwin
00:31:22evan:/
01:29:07boyscoutSpecs for String#unpack @Xx. - 7246b8f - Brian Ford
01:29:07boyscoutString#unpack @Xx. - 69d4c72 - Brian Ford
01:29:07boyscoutSpecs for Array#pack AaZ. - 7880624 - Brian Ford
01:29:07boyscoutArray#pack AaZ. - 6fcddfe - Brian Ford
01:29:07boyscoutBenchmark for Array#pack AaZ. - 6120ef0 - Brian Ford
03:50:48boyscoutFix for the following Marshal.load specs: - 06919d8 - Jose Narvaez
03:50:48boyscoutRemove tags for passing Marshal.load specs - b5f0a3a - Jose Narvaez
03:59:49goyox86fades
04:29:17cremesbrixen: your work on pack/unpack is superlative... many thanks
04:33:00brixencremes: thank you!
04:33:08brixenit's moving along
04:33:13brixenspecs are the hardest part
04:33:32brixenonce I get them cleaned up or added, the implementation has been pretty straightforward
05:27:38brixenevan: so I has an issues
05:27:44evank
05:27:46evanwassup
05:27:52brixenhttp://gist.github.com/493523
05:27:58brixensee the 14 sec entries
05:28:09brixenaccording to shark, 0.4% of that is Array::pack
05:28:23brixenthe rest is mostly _memcpy
05:28:42brixenbecause pack is called with a 86,580 char directives string
05:29:02brixenwhich I make a std::string to be GC safe and cleaned up when the scope exits
05:29:49evanok
05:29:54evanyou can save the shark output as text
05:29:55evando so
05:29:58evanso I can see.
05:30:16brixenI can just cp the session file to elle right? and you could load it?
05:30:21evanno
05:30:22evanit's huge.
05:30:29evanjust save to text so I can see the output
05:30:47brixenit's only 2541102
05:31:02evanthats 2M
05:31:04brixenyeah
05:31:06evanthe text will be 15k
05:31:29evani've had issues openning session files before
05:31:35evanis why I'd prefer not to.
05:31:39brixenk
05:31:40evanwe'd spend a bunch of time
05:31:44evanand get nothing out of it.
05:32:03evanlet me go look at the code
05:32:48evanok
05:32:49evanyeah
05:32:56evanyou're using of std::string
05:32:58evanis the problem.
05:33:08brixenyeah, that's what I said :)
05:33:14evanthe push_back is likely causing it to reallocate and copy EVERY call
05:33:25evanie, it's not using a bigger buffer than needed
05:34:47brixenwell, I need to separate this
05:34:47evantry putting str.reserve(4069) at the top
05:34:59evaner. 4096
05:35:07brixenlook at the benchmark, there is the :fast_rgba that is way faster
05:35:08evanto force it to grab a big backing buffer
05:35:12brixenrun on the same image
05:35:21brixenbut its directives string is way shorter
05:35:29evanright.
05:35:41brixenhttp://gist.github.com/497277
05:35:44brixensee these two
05:36:01evanseriously?!
05:36:03evanthats the pattern?!
05:36:23brixenyes
05:37:14brixenthis is the bench http://gist.github.com/497335
05:37:18brixenthe same image is used
05:37:41evanstd::string might not be the tool for this.
05:39:48evanit very likely is std::string sucking ass.
05:39:59evanit's just not built to do this.
05:40:22brixenactually, I just realized what it is
05:40:30brixenthe difference between these 2 is X and x
05:40:39brixenI implemented X very naively
05:40:43brixen:)
05:40:44brixensorry
05:41:15brixenanything will suck ass if you copy it 86,580 times
05:42:30brixenif you think something would be rather nonsensical to use, someone will use it... heavily
05:42:46brixenlike, for every pixel in an image
05:43:25evani'd like for us to figure out a better way to organize this code
05:43:46evanafter looking at for the last 10 minutes
05:43:52evani can barely understand it.
05:44:08brixenwhich part are you looking at
05:44:28evanthe whole thing.
05:44:31brixenit's one line in pack_actions.rl
05:44:37evanpart of this is I don't understand ragel.
05:44:41evandon't explain it to me over IRC either.
05:44:42evan:)
05:45:03evanif you write some comments about what, for instance, setting index does
05:45:04brixenwell, you need to start at machine/pack.rl
05:45:06evanthat would help. :)
05:45:34brixensure, I will doc it
05:46:21evanfor the time being, i can only provide cursory help
05:46:27evanand thats by looking at the generated output.
05:46:32brixenanyway: pack_actions.rl:98: str = str.substr(0, str.size() - count);
05:46:57brixenI need to back up the insertion point in the output string by count bytes
05:47:13evanpack? I thought we were doing unpack
05:47:17evanthats why i'm so lost.
05:49:07brixenlooks like resize should do it
05:49:25evanreserve you mean?
05:49:33evanresize is different
05:49:44brixenno, I mean chop the string down
05:49:53brixenthe example for resize looks right
05:50:21evani really feel like str::string is not the thing to use
05:50:23evanpersonally.
05:50:33brixenwell, it's working great so far
05:50:37brixenI'm open to suggestions
05:50:45brixenbut I'm not inclined to change it right now
05:50:50brixenthis was my fault
05:51:07evanok
05:51:09brixen1. for a naive impl, and 2. for not realizing someone would actually do this pattern
05:51:21brixenI mean, write 4 bytes, back up one
05:51:27brixenfor a whole image?
05:51:33evanwtf seriously
05:51:35brixen*eyeroll*
05:52:45brixenthe perf in this http://gist.github.com/493523 is on par with 1.9
05:52:56evanok
05:52:57evanwell
05:53:02brixenit's just the two crazy directives strings
05:53:26evanisn't that the same one?
05:53:29evani don't see any change
05:53:42brixenbingo
05:54:04brixenhttp://gist.github.com/493523
05:54:27brixenactually, let me kill ff and run that again
05:55:44brixendbussink: here are your chunky_png encoding benchmarks http://gist.github.com/493523
05:56:53brixenwe can tweak the impl of #pack as much as we want once the stuff is working
05:59:16evani think at least some docs
05:59:23evantrying to sort out it put me in a bad mood :(
06:00:16brixensure, you need to know where to start
06:01:43brixenone issue that would need to be addressed for an alt impl is that there is a lot of state
06:02:12brixenthus, a "create an object for a directive and call methods on it" approach seems dubious to me
06:02:31brixenbut again, that's open to demonstration
06:02:44evanwell
06:02:51evanit doesn't appear to be reusable at all atm.
06:02:57evanmaybe that one machine/pack.rl file
06:02:57brixenbasically though, rules are in machines/*.rl, actions are in actions/rubinius/*_actions.rl
06:03:13brixencode wrappers are in *_code.rl
06:03:21evanwhat is a "code wrapper" ?
06:03:37brixenString* Array::pack(STATE...)
06:04:11brixenstart in machines/pack.rl
06:04:28brixenfind a directive, they are named just like the Ruby code
06:04:31evani don't like that the code in rubinius is an autogenerated soup
06:04:35brixeneach has 1+ actions
06:04:38evanfor releases, we should be including the .rl files too.
06:04:54brixenthat's fine
06:05:06brixenit's a separate dir for other projects to collab on
06:05:11brixenwe can copy it in just like mspec
06:05:29brixenanyway, for eg the X action, pack_actions.rl -> action X
06:05:30evanwhy is actions/rubinius in rapa at all?
06:05:33brixenit's super easy
06:05:41evanseems like that should live aways inside the rubinius tree
06:05:48brixenwhy?
06:06:19evanthey're 100% rubinius specific
06:06:21evanit appears
06:06:28evani thought rapa was the generic project
06:06:35brixenum...
06:06:42brixenok, I'm tired
06:06:48brixenlet's talk tomorrow
06:06:49evanyeah, me too.
06:06:51evank
06:06:53evansorry :(
06:07:43brixenCI is hung btw
06:08:30evanfucking a.
06:08:32evansomething is up.
06:08:33evanbigtime.
06:08:47evanstarted when dbussink untagged all those specs.
06:08:53evansomething is unstable.
06:09:01boyscoutFixed degenerative X case for Array#pack. - 49f6d09 - Brian Ford
06:36:52boyscoutCI: rubinius: 9a9062d successful: 3498 files, 14668 examples, 42466 expectations, 0 failures, 0 errors
06:57:06dbussinkevan: hmm, any ideas which tags?
06:57:21evancheck ci.rubini.us
06:57:22dbussinksince i ran them for quite a while and never got an issue here
06:57:28dbussinkbut maybe there's some difference on linux
06:57:32evanthere is a backtrace in the middle of the output
06:57:36evanwhich I did when it was hung
06:58:10dbussinkevan: ah, i see yeah
06:58:24dbussinkmust be some linux / thread issue probably then
06:58:56dbussinki did run them a few times on a debian lenny 64 bit box too before removing the tags :S
07:05:00evandid you remove a Thread#exit tag?
07:05:21evanwhich is what that hang appears to be in
07:05:26evanoh wait
07:05:29evani'll bet I know whats up.
07:05:33evanlet me check something.
07:07:52evandbussink: ack, yes.
07:07:54evanmy screw up.
07:08:01evandbussink: i'm on my hydra branch
07:08:13evancould you add get_attention();
07:08:19evanto the last line of VM::register_raise
07:09:58evantest that
07:09:59evanand commit it.
07:10:03evanshould fix the issue.
07:10:15evani'm off to bed.
07:11:39dbussinkevan: ok, i'll do that :)
07:13:12dbussinkevan: nite!
07:18:56boyscoutPotential fix for spurious CI hangs - 702e649 - Dirkjan Bussink
07:23:04brixendbussink: I think you mean sporadic, those are not false or fake hangs :)
07:23:57dbussinkbrixen: ah, yeah, true :)
07:24:09dbussinkbut let's see whether it runs through now
07:24:53dbussinkbrixen: even installed an old gutsy to test these specs now :)
07:24:53dbussinkunstable(Causes mspec to exit with 'Hangup' on freebsd/ubuntu gutsy):Process.kill sends the given signal to the current process if pid is zero
07:25:18dbussinkbrixen: bit nice packing performance numbers :)
07:25:42dbussinkbrixen: the chunky png guy knows about those nasty pattern strings, but he couldn't find another way :)
07:28:08boyscoutCI: rubinius: 702e649 successful: 3502 files, 14746 examples, 42553 expectations, 0 failures, 0 errors
07:29:04brixendbussink: yeah, that was just a dumb way for me to implement X
07:29:28brixendbussink: I have a couple more things for unpack to do and then I'll run the decode benches
07:29:42brixenbut so far, rbx perf is on par with 1.9 in that encode bench
07:29:48brixenso that's good
07:29:56brixenif he has other benches, let me know
07:30:00brixenanyway, night
07:30:04dbussinkbrixen: i'll let him know :)
07:30:12dbussinkbrixen: this is already a very nice improvement :)
07:30:17dbussinkbrixen: still happy with the code?
07:30:25brixenhappy with what?
07:30:58tarcieriboing
07:31:11brixendbussink: here's some other benches http://gist.github.com/496620
07:32:17dbussinkbrixen: with how this approach works out
07:32:46brixendunno, it's 100x faster
07:33:02brixenI don't really care actually, could copy MRI for all I care :)
07:33:08brixenanyway, night for reals :)
07:33:18dbussinkbrixen: nite!
09:58:00boyscoutRemove tags for passing Process#kill specs - b3daf38 - Dirkjan Bussink
10:07:03boyscoutCI: rubinius: b3daf38 successful: 3502 files, 14746 examples, 42553 expectations, 0 failures, 0 errors
13:45:03goyox86Morning!
14:49:59dbussinkgoyox86: g'day sir
14:50:33goyox86dbussink: how r you doing?
14:52:29dbussinkgoyox86: good, nothing special, just cranking out some ugly near deadline code :P
14:52:43goyox86dbussink: :s
14:53:14goyox86dbussink: some CI hangs yerterday :]
14:53:50dbussinkgoyox86: hopefully they are gone now :)
14:53:55dbussinkgoyox86: did you have them too?
14:55:42goyox86dbussink: yesterday i made a commit, and no CI ran, i mean no boyscout output, i just got slept waiting for it
14:56:48dbussinkgoyox86: ah ok, yeah, well, pushed a commit today that hopefully fixes it :)
14:56:57dbussinkgoyox86: it ran the last few times through
14:58:39goyox86dbussink: i saw your fix, what does get_attention() do?
15:49:13evanmorning
15:52:55brixen morning
15:54:09evanbrixen: again, sorry about last night
15:54:16evani was in a really bad mood! geez evan!
15:55:12brixenok
15:58:56goyox86brixen, evan: morning!
15:59:24brixenhi goyox86
15:59:55evangoyox86: hi hi
16:01:04evanbrixen: at any rate, I should go read the ragel docs to figure out the grammar?
16:01:36brixenwell, you should have some familiarity with it, but I can write a short tutorial
16:02:09evanit's short enough that I'd imagine if I skim the ragal docs I'll get it
16:02:12brixenwhere do you want the files in the rbx tree?
16:02:41evanvm/builtin/ragel seems logical
16:03:03brixenreally?
16:03:37brixenso, if you look at machines/pack.rl
16:03:52brixeneach 'ident =' defines a machine
16:04:08brixen% @ > attach actions on a transition
16:04:18brixenso <sigil><name>
16:04:27brixenwhere <name> is the action
16:04:42brixenthose are all defined in actions/rubinius/pack_actions.rl
16:05:27brixen% means a leaving transition, > is an entering transition, @ happens each time the state is entered
16:05:32evanI don't really see % @
16:05:37evanI see @
16:05:37brixena very simple example is count
16:05:39evanand % %
16:05:44brixenwhat file?
16:05:52jakedouglasgood morning
16:05:53evanwait, do you mean
16:05:59brixenloook at line 11 of pack.rl
16:06:01evan"%, @, and > attach actions ..."
16:06:04brixenyes
16:06:08evanah
16:06:11brixencount = is a simple atoi
16:06:13evani thought you meant them in series
16:06:23brixendigit is a built in machine [0-9]
16:06:39brixenwhen it recognizes the first digit, >start action runs
16:06:52evanis count referencing itself then?
16:06:53brixenfor each successive digit @count action runs
16:06:57evanbecause it's count = ... @count
16:06:58brixenyes
16:07:00brixenno
16:07:01brixenno
16:07:06brixen@count is an action
16:07:28evanah ah
16:07:29evanok
16:07:38evanthe rules are in a different namespace than the actions
16:07:43brixenyes
16:07:46evanyou're saying that the count rule should run the count action
16:07:50brixenyes
16:08:55brixenwell, no
16:09:04brixendigit* runs the count action
16:09:15brixenactions are left associative
16:09:25brixenyou have to use () to group expressions
16:09:28evanumm
16:09:30evanok, in
16:09:31evancount = digit >start_digit digit* @count;
16:09:43evanis @count attached to count or digit*
16:09:43evan?
16:09:47brixendigit*
16:09:53evani assume that count is run in order
16:09:56evanleft to right
16:10:18evanso you're saying "when you match a kleene star of digits, run the count action"
16:10:28brixencount says: recognize a single digit, run start_digit, recognize 0 or more digits, run count action
16:10:41brixen0 or more additional digits
16:10:44evanok, in the count action
16:10:46evanwhat is fc?
16:10:49brixenx y => x then y
16:10:55brixenthe current character
16:11:19brixenin pack, the machine is running on the directives string
16:11:35evanso
16:11:44evanis the count action run for each digit matched by digit*
16:11:46evanor once?
16:11:55brixen[1].pack('C3') => C rule runs => 'C' ...
16:12:00brixeneach digit
16:12:14brixenper the @
16:12:22brixenwhich says, each time you enter the state
16:12:29brixenthe "state" is "a digit"
16:12:37evanand "count" in the count action is a local variable within the generated output?
16:12:44evanthere are 3 things named count
16:12:47brixenyes
16:12:50evanwhich is part of my confusion
16:13:06brixencount is defined in actions/rubinius/pack_code.rl
16:13:16evanyeah, i'm looking at it.
16:13:25brixenwell, it's quite clear if you know ragel
16:13:38brixennot inclined to name it count_var, count_action, count_rule
16:14:42brixenall transition and state actions must be introduced by a sigil
16:14:51brixenthere is no confusing which namespace you're in
16:14:52evanno no it's fine
16:14:56evanthere are 3 contexts anyway
16:15:02brixenof course
16:15:04evanand a different count ofr each context
16:15:08evanwell, you say of course
16:15:13evanbut it's not clear to a newbie like me :)
16:15:28evani'm getting it now.
16:15:32brixenI realize that, which is why I can write a tutorial
16:15:42brixenbut something isn't just a priori confusing
16:15:52brixenllvm is pretty damn confusing except to you ;)
16:16:02evanit was confusing to me at first too
16:16:05evanjust took learning it
16:16:08evanI totally understand
16:16:10brixenyeah
16:16:16evanjust giving you a "first look" reaction
16:16:29brixenright, and with no tutorial
16:17:28evanin actions/unpack_code.rl
16:17:41evaninclude "unpack.rl";
16:17:46evanthats machines/unpack.rl
16:17:46evan?
16:17:54brixenyes
16:18:07brixenthe code wrapper imports the machine, which imports the actions
16:18:18brixenthe actions to import are specified by the directory to search
16:19:08brixenunpack_code.rl is === to grammar.y
16:19:16evanright
16:19:22brixenwhere instead of embedding the grammar rule, it's imported
16:19:38evanso one thing i just realized is that actions have no way to express state within ragel
16:19:47evanso they share state between them in the generated output only
16:20:09evanthus the building of the count local to be a number
16:20:16evanand then someone reading it later
16:20:27brixenbasically, yes
16:20:42evanso
16:20:51brixenof course, that could all be via some function interface to get/set objects etc
16:20:57brixenbut I don't see the point
16:21:30evanok
16:21:36evanif you were going to write some docs
16:21:56evanwrite one sentense on what each local is
16:21:59evanand what it's used for
16:22:07evani think that would clear it up a bunch
16:22:13brixensure
16:22:57brixenalso, the flow to look at this is generally: pack.rl, pack_actions.rl, pack_code.rl
16:23:11brixenif you don't follow that path, you're probably going to get confused
16:23:23evanwell
16:23:27brixena rule has actions, actions have implementations
16:23:27evani have to look at pack_code.rl first
16:23:31evanto know what is a local
16:23:47evanthen go back to pack_actions.rl to see how the locals are used
16:23:57brixenyou don't see a local till you look at an action
16:24:17evanwell, i know there are going to be locals in actions.rl
16:24:41evani suppose I could just assume that anything like "[a-z]+ = " is setting a normal state local
16:24:50evani feel like I'm missing the bigger picture though
16:24:55brixenhmm
16:24:56brixenyeah
16:25:05brixenthat sentence didn't parse
16:25:08evanthe bigger picture is here this code is actually running
16:25:16brixenthe assignments in pack.rl are just rules
16:25:16evanwhich is in _code.rl
16:25:26brixenthere are no "locals" in any code sense
16:25:32evanright
16:25:39evanthat i've gotten
16:25:45brixenthe rules are state machines/regular expressions
16:25:47brixenok
16:26:11brixenso, to find out how [1].pack('C3') works, you have to find the rule for 'C3'
16:26:14brixenso you start in pack.rl
16:26:45brixenC as a rule is defined as (('C' | 'c') modifier) %check_size %C;
16:26:56brixenmodifier is another rule
16:27:22brixenwhich is count_modifier | [_!]
16:27:27evanyep
16:27:31evani followed that back up
16:27:37evani think i'm getting the hang of ragel.
16:27:44brixencount_modifier is '*' %rest | count?
16:27:44evanfrom the rule perspective
16:27:53brixenat %rest you get your first action to look at
16:28:44brixenwhich has rest = true, and now you have a local to puzzle over :)
16:29:00evanright
16:30:00evanso now I hold in my head "res is set"
16:30:02evanrest
16:30:13evanand kick back out to %C
16:30:32brixenwell, to %check_size then %C
16:30:34evanwell, in the case of C3
16:30:38evanrest isn't set, right?
16:30:46brixenright, because there's no *
16:30:56brixen'*' fails, so count? rule runs
16:31:06evaninstead, %count kicks in via the count rule
16:31:09brixenwhich means 0 or 1 count rules
16:31:12evanwhich sets the count local
16:31:21brixenright
16:31:49brixencount rule itself is 1 or more digits
16:32:22brixenfor something like 'C2C5C3' count has to be initialized for each directive
16:32:37brixenthat's why >start_digit action exists
16:32:50brixenand @count action accumulates
16:33:06evanAAH
16:33:10evani was wondering how count was reset.
16:33:21evanwhats the > mean?
16:33:30brixen> means the transition into the state
16:33:42evaninto which state?
16:33:47brixenlike only once at the very beginning
16:33:48evango to start_digit?
16:33:53brixen"state" is any machine
16:34:02brixenin this case, the digit machine
16:34:04evanis that refering to the CURRENT state?
16:34:11brixenie recognize [0-9]
16:34:45brixenwell, this is the slightly confusing part IMO
16:35:09brixendigit = [0-9]; digits = digit+
16:35:22brixendigit is a machine (ie has a state, only one)
16:35:40brixendigits is a machine, has 1 + states if you linearize it
16:36:00brixenit's just a state with a transition back to itself and one out for a non-digit char
16:36:11evanok sure
16:36:15evankleene star style.
16:36:16brixenyou can generate .dot output if that would help
16:36:36evani've drawn the kleene star match
16:36:48evanbut we could generate the .dot and post it somewhere for people to see
16:36:55evanas a png
16:36:57brixenit's humungous
16:37:02evani'll bet.
16:41:16evanbrixen: ok, i think i've got it a lot better
16:41:28evani'll this thinking in parallel for hydra has gotten my head twisted
16:41:35evani need a twin
16:41:44evanhe can keep track of a parallel thread
16:41:48evanwhile i do the current thread
16:43:18brixenyeah, concurrency is like time just disappeared except not because somethings are seqential accidentally or on purpose
16:43:42evanwell, i've got a good rhythm now using CAS
16:43:57evanyou get the current value, you change it to what you want it to be, then you do
16:44:16evanif(!CAS(&location, original, new_value)) goto redo;
16:44:48evanso i've gotten in the habit of thinking that only a CAS an atomic operation
16:45:03evanand that every other line of code could be running simultaniously on another thread
16:45:32brixennice
16:48:56evanbrixen: so, what was the issue with X yesterday?
16:49:00evani should go look at your commit
16:49:01evanone sec.
16:49:44evanoh, just that you were copying the string to be a smaller version of itself each time
16:49:52brixenI was copying the string
16:49:53evanrather than rewinding it
16:49:59brixenright
16:50:15brixenthe std::string is performing very well in all my benches
16:50:26brixenI didn't have a bench for X yesterday :(
16:50:37brixenbut I've written one this morning
16:51:37evank
16:53:19brixenso vm/builtin/ragel seems a poor choice because this is just "a" ragel project
16:53:35brixenand we need a general place for included code
16:53:54brixenlike code for the rbx doc system
16:53:57evanok
16:54:06brixenor bundling Gauge
16:54:16evanok
16:54:23evanhow about /projects/
16:54:33evanoutside vm entirely
16:54:40brixenthat seems good
17:01:27evango for it.
17:01:43evanbrixen: bakkdoor is arriving at union station at 11
17:01:51evanso i'm going to head down there in about 30 mins
17:01:56brixencool!
17:02:02brixenhe's fun to hang out with
17:02:09evanoh good!
17:02:24evansadly, ricky's fish tacos doesn't appear to be open today though :/
17:02:33brixen:(
17:02:42brixenI'm sure you'll find something
17:02:49evanyeah
17:54:52dbussinkevan: how's hydra looking?
17:59:06goyox86dbussink: i think evan is in mission burritos/tacos with bakkdoor, isn't brixen?
18:08:50brixendbussink: evan pushed the hydra branch
18:12:41dbussinkbrixen: ah, going to take a look then :)
18:12:51jakedouglasHYYDDRRAAA
18:52:19dbussinki already crashed the hydra branch :P
19:02:57brixendbussink: you are a spoil-sport
19:03:29JamesKiltonso what is Hydra? I saw the commits about removing the GIL
19:03:56brixenit's a branch to work on removing the GIL :)
19:04:13JamesKiltonOk was wondering if there was more to it than that
19:04:14dbussinkbrixen: i'm too good at it ;)
19:04:28brixenprobably taken from http://en.wikipedia.org/wiki/Hydra
19:04:45brixendbussink: you know what they say, you break it, you fix it :)
19:05:20JamesKiltonthere is a parallel test runner system called Hydra, for running tests across multiple systems
19:07:03brixenkitties! http://gist.github.com/498949
19:07:07brixenand it runs on rbx
19:07:25brixenrbx gem install kitty; rbx -S kitty
19:07:28brixendon't delay!
19:07:46brixenalso, cats rule, dogs drool
19:07:56brixenin case someone wants to make a dog gem
19:10:40dbussinkbrixen: if i could i would fix it ;)
19:11:25brixendbussink: I detect a spirit of defeatism there, if at first you don't succeed... :)
19:11:58dbussinkbrixen: i should get some more simple vm exercise first :P
19:12:24JamesKiltonbrixen: haha you bored?
19:12:35brixenJamesKilton: not at all :)
19:13:04brixenJamesKilton: I'm making sure popular gems run on rbx :)
19:13:09brixenhttp://github.com/bryanwoods/kitty
19:13:27JamesKiltongotcha
19:15:30brixenJamesKilton: also, someone suggested kitty gem might be as awesome as all of github put together
19:15:39brixenso of course I had to see if it runs on rbx
19:15:55JamesKiltonhaha, well it's first I've heard of it =/ Might need to install it now
21:14:56evanyay! bakkdoor and I got fish tacos!
21:15:15brixenyum