Index

Show enters and exits. Hide enters and exits.

00:00:26wmoxam enters the room.
00:00:34anteaya enters the room.
00:00:47evanand syntax in C++ makes those casts nicer
00:00:51evanbecuase you can do
00:01:04evanchaining
00:03:12rueExcellent use of templates
00:03:38evanyeah, template functions are nice
00:05:10rueMight it be worthwhile to make that rb_cast() to hammer the point home?
00:05:24evani was considering that.
00:05:26evannot sure yet
00:06:02trythil_ leaves the room.
00:06:12rueLittle typing but I think it sets it apart from the std:: casts nicely.
00:06:24djwhittI'm in favor of it. note my initial confusion above
00:06:41rueOverall the cpp looks really good. Definitely clearer
00:06:42evanhow about something without an _
00:06:49evanocast perhaps
00:06:50evano for object
00:06:55evanx cast, x for rubinius
00:06:58evaner. xcast
00:07:03agardinerrbxcast?
00:07:22rueMind you, a part of it of course is just refining the design but the C++ is clearly helping
00:07:41ruerubycast() sounds like a radio program
00:07:47evanhehe
00:07:50evancould not be cast
00:07:55evanhow about another verb
00:07:57agardinerstreams music through your ruby code
00:08:10rueHaha, System Programming 2.0: castr()
00:08:19agardinercastrate?
00:08:21agardinerouch!
00:08:27ruecastR?
00:08:36evankplow<>
00:08:40rueHee
00:08:48nicksieger leaves the room.
00:09:07evanretype<>
00:09:24agardinerlike that one^
00:09:33evanC++ uses the verb cast a lot
00:09:34rueI always liked treat_as() but it fails the _ test
00:09:41evanso if it's not the verb cast, it should set it apart much more easily
00:09:56agardineryeah
00:09:56evanwe can have a _
00:10:14evanbut C++'s stuff like reintepreter_cast is WAAY too long
00:10:36rueas<String>(obj)->byte_address() // Too dense?
00:10:48evannice and short, thats for sure.
00:11:10agardineryeah, short is good
00:11:34evanhm, templates aren't namespaced, are they?
00:11:35agardinerand its still cast, just missing the c and the t! :-)
00:11:42evanagardiner: HA!
00:12:00evanwe could go very ruby and make it duck<>
00:12:03rueThey should be namespaced normally unless I misunderstand
00:12:17agardinerhehe!
00:12:24evani'm liking as<>
00:12:28agardinerme too
00:12:34nicksieger enters the room.
00:12:34evandjwhitt: thoughts?
00:12:37rueHaha, actually that is pretty great :) Albeit I would expect to be able to use any, say, #to_ary object with duck()
00:12:39agardinernice and clear, and short
00:12:59evanrue: right, it's not duck typeing! oh!
00:13:00djwhittas<> seems good to me
00:13:01evanunduck<>
00:13:17evanok, i'll change it to as
00:13:17agardinergoose?
00:13:20evanhah
00:13:22rueMy signature from before: template<typename duck> void quack(duck& d) { d.quack(); }
00:13:27evanwater_fowl<>
00:13:42agardinerugly?
00:15:09bburcham leaves the room.
00:17:23headiusand so begins evan's fall down the template rabbit hole
00:17:39rueheadius: *troutsmack* This is a good use case
00:17:44headius"drink me" they call "eat me" they beckon
00:18:01anteaya leaves the room.
00:18:05evani had it be a macro at first
00:18:13evancast()
00:18:40evanbut the syntax is clearer and it's easier to debug as a template
00:18:43evanso there
00:18:52evansticks his tongue out at headius
00:18:53EugZol leaves the room.
00:18:56anteaya enters the room.
00:21:05AndrewO enters the room.
00:21:11evanheadius: you've gone far down teh anonymous class hole yourself
00:21:22headiusanonymous class hole
00:21:23headius?
00:21:31evani'm poking back.
00:21:48ezmobiusheh classhole
00:21:51rueHah, "anonymous class hole" is funny
00:21:58rueis juvenile
00:22:01headiusinteresting
00:22:55evanheadius: is that your come back
00:22:56evanCOME ON
00:22:58evanBRING IT
00:23:00evan:D
00:23:04rueSo relatedly to the duck typing
00:23:11evanyesh?
00:23:36headiusit wasn't worthy of a comeback
00:23:44evanweak.
00:23:52evanand i'm not refering to your references
00:23:54headiusI know you are
00:23:59evanhah
00:24:05evaneverything you say bounces of me and sticks to you
00:24:07evanoh wait
00:24:09evanthat comes 2nd
00:24:10evandamnit.
00:24:14rueIn a groggy tired stupor I was laughing myself silly yesterday. I was devising this small Forth-inspired language but based on Arrays of objects with super polymorphism
00:24:20headiusmy VM can beat up your VM
00:24:36rueIt uses the duck idiom so s/Object/Duck/
00:24:42rueAlso, s/Array/Row/
00:25:00rueAnd that was the source of much hilarity into the wee hours
00:25:52evanrue: sounds awesome
00:25:54rueI think will see about implementing it on top of the VM
00:25:57wmoxam leaves the room.
00:25:58nkpart leaves the room.
00:26:07evanyou should write it up as a play in-the-round
00:26:53rueHeh
00:27:47evanthey'll put anything off broadway these days
00:27:53evanplus you'd get a niche audience
00:28:10nkpart enters the room.
00:30:04headius_ enters the room.
00:30:04headius leaves the room.
00:30:28ezmobiusrue: does that mean it has all its ducks in a row? :P
00:30:28tarcierievan: so making changes to primitive.rb is probably totally worthless until the C++ switchover is complete, right?
00:30:59lstoll enters the room.
00:31:04evanno, go ahead
00:31:17tarcierioh really... hmm
00:31:23evani'm not at them yet
00:31:38evanso i'll just use the latest version they're at when I begin
00:31:47rueWait what?
00:31:57tarcierievan: I was thinking about trying to hack in specifying an arbitrary object to be sent to a channel when a given descriptor is readable/writable, with the fileno as the default
00:31:58rueThere are PRO-China protesters in SF too?
00:32:26rueezmobius: Yes, that is precisely what I was laughing at around 7am
00:32:36ezmobiusheh
00:32:44evanok, cast<> is now as<>
00:32:48rueTweet
00:36:07agardinerso, looking at the compiler rework for left-to-right eval... seems to have simplified things a fair bit - a lot less swapping of args
00:36:37obvio leaves the room.
00:36:59evanyep
00:37:03agardinerand i see there is a new field on msg for stack size
00:37:08evanagardiner: plus, you'll be happy to know
00:37:21evanthere should be no more instructions that have unbounded stack access
00:37:34agardineryes, that is ftw!
00:37:39evanwe're going to start calculating the max depth at compile time and saving it in the CM
00:37:50jayWHY enters the room.
00:38:25agardinerhmm... didn't realise you could know this at compile time
00:38:30agardinerhow does that work?
00:39:09evanyou did the work to know it
00:39:10evan:)
00:39:18headiusmost stack machine compilers do that so they can preallocate the stack accurately
00:39:29evanyep, and thats what we'll be doing
00:39:44agardineryour gonna move the stack into the context as well, right?
00:39:48headiushave to do it on JVM too, but all the bytecode gen libraries calculate it for you
00:41:26agardiner"you did the work to know it" - so then, push_array must no longer be used?
00:43:00evanyep
00:43:02evanthats the biggy
00:43:21evani don't recall there being any others that have unbounded push
00:43:43evanand yep, the stack is going to be moved variable, located within the context
00:43:55dysinger leaves the room.
00:43:56evanremoving the single, Task oriented stack
00:44:03evanand making everything much more sane
00:44:09agardineryeah, it was only push_array where at compile time you wouldn't know how many stack frames were created
00:44:17agardinerthat's awesome
00:44:21headiusso you will allocate bits of the stack as you go?
00:44:36evanheadius: yeap
00:44:53agardinerstack will be additional fields on the context, presumably?
00:44:55headiusmmm ok, that will introduce some overhead though, no? more memory allocation
00:44:58evani'm also making the inner parts of the VM less stack oriented
00:45:06evanso only a few parts well even know about 'the stack'
00:45:12evanthey'll use internal data structures to do things
00:45:27agardinernice...
00:45:43evanthat abstracts away a little, letting us do stuff like (eventually) having alternative method execution profiles
00:46:20evanheadius: the memory allocation for the stack will use the same fast, stack based allocator MethodContext's use now
00:46:27headiusok
00:46:33evanbasically, if a MethodContext has no references generated for it
00:46:34headiusthat's solid then
00:46:37cored enters the room.
00:46:43evanit's deallocated by doing pointer subtraction
00:46:51headiusyou considering "less stackless" as part of this rewrite?
00:47:02evani decided i couldn't decide
00:47:09evanthus abstracting more of the VM away from caring
00:47:25JeyR enters the room.
00:48:01nicksieger leaves the room.
00:48:28headiusabstract away caring
00:48:32headiusI like it!
00:50:38webmat enters the room.
00:51:52cored_ enters the room.
00:52:02enebo leaves the room.
00:52:37brainopia leaves the room.
00:56:06twbray enters the room.
01:04:38cored leaves the room.
01:07:48obvio enters the room.
01:13:57rueHuh, Oracle is distributing BDB now
01:19:17ineffablygregory leaves the room.
01:19:24imajes enters the room.
01:26:18rueStupid macports
01:26:33webmatagrees
01:27:53rueOh, NOW it can find dbd
01:28:07rueThat is it.. I am going to invent AI just so I can make it feel bad
01:28:59srbaker enters the room.
01:29:40dysinger enters the room.
01:29:43loincloth leaves the room.
01:33:42rueozy`: Would make for an interesting Time Magazine interview
01:35:20wdperson enters the room.
01:35:41stepheneb enters the room.
01:38:08tarcieri*boggle*
01:38:14tarcieridoes require effectively hash by path
01:38:20tarcierirather than something guaranteed unique per file
01:38:26evanalways has
01:38:30tarcieri:(
01:39:35tarcieriyou'd think it'd at least resolve to an absolute path first or something...
01:40:10anteaya leaves the room.
01:41:22d2dchat leaves the room.
01:42:18rue1.9 does
01:43:41anteaya enters the room.
01:44:55stepheneb leaves the room.
01:45:50mernen enters the room.
01:46:47wmoxam enters the room.
01:47:43KirinDav enters the room.
01:48:09fbuilesv enters the room.
01:48:13djwhitthey, just saw some news about a GoRuCo hackfest?
01:48:23djwhittanyone here going to be there?
01:49:50rueWe have a couple New Yorkers but I do not recall anyone specifically heading over there
01:49:59boyscout2 commits by Thomas Lachmann
01:50:00boyscout * Merge branch 'master' into bigdecimal_specs; e3ca2e3
01:50:01boyscout * Next bunch of specs for Bigdecimal.; cf0c855
01:50:21rueI would not have minded going but sadly no-one has sent a private jet to pick me up yet :)
01:50:39evanLachi: please read the git howto section on using rebase
01:50:40headiusI'd love to go to goruco
01:50:46djwhittaw man... too bad
01:50:49djwhittI'm going :)
01:50:55headiusbut being just a couple weeks before JavaOne pretty much sinks it for me every year
01:51:00headiusJavaOne is like a damn marathon
01:51:46LachiOh, sorry, thougth the section about sharing branches would match here, as i submitted already from this branch.
01:51:53tarcierirue: aah, more awesome breaking of backwards compatibility
01:51:54tarcieriheh
01:52:21ruetarcieri: Heh, at some point you can just say "screw it, they have to rewrite anyway"
01:52:57evanLachi: you need to update your topic branch before merging it into master
01:53:04tarcierirue: For sure
01:53:05evanLachi: use the rake git tasks please if you're new
01:53:11tarcierirue: That's why I calld it awesome
01:53:11tarcieriheh
01:53:43tarcierinot so happy about binding instance variables in proc scope... I'd rather Matz went the other way with methods, but maybe I'm just *crazy*
01:53:47djwhittlooks like ezmobius is going to be there since he's one of the speaker (goruco)
01:53:51ruedjwhitt: Oh, looks like ezmobius will be there
01:53:52tarcieriDave Thomas proposed that originally, and Matz shut him down
01:53:55rueHehe
01:53:55djwhittyeah, just saw that
01:54:07tarcieridef initialize(@foo, @bar, @baz); end
01:54:13evanEW.
01:54:16rueWe can update his memory chips so he can talk about Rubinius too
01:54:26KirinDavYou'd kinda want a real pattern matching primitive operation before you do something like that.
01:54:33tarcierieh
01:54:56Lachievan: Okay, sorry will follow this, just orientated on the using-git advisories. Will do better next time. Sorry.
01:54:56tarcieriThat seems like an elegant syntax to avoid repeating the name of every variable you want to bind as an instance variable 3 times in every single goddamn constructor
01:55:08evanLachi: no problem
01:55:14evanLachi: everyone does this the first time (myself included)
01:55:29djwhittrue: I'll just ask him a bunch of questions that lead to responses like "no, but in Rubinius we could..."
01:55:36rueHeh
01:55:38tarcieriAnd oddly enough, in Ruby 1.8 it worked for define_method
01:55:45rue"Once we activate the quantum pipe interface.."
01:55:48tarcieridefine_method seems horribly broken in Ruby 1.9
01:56:39evanhow so?
01:57:11tarcieriheh, I can link you the crazy crap 1.8 let me do that 1.9 didn't
01:58:06ruedef foo(a, b, c); @a, @b, @c = local_variables.sort.map {|v| eval v }; end # :D
01:58:33evani should make everytime you call local_variables, it sends an email to your mom.
01:59:38rueHah, it might have legitimate uses
01:59:45KirinDavevan: With that burt russel picture in it.
02:00:02evanburtroll your mom.
02:00:03evanyes
02:00:05evanit shall be done.
02:00:39tarcieriOh craaazy
02:00:41tarcieriheh
02:00:43ruerbx -e 'local_variables' # bash: sendmail: command not found
02:00:47tarcieriMatz found my thread on ruby-core
02:00:50tarcieriand fixed the bug
02:00:50tarcieriyay
02:01:08rubuildius_amd64Thomas Lachmann: e3ca2e3e0; 1902 files, 6477 examples, 22570 expectations, 0 failures, 0 errors; http://rafb.net/p/0jg62l20.html
02:01:34tarcierievan: there's the thread if you care: http://www.nabble.com/What's-going-on-here--(weird-Ruby-1.9-incompatibility)-td16372836.html
02:01:46rubuildius_ppcThomas Lachmann: e3ca2e3e0; 1902 files, 6480 examples, 22599 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178279
02:01:48evan-100 to nabble urls
02:01:53tarcieriheh
02:01:54d2dchat enters the room.
02:01:56rueLachi: No big deal, really the only visible effect is the iffy commit message (internally it does not really matter for us)
02:02:14tarcierihttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/296244
02:02:15tarcieribetter?
02:02:16tarcieriheh
02:02:35tarcieriwas doing something pretty insane though
02:02:47tarcieridefine_method with a method from another object
02:02:55rueLachi: If you are theoretically oriented, I heartily recommend a read through the git manual. Our guide is pretty much a git-from-svn type approach
02:02:56evanyeah
02:02:59evanyou're rebinding methods
02:03:03evanthats... funtimes.
02:03:08tarcierikind of
02:03:17tarcierithe method was never explicitly unbound
02:03:27tarcieriit gets evaluated in the instance of the other object
02:03:47rueLachi: But the basic difference is that if you just merge, it generates a separate commit for that action (and the two branches remain separate in the history if you look using with gitk for example)
02:04:02tarcieriI was trying to speed up Rev
02:04:11tarcieriand eliminate unnecessary funcalls
02:04:20tarcierithat was the fastest solution I found, but it only works on Ruby 1.8
02:05:04tarcieriIt also lets you call a private method of one object from another without __send__
02:05:06rueLachi: On the other hand, git-rebase basically 'lifts' your new patches off the commit stack, inserts the new patches from the mainline and then replays your commits as if you had used the newest mainline to begin with. It essentially removes the branch from existing in the repository history
02:05:31tarcieriabout twice as fast as __send__ on Ruby 1.8 anyway
02:05:38KirinDavevan: So are you guys transitioning to github?
02:05:41Lachirue: Will, seems to be pretty obviuos from my actions on vcs, that the only vcs I used before is svn. Will read some more, about git, but you should have seen the mess i did with git on tuesday (luckily never escaped from my workplace). :S
02:05:45evanKirinDav: eventually, yes.
02:05:55KirinDavevan: Are you going to move to a more distributed model when you do?
02:05:58loincloth enters the room.
02:06:07evanKirinDav: i'm open to a more distributed model now
02:06:14evannothing about the github move is related to that
02:06:33KirinDavWell github certainly makes it more manageable with tom's visualizations.
02:06:41twbray leaves the room.
02:06:44KirinDavI'm sure you've seen them.
02:06:47evanrubinius is mirrored actively on github now
02:06:52evanso we can use all of that
02:07:10KirinDavWell, the visualizations only really work if your public repo is github, as I understand it.
02:07:12evani have a post-update hook that pushes changes to github
02:07:15KirinDavAhh :)
02:07:21KirinDavYeah I got that for katamari too.
02:07:31tarcieriwow, sometimes ruby-core does respond to the bugs I find *gasp*
02:07:43rueDo not get complacent, tarcieri
02:08:04agardinergrab the man a chair before he falls over! :-)
02:08:45Lachirue: Now I know, that previous commits to master branch aren't the same, as sharing branches, i think I don't will do this fualt again. Will Read some more about git, none theless, before going to add the missing specs og BigDecimal.
02:09:05evanLachi: will do
02:09:07KirinDavevan: So will I be shot if I said I'm slowly migrating all my work over to scheme in preference to ruby? Or slapped?
02:09:12reima enters the room.
02:09:13evanLachi: use the rake tasks for now
02:09:18reimahi
02:09:18evanLachi: on your branch, use
02:09:20evanrake git:push
02:09:23tarcieriKirinDav: what about Erlang??!
02:09:26evanthat will rebase your branch before pushing
02:09:31evanso everything will show up clean
02:09:31KirinDavtarcieri: Oh I use it a ton.
02:09:36tarcieriyay
02:09:41KirinDavtarcieri: I'm basically a full time erlang developer lately.
02:09:46jayWHY leaves the room.
02:09:51tarcieriI'd say nice, but that sounds tedious
02:09:51tarcieriheh
02:09:52imajes leaves the room.
02:09:55evanKirinDav: it's your life.
02:10:17KirinDavevan: I'm just curious if other people are looking to it as an additional tool next to ruby. I know you guys have a better ruby than I do...
02:10:18twbray enters the room.
02:10:21rueLachi: Hehe, the good thing about git is that you can almost always recover if something goes wrong :)
02:10:27KirinDavtarcieri: It's not so bad.
02:10:33evanKirinDav: looking to scheme?
02:10:38KirinDavevan: Yeah.
02:10:49evanwhy would I know?
02:10:49KirinDavevan: I have this crazy idea in my head that it's going to be hot within a year or so.
02:11:03KirinDavevan: Because bro, you're one of the thought leaders of the new programmillenum.
02:11:03rueHotness not so important
02:11:06evani know zero scheme programmers
02:11:06tarcieriKirinDav: yeah, I just miss blocks... passing lambdas as formal arguments or named functions are both solutions I don't particularly like :/
02:11:17rueScheme is a good Lisp, though, with very nice documentation
02:11:19evanand i've done about an hour of scheme myself
02:11:24Lachievan: Okay, will strictly stay with the rake commands as long as my ethernt cable is plugged in.
02:11:25tarcieriKirinDav: and I can't say I'm a big fan of Erlang's line endings...
02:11:32KirinDavtarcieri: Haha. Yes.
02:11:33djwhittscheme is too verbose imo
02:11:39djwhittcompared to Ruby I mean
02:11:47evanKirinDav: i'm open to any tool that makes the problem easier to model
02:11:53evanthus the new VM being in C++
02:11:55KirinDavdjwhitt: Well, that's mostly because ruby has a stdlib based on terseness.
02:12:05rueOverall, I would recommend plain Lisp over Scheme
02:12:13KirinDavrue: Lisp-2s annoy me tho
02:12:21KirinDavrue: Also, scheme's macro system? Way better
02:12:29djwhittKirinDav: it's more than that. not having operators makes the language more verbose
02:12:53KirinDavdjwhitt: I think the major lesson of ruby's popularity, irregardless of the direction of migration, is that a good stdlib with a pragmatic design philosophy can cover up nearly any flaws. :)
02:13:04Lachirue: the bad thing about git is, it's to clever for me and my knowledge of it.
02:13:08tarcierithinks Ruby the language is miles beyond Ruby the stdlib
02:13:25KirinDavdjwhitt: You think so? I think arc can compete directly with ruby for terseness, and it's basically scheme with a single extra operator.
02:13:30reimaCould someone take a look at http://pastie.caboo.se/177849 ? Should it fail like that (it doesn't with MatzRuby)?
02:13:31tarcieriRuby the stdlib seems full of creaky, half-thought-through code written by Japanese programmers before the language's idioms were really solidified
02:13:51djwhittKirinDav: yeah, arc might be close, but I'm not holding my breath
02:13:51tarcierinot that Japanese programmers are bad, except at leaving descriptive English comments
02:13:51KirinDavtarcieri: Well, the enumerables are mostly what I was thinking of.
02:13:55KirinDavdjwhitt: I wouldn't.
02:14:14KirinDavtarcieri: Ruby's collections kick ass, imnsho.
02:14:17rueThe stdlib is pretty horrible. It gets the job done, sure
02:14:32tarcieriIO is :(
02:14:37KirinDavYeah.
02:15:18djwhitthttp://tinyurl.com/3j3sjo
02:15:25djwhittScheme is not high on that list
02:15:41KirinDavSo?
02:16:01KirinDavThat list is crap. The GCLS is fucked from the top down, and everyone knows it.
02:16:05tarcieriScheme is great for building a meta-language nobody else understands for modeling your problem
02:16:06evanKirinDav: what scheme environment are you using?
02:16:11KirinDavevan: mz.
02:16:23drbrainDiamondback Ruby is a neat idea
02:16:31rueI think we should have a competition
02:16:32drbrainhas type inference
02:16:44drbrainhttp://www.cs.umd.edu/~jfoster/ruby.pdf
02:16:51rueEveryone has 2 weeks to learn X and write Y using it
02:17:06KirinDavtarcieri: Well, that's because base scheme is basically nothing
02:17:15KirinDavtarcieri: I've started working on a "pragmatic" library for mzscheme.
02:17:31KirinDavtarcieri: Basically, rolls in the shit you needs, add some standard convenience syntax.
02:18:43tarcieriGuess I'm one of those crazy people who thinks that all the syntactic conventions/sugar should be baked directly into the language's grammar
02:19:43KirinDavtarcieri: Just last night I was playing with something for shell scripts: (script (args (-x bool env) (-y int numtimes (requires -z)) (-z get:string mastername) ... ; (env numtimes and mastername validated and bound))
02:20:39tarcieriozy: whoa
02:20:48ruedrbrain: I think we should try to do TI, definitely
02:20:49KirinDavtarcieri: The thing is, we loave building meta-languages in ruby too. the culture is there.
02:21:05drbrainrue: I think we should use theirs
02:21:19KirinDavtarcieri: It's just that in scheme finding good examples starting out is hard. So my pragmatic lib is trying to establish some good conventions for it, give everyone forms and libs for the shit you'd normally do in ruby.
02:21:19drbrainit knows how to do TI with String#slice
02:21:23imajes enters the room.
02:21:27fiatdev enters the room.
02:21:35drbrain(if we were going to use it)
02:21:39drbrain(do it)
02:22:10rueWait, what, they wrote a parser?
02:23:00KirinDavyeah. Actually it's fairly common to see people take lisp impls and put a different reader on top o fit.
02:23:02rueAnyway, I recommend we all learn Ada and implement pdumpfs :)
02:23:08KirinDavThere are full javascript engines that run over mzscheme.
02:23:15rueozy`: I was marveling DRuby, sorry
02:23:30KirinDavThey literally read in raw js and convert it to sexps with specific libraries.
02:23:46trythil enters the room.
02:23:55VVSiz_ enters the room.
02:24:29tarcieriKirinDav: some people like to build meta-languages in Ruby. Sometimes they're good, sometimes they're not
02:24:56tarcieriRSpec is cool... Rails may as well be a meta-language unto itself and uhh, TMFM
02:25:02KirinDavtarcieri: I'm not going to get into that. Everyone's milage may vary. It's notable that many of the most successful ruby projects are various kinds of meta languages.
02:25:09KirinDavRake, Rails, Rspec come to mind offhand.
02:25:18djwhittso you guys really think the code size comparison on shootout is that bad?
02:25:33tarcieriAdhearsion is cool, especially if you've ever worked with Asterisk dialpans before
02:25:33KirinDavdjwhitt: Absolutely dude. It depends who wrote it and how they optimize it.
02:25:38KirinDavdjwhitt: http://shootout.alioth.debian.org/gp4/benchmark.php?test=fannkuch&lang=mzscheme&id=0
02:25:45KirinDavLook at them defining a fucking vector-copy.
02:26:10KirinDavThere is a stdlib for that. They just did it because they were trying to super-game the optimizing compiler.
02:26:12drbrainrue: yes, they wrote a parser
02:26:19drbrainrue: they do the TI in OCaml
02:26:34KirinDavWhich inlines nearly all unexported functions.
02:26:54drbrainso they needed a parser
02:27:00ruedrbrain: This is damned impressive, actually. I thought it was an abandoned project long ago
02:27:00evandrbrain: one thing we definitely should try and use is there core library annotations
02:27:02tarcieriKirinDav: Ruby parse transforms are cool where I've seen them used (Merb, Ambition, Sequel)
02:27:14imajes leaves the room.
02:27:15evandrbrain: we should take the annotations and use them as specs
02:27:19djwhittKirinDav: ah, I see. too bad. it is still fun to look at the code for those things though imo
02:27:27drbrainThey said they'd have something for the world mid-late summer
02:27:38codebrulee enters the room.
02:27:54KirinDavdjwhitt: Yeah. For example, the javascript is clearly optimized for space. :)
02:27:58KirinDavhttp://shootout.alioth.debian.org/gp4/benchmark.php?test=fannkuch&lang=javascript&id=0
02:28:09ruedrbrain: I wonder if they would be amiable to using rbx?
02:28:15tarcieriKirinDav: Have you looked at Lisp Flavored Erlang?
02:28:18KirinDavBecause they know they can't win on speed or memory allocation
02:28:21KirinDavtarcieri: I've written code with it.
02:28:24tarcierinice
02:28:25tarcieriheh
02:28:32KirinDavWorks quite well.
02:28:34tarcieriyeah
02:28:41drbrainrue: we exchanged cards
02:29:21ruedrbrain: Neat! Way to work that Charisma score
02:29:23tarcieriKirindav: I've been trying to write my own imperative language for BEAM with mutable state using leex/yecc/erl_syntax
02:29:51KirinDavtarcieri: I'm obligated as a guilded erlang programmer to say, "Mutable state is baaad, mmkay?"
02:30:05tarcieriMutable state is great if you're lazy
02:30:10drbrainrue: we said "hey, we've got a big pile of Ruby code you could play with"
02:30:18KirinDavI don't really see it as a problem, tbh.
02:30:24tarcieriis obligated to say: most programmers are lazy
02:30:26KirinDavEven starting out w/ erlang it didn't bother me too much.
02:30:36KirinDavYou just code functionally.
02:30:48tarcierithe foo = transform(foo) if somecondition pattern
02:30:49KirinDavI wonder if that's the lost art. :)
02:30:50tarcieriin Erlang
02:30:52tarcieriuggghhhhhh
02:30:59drbraingets ready for practice
02:31:13rueKirinDav: As a ronin Ruby programmer, I am obligated to remind: "Dogmatism is bad, kiiii-yah!"
02:31:16rue;)
02:31:22twbray leaves the room.
02:31:25KirinDavrue: I agree!
02:31:36tarcierireorganizing code in Erlang: also uggghhhhh
02:31:39KirinDavrue: I'm just saying, it's an underappreciated style in the popular culture of programming these days.
02:31:55KirinDavtarcieri: Yeah, that's brotal which is like brutal with amity.
02:32:00evanjust pushed a bunch more code to the cpp branch
02:32:05evanffi is converted over
02:32:24evanif someone wants to help, NativeFunction needs the rest of the test fleshed out
02:32:26rueKirinDav: Sure. I would like to see if we can optimise "const" operations
02:32:44evanie, defining functions with all data types and return values
02:32:50rueevan: I will take a peek at that
02:32:52evanand testing that ffi converts between them properly
02:34:35Lachibye. Will take some sleepp now. And sorry for the mess.
02:34:40Lachi leaves the room.
02:34:58AndrewO leaves the room.
02:36:14tarcierithe libev guy cracks me up
02:36:32rueDid you make a bad suggestion again?
02:36:34tarcieriI can't tell if he's just hostile by nature or hostile from dealing with platform incompatibilities
02:36:54tarcieriI am an impartial observer!
02:37:08tarcieriI just watch as everyone who e-mails the libev mailing list eventually descends into a flamewar with him
02:38:39rueHeh.. someone should fork it in jest
02:39:00tarcierilibloveandhappinessforeveryone
02:39:47tarcierihe was depending on realloc(ptr, 0) to be identical to free(ptr) and I pointed out two platforms that don't behave that way (OpenBSD and Darwin)
02:40:08tarcierilibscrewmark
02:40:12tarcierierr, marc
02:40:26tarcieriheh
02:40:37ezmobiuslibwakeupsheeple
02:40:45rueTehee
02:40:56ruetarcieri: Why was he using realloc() anyway?
02:41:16VVSiz leaves the room.
02:41:36tarcierirue: apparently he uses realloc() as the basis of all his memory management... for tasks like growing/shrinking arrays of descriptors
02:42:20jtoy enters the room.
02:43:21rueWell, hopefully he goes for a pool solution or summit.
02:43:59tarcierisome guy was running his code through valgrind and pointing out everything that looked like a leak
02:44:19tarcieriin one instance: it leaked "zero-sized" objects
02:44:29tarcierihe blamed valgrind
02:46:17wmoxam leaves the room.
02:48:16tarcieri\/cl
02:48:20tarcieri:(
02:49:16rueHehee
02:51:26jlindley enters the room.
02:54:35ineffablygregory enters the room.
02:55:08RyanTM leaves the room.
02:55:35RyanTM enters the room.
02:57:43benburkert leaves the room.
02:58:11KirinDav leaves the room.
03:04:39hornbeck enters the room.
03:09:15ezmobius leaves the room.
03:11:40wyhaines leaves the room.
03:13:48hornbeck leaves the room.
03:14:24nicksieger leaves the room.
03:18:07madsimian enters the room.
03:25:42twbray enters the room.
03:26:39nkpart leaves the room.
03:27:02cored leaves the room.
03:32:13ineffablygregory leaves the room.
03:32:59d2dchat leaves the room.
03:45:31wyhaines leaves the room.
03:55:33simian enters the room.
03:56:20webmat leaves the room.
03:57:08loincloth leaves the room.
04:07:19jtoy leaves the room.
04:10:28madsimian leaves the room.
04:11:20aotearoa enters the room.
04:14:26stepheneb enters the room.
04:15:24jtoy enters the room.
04:20:19mernen leaves the room.
04:22:23ezmobius enters the room.
04:24:00aotearoa_ enters the room.
04:24:07nicksieger enters the room.
04:28:10fiatdev leaves the room.
04:29:05wycats__ enters the room.
04:29:13headius leaves the room.
04:29:33yipstar leaves the room.
04:30:36smparkes leaves the room.
04:33:25d2dchat enters the room.
04:33:56codebrulee leaves the room.
04:34:04codebrulee enters the room.
04:34:10codebrulee leaves the room.
04:34:41nicksieger leaves the room.
04:35:54nicksieger enters the room.
04:36:56aotearoa__ enters the room.
04:37:17aotearoa leaves the room.
04:39:19anteaya leaves the room.
04:40:06anteaya enters the room.
04:41:48KirinDav enters the room.
04:43:57obvio171 enters the room.
04:46:04wycats leaves the room.
04:46:53obvio leaves the room.
04:47:25wyhaines leaves the room.
04:47:52aotearoa_ leaves the room.
04:48:45aotearoa enters the room.
04:50:49binary42 enters the room.
04:52:59anteaya leaves the room.
04:58:24AndrewO enters the room.
04:59:34KirinDav leaves the room.
05:00:21aotearoa__ leaves the room.
05:06:01twbray leaves the room.
05:16:30Jzalae enters the room.
05:28:35trythil_ enters the room.
05:31:05binary42 leaves the room.
05:34:11RyanTM leaves the room.
05:34:43KirinDav enters the room.
05:42:30srbaker leaves the room.
05:43:51dysinger leaves the room.
05:46:10trythil leaves the room.
05:46:31yipstar enters the room.
05:48:34dysinger enters the room.
05:59:39AndrewO leaves the room.
06:02:33KirinDav leaves the room.
06:09:13yipstar leaves the room.
06:14:57Yurik leaves the room.
06:15:38KirinDav enters the room.
06:19:02simian leaves the room.
06:24:40reimaAnybody there?
06:24:57agardinerno
06:25:00agardinerhaha!
06:25:07agardinersup?
06:25:54reimaHey :)
06:25:57reimaCan you confirm this? http://pastie.caboo.se/178375
06:26:08evanWOW. g++ on linux complains SO much more than OS X
06:26:59agardinerreima: yep, segfaults for me too
06:27:02brixenwell, if we're going to have a party, I just ran the mspec specs on windows under the git bash shell in msysgit
06:27:10brixenand they all passed :)
06:27:12scoopr-Wall -Wextra >:)
06:27:36agardinerbrixen: against MRI, I assume?
06:27:45brixenagardiner: yeah
06:27:59brixenhowever, the rubyspecs die a horrible death 1/2 way through
06:28:07agardinerhehe, it would have been one hell of a party if you said "no, rbx" :-D
06:28:33brixenheh
06:29:35reimaMore oddities to come: http://pastie.caboo.se/178379
06:29:54reimaI've got a habit of breaking things :(
06:30:49agardinerhmm... looks like inspect has a few issues
06:31:47reimaI don't know if it's inspect, but I fear we have to dig deeper.
06:32:29agardineryeah, i guess i really meant inspect is exposing a few issues
06:33:08reimaHave a look at this: http://pastie.caboo.se/178380
06:33:55agardinerhmm... interesting
06:34:10reimaIt's as if Rubinius wants to tell me something along "Fuck it! I'm sick of your inspects!" :)
06:34:19agardiner:-D
06:34:38agardiner"i'm gonna mess with you, and give you a different result every time!"
06:35:10agardinerjust noticed the segfault at the end of the last pastie
06:35:42agardinersounds like something might be getting messed up following a GC
06:36:07reimaYeah, that sounds reasonable
06:37:23reimaWhat puzzles me is the fact that it only happens when you inherit from Numeric
06:38:24reimaSomething really weird is happending here *plays X-Files theme*
06:38:45drbrain leaves the room.
06:42:32agardinertry it with Integer - happens with that too
06:42:40brixenreima: looks like issues with .allocate
06:43:03brixencompare e.g. Hash.allocate with Fixnum, Bignum, Integer, Numeric.allocate
06:43:21brixenall of those 4 hang shotgun or raise exceptions for me
06:43:54agardinernot surprised you have problems with Numeric, Integer, or Fixnum
06:44:10brixenFloat.allocate seems to work, but has a junk value
06:44:14gnufied leaves the room.
06:44:33evanug.
06:45:04evanone thing we haven't taken care of is making allocate on the builtins be sane
06:45:08reimaThat not too good I suppose?
06:45:28agardineri wonder if Integer and Numeric are being setup correctly in bootstrap.c
06:45:35brixenhmm, yeah, mri doesn't allow allocate on Fixnum, Float, Bignum
06:45:37reimaI've got an even funnier IRB log: http://pastie.caboo.se/178388
06:45:40evanagardiner: they're just superclasse
06:45:42agardinerthere's no BC() for those types
06:45:49evanyou shouldn't be able to instanciate them.
06:46:00benburkert enters the room.
06:46:12agardinerhmm
06:46:40brixenmri doesn't allow allocate on Integer either, but does on Numeric
06:46:58agardinerreima: definitely looks like some reference is not being updated during a GC
06:47:43evanbrixen: thats dumb
06:47:45evanneither should
06:48:18loincloth enters the room.
06:51:32evanreima: what does that code do in 1.8?
06:51:54TheVoiceevening everybody
06:52:16drbrain enters the room.
06:53:19reimaevan: Which one?
06:53:25evanthe last one
06:54:35reimaIt let's me inspect the object as often as I want without breaking
06:54:36tarcieriwtf @ Numeric.allocate
06:54:54benburkert leaves the room.
06:55:17evanreima: duh, whats the output though?
06:55:32evandid someone define a Numeric#allocate in rubinius
06:55:35evanif so, thats just wrong.
06:56:05brixenevan: no, it's picked up from Class
06:57:05brixenwe need specs for .allocate on those numeric types
06:57:06reimaevan: Don't know what you expected, but here you go: http://pastie.caboo.se/178394
06:58:00evanthe wierd inspect output is Object#inspect trying to show you ivars
06:59:01reimaYeah, I figured that out already. And that's what breaks inspect?
06:59:22evanyeah
07:01:48reimaSo... how can we fix it?
07:02:06evanif i tell you, then i'll be doing the work.
07:02:23reimaHeh, okay
07:07:19be9 enters the room.
07:08:20gnufied enters the room.
07:08:41benburkert enters the room.
07:14:10tarcieri leaves the room.
07:15:15tarcieri enters the room.
07:19:30benburkert leaves the room.
07:21:21benburkert enters the room.
07:26:07scooprso um.. is ffi used to call librubinius stuff too?
07:33:31wycats_ leaves the room.
07:33:44wycats__ leaves the room.
07:35:56loincloth leaves the room.
07:39:32w1rele55 leaves the room.
07:43:00stepheneb leaves the room.
07:43:31KirinDav leaves the room.
07:45:28w1rele55 enters the room.
07:45:43Skip enters the room.
07:45:50ruescoopr: It can be, and is in some cases. ffi_util.c mainly currently
07:45:57dysinger leaves the room.
07:47:20cypher23 enters the room.
07:47:26loincloth enters the room.
07:50:05KirinDav enters the room.
07:51:45scooprrue, if I've understood the mechanism correctly, that'll make having statically linked rbx a bitch >:)
07:52:54wycats enters the room.
07:54:35aotearoa leaves the room.
08:01:24d2dchat leaves the room.
08:02:01Arjen_ enters the room.
08:03:02ruescoopr: It should not. The pointers are obtained at runtime. Unless the dynamic loader on the platform cannot open the process itself as a pseudo-DSO, there should be no issue
08:10:25loincloth leaves the room.
08:14:25scooprright
08:14:28scooprhmm
08:14:40Arjen_ leaves the room.
08:14:56scooprideally, I'd like it to have some sort of fallback for situations with no dynamic loader whatsoever
08:15:15scooprI guess that would involve making a compiletime array of method pointer/method name pairs
08:15:16dysinger enters the room.
08:19:39agardiner leaves the room.
08:22:34ezmobius leaves the room.
08:29:08benburkert leaves the room.
08:31:41thehcdreamer enters the room.
08:32:03ruescoopr: You could build in a function that retrieves the fptrs if you are estimating a statically linked binary
08:33:58rueType checking would be your main problem there
08:34:50octopod enters the room.
08:35:49scoopraight
08:36:03scooprI might look into that at some point
08:37:12TheVoice leaves the room.
08:38:05zimbatm_ enters the room.
08:39:00scooprnice domino effect though .. I wanted to do a gprof run on rbx, see why it takes 10secs for hello world on 400mhz arm linux
08:39:18scooprbut turns out profiling works only for the executable, not for dynamic libs it links to
08:39:46scooprbut in turn, I believe having option of static linking is important in general
08:43:35Rich_Morin___ enters the room.
08:48:04Rich_MorinHello, folks. I have a couple of oddball Ruby questions, as usual.
08:49:49Rich_MorinBoth of them have to do with getting from names of things to things. The first is is how do I get from :foo to the value of the local variable foo.
08:50:13Rich_MorinI can do it with an exec, but that seems like overkill.
08:50:24Rich_MorinSorry, an eval...
08:52:42Rich_MorinAlso, starting with a method name (and possibly a qualifying class or module name), I'd like to get to the matching method(s), so that I can extend them.
08:54:07wycats_ enters the room.
08:58:04Arjen_ enters the room.
08:59:01KirinDav leaves the room.
08:59:20boyscout11 commits by Brian Ford
08:59:21boyscout * Processed Rational, Complex, Matrix with mkspec.; c526f57
08:59:22boyscout * Ensure method names are escaped when matching output in mkspec.; a8678aa
08:59:22boyscout * NameMap should not map #initialize to new_spec.rb.; c862a3d
08:59:24boyscout * Processed IO with mkspec. Added incomplete tags.; 3de6f53
08:59:24boyscout * Clean up especially bad whitespace in File specs.; faaf8bd
08:59:25boyscout ...
09:02:37mutle enters the room.
09:06:20rubuildius_amd64Brian Ford: c526f5744; 1989 files, 6477 examples, 22570 expectations, 0 failures, 0 errors; http://rafb.net/p/gUvNRW49.html
09:07:32trythil_ leaves the room.
09:08:41wycats leaves the room.
09:10:34obvio leaves the room.
09:12:10rubuildius_ppcBrian Ford: c526f5744; 1989 files, 6480 examples, 22599 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178438
09:12:14muri enters the room.
09:13:02murii always see "ivar_as_index xxxx " in the code, what does it stand for?
09:13:28dysinger leaves the room.
09:13:31brixenmuri: it's a compiler directive that maps a field to something that looks like an instance variable
09:15:03murithanks, brixen
09:15:06brixenso e.g. kernel/bootstrap/array.rb ivar_as_index :total => 0, maps field 0 to @total in ruby code
09:15:17brixennp
09:16:17muriwhere does these fields live?
09:16:50brixenin the object itself
09:17:04brixensee shotgun/lib/oop.h struct rubinius_object_t
09:17:10kw leaves the room.
09:17:18muricheking
09:18:11brixenalso, see this page: http://rubinius.lighthouseapp.com/projects/5089/shotgun-the-rubinius-virtual-machine
09:18:22murii see, the field array
09:18:26brixenit has some discussion of the object memory layout
09:19:14brixenalso, here's a beginning page of reference material: http://rubinius.lighthouseapp.com/projects/5089/stuff-to-read
09:20:01murithanks brixen! lots useful resources
09:21:14brixenyw
09:21:48brixenas is often the case, we're rather short on docs, but there's more here: http://rubini.us/rbx_documentation
09:22:40rueRich_Morin___: 1) In Ruby, with #eval only. Rubinius has other options
09:23:46rueRich_Morin___: 2) Define "extend." `obj.method(:method_name).class == Method` but perhaps you are looking to /wrap/ the method or something?
09:34:34reimarue: Just out of curiosity: How would one accomplish 1) in Rubinius?
09:34:51mentz enters the room.
09:35:55qwert666 enters the room.
09:40:51agile leaves the room.
09:40:55JimRoepcke enters the room.
09:41:04_mk_ enters the room.
09:41:53JimRoepckehi everyone. starting out with rubinius, porting some erlang code to try out the Actor implementation
09:42:32JimRoepckeit appears that Actor.spawn works if no arguments are given, but not even any are... has anyone seen this behaviour before?
09:43:17JimRoepckeie: "act = Actor.spawn do ... end" works but "act = Actor.spawn(foo) do |x| ... end" doesn't.
09:43:34drbrainmentalguy or rue might know
09:43:39drbrainI'm off to bed
09:50:16brixenJimRoepcke: there are some beginning specs for Actor in spec/library/actor_spec.rb
09:50:35brixenI see some Actor.spawn(obj) examples and the specs pass for me on rbx
09:50:53JimRoepckei'm wondering if the Thread.new call in Actor.spawn needs to pass through the args
09:51:00JimRoepckeok
09:51:19brixensorry, I'm not real familiar with it
09:51:30brixenand must sleep as well :)
09:51:58brixenif you can find tarcieri, he would be the guy to ask
09:53:19Rich_Morinrue: Yes I'd like to walk through a list of method names and wrap each one of them so that I can add assertions to the arguments and return value.
09:53:42JimRoepckethanks brixen
09:53:56brixenyw
09:55:37perdix enters the room.
09:59:39VVSizhi brixen
10:01:07VVSizlots of new stuff in specs I see, mostly empty specs. :)
10:06:40JimRoepckeif I do a git pull on rubinius, do I just rake build to get a new build or do I have to clean/something else first?
10:11:34JimRoepckeapparently so <http://www.infoq.com/news/2007/09/rubinius-dev> here goes!
10:13:12VVSizJimRoepcke: from time to time I had to do clean before build, otherwise there are weird errors/exceptions. Presumably, this only neeeds to be done when there are some low-level things changed
10:29:51JimRoepckeoh goodness the Actor implementation has completely changed in the last 33 hours. just what i needed :) I'm writing a paper comparing Actor implementations and now I have a whole lot more to do! hah
10:44:11imajes_office leaves the room.
10:57:56ruereima: Locals are available through the context
11:13:08olabini enters the room.
11:15:05rueNite
11:19:19jtoy leaves the room.
11:27:12qwert666 leaves the room.
11:29:21Fullmoon enters the room.
11:34:58Yurik enters the room.
12:15:00webmat enters the room.
12:16:24binary42 enters the room.
12:17:08ctennis leaves the room.
12:24:56imajes enters the room.
12:25:39mentz leaves the room.
12:31:33zimbatm_ leaves the room.
12:34:18ctennis enters the room.
12:41:43imajes leaves the room.
12:55:23wdperson enters the room.
12:57:43srbaker enters the room.
12:58:34mentz enters the room.
12:58:39srbaker leaves the room.
13:03:11RyanTM enters the room.
13:05:08headius enters the room.
13:13:04gnufied_ enters the room.
13:13:30gnufied leaves the room.
13:15:37hornbeck enters the room.
13:24:46thehcdreamer leaves the room.
13:28:56jero5 enters the room.
13:29:45jtoy enters the room.
13:41:13thehcdreamer enters the room.
13:46:16divoxx enters the room.
13:50:09sudoer enters the room.
13:54:37jlindley enters the room.
13:55:44smparkes enters the room.
13:57:24headius leaves the room.
14:07:03AndrewO enters the room.
14:08:46jtoy leaves the room.
14:18:31jlindley leaves the room.
14:23:35fbuilesv leaves the room.
14:25:27fbuilesv enters the room.
14:30:02binary42 leaves the room.
14:32:21qwert666 enters the room.
14:39:39be9 leaves the room.
14:40:59mentz leaves the room.
14:49:13muri leaves the room.
14:53:35qwert666 leaves the room.
14:54:25wmoxam enters the room.
14:55:48wmoxam leaves the room.
14:59:45stepheneb enters the room.
15:01:50mentz enters the room.
15:02:20jlindley enters the room.
15:03:44moofbong enters the room.
15:06:53chris2 enters the room.
15:08:28skaar enters the room.
15:10:02smparkes leaves the room.
15:16:54d2dchat enters the room.
15:17:08be9 enters the room.
15:18:57wmoxam enters the room.
15:23:16gnufied_ leaves the room.
15:23:37madsimian enters the room.
15:23:55gnufied_ enters the room.
15:31:26KirinDav enters the room.
15:33:20wmoxam leaves the room.
15:34:39enebo enters the room.
15:35:26lopex enters the room.
15:42:48agile enters the room.
15:44:02binary42 enters the room.
15:44:39wyhaines leaves the room.
15:45:57KirinDav leaves the room.
15:47:52moofbong_ enters the room.
15:47:58moofbong_ leaves the room.
15:48:40moofbong leaves the room.
15:49:26wmoxam enters the room.
15:53:34eneboHAHA IBM w/ 5Ghz CPUs
15:54:01eneboSun and IBM appear to be moving in completely different directions
15:54:03fbuilesvenebo: how many cores, 1?
15:54:12enebohttp://www.theregister.co.uk/2008/04/08/ibm_595_water/
15:54:43enebodual core I think
15:54:49jayWHY enters the room.
15:54:51fbuilesvwait, 32 dual core 5ghz processors
15:55:13fbuilesvI'd love to see what you need to cool that off
15:55:35smparkes enters the room.
15:55:42Defilerwater
15:55:43Defilerlots of water
15:56:27jlindley320ghz
15:56:52DefilerClearly we need one of these for evaluation purposes
15:56:53eneboSun's direction: http://www.sun.com/processors/UltraSPARC-T2/
15:57:12fbuilesvDefiler: imagine the time of CI running there :)
15:57:45eneboWe probably need to parallelize our CI builds
15:58:04eneboor at least when running locally
15:58:49fbuilesvI wonder how feasible that is with so many dependencies
15:59:36eneboyeah, well for ant test we do test-interpreted and test-compiled It seems possible to at least cleave there
16:00:32fbuilesvactually since most of the dependencies are relevant just for independent libs it could probably run 'n' at the same time without major hassles
16:01:02enebologging is the only thing that I think would be strange
16:01:03therealadam enters the room.
16:01:52Yurik leaves the room.
16:05:12sudoer leaves the room.
16:05:34headius enters the room.
16:06:47headius leaves the room.
16:06:52headius enters the room.
16:09:00trythil enters the room.
16:09:54KirinDav enters the room.
16:12:43headius_ enters the room.
16:13:27moofbong enters the room.
16:14:03headius leaves the room.
16:14:57headius enters the room.
16:15:17headius_ leaves the room.
16:17:02headius leaves the room.
16:17:14headius enters the room.
16:19:24enebo leaves the room.
16:22:46benburkert enters the room.
16:22:58tarcieri leaves the room.
16:23:50headius_ enters the room.
16:23:55headius leaves the room.
16:24:37headius_ leaves the room.
16:24:49headius enters the room.
16:29:56headius_ enters the room.
16:30:12headius leaves the room.
16:30:28ineffablygregory enters the room.
16:31:37twbray enters the room.
16:31:59headius_ leaves the room.
16:32:11headius enters the room.
16:33:03headius leaves the room.
16:34:32wyhaines leaves the room.
16:35:28smparke1 enters the room.
16:45:18macournoyer enters the room.
16:45:33KirinDav leaves the room.
16:47:49evanmorning.
16:47:59Defilermorning
16:51:02ineffablygregory leaves the room.
16:52:58thehcdreamer leaves the room.
16:54:34twbray leaves the room.
16:55:08twbray enters the room.
16:55:23d2dchat leaves the room.
16:55:30moofbong leaves the room.
16:55:46moofbong enters the room.
16:57:46obvio enters the room.
17:03:20headius enters the room.
17:04:16codebrulee enters the room.
17:05:25benburkert leaves the room.
17:05:39enebo enters the room.
17:09:04scooprhmm
17:09:13scooprI'm more and more drawn towards llvm
17:09:47scooprcompelled to make a pure ruby llvm-ri builder, much like headius's java bytecode generator
17:10:15benburkert enters the room.
17:10:36scooprbut I'm afraid it'll be a terrible timesink project, where most of the time is spent trying to learn all this stuff I don't understand and never really get anywhere :/
17:11:05obvio171 enters the room.
17:11:09anteaya enters the room.
17:11:30obvio leaves the room.
17:11:35fbuilesv leaves the room.
17:12:56headiustimesinks are phun
17:13:26scooprindeed
17:13:37scooprbut the thing is, I already have like five good timesinks already >:)
17:13:52scooprnot getting anywhere in those
17:15:48thehcdreamer enters the room.
17:18:03benburkert leaves the room.
17:18:13binary42_ enters the room.
17:18:49Skip leaves the room.
17:19:19binary42 leaves the room.
17:20:51joseph enters the room.
17:21:48josephwhat are these __ivars__ used for?
17:22:12evaninspect uses it to show you the ivars for an object
17:22:58josephthanks evan
17:23:04twbray leaves the room.
17:24:08twbray enters the room.
17:25:39anteaya_ enters the room.
17:29:29ciscbrain enters the room.
17:35:09KirinDav enters the room.
17:35:24mutle leaves the room.
17:36:28nicksieger leaves the room.
17:37:06madsimian leaves the room.
17:37:10foysavas enters the room.
17:37:58MikeJS_ enters the room.
17:39:52loincloth enters the room.
17:40:30anteaya leaves the room.
17:40:31Skip enters the room.
17:40:35fleadope enters the room.
17:41:08benburkert enters the room.
17:42:11benburkert leaves the room.
17:42:25stepheneb leaves the room.
17:50:22nicksieger enters the room.
17:51:37ciscbrain leaves the room.
17:56:48qwert666 enters the room.
17:57:03benburkert enters the room.
17:57:17