Index

Show enters and exits. Hide enters and exits.

00:01:46ch0wda leaves the room.
00:07:05aotearoa enters the room.
00:10:04headius enters the room.
00:17:03wvdschel leaves the room.
00:18:02chris2 leaves the room.
00:23:57lopex enters the room.
00:24:11ch0wda enters the room.
00:25:29twbray enters the room.
00:25:49aotearoa leaves the room.
00:25:59aotearoa enters the room.
00:29:36trythil enters the room.
00:43:34headius leaves the room.
00:51:35nari leaves the room.
00:57:47yroc leaves the room.
00:58:48headius enters the room.
01:05:18AndrewO enters the room.
01:07:03twbray leaves the room.
01:07:40tarcieriholy crap @ IronMonkey
01:07:47tarcierilooks like it never got anywhere though :(
01:08:02ch0wda leaves the room.
01:10:34headiustarcieri: ironmonkey was probably a pipe dream
01:11:03headiusthe guy who was going to work on it, seo, quickly realized he didn't know enough about VMs
01:11:35headiusI find it incredibly odd to base it off DLR and Iron* also, since CLR is even further away from tamarin than JVM
01:12:03tarcieriheh, aight
01:12:37tarcierione of those cool sounding whiz bang ideas that never got anywhere I guess
01:12:54tarcierikinda like me trying to make a dynamic scripting language for the Erlang VM :)
01:13:05tarcieriat least I'm still working on that though, heh
01:20:51nari enters the room.
01:21:18imajes_ enters the room.
01:22:38trythil_ enters the room.
01:24:12nari leaves the room.
01:24:33trythil leaves the room.
01:24:46evanwhats IronMonkey?
01:25:02zenspiderwhat do you mean iron monkey didn't get anywhere? I have it on my dvd shelf!
01:25:08trythil enters the room.
01:25:29evanlooks up IronMonkey on imdb
01:26:31evanlooks like a bad kung fu movie
01:26:46evanwhere bad defines the acting
01:26:49evanand plot
01:26:51evannot the fighting
01:26:57evanwhich i'm sure is stellar.
01:27:14drbrainno, it's awesome
01:29:14TheProkrammerah i remember hearing about ironmonkey.
01:30:16fbuilesv enters the room.
01:30:16TheProkrammerits more like ecma-335 for mozilla
01:30:39tarcierievan: someone was trying to support the DLR on Tamarin
01:30:48zenspiderevan: the movie is actually pretty good
01:30:53tarcieriheh
01:31:03drbrainheads home
01:31:15evanzenspider: bring it to portland!
01:31:16evan:)
01:31:31tarcieriwhat's going on in Portland?
01:31:53evanteam worksession next week.
01:31:57CIA-20* Hook up task_raise primitive; 9d28c02 - Eric Hodel
01:31:57zenspiderwe just watched machine girl... it was the best damn movie ever made in the history of all humankind
01:31:58tarcierio
01:31:59brapse enters the room.
01:32:13tarcierizenspider: I totally forgot about that, thanks for reminding me
01:33:12evanzenspider: hah, wow. sounds awesome.
01:33:30evan"... build her a customized, bullet-spewing arm ..."
01:33:37evanhow can ya loose with an idea like that?
01:34:43zenspiderdude... get on youtube and watch the trailer... you'll see the obvious and painful perfection that is that movie
01:34:50zenspideryou actually bleed watching the movie it is THAT good.
01:35:08zenspiderI'm never gonna be able to blow shit out of proportion the way wilson can. :(
01:35:23evanha! i figured it was anime
01:35:25DefilerNot until you can snatch this pebble from my hand
01:35:29evanlive action, even better.
01:35:46tarcieriyeah, absurd live action
01:36:34twbray enters the room.
01:37:07evanhahahaha
01:37:28evanyou'd need to put a tent on Mars to get close to the level of camp
01:37:39michalw leaves the room.
01:39:26trythil_ leaves the room.
01:41:09nari enters the room.
01:46:02brixenevan: got a sec?
01:46:13evanyep
01:46:39brixenhow important is the behavior of test_string.hpp:70 ?
01:46:50evanpardon?
01:46:56evanoh, that specific line?
01:46:56brixenit's basically caching the hash as a side effect of doing to_sym
01:46:58evanlet me look.
01:47:18evanline 70 for me is test_append
01:47:19brixenle'me pastie my SymbolTable::lookup too
01:47:22brixenright
01:47:39brixenthe way lookup was done before, it did str->hash_string
01:47:39evanoh
01:47:43brixenwhich caached the hash
01:47:48evanyeah
01:47:51brixenbut now it's all impl on a char*
01:47:59evanbut you still have a the hash
01:48:02evanright?
01:48:07brixennot in that function
01:48:08brixenone sec...
01:48:34evani guess it's not that important at this stage
01:48:39evanhaving a cached hash
01:48:39brixenI mean, I don't have the String * anymore
01:48:47brixenhttp://pastie.org/252654
01:48:56brixenI could rework it
01:48:56evanor rather, to_sym() hashing the string as a side effect
01:49:02evanit could just be cached when String::hash is called.
01:49:06enebo enters the room.
01:49:26brixenI only call String::hash_str
01:49:35evansure
01:49:40evani mean when String#hash is explicitly called
01:49:50brixenahh yeah
01:49:59evanyou to you
01:50:03evanthat test is kinda dumb
01:50:07evanthat it's testing hash there
01:50:19evanI think it's just doing that to set ->hash
01:50:22evanit == the test
01:50:32brixenshould I remove the test?
01:50:35evanno
01:50:48evanbecause it's testing append
01:50:49evannot hash.
01:50:53brixenI mean the hash part
01:50:56evanoh.
01:51:01evanhmr.
01:51:02evanno
01:51:09evanyou should call ->string_hash instead
01:51:11evanof ->to_sym
01:51:17evanand string_hash should set ->hash
01:51:20brixenahh, ok
01:51:23brixensure
01:51:39brixenbtw, everything else passes, so I'll push this once I doc it a bit
01:52:06brixenI realized, I could impl a simple hash with almost O(1) just using a std::vector of vectors, if ya want me to
01:52:11brixenrather than map
01:52:22evanyep
01:52:31brixenwant me to?
01:52:38evanum.
01:52:51evanif you don't think it will bog ya down
01:52:55evani'd say go for it.
01:52:57brixenk
01:53:05brixenit shouldn't, now that I understand the memory :)
01:53:17brixenI can push this and then revise, how about that?
01:54:11evansounds good.
01:54:13jtoy enters the room.
01:54:23brixenk
01:54:34brixenjenny just got home, time for motorcycle lessons :)
01:54:46evanhehe
01:54:47evanhave fun!
01:54:51brixenthanks!
02:01:02brixenwell CIA is awol again
02:01:26brixenI'll doc SymbolTable when I redo it as a hash map
02:05:18michaellatta leaves the room.
02:05:26twbray leaves the room.
02:06:08c0sin leaves the room.
02:09:52Shagin enters the room.
02:11:54dfg59 leaves the room.
02:19:49imajes_ leaves the room.
02:28:09blakewatters enters the room.
02:33:14lopex leaves the room.
02:34:47sethbc leaves the room.
02:36:38benburkert leaves the room.
02:41:05dysinger enters the room.
02:45:05twbray enters the room.
02:54:54benburkert enters the room.
02:56:49trythil leaves the room.
02:58:23codebrulee enters the room.
03:06:15jbarnette leaves the room.
03:11:00aotearoa leaves the room.
03:13:02benburkert leaves the room.
03:14:43benburkert enters the room.
03:15:05shame enters the room.
03:19:47aotearoa enters the room.
03:20:11joachimm leaves the room.
03:23:15twbray leaves the room.
03:36:18lstoll enters the room.
03:39:18twbray enters the room.
03:42:33ijcd leaves the room.
03:47:52codebrulee leaves the room.
03:53:26antares enters the room.
04:06:06lchin enters the room.
04:15:26twbray leaves the room.
04:31:27sethbc enters the room.
04:40:36binary42 enters the room.
04:42:35sethbc leaves the room.
04:56:07twbray enters the room.
05:00:29taf2 enters the room.
05:00:39taf2 leaves the room.
05:02:14taf2 enters the room.
05:02:23taf2 leaves the room.
05:11:07jackdempsey leaves the room.
05:15:10blakewatters leaves the room.
05:18:24ijcd enters the room.
05:19:51ryanlowe leaves the room.
05:19:58enebo leaves the room.
05:26:34blakewatters enters the room.
05:32:47ezmobius enters the room.
05:33:00blakewatters leaves the room.
05:37:18benburkert leaves the room.
05:38:01ijcd leaves the room.
06:02:38benburkert enters the room.
06:18:01sethbc enters the room.
06:27:57blakewatters enters the room.
06:35:49blakewatters leaves the room.
06:39:56jtoy leaves the room.
06:43:22jtoy enters the room.
06:48:02benburkert leaves the room.
07:36:45twbray leaves the room.
07:43:07AndrewO leaves the room.
07:55:17wyhaines leaves the room.
07:56:36BlackEdder enters the room.
07:58:12yroc enters the room.
08:01:41ezmobius leaves the room.
08:12:07twbray enters the room.
08:12:59aotearoa leaves the room.
08:21:55kevwil enters the room.
08:22:22yroc leaves the room.
08:22:56kevwil leaves the room.
08:22:58lstoll leaves the room.
08:29:19brapse leaves the room.
08:29:39Arjen_ enters the room.
08:31:54yugui enters the room.
08:38:19yroc enters the room.
08:48:00gnufied enters the room.
08:50:07fbuilesv leaves the room.
09:05:03twbray leaves the room.
09:07:15Maledictus enters the room.
09:09:43nari leaves the room.
09:14:21octopod enters the room.
09:33:25BlackEdder enters the room.
09:40:25nari enters the room.
09:47:37headius leaves the room.
10:11:00headius enters the room.
10:14:32headius leaves the room.
10:14:39aotearoa enters the room.
10:14:53headius enters the room.
10:18:32mutle leaves the room.
10:19:03mutle enters the room.
10:25:44headius leaves the room.
10:32:54antares leaves the room.
10:35:39febeling enters the room.
10:36:36chris2 enters the room.
10:38:43michalw enters the room.
10:39:52BlackEdder enters the room.
10:43:50yroc leaves the room.
10:50:29Vagabond leaves the room.
10:50:42Vagabond enters the room.
10:57:23benny leaves the room.
10:57:52benny enters the room.
11:04:23mutle_ enters the room.
11:17:21dysinger leaves the room.
11:19:38jtoy leaves the room.
11:21:46antares enters the room.
11:23:05mutle leaves the room.
11:33:48febeling leaves the room.
11:34:24febeling enters the room.
11:53:57Yurik leaves the room.
12:00:00BlackEdder enters the room.
12:14:40lstoll enters the room.
12:23:16BlackEdder leaves the room.
12:24:23BlackEdder enters the room.
12:34:28cyndis leaves the room.
12:43:38aotearoa leaves the room.
12:47:16febeling leaves the room.
12:48:54lchin leaves the room.
12:53:13nari leaves the room.
12:55:14joachimm enters the room.
12:55:18aotearoa enters the room.
13:01:31lchin enters the room.
13:04:44febeling enters the room.
13:05:31imajes_ enters the room.
13:10:24febeling leaves the room.
13:14:24yasuhito enters the room.
13:22:01michalw leaves the room.
13:22:05michalw enters the room.
13:54:11yugui leaves the room.
13:56:03cremes_ enters the room.
13:56:03cremes leaves the room.
14:12:29olabini enters the room.
14:14:24blakewatters enters the room.
14:20:41michalw leaves the room.
14:21:02michalw enters the room.
14:27:30bremac enters the room.
14:30:25pauldix enters the room.
14:52:43michalw leaves the room.
15:07:36yasuhito leaves the room.
15:09:36binary011010 enters the room.
15:09:45enebo enters the room.
15:16:29moofbong enters the room.
15:18:46binary42 leaves the room.
15:24:04twbray enters the room.
15:27:04BlackEdder leaves the room.
15:27:20wmoxam enters the room.
15:30:09fbuilesv enters the room.
15:33:02wmoxam leaves the room.
15:37:02shame leaves the room.
15:38:15enebo leaves the room.
15:41:08BlackEdder enters the room.
15:44:48binary011010 leaves the room.
15:44:59binary011010 enters the room.
15:45:05twbray leaves the room.
15:46:00wyhaines enters the room.
15:47:53febeling enters the room.
15:55:10wmoxam enters the room.
15:56:12binary42 enters the room.
15:57:25febeling leaves the room.
16:01:30BlackEdder leaves the room.
16:03:34benburkert enters the room.
16:03:44AndrewO enters the room.
16:10:15bricolage enters the room.
16:14:06benburkert leaves the room.
16:14:39cyndis enters the room.
16:19:27lchin leaves the room.
16:21:18lopex enters the room.
16:21:45lchin enters the room.
16:24:58lchin leaves the room.
16:30:09gnufied leaves the room.
16:30:58aotearoa leaves the room.
16:33:22twbray enters the room.
16:35:00aotearoa enters the room.
16:36:13pauldix leaves the room.
16:36:54yipstar leaves the room.
16:41:03brapse enters the room.
16:46:51yroc enters the room.
16:47:37dfg59 enters the room.
16:54:32twbray leaves the room.
17:02:58smtlaissezfaire_ enters the room.
17:10:31BobFunkasdas leaves the room.
17:13:17benburkert enters the room.
17:14:11pauldix enters the room.
17:31:26twbray enters the room.
17:33:24benny leaves the room.
17:34:32Defilerevan: So, vm/field_extract.rb...
17:34:53evanyep
17:35:13DefilerThe edits I made are mainly on lines 8, 58, and 72
17:35:43evancould ya paste up a diff?
17:35:51Defilersure
17:36:19imajes__ enters the room.
17:37:40Defilerhttp://gist.github.com/5449
17:38:01evanum
17:38:06evanyour diff is in reverse
17:38:07evanright?
17:38:09Defileroh, hah. yes
17:38:17Defilerthe git-diff man page was (ha ha) a little confusing
17:38:32evanolder newer
17:38:39evangit diff older newer
17:38:51evanDefiler: could ya paste it again
17:38:53Defilerrefresh
17:38:57evanso my brain doesn't constantly revolt on me
17:39:05evanbetter.
17:39:23DefilerSo, two questions
17:39:29Defiler1. Does this look totally stupid to you?
17:39:44Defiler2. Should I allow this for non-static functions?
17:40:14xmlhacker enters the room.
17:40:55evanone sec
17:40:59evanstill going through the diff
17:41:47evanline 49 is silly.
17:42:16DefilerI like it
17:42:16ijcd enters the room.
17:42:28evanit's needless
17:42:37evanit's adding complexity where is no reason for it.
17:42:42Defilercomplexity?
17:42:55evanyou've already tested that the array has something
17:43:03evanso .shift is always going to return non-nil
17:43:14DefilerOh, sure. that isn't why I did it that way
17:43:23evanwhy is it?
17:43:44DefilerBased on the outer conditional, we are taking two actions
17:43:53headius enters the room.
17:43:54Defilerand I like the way that style reads in such cases
17:43:59Defilerbut I will change it. No worries
17:44:11evani don't get why we're using the return value from .shift as a condition
17:44:17evani guess thats where i'm confused?
17:45:14pauldix_ enters the room.
17:46:28DefilerOther than that, does it look OK?
17:47:31DefilerFor a static primitive, msg.recv is going to be the Ruby object for the class the primitive was called on, right?
17:47:36Defilere.g. G(regexp)
17:47:54evanI think we should remove it in CPPPRimitive
17:48:04evanie, only have the logic fire on statics
17:48:10DefilerI agree
17:48:25DefilerIf a non-static has 'OBJECT self' in its signature..
17:48:31Yurik enters the room.
17:48:37Defilershould I raise an error, or just ignore it and let it be a regular arugument?
17:48:38evanthat means though that your logic to remove self from the args array needs to only run if it's a static prim
17:48:52DefilerYeah
17:49:01evanif a non-static has OBJECT self we treat it the same way we do today
17:49:06DefilerOK
17:49:07evanpassing it straight through
17:49:52DefilerGot time for another unrelated question?
17:49:59evancourse
17:50:50DefilerSo, as you saw the other day, I got confused by the relationship between Foo the c++ class, and Foo the Ruby class instance that it is standing in for
17:50:56Defilere.g. Regexp vs. G(regexp)
17:51:14evanperhaps I should write up this answer
17:51:15DefilerIs there a reason that there is no pointer from Regexp to G(regexp)?
17:51:31DefilerAs in, no slot filled with that
17:51:36evana slot where?
17:51:48imajes_ leaves the room.
17:51:59Defilera static field on Regexp is where I would expect to find a pointer to G(regexp)
17:52:13DefilerI'm looking at, say, Regexp::init
17:52:25evanso that, say, you could do
17:52:27Defilerand it doesn't save a reference to the globals it sets to classes
17:52:33evanRegexp::ruby_class
17:52:41DefilerYeah
17:52:58evanthe reason is, largely, global cleanliness
17:53:01Defilerwe could even repeat the operator trickery and do (Class*)Regexp(), right?
17:53:27evanyou know, this idea has merit
17:53:33evanbut if we were to do it
17:53:47evanwe've remove it from the main globals list
17:53:52evanso there would be no G(regexp)
17:54:04DefilerThat sounds like a bonus
17:54:07Arjen_ leaves the room.
17:54:22evanwe should try hard not to have multiple places where important globals are stored
17:54:33evanit's also important that the places there stored use TypedRoot
17:54:40evanso that the GC is aware of their location
17:54:48DefilerIt seems like it could clean up the ::init functions
17:55:18evanhow?
17:55:30evanthe .set and such have to stay
17:55:35evanthats the TypedRoot in use
17:55:39evanyou can't just have
17:55:41Defilerright
17:55:46DefilerThe GC has to know the roots
17:55:46evanstatic Class* ruby_class;
17:55:54imajes__ leaves the room.
17:56:00evanit will get wiped off the face of the planet the first time the GC runs
17:56:26DefilerFor example.. we usually initialize a global with a new class and then set its object type
17:56:53Defilerand we could probably combine that into some kind of init helper that let us simply declare the names and move on
17:57:13evanhm
17:57:18evani'm struggeled with that idea
17:57:26evanbecause of the way that static functions work in C++
17:57:32evanyou end up having to pass everything in anyway
17:57:41evanso it doesn't really reduce the ammount of code
17:57:57DefilerAah, yeah.. they don't give you much reflection in a static function, do they
17:58:01evanno
17:58:03Defilerno this, no 'what's my name' etc
17:58:11evanI wish.
17:58:23DefilerC++0rbx
17:58:25Defiler:)
17:58:38octopod leaves the room.
17:59:11DefilerSo forget that last part.. but I do like the idea of having a direct link between Regexp and its ruby version, rather than a bunch of globals
17:59:22dfg59 leaves the room.
17:59:23evansure
17:59:25evani'm fine with that
17:59:27Defilerand it sounds like there is nothing preventing it, which was, I suppose, my actual question
17:59:39evanthere's not anymore
17:59:41evanin shotgun there was
17:59:52evanbecause the globals had to be stored in one giant array in one place
17:59:54evanfor the GC to see
18:00:01DefilerYeah, no TypedRoot
18:00:03evanyeah
18:00:11pauldix leaves the room.
18:00:40evanDefiler: if you want to redo regexp with this scheme, go for it
18:00:42evanwe can see if we like it
18:01:15yroc leaves the room.
18:01:28DefilerOK. I'll give it a spin after I've got the other things I mentioned for today done
18:02:19DefilerRelocating. Back in 10
18:05:03benny enters the room.
18:06:32benburkert leaves the room.
18:06:52evanman.
18:06:56evanthe CIA bot is really flaky
18:07:04benburkert enters the room.
18:07:54BobFunk enters the room.
18:15:46shame enters the room.
18:17:34twbray_ enters the room.
18:19:09benburkert_ enters the room.
18:19:14brixenevan: would you prefer I camel case the typedefs in SymbolTable (e.g. symbol_map -> SymbolMap)?
18:19:21brixenevan: just looking at ConfigParser
18:19:28evanyou know
18:19:30brixenand thought it should be consistent naming
18:19:38evanwhen writing ConfigParser
18:19:48evanI originally used this_thing
18:19:58evanbut switched to ThisThing
18:20:04evanmainly because it's more Ruby-like
18:20:07brixenk, I'll do so as well
18:20:10evanok
18:21:34brapse leaves the room.
18:21:36brixenevan: also, how are you checking ruby code (e.g. kernel/bootstrap/config.rb) ?
18:21:50evani'm running it.
18:22:09brixenwhat's your cmd line look like?
18:22:23evanROOT=runtime ./vm/vm
18:22:31evanmind you, the entire kernel doesn't load yet
18:22:39brixenk
18:22:47evani've been doing "steamroller" pushes
18:23:00brixenshould I add this to readme-c++ or is it really temporary?
18:23:02evanbasically, just running it, seeing where it breaks, fixing that, going on
18:23:07evanit's temp
18:23:10brixenk
18:23:23DefilerDo we know what the deal with the CIA bot is? It seems to only report in about half the time
18:23:29brixenI need to write a prim for Symbol.all_symbols and wanted to be able to check it
18:24:12evanI just checked cia.vc
18:24:19evani think github's service hooks are on the fritz
18:24:28evanbecause the latest commits aren't in CIA
18:24:34evanon the website
18:24:36Defileraha
18:24:39evanso it's not just the bots being flaky
18:24:41Defilerso it could be github not CIA
18:24:47evanI've let the github guys know
18:25:03evanbrixen: well, you should be testing it in C++
18:25:15evanif it's unique functionality
18:25:29evanand not just wrapping an existing C++ method
18:25:43brixenevan: yeah, but there's still ruby code
18:25:47brixenwe can test eventually
18:26:00evancourse
18:26:03evanand we'll get to that
18:26:13evanseems like you could test 99% of it in C++ though
18:26:17brixensure
18:26:34evanArray* ary = VM::all_symbols();
18:26:41evanetc, etc.
18:26:42antares leaves the room.
18:27:04brixenyep
18:28:56michalw enters the room.
18:32:25djwonk enters the room.
18:33:41c0sin enters the room.
18:33:55evanbeing able to watch entire games on nbcolympics.com is pretty cool
18:34:20twbray leaves the room.
18:34:32benburkert leaves the room.
18:35:00drbrainif only it was easier to find where the everything list was
18:35:59evanyeah
18:37:13evanI wonder how much cash Microsoft gave to NBC to use silverlight for their web tool
18:38:39DefilerProbably none, knowing how crazy the world actually is
18:38:57evanhah
18:38:58evantrue.
18:39:35gnufied enters the room.
18:39:57TheProkrammerI'm sure they're getting enough cross promotion to make it worthwhile for both parties.
18:49:18BlackEdder enters the room.
18:50:32BlackEdder enters the room.
18:54:09imajes_ enters the room.
18:55:05taf2_ enters the room.
18:55:45taf2hi, i wrote mongrel-esi and am thinking about reworking it to use ebb, i heard or read somewhere that rubinius uses libev?
18:55:56DefilerThat is true, yeah
18:56:00taf2if so, i was thinking about reworking mongrel-esi to use ebb and rubinius
18:56:04taf2and maybe curl
18:56:24taf2so a combintation of curb, rubinius, ebb, and we could have a pretty nice esi proxy server....
18:56:26DefilerCool. We will be happy to help you with any trouble you encounter.
18:56:35taf2cool
18:57:08DefilerRight now we are in seclusion working on our replacement VM.. but feel free to try running your code against the existing version ('master' branch)
18:57:40taf2ah okay... will the replacement VM still be using libev?
18:57:45DefilerYep
18:57:47taf2cool
18:58:02DefilerWe are just rewriting our own code, not making significant changes to what we pull in
18:58:25taf2okay, and are there any examples of how to tie into the event loop in a rubinius extension?
18:58:28Defilerlibtommath, libev, and llvm are our main external libraries going forward
18:58:43taf2for networking have you guys considered libcurl?
18:59:01DefilerAt the moment we are striving for 100% compatibility with 1.8
18:59:10taf2cool
18:59:11Defilerso we're just supporting Net::HTTP and whatnot.. but libcurl is awesome
18:59:30DefilerIt would be nice to see curb working on rubinius, though. I wonder if it does.
18:59:57taf2i'll check, been working on that lib too... does rubinius have the internal C methods like rb_thread_schedule?
19:00:14taf2once i figure out how to compile extensions in rubinius :-)
19:00:25taf2can i use existing extconf.rb
19:00:31taf2with mkmf.rb ?
19:01:09DefilerI haven't work with this part much, but I believe extconf works and not mkmf? Maybe someone can clarify
19:02:08taf2hrm... so i think extconf.rb is just a ruby file that uses mkmf.rb to do what autoconf does and check the system for libraries, and generate a Makefile
19:02:20taf2with the right linkage and include paths to the ruby-devel stuff...
19:02:22DefilerWe also have this, which is our preferred method of wiring up to external libs
19:02:24Defilerhttp://blog.segment7.net/articles/2008/01/15/rubinius-foreign-function-interface
19:02:25yroc enters the room.
19:02:36taf2reads
19:02:47Defilerthings like our openssl wiring and many others use that interface
19:02:52brixentaf2_: mkmf.rb basically works, but you may hit snags with rbconfig
19:02:58brixentaf2_: if you do, just let us know
19:02:59Defilerand jruby has added a compatible version in their latest version
19:03:40headiusactually it won't be out until 1.1.4...we wanted to make sure we synced up and finalized API changes before release
19:03:53antares enters the room.
19:03:56DefilerSorry, I meant in trunk
19:04:23headiusI would *strongly* recommend people use FFI though, since no impls other than ruby 1.8.x and 1.9.x will ever have a fully-working mkmf+api
19:04:45taf2alright, so i got rubinius built... rake build, now how do i go about running it? and can i use rubygems with it?
19:04:50DefilerThat and mkmf is the maw of chaos
19:05:07drbraintaf2_: rbx gem env
19:05:10Defilerif you install it, the binary is 'rbx'.. otherwise it is ./bin/rbx from the built checkout
19:05:25Defilerand "rbx gem" is how you invoke the gem binary
19:05:25headiusI got it working with jruby with wmeissner's subtend-like "loadmodule" for JRuby
19:05:27pauldix enters the room.
19:05:31taf2ah cool, and if i run that i get an irb term cool
19:05:35DefilerYou can install gems into the working copy
19:05:42taf2excellent
19:05:44taf2thanks
19:05:48Defilerif you run ./bin/rbx gem install foo it will do so
19:05:53headiusand after some fiddling around we both realized trying to support Ruby's API on any other VM is not really feasible
19:06:16Defilerhttp://gist.github.com/5460
19:06:23DefilerI have that as my $HOME/.gemrc
19:06:37Defileravoids constantly building rdocs for gems I'm installing merely to test rubinius
19:07:18taf2ah cool, yeah i wonder how much power/cpu cycles would be safed if gems were packaged with the rdoc's already ...
19:07:26taf2guess it's a trade of of space and time...
19:08:18Defilerdrbrain: Yeah.. why don't we package the rdocs with the gem again?
19:08:42taf2ah wow, so with FFI, i could have a libcurl implementation in a snap
19:08:52taf2is there a ruby interface in rubinius to access the event loop?
19:08:56dgtized leaves the room.
19:09:28headiusif you do an FFI wrapper for libcurl it would sure be nice if you didn't use other rbx-specific stuff
19:09:28taf2like are some the libev functions exposed?
19:09:31DefilerThe general way is to use the 'Channel' interface
19:09:33headiusthen it could work on all impls that have FFI
19:09:41evantaf2_: via Channel and Scheduler only
19:09:46taf2well... if we wanted to use the multi interface...
19:10:55taf2i'll undoubtly use the wrong term for this, but away to multiplex the sockets
19:11:06dgtized enters the room.
19:11:22headiusto allow threads to schedule when making FFI calls, yes?
19:11:32DefilerSo you want to wait on multiple sockets at once, right?
19:11:34headiusI would think you shouldn't worry about that at the ruby level
19:12:00taf2libcurl has curl_multi_perform, but that uses select or poll... we can do better if we can tie into the main libev loop using curl_multi_socket
19:12:06DefilerI think taf just wants to implement a high-performance server, right?
19:12:18drbrainDefiler: waste of bandwidth and disk space
19:12:21evantaf2_: why not just use ruby's IO.select()
19:12:24BobFunk leaves the room.
19:12:33Defilerdrbrain: Those are good reasons, yeah
19:13:28taf2evan, isn't there a limit to how many sockets can be selected?
19:13:48evandepends on how IO.select is implemented
19:13:52evanwe implement it using libev
19:13:53evanso no
19:14:01evan1.8 uses select() though, so the limit is 1024
19:15:10taf2ah perfect, then yeah i'll use IO.select
19:15:21taf2very cool
19:16:30DefilerWe want to make ruby code just run better than before, without making people change anything
19:16:41DefilerSo please flog on IO.select as hard as you can and tell us if it breaks
19:17:10taf2alright
19:19:16taf2okay so trying to build mongrel or hpricot fails, it seems a bug in the mkmf in how it generated the Makefile, i get this error: http://pastie.org/253088
19:20:07brixentaf2_: what OS?
19:20:15taf2linux fedora core 9
19:20:27brixenok, we'll need to tweak rbconfig a bit then
19:20:55brixenit's generated by a rake task
19:21:09dysinger enters the room.
19:21:15brixentake a look at rakelib/configure.rake
19:21:26DefilerI guess i thinks you have a Mac. heh
19:21:27pauldix_ leaves the room.
19:21:33taf2:)
19:21:37taf2yeah -bundle
19:21:56taf2brixen, okay looking
19:23:47BobFunk enters the room.
19:23:53w1rele55 enters the room.
19:24:14taf2ah, could it because it's a x86_64 machine?
19:24:30michalw leaves the room.
19:24:33taf2in my shotgun/config.mk i see : EXTPATH = /usr/local/lib/rubinius/0.9/x86_64-unknown-linux-gnu
19:24:44taf2and host: HOST = x86_64-unknown-linux-gnu
19:25:59brixentaf2_: yeah, there's just some hard-coded config vars with -bundle
19:26:17brixentaf2_: feel free to add some conditionals to output the correct stuff on your platform
19:26:23brixenwe'll generalize to more platforms
19:27:12taf2oh, yeah ic now #TODO fill in these values
19:27:31taf2so, this is taking the autoconf info and dumping it into ruby right?
19:28:13brixenwell, it gets some info from config.guess
19:28:22brixenand then generates rbconfig.rb from it
19:28:38taf2couldn't the configure script during build generate this file... have an rbconfig.rb.in ?
19:28:41brixenbut we don't do the whole configure + parse like MRI does
19:29:09brixenMRI takes the configure output and parses it to generate rbconfig
19:29:12brixenwe don't use configure
19:29:21taf2it might be easier... to just have a main configure.ac script that generates some of this stuff..
19:29:33rudebwoy enters the room.
19:29:37taf2i thought i saw configure scripts running, maybe those are supporting libraries
19:29:42brixenyeah
19:29:48brixenexternal libs that we include
19:29:53taf2k
19:31:11taf2so something like this: http://pastie.org/253095
19:31:46brixenyeah, seems reasonable
19:31:55brixenkeep in mind, it's a WIP so we can always refine it
19:32:07taf2WIP?
19:32:12brixenwork in progress
19:32:13taf2ah work in progress :-)
19:32:16brixenheh
19:37:01edwardam enters the room.
19:41:14shame leaves the room.
19:42:59brixendgtized: ahh, trying to do a periodic build on ubuntu with gcc 4.2.3 to catch those
19:43:29brixendgtized: I'm going to see about getting rubuildius bots to run/report the tests so we know, since we're all using os x
19:43:53taf2i'd like to contrib to rubinius and i mostly dev on linux...
19:44:00taf2but not sure, depends on if i find something to fix :-)
19:44:09brixentaf2_: that's totally cool
19:44:23brixentaf2_: if your configure.rake fix works, make ticket so you can get a commit bit
19:44:32taf2ah, good deal
19:44:39brixentell us the ticket number when you do
19:48:11ezmobius enters the room.
19:49:41ezmobius_ enters the room.
19:52:57ezmobius leaves the room.
19:53:00brixenevan: what is the meaning of /* see t1 */ comment at builtin/symbol.hpp:33 ?
19:53:21evanah
19:53:30evana comemnt that wasn't rewritten when the headers were split up
19:53:47evant1 was a comment about why we have the template specialization on as<>
19:53:57brixenis it elsewhere and I can import it?
19:54:13brixenimport, copy, refer, whatever
19:54:54brixenahh found it
19:54:57brixenimmediates.hpp
19:56:54BobFunk leaves the room.
19:58:23petergunz enters the room.
19:59:04shame enters the room.
19:59:42BobFunk enters the room.
19:59:53taf2okay here's a patch=> http://rubinius.lighthouseapp.com/projects/5089-rubinius/tickets/680-support-mkmf-extensions-on-no n-darwin-gcc-targets
20:00:15pauldix leaves the room.
20:01:04pauldix enters the room.
20:01:24brixentaf2_: awesome, I'll test it out
20:01:57brixentaf2_: if you use git format-patch, you'll get credit in the commit :)
20:02:13brixenle'me know if you want to do that and I'll wait for you to resubmit
20:02:36taf2ah ok
20:03:56petergun_ enters the room.
20:11:39taf2brixen, okay updated
20:13:00brixencool
20:14:48jbarnette enters the room.
20:15:16gnufied leaves the room.
20:16:06dgtizedbrixen: yea I just try and catch them when I can -- it is really dangerous that you guys are so platform specific though -- at the very least it sounds like the default apple gcc is old
20:16:54brixendgtized: well, that's what the build bots are for
20:17:24drbrainit's 4.0.1
20:17:29brixenapple gcc definitely seems to lag quite a bit
20:18:14drbraintypically, compilers are only upgraded across major releases
20:18:20taf2it's not that far behind...
20:18:25drbrainotherwise you may run into compatibility problems
20:22:00edwardam leaves the room.
20:22:06taf2you guys should check out the webkit c++ guidelines... i was just reading over some of the rubinius archives
20:22:19taf2i think webkit does a pretty good job with their stuff
20:22:36taf2like this sort of thing: http://webkit.org/coding/coding-style.html
20:23:27DefilerWe will not be bound! No chains can hold us.
20:23:49taf2hehe
20:24:00taf2or this one is good: http://developer.mozilla.org/en/docs/C%2B%2B_Portability_Guide
20:25:05petergunz leaves the room.
20:27:35ezmobius_ enters the room.
20:28:26brixentaf2_: committed. ping evan about a commit bit
20:28:39taf2evan, ping
20:28:42brixendrbrain: how do you ask corundum about a ticket number?
20:28:44taf2brixen, thanks
20:28:49brixentaf2_: thank you!
20:28:56drbraincorundum: lh #342
20:28:59drbrainI think
20:29:24drbrainno #
20:29:28drbraincorundum: lh 342
20:29:28corundumhttp://rubini.us/t/342
20:29:36brixencorundum: lh 680
20:29:36DefilerWe're not likely to ever support multiple compilers particularly well
20:29:37corundumhttp://rubini.us/t/680
20:29:40brixenevan: ^^^
20:29:44brixendrbrain: thanks
20:29:51DefilerEventually we will be pretty welded to LLVM it's looking like
20:31:22brixenhah, "don't use namespace facility" in mozilla c++ portability guide
20:31:31ezmobius leaves the room.
20:31:42brixenI think rbx position is "use a real c++ compiler" ;)
20:31:45petergun_ leaves the room.
20:31:48taf2yeah, i think that's dated...
20:32:26brixentaf2_: you can pastie evan your pub ssh key
20:32:34brixengonna grab some food, bbiab...
20:32:40drbrainMozilla probably has to compile back to gcc 2.95
20:32:46drbrainsince that's what FreeBSD 4 runs
20:32:59drbraincertainly 3.x
20:35:22taf2evan, http://pastie.org/253142
20:36:59headius leaves the room.
20:38:03evanwe don't do ssh pub keys anymore
20:38:06evani need your github username
20:38:13taf2ah cool, taf2
20:39:02evantaf2_: ok, added.
20:39:10taf2okay thanks
20:39:20taf2reads through docs
20:41:49rubuildius_amd64 enters the room.
20:43:10AndrewO leaves the room.
20:52:15rubuildius_ey64 leaves the room.
20:53:11rubuildius_ey64 enters the room.
21:02:30imajes_ leaves the room.
21:03:01imajes_ enters the room.
21:04:30jbarnette leaves the room.
21:07:08dgtized leaves the room.
21:07:42benburkert_ leaves the room.
21:08:30jbarnette enters the room.
21:11:34dgtized enters the room.
21:13:51rubuildius_ey64Todd A. Fisher: 2dbe4b6c4; 2629 files, 8609 examples, 28695 expectations, 0 failures, 0 errors
21:18:18NoKarma enters the room.
21:27:33imajes__ enters the room.
21:31:11benburkert enters the room.
21:33:09rue leaves the room.
21:33:49rue enters the room.
21:37:12drbrainis it possible to use cpp's .rbc compiler?
21:37:37drbrainit fails for me on kernel/core/file.rb with unknown type Compiler::Node::ConstAccess
21:40:27AndrewO enters the room.
21:42:08imajes_ leaves the room.
21:42:10drbrainevan: ^^
21:45:25edwardam enters the room.
21:48:17edwardam_ enters the room.
21:49:00edwardam leaves the room.
21:49:32dysinger leaves the room.
21:49:46dysinger enters the room.
21:52:09atmos leaves the room.
21:52:32edwarda__ enters the room.
21:53:52edwardam_ leaves the room.
21:55:07BobFunk leaves the room.
21:56:19BobFunk enters the room.
21:56:33atmos enters the room.
21:57:18Maledictus leaves the room.
21:57:35evandrbrain: the 'kernel:build' task in rakelib/kernel.rake uses the proper compiler for cpp
21:57:59drbrainevan: that fails for me
21:58:03drbrainsame error
21:58:06evanwhat fails
21:58:16drbrainrake kernel:build
21:58:33drbrain./lib/compiler/../compiler/marshal.rb:158:in `marshal': Unknown type: Compiler::Node::ConstAccess (ArgumentError)
21:58:37drbrainin cpp branch
21:58:38evanthats pretty weird.
21:58:44evanworks fine here....
21:58:45evanhm.
21:59:43evanhm, I wonder.
21:59:49evanwhich ParseTree version do you have installed?
21:59:56drbrainI took my changes out, and now I'm trying again
22:00:05drbrain2.2.0
22:00:11evanhm, maybe thats it.
22:00:15evanI have 2.2.0
22:00:25evanperhaps there was a sexp change that is confusing it.
22:00:31evanlet me upgrade and try.
22:01:07brixenI'm using 2.2.0
22:01:29evanbrixen: does 'kernel:build' work for you?
22:01:36brixenit has been
22:01:44brixenalthough, it hasn't built all files today
22:01:47brixenjust the ones I changed
22:01:48evanah
22:01:54evanit is a ParseTree change
22:01:55evanI get the error now.
22:02:21evandrbrain: I'll need to work backwards to fix this
22:02:22evangive me a sec.
22:02:31drbrainI can fix it
22:02:42evanok, go for it.
22:06:19lopex leaves the room.
22:20:20edwarda__ leaves the room.
22:21:57benburkert leaves the room.
22:22:19blakewatters leaves the room.
22:26:30imajes__ leaves the room.
22:40:39benburkert enters the room.
22:42:13yroc leaves the room.
22:43:27moofbong leaves the room.
22:44:22imajes_ enters the room.
22:47:01drbrainevan: actually, I'm not getting it
22:47:08evanok.
22:47:11evanlets pair
22:47:11drbrain http://rafb.net/p/87A5HO32.html
22:47:16drbrainis what's different
22:47:17evanfire up subethaedit
22:47:28drbrainI think you'll need to
22:47:32drbrainstart the document
22:47:41evank
22:47:52drbrainI'm behind unassailable NAT
22:48:40evansee://76.170.36.209:6942/nodes.rb
22:48:46kevwil enters the room.
22:49:13drbraineww, my color is UGLY
22:49:13evandrbrain: are you somewhere we can also have audio?
22:49:20drbrainno
22:49:22evandrbrain: I think it's cute.
22:49:25evanok.
22:49:47drbrainno, it's ultra dark maroon on my black background
22:49:56evanoh, I have a white background
22:50:01evancan I change your color?
22:50:22imajes_ leaves the room.
22:50:48evanone sec
22:50:51evani'm openning up the other file
22:51:00kevwil leaves the room.
22:54:57fbuilesv leaves the room.
23:00:16headius enters the room.
23:00:50headius leaves the room.
23:01:19headius enters the room.
23:04:09djwonk leaves the room.
23:04:59brixenevan: is there a good reason to have VM::symbol that just calls this->symbols.lookup when symbols is a public member ?
23:05:20brixencan't we just have code do state->symbols.lookup("blah") ?
23:05:35evanbrixen: yeah, thats fine
23:05:36brixenor rename lookup to symbol, i.e. state->symbols.symbol("blah")
23:05:38evanfewer methods
23:05:43brixenyeah, by 4 now
23:05:50brixendo you prefer lookup or symbol?
23:06:38evanlookup
23:06:40brixenI like symbol
23:06:42brixenreally?
23:06:45evanit should be a verb
23:06:49brixenok
23:06:55evanthe verb would be symbolize
23:06:55brixenlike all_symbols ? :P
23:07:03evan:/
23:07:11evanyou've already got symbols in the signature
23:07:18evanseems redudent
23:07:18brixenyeah
23:07:22evanstate->symbols.symbol("blah")
23:07:47brixenwell, there's lookup, symbol_to_string, and all_symbols
23:07:56brixencould do to_string
23:08:03brixenand what for all_symbols?
23:08:11brixen(that's just mirroring Ruby)
23:08:16evanright
23:08:19evani think thats fine
23:08:20evanor maybe
23:08:24evanall_as_array
23:08:34evanthats at least verb-like
23:08:41brixensymbols.all_as_array
23:08:42brixenthat's ok
23:09:44brixenI don't like symbols.to_string though :/
23:10:13evanlookup_string
23:10:13evanthen
23:15:26imajes_ enters the room.
23:16:12blakewatters enters the room.
23:17:59bricolage leaves the room.
23:18:52edwardam enters the room.
23:19:58wmoxam leaves the room.
23:20:12imajes_ leaves the room.
23:20:32yugui enters the room.
23:20:45brixenevan: hrm, OTOH, state->symbols.lookup(state, "blah") rather sucks
23:21:12evanheh
23:21:18tarcieriheh, core finally added RUBY_ENGINE?
23:21:27brixentarcieri: what?!
23:21:42tarcierithat's what headius just twittered
23:21:59brixenpops some champagne
23:22:05tarcieriheh
23:38:44aotearoa leaves the room.
23:42:45aotearoa enters the room.
23:44:10pauldix leaves the room.
23:45:27benburkert leaves the room.
23:47:13binary011010 leaves the room.
23:47:59benburkert enters the room.
23:48:22AndrewO leaves the room.
23:49:03dysinger leaves the room.
23:49:06headius leaves the room.
23:51:48BobFunk leaves the room.