Index

Show enters and exits. Hide enters and exits.

00:01:21seydar enters the room.
00:04:13ljulliar leaves the room.
00:05:16pth enters the room.
00:05:57nexcastellanAnyone know why I'd get "superclass mismatch"?
00:07:51brixennext you're trying to reopen a class and inherit from a different class
00:07:58brixener nexcastellan
00:08:07brixenwhere do you see this?
00:08:14nexcastellanIn our own code.
00:08:30nexcastellanIt works in MRI but that doesn't necessarily mean our code is correct.
00:08:34brixenheh
00:08:46headiusbut doesn't work where?
00:08:46nexcastellanI'll take a look tomorrow and see if we have already defined the class.
00:08:47headiusrubinius?
00:08:51nexcastellanRubinius, yes.
00:09:08brixencould be some corner case we don't handle right
00:09:09headiussome app-specific class or something core?
00:09:14brixenor might be a bug in MRI
00:09:58eventualbuddha leaves the room.
00:10:07nexcastellanSome app-specific class. I should be able to figure out tomorrow if it's a fault in MRI or in Rubinius. For what it is worth, the bugs I'm finding now aren't necessarily flaws in Rubinius. :)
00:10:37headiustarcieri: why do all the VM-level methods accept an ID...why aren't those just methods on the VM objects
00:10:52headiusI'm not sure I understand the purpose of the magic "id" when you get VM objects back directly
00:11:20headiusor is the collection of VMs accessible by siblings too?
00:11:24nexcastellanAhh! Seems to be a class-inside-a-module conflicting with a class-with-same-name-not-inside-a-module. But I'll look more tomorrow.
00:11:25nexcastellanNight, all.
00:11:46headiusnexcastellan: ahh, const lookup stuff
00:11:57nexcastellanYeap.
00:12:01nexcastellanNight. :)
00:12:14pth leaves the room.
00:13:36tarcieriheadius: How do you get to the VM object from another VM?
00:13:36headiusalso more of an organizational question...seems like the behavior should all be in the VM instance rather than in the class
00:13:45kli enters the room.
00:13:55tarcieriheadius: It's a bit trickier than that...
00:13:57headiustarcieri: so you would pass an ID to the child VM so it could find a sibling?
00:14:04tarcieriheadius: yes
00:14:22tarcieriheadius: the VM ID needs to be something you can send in an inter-VM message
00:14:32headiusmmm I see
00:14:46headiusI've been implementing these as children can't see each other
00:14:57headiusand each new VM can have its own set of sub-vms
00:15:17tarcieriI see
00:15:32headiuscertainly can make it a global set though
00:16:12wmoxam leaves the room.
00:17:31heissund1ettig enters the room.
00:19:51jackdempsey enters the room.
00:26:01headiushmm
00:26:18headiusis there no way to get current VM's ID?
00:27:00tarcieriRubinius::VM_ID
00:27:04tarcieriyou might have a look at VMActor
00:27:08headiuswhere is it
00:27:12tarcierisince it actually ties all this stuff together into something cohesive
00:27:15tarcierirbx/lib/vmactor.rb
00:28:14headiushey, docs
00:28:33tarcieriyay!
00:29:01dfg59 leaves the room.
00:29:14tarcieriwhat I'd really like to do is get something a bit more cohesive than VMActor exists now...
00:29:21heissundfettig leaves the room.
00:29:22headiusso you can't actually get at VM objects given an ID
00:29:25tarcierilike, have VMActor automatically start an RPC server
00:29:32tarcierinope
00:29:42tarcieriyou have to do it all through the singleton methods
00:29:58headiusmaybe I'll just put the queue in the global list then
00:30:04headiusahh, though you can join
00:30:06headiusnevermind
00:37:53boyscout1 commit by Ryan Davis
00:37:54boyscout * Removed llvm and step numbers; 0a1ea41
00:40:26hemulen leaves the room.
00:41:14heissundfettig enters the room.
00:41:27kli leaves the room.
00:44:22nathansobotarcieri: what do you think about revactor and doing distributed communication with XMPP?
00:44:34nathansoboi guess that's pretty heavy
00:44:48nathansobobut has the advantage of existing infrastructure for the routing maybe?
00:44:51massuse google protocol buffers! :D
00:45:00massand umm.. dns for routing
00:45:00tarcierinathansobo: at one point I had xmpp4r monkeypatched to use Revactor
00:45:13tarcierinathansobo: then I abandoned XMPP altogether :/
00:45:16nathansobodns for routing
00:45:18nathansobogood thinking
00:45:29nathansobopresence isn't accounted for
00:45:29tarcierinathansobo: we really don't need anything as complex as XMPP
00:45:31nathansobomaybe?
00:45:45tarcierinathansobo: we just use buffered asynchronous message channels
00:45:55nathansobobetween the servers
00:46:06tarcieriyeah, in our case, between our colo facility and EC2
00:46:14edwardamwhat's this about XMPP ?
00:46:32nathansoboi was thinking about representing every actor as an xmpp entity
00:46:44nathansoboso you could message it
00:47:00nathansobousing that to support messaging between actors
00:47:12rubuildius_amd64Ryan Davis: 0a1ea415a; 2585 files, 8510 examples, 28537 expectations, 0 failures, 0 errors
00:47:26nathansobothe problem is that the servers themselves are the "clients"
00:47:32edwardamnathansobo_: you know that at ey we're building some stuff on top of XMPP already.
00:47:36nathansobonot the indiivdual actors
00:47:45edwardams/\./\?/
00:47:46nathansoboyeah, actor-pattern-esque stuff?
00:48:18edwardamnathansobo_: http://en.oreilly.com/velocity2008/public/schedule/detail/4714
00:48:33tarcieriVertebra sounds awesome
00:49:03nathansoboso with vertebra
00:49:05rubuildius_ey64Ryan Davis: 0a1ea415a; 2585 files, 8510 examples, 28537 expectations, 0 failures, 0 errors
00:49:20nathansobowould it be reasonable to message an indidual actor on another slice?
00:49:25nathansoboand wait for a reply?
00:49:28nathansobosorta like erlang?
00:50:53edwardamis looking for any of the slides and/or recordings from that
00:52:01edwardamhttp://en.oreilly.com/velocity2008/public/schedule/detail/4714
00:53:38headius leaves the room.
00:54:00headius enters the room.
00:55:38heissund1ettig leaves the room.
00:55:56edwardamnathansobo_: an actor would expose resources
00:56:04edwardamnathansobo_: those resources would be discovered
00:56:15edwardamnathansobo_: and ops performed on them. The actor would of course need to implement those ops
00:56:43edwardamnathansobo_: it's in the like v.1 stage atm. Very basic with a lot of work left to do.
00:58:09ezmobiusnathansobo_: vertebra is kinda like an exploded erlang VM. where we use XMPP instead of native erlang ports and the actors are ruby processes rather then erlang light processes
00:58:19massc++ is so limiting sometimes
00:58:22trythil enters the room.
00:58:38nathansobookay that sounds cool
00:58:45nathansobobasically the servers themselves could be actors
00:58:49nathansoboyou could send them messages
00:58:55nathansobowith operations to perform on other actors
00:58:55ezmobiusyes exactly
00:58:57nathansobowithin them
00:59:01nathansobolittle actors
00:59:04nathansobolike revactor actors
00:59:06ezmobiusnathansobo_: come to the EY office sometime and I'll hsow you how it works ;)
00:59:12nathansobowhich could of course message back out to the cloud
00:59:18nathansobookay that sounds like a good plan
00:59:20ezmobiusexactly
00:59:37trythil leaves the room.
00:59:42ezmobiusplus add service discovery on top of that so you never need to know the address of an actor explicitely
00:59:49ezmobiusyou only need to know what resources you want to operate on
00:59:55nathansobowe could def. use your guys advice for scaling grockit in a way that allows us to execute business logic in a distributed way
01:00:12nathansoboand since we're customers, works out :-)
01:00:19ezmobius;)
01:00:27nathansobohowabout friday?
01:00:29ezmobiussure
01:00:36nathansoboor another time that works for you
01:00:38nathansobookay sweet
01:00:43ezmobiustomorrow afternoon is cool
01:02:55eventualbuddha enters the room.
01:03:07bobw enters the room.
01:06:48headiustarcieri: http://pastie.org/236132
01:06:52headiusseem like about the right logic?
01:08:11heissundfettig leaves the room.
01:08:18headiusfor some reason that blows up on rbx doing the send from parent
01:08:48headiusok
01:08:57headiusthere is no VM#send in rbx
01:09:00headiussimple enough
01:09:05chad enters the room.
01:09:20headiusor at least it doesn't do what I expected
01:10:52heissundfettig enters the room.
01:13:53headiuswell here it is with some tweaks to make it work in rubinius: http://pastie.org/236135
01:14:13headiusthat code will work in both rubinius and jruby
01:14:40imajes enters the room.
01:14:44tarcieriwow, I broke pastie
01:15:04headius_ enters the room.
01:15:04headius leaves the room.
01:16:15headiusoops
01:16:17headiusI pasted too much there
01:16:19headiusanyway, you get the idea
01:16:41headiusabout 166 lines of ruby code...though I had to add three lines to JRuby to wire up the IO stuff right
01:17:02headiusI need to look at VMActor to understand some of those other methods
01:17:29headiusreset_method_cache, encloser_path stuff, perform_hook...beats me
01:23:22tarcieriheh, crazy, you got it going with an identical API?
01:23:25tarcierithat's cool
01:23:53hemulen enters the room.
01:28:14headiusyeah, it's not a very complicated API
01:28:27imajes leaves the room.
01:28:34headiusI just pulled in a few Java NIO and concurrency classes to help
01:28:45tarciericool
01:28:48headiusit's using NIO pipes and a LinkedBlockingQueue from util.concurrent
01:29:32headiusI don't get the IO behavior for rbx, so I just left mine as is and had child VMs close their end of the pipe when their done
01:29:38headiusso you can stdout.read ok
01:29:49headiustheir/they're
01:32:22headiuswould be nice to standardize that a bit...buffering, flush on VM exit, close on VM exit, etc
01:32:49tarcieridid anyone ever even try to pseudocode what a "standard" MVM API would look like?
01:33:26headiusI think this is it
01:33:34headiusthough we have had discussions before and after evan put this together
01:33:43tarciericool
01:33:49headiusthey all end up basically the same...he and I agree that a simple message passing mechanism is best
01:33:59tarcieriwell, Rubinius::VM may not be the best choice for the name :)
01:34:16headiusI just wanted to get this into 1.1.3 since really we already had MVM in JRuby and just needed to put an API on it
01:34:31tarcierinice
01:34:33headiusyeah, it's JRuby::VM in JRuby...but I alias it to Rubinius as well
01:34:39headiuswe'll need a standard name at some point
01:34:43tarcieriok
01:35:49headiusbasically I didn't have anything left to work on for 1.1.3 release today, so I started playing a bit :)
01:37:30tarcierifun
01:38:07mkescher leaves the room.
01:38:35heissund1ettig enters the room.
01:38:59vjmpany c++ vm developers here?
01:44:59Fullmoon_ enters the room.
01:45:10Fullmoon leaves the room.
01:46:02nathansobo_ leaves the room.
01:46:42nathansobo enters the room.
01:49:15vjmpis there anyone from c++ vm developers, who is interested about bug in builtin_sendsite.cpp? evan?
01:49:28heissundfettig leaves the room.
01:49:47ezmobiusevan is at his high school reunion
01:49:53ezmobiusbut im sure hed like a fix
01:49:56ezmobiusmaybe file a ticket?
01:50:27vjmpthank you. i'll file.
01:51:00benny leaves the room.
01:54:09jtoy enters the room.
01:59:35boyscout1 commit by Eric Hodel
01:59:36boyscout * Update to RDoc r56; 0704787
02:00:13drbraincrap
02:00:16drbrainoops
02:00:22drbrainthat was supposed to be 101
02:01:37ijcd_ enters the room.
02:02:18heissundfettig enters the room.
02:02:45ijcd_ leaves the room.
02:06:29hemulen leaves the room.
02:07:17maeyo
02:07:31maeanyone looked at clojure?
02:08:45tarcieriyes, certainly not in depth
02:09:02rubuildius_ey64Eric Hodel: 070478773; 2585 files, 8510 examples, 28537 expectations, 0 failures, 0 errors
02:12:12rubuildius_amd64Eric Hodel: 070478773; 2585 files, 8510 examples, 28537 expectations, 0 failures, 0 errors
02:12:29vjmp leaves the room.
02:15:34ijcd leaves the room.
02:16:22c0sin leaves the room.
02:16:32heissund1ettig leaves the room.
02:18:13fbuilesv leaves the room.
02:24:59VVSiz_ enters the room.
02:25:11heissundfettig leaves the room.
02:26:57heissundfettig enters the room.
02:30:08smparkes leaves the room.
02:30:20smparkes enters the room.
02:34:34nathansobo leaves the room.
02:36:36fbuilesv enters the room.
02:38:06headiusmae: clojure looks pretty neat
02:42:17VVSiz leaves the room.
02:43:31lopex leaves the room.
02:47:04ezmobius leaves the room.
02:47:58eventualbuddha leaves the room.
02:49:28heissund1ettig enters the room.
02:50:39hemulen enters the room.
02:57:01hemulen leaves the room.
03:03:49lchin enters the room.
03:03:52heissundfettig leaves the room.
03:08:22fbuilesv leaves the room.
03:18:26fbuilesv enters the room.
03:19:16heissundfettig enters the room.
03:33:20heissund1ettig leaves the room.
03:37:37headiushey, do I need to build the external libs separately or something?
03:37:42headiusfor cpp vm
03:39:15heissundfettig leaves the room.
03:42:19headiusyay, tests running
03:42:55heissundfettig enters the room.
03:44:24headiuswoah, llvm is in repo now?
03:44:30headiusholy lots of code
03:47:17headiushey, so is there any way to run rbx with the cpp vm yet?
03:47:21headiusor is it all still entirely standalone
04:09:35heissund1ettig enters the room.
04:17:36headiushmm, cpp vm can't be built by jruby
04:18:01headiusdepends on parsetree
04:18:27tarcieriJRuby doesn't have ParseTree?
04:19:03headiusJRuby doesn't use MRI's parser
04:19:10headiusand our AST is increasingly different
04:19:56headiusparsetree is very dependent on MRI's AST structure
04:21:50Fullmoon_ leaves the room.
04:23:58heissundfettig leaves the room.
04:29:47wmoxam enters the room.
04:31:46trythil enters the room.
04:34:10heissundfettig enters the room.
04:38:02yugui leaves the room.
04:45:55heissund1ettig leaves the room.
05:01:51heissund1ettig enters the room.
05:06:07jackdempsey leaves the room.
05:15:50heissundfettig leaves the room.
05:17:33gnufied leaves the room.
05:19:15jackdempsey enters the room.
05:19:17chadevan: ping
05:22:14tarcierievan is apparently at his high school reunion
05:22:45jackdempsey leaves the room.
05:24:01benburkert enters the room.
05:26:34heissundfettig enters the room.
05:28:15yugui enters the room.
05:33:32evan leaves the room.
05:39:39heissund1ettig leaves the room.
05:40:08boyscout leaves the room.
05:40:21boyscout enters the room.
05:44:32chadtarcieri: yea, i thought maybe he was logged in since it's relatively late now
05:48:11benburkert leaves the room.
05:50:13heissund1ettig enters the room.
05:51:53benburkert enters the room.
05:57:55jtoy leaves the room.
05:58:27benburkert leaves the room.
06:02:07heissundfettig leaves the room.
06:06:20wmoxam leaves the room.
06:07:26jtoy enters the room.
06:08:04mae1 enters the room.
06:10:13yugui leaves the room.
06:10:13thehcdreamer leaves the room.
06:10:13edwardam leaves the room.
06:10:13mae leaves the room.
06:10:13dmpk2k leaves the room.
06:11:43dmpk2k enters the room.
06:12:31yugui enters the room.
06:12:31thehcdreamer enters the room.
06:12:31edwardam enters the room.
06:12:31mae enters the room.
06:13:46heissundfettig enters the room.
06:16:10headius_ enters the room.
06:23:14headius leaves the room.
06:23:59foysavas leaves the room.
06:24:15mae leaves the room.
06:25:28heissund1ettig leaves the room.
06:25:51massdances
06:26:49benburkert enters the room.
06:28:13foysavas enters the room.
06:39:33benburkert leaves the room.
06:40:24heissund1ettig enters the room.
06:54:24heissundfettig leaves the room.
06:59:52thehcdreamer leaves the room.
07:03:05heissundfettig enters the room.
07:07:47mkrauskopf enters the room.
07:09:39mkrauskopf leaves the room.
07:10:07mkrauskopf enters the room.
07:17:26heissund1ettig leaves the room.
07:24:49krsh enters the room.
07:26:43heissund1ettig enters the room.
07:36:29ljulliar enters the room.
07:40:12heissundfettig leaves the room.
07:47:34trythil leaves the room.
07:50:24NoKarma enters the room.
07:51:18heissundfettig enters the room.
07:53:39imajes enters the room.
07:54:31imajes leaves the room.
07:55:00imajes enters the room.
07:57:41dysinger leaves the room.
08:05:09heissund1ettig leaves the room.
08:15:52thehcdreamer enters the room.
08:17:00heissund1ettig enters the room.
08:19:54imajes leaves the room.
08:31:21heissundfettig leaves the room.
08:31:37headius_ leaves the room.
08:32:00chad leaves the room.
08:36:48robin_dewd leaves the room.
08:43:44heissundfettig enters the room.
08:45:23gnufied enters the room.
08:50:08imajes enters the room.
08:50:48blakewatters leaves the room.
08:52:36BlackEdder enters the room.
08:55:21Yurik leaves the room.
08:57:44heissund1ettig leaves the room.
09:07:22heissund1ettig enters the room.
09:08:15octopod enters the room.
09:20:04Fullmoon enters the room.
09:20:11ljulliar leaves the room.
09:20:18heissundfettig leaves the room.
09:20:54jtoy leaves the room.
09:22:37mkrauskopf leaves the room.
09:29:02chad enters the room.
09:34:59heissundfettig enters the room.
09:46:33rueMorning
09:47:57heissund1ettig leaves the room.
09:56:23Maledictus enters the room.
09:58:22enebo leaves the room.
10:00:46headius enters the room.
10:04:43heissund1ettig enters the room.
10:15:44headius leaves the room.
10:17:04heissundfettig leaves the room.
10:23:12imajes_ enters the room.
10:24:27headius enters the room.
10:29:45pauldix enters the room.
10:31:08imajes leaves the room.
10:31:28heissundfettig enters the room.
10:32:31joachimm enters the room.
10:35:31foysavas leaves the room.
10:45:39heissund1ettig leaves the room.
10:46:44krsh leaves the room.
10:58:23heissundfettig leaves the room.
10:58:46botanicus enters the room.
10:59:17Fullmoon leaves the room.
11:00:11heissundfettig enters the room.
11:12:47Fullmoon enters the room.
11:27:44heissund1ettig enters the room.
11:37:22benny enters the room.
11:40:14botanicus leaves the room.
11:40:50gnufied leaves the room.
11:42:08heissundfettig leaves the room.
11:52:25heissundfettig enters the room.
11:57:23gnufied enters the room.
12:04:15botanicus enters the room.
12:05:14heissund1ettig leaves the room.
12:16:23jewel enters the room.
12:16:32michalw enters the room.
12:17:43chris2 enters the room.
12:22:08heissund1ettig enters the room.
12:24:56headius leaves the room.
12:33:09heissundfettig leaves the room.
12:47:52heissundfettig enters the room.
12:52:52heissund2ettig enters the room.
12:55:03heissundfettig leaves the room.
13:01:22heissund1ettig leaves the room.
13:13:23heissundfettig enters the room.
13:25:56heissund2ettig leaves the room.
13:34:55joachimm leaves the room.
13:40:03heissund1ettig enters the room.
13:40:27ljulliar enters the room.
13:49:48antares leaves the room.
13:51:06heissundfettig leaves the room.
14:05:32antares enters the room.
14:06:47heissundfettig enters the room.
14:11:12imajes_ leaves the room.
14:14:04Yurik enters the room.
14:14:39trythil enters the room.
14:16:26trythil leaves the room.
14:19:12heissund1ettig leaves the room.
14:24:12hemulen enters the room.
14:35:30heissund1ettig enters the room.
14:41:44lchin leaves the room.
14:44:07Fullmoon leaves the room.
14:46:41moofbong enters the room.
14:48:35rubuildius_amd64 leaves the room.
14:49:34bitsweat leaves the room.
14:49:36rubuildius_amd64 enters the room.
14:49:52heissundfettig leaves the room.
14:50:08joachimm enters the room.
14:51:14wmoxam enters the room.
14:57:34cremes enters the room.
15:04:09heissundfettig enters the room.
15:10:50benburkert enters the room.
15:13:25w1rele55 enters the room.
15:15:40BlackEdder enters the room.
15:16:02w1rele55 leaves the room.
15:16:16w1rele55 enters the room.
15:17:49heissund1ettig leaves the room.
15:18:46wvdschel enters the room.
15:20:36wvdschelhmmm, the 1.0 milestone was changed to 0.10?
15:20:52wvdschelor did I magically travel back in time?
15:21:44heycarsten enters the room.
15:21:51yasuhito enters the room.
15:23:30w1rele55 leaves the room.
15:32:53heissund1ettig enters the room.
15:33:38antares leaves the room.
15:34:52yugui leaves the room.
15:48:19heissundfettig leaves the room.
15:55:20antares enters the room.
15:58:47gnufied leaves the room.
16:02:40heissundfettig enters the room.
16:08:11shame leaves the room.
16:10:34blakewatters enters the room.
16:16:05heissund1ettig leaves the room.
16:26:44antareswvdschel: 0.10 is what comes after 0.9
16:26:59wvdschelantares, right
16:27:05Fullmoon enters the room.
16:30:21heissund1ettig enters the room.
16:32:07heissundfettig leaves the room.
16:36:30benburkert leaves the room.
16:37:05rueSadly, the 0.09 nomenclature has not taken hold
16:37:53nexcastellanI thought 0.A came after 0.9. ;-)
16:39:53rueNo, 0.:
16:41:28nexcastellanRue wins.
16:41:32joachimm leaves the room.
16:47:19lopex enters the room.
16:48:21robin_dewd enters the room.
16:57:30brixendbussink: ping
16:57:59heissundfettig enters the room.
17:10:31heissund1ettig leaves the room.
17:13:25vjmp enters the room.
17:13:50Maledikt enters the room.
17:14:28vjmp leaves the room.
17:15:11vjmp enters the room.
17:17:36Fullmoon leaves the room.
17:18:44binary42_ enters the room.
17:19:30binary42 leaves the room.
17:24:40heissund1ettig enters the room.
17:25:41hemulen leaves the room.
17:28:26Maledictus leaves the room.
17:33:11NoKarma leaves the room.
17:35:15thehcdreamer leaves the room.
17:36:46heissundfettig leaves the room.
17:46:07edwardam leaves the room.
17:51:24heissundfettig enters the room.
17:59:55shame enters the room.
18:02:10heissund1ettig leaves the room.
18:04:31madsimian enters the room.
18:05:58madsimian leaves the room.
18:07:43pauldix leaves the room.
18:11:56vjmp enters the room.
18:17:02ljulliar leaves the room.
18:17:05heissund1ettig enters the room.
18:18:34headius enters the room.
18:19:00headius leaves the room.
18:19:32headius enters the room.
18:21:37jewel leaves the room.
18:24:54ijcd enters the room.
18:26:38edwardam enters the room.
18:29:29heissundfettig leaves the room.
18:31:21hemulen enters the room.
18:32:59massevan, see this? http://lists.cs.uiuc.edu/pipermail/llvm-announce/2008-July/000029.html
18:33:12massinteresting the JVM/.Net/PHP topics
18:35:35tarcieriheh
18:35:45tarcieribuilding a JIT compiler for PHP in 2 days!
18:38:09massin PHP!
18:38:14massthey left that part out
18:38:43c0sin enters the room.
18:41:10tarcierifor PHP in PHP
18:41:15tarcieri?
18:41:18tarcierilulz
18:41:50Arjen_ enters the room.
18:44:36pth enters the room.
18:44:53octopod leaves the room.
18:45:43heissundfettig enters the room.
18:47:44yasuhito leaves the room.
18:48:33twbray enters the room.
18:55:18pthAnyone here at/going to Ruby Fringe?
18:56:47heissund1ettig leaves the room.
19:00:58lopex leaves the room.
19:01:51pauldix enters the room.
19:04:45rueI thought we ARE the fringe?
19:06:54pthSo not a bad place to ask (or should I have just said who is in Toronto and going to Fail Camp tonight///.)
19:10:12Fullmoon enters the room.
19:14:26heissund1ettig enters the room.
19:15:47ruepth: I have a vague recollection that someone was going
19:15:55rueI am not, a bit far
19:16:17tarcieriZed is going, heh
19:16:21shame leaves the room.
19:16:21tarcierimaking a bunch of music for it
19:17:07shame enters the room.
19:17:32pthToronto was a nice train ride from home, so I am here - the hotel is about 3 miles from Fail Camp, I am walking have not decided if I should take my laptop or not (17" seems like a good idea most of the time)
19:17:33dfg59 enters the room.
19:21:48ruepth: s/good/bad/ :)
19:23:10pthI do not get out much :-)
19:26:35dysinger enters the room.
19:26:52heissundfettig leaves the room.
19:31:25dfg59 leaves the room.
19:32:46pth leaves the room.
19:36:24Fullmoon leaves the room.
19:36:56ezmobius enters the room.
19:38:55rueSweet, Things is available for the iPhone
19:38:58rueezmobius: Sec?
19:39:05ezmobiusheya
19:42:10thehcdreamer enters the room.
19:43:17heissundfettig enters the room.
19:46:53chris2 leaves the room.
19:56:11heissund1ettig leaves the room.
20:08:40ezmobius leaves the room.
20:12:00heissund1ettig enters the room.
20:16:42dbussinkbrixen: back now
20:17:38rueA fine time to be back
20:19:10enebo enters the room.
20:19:26dbussinkof course it is
20:20:04dbussinkis Juha Pohjalainen in here somewhere?
20:22:10rueIt depends, I guess.. where are you?
20:22:34ezmobius enters the room.
20:24:48heissundfettig leaves the room.
20:27:47wmoxam leaves the room.
20:29:40vjmpdbussink: I'm Juha
20:29:58dbussinkvjmp: ah ok, saw the c++ fix
20:30:04dbussinki do have a comment about it
20:30:22vjmpwhich one?
20:30:36dbussinki think builtin_sendsite.cpp:98 line should just be vis->method
20:30:52dbussinkbecause there vis is already known to be a methodvisibility object
20:31:00vjmpyep, probably -- but I was not sure ...
20:31:07dbussinkbecause it's in the else if(vis) block
20:31:22dbussinkso logic dictates that vis ? : always results in the first clause :)
20:32:24ljulliar enters the room.
20:33:35vjmpdbussink: ok, since we agree, then maybe I should update that patch?
20:33:37wmoxam enters the room.
20:33:46dbussinkvjmp: yeah, seems fine to me
20:34:10dbussinkbut i'd like to poke evan about some details
20:36:11rueWhich fix?
20:36:20vjmpok, and I'm not touching anything else but lighthouseapp ...
20:36:37rueOh, and iltaa, vjmp :P
20:36:44dbussinkrue: http://rubinius.lighthouseapp.com/projects/5089/tickets/664-vm-builtin_sendsite-cpp-using-wrong-so urce-for-as-executable#ticket-664-4
20:37:11wmoxam leaves the room.
20:37:16vjmprue: iltaa!
20:37:56dbussinkaaargh, finnish invasion!
20:37:59dbussinkto the barricades
20:38:03rueSlowly but surely :)
20:38:37heissundfettig enters the room.
20:39:28heycarsten leaves the room.
20:39:36dbussinkvjmp: where you btw able to produce a test case that caused a failure on that line 98?
20:40:53vjmpnope, I was just looking around for similar code like one in the error
20:44:55twbray leaves the room.
20:46:13Arjen_ leaves the room.
20:46:40joachimm enters the room.
20:49:06vjmpdbussink: is it better now? that patch.
20:51:10heissund1ettig leaves the room.
20:53:42pauldix leaves the room.
20:54:37thehcdreamer leaves the room.
20:57:17brixendbussink: back from torture-ville (english for 'dentist')
20:57:53brixendbussink: I finally get to work on something interesting (not that specs aren't the cat's meow..)
20:58:10dbussinkvjmp: ah, looks good
20:58:11brixendbussink: since evan is awol, got time for some Qs about primitives?
20:58:20dbussinkyou can always try ;)
20:58:42enebo leaves the room.
20:59:12dbussinkvjmp: hmm, how did you make those patches?
20:59:16dbussinkgit-format-patch?
20:59:16brixendbussink: k, I see annotations for both Ruby.primitive and Ruby.primitive!, is one correct?
20:59:34vjmpdbussink: good, thx
20:59:42dbussinkbrixen: the one with an exclamation mark means the primitive is overloaded with different types
20:59:50brixenahh ha
20:59:57vjmpdbussink: nope; stg show
21:00:08dbussinkvjmp: stg show?
21:00:12dbussinkdunno that one
21:00:13vjmpI'm using stgit
21:00:13brixendbussink: can you briefly describe how that works? how is the method resolved?
21:00:39dbussinkbrixen: the annotations creates a bunch of wrapper code
21:01:13dbussinkvjmp: hmm, it seems that i can't just apply those patches using git-am
21:01:40dbussinkbrixen: gen/primitives_glue.gen.cpp
21:02:54brixendbussink: gotcha, sweet
21:03:06vjmpdbussink: strange (stgit can be found http://procode.org/stgit/ )
21:03:38dbussinkvjmp: can you do git-format-patch ?
21:04:18heissund1ettig enters the room.
21:04:40brixendbussink: are there cpp tests for the primitive being hooked up correctly, or just that the cpp method behaves correctly
21:04:57dbussinkbrixen: those test the cpp method directly
21:05:05brixendbussink: i.e. is there anything that tests the primitive from the VM side, not just as a cpp method
21:05:11dbussinkthe glue is supposed to be incredibly stupid
21:05:16dbussinknot that i know of hyet
21:05:18dbussinkyet
21:05:22brixenok, so we're waiting on being able to run the specs to test the rest, right?
21:05:46dbussinkwell, there are tests to test basic primitive calling
21:05:51dbussinkbut not for all primitives
21:05:56brixenexample?
21:05:58headiushiya guys
21:06:11brixenhey headius
21:06:30dbussinkbrixen: test_unmarshal
21:06:41rueAhoy
21:06:42dbussinkone of the things that vjmp has a fix for :P
21:06:52brixenheh, ok
21:07:05headiusnobody was around when I was fiddling with cpp vm...am I right in assuming it's not wired up in such a way that you could run anything?
21:07:20dbussinkbrixen: it was failing because it was not using an existing primitive
21:07:32brixendbussink: what about compatibility with existing classes? for example, on Dir, I was going to add the FFI wrapper for DIR* to be a slot in Dir
21:07:35dbussinkheadius: well, it's possible to manually compile something and then run the bytecode
21:07:56dbussinkbrixen: what existing classes do you mean?
21:08:12brixendbussink: existing as in Ruby code under kernel/**
21:08:16dbussinkthe c++ classes are not the ruby classes, but making them similar makes it easier to understand them is my experience
21:08:36brixenright, but the builtin cpp classes define slots now
21:08:52brixenI guess I can do it either way, not a biggie for now
21:09:36brixendbussink: how do you run bytecode with it?
21:09:43dbussinklet me dig
21:09:49brixendoes vm/drivers/cli.cpp work?
21:09:59dbussinki always forget the compile command
21:10:09dbussinkthere is a vm binary
21:10:14dbussink./vm compiled.rbc
21:10:19brixenk
21:10:32brixenand file.rb -> file.rbc can be done with MRI now, yes?
21:10:38dbussinkyups
21:10:44brixencmd?
21:10:54brixenor invocation as the case may be :)
21:10:57headiusmanually compile to what?
21:10:58headiusrbc?
21:11:00brixenyeah
21:11:23brixendbussink: how do you invoke the compiler with mri?
21:11:31dbussinki'm looking for it
21:11:35dbussinki always forget it
21:11:47brixendude, my confidence is being shaken :P
21:11:48dbussinkand then i think "i should write this down"
21:11:51brixenheh
21:11:54brixenI plan to!
21:12:14headiuscan't I just run with normal vm to compile it?
21:12:18headiusor has something changed
21:12:36botanicus leaves the room.
21:12:39brixenheadius: should be able to, it's just convenient to use MRI if need be
21:12:45headiusok
21:12:47rueYou can
21:13:10brixenheadius: no more stables in the new vm, since you bootstrap from MRI
21:13:12headiusso if I get that precompiled, what's the magic to run it in the new vm?
21:13:21brixen./vm file.rbc
21:13:25headiusbrixen: back to MRI bootstrap, eh?
21:14:01brixenheadius: afaik, any workable ruby impl
21:14:10headiusthat has parsetree
21:14:20brixenahh
21:14:23dbussinkbrixen: ruby ../lib/compiler/mri_compile.rb -frbx-kernel file.rb file.rbc
21:14:26dbussinkit was something like that
21:14:33brixendbussink: ok
21:14:40vjmpdbussink: can you try that patch now? I used stg mail command this time ...
21:15:22heissundfettig leaves the room.
21:15:35brixendbussink: hm, I don't think the vm exe gets built anymore
21:15:39dbussinkvjmp: ah, that's better, that works :)
21:15:43dbussinkbrixen: hmm, i have it here
21:15:48dbussinkrake vm perhaps?
21:15:57headiusok, seems like it's working
21:16:04headiusin that it gives errors about missing bits
21:16:07vjmpdbussink: ok, have to go and change those other patches too ...
21:16:16jewel enters the room.
21:16:19dbussinkvjmp: then you get the commit credits ;)
21:16:40brixendbussink: thans, that did it
21:16:44brixenthanks*
21:16:57dbussinkvjmp: and since open source is all about self glorification, most people think that's important :P
21:17:37brixendbussink: thanks for your glorious help :) I owe ya a bier
21:18:00dbussinkgood to know i can be of service
21:18:16dbussinkmost of the math primitives are ready btw
21:18:23brixensweet
21:18:26headiushmm, not much working so far
21:18:30brixenI'm working on Dir prims now
21:18:33headiusstring_dup, block_create
21:19:03headiusheh, meta_send_op_minus
21:19:07headiuskinda limiting
21:19:10brixendbussink: do you have a list of what remains on the math prims?
21:19:18brixendbussink: if/when you do, can you comment on http://rubinius.lighthouseapp.com/projects/5089/tickets/658
21:19:20headiusdbussink: recent update?
21:19:28dbussinkbrixen: yeah, i'll do that
21:19:53headiusmaybe I'm doing something wrong?
21:20:05dbussinkheadius: well, only very basic stuff works
21:20:19dbussinkyou can add numbers, multiply, subtract, etc. ;)
21:21:01headiusok...I guess I thought there was more done
21:21:10dbussinkno, not really
21:21:13headiusbrixen: what was that "2x" number based on?
21:21:37dbussinki suspect it being evan's infamous graphing capabilities :P
21:21:46dbussinkhe only forgot to add the disclaimer this time ;)
21:22:23Yurik leaves the room.
21:22:54brixenheadius: heh, yeah, based on evan
21:23:03headiushey, 1+1 worked
21:23:23brixenthe road from simple math to world domination is a short one :)
21:23:38dbussinkheadius: hehe, yeah, that's what i've been testing a while back too ;)
21:23:40headiusif 1; end worked too!!
21:23:55dbussinknot really much has changed, because evan dug into llvm
21:23:58headiusI can't get a simple method def/call to work though
21:25:12vjmpdbussink: now other patches are also updated
21:25:12headiusoops, 1.0 + 1.0 abort trap
21:25:34dbussinkhmmm, that shouldn't happen afail
21:25:41headiussame with bignum
21:25:42dbussinkyou have a backtrace?
21:25:49headiusnope
21:25:55headiusany way to force one?
21:25:59dbussinkwhat does gdb say then?
21:26:06brixendbussink: another Q, how is stuff like this handled now? RAISE_FROM_ERRNO("Unable to open directory");
21:26:07headiusI don't know gdb
21:26:21dbussinkheadius: gdb ./vm file.rbc
21:26:26dbussinkthen type run
21:26:28headiusjust did that, and then "run
21:26:29headiusyeah
21:26:34headiusnothing
21:26:35dbussinkand when it aborts type bt
21:26:39headiusah ok
21:26:45headiusNo stack.
21:26:50dbussinknothing?
21:27:00headiusnada
21:27:14headiuser wait
21:27:23headiusthat command format didn't seem to work right
21:27:29headius"/Users/headius/NetBeansProjects/rbx_cpp/vm/test.rbc" is not a core dump: File format not recognized
21:27:31dbussinkah wait
21:27:40dbussinkyou need to handle arguments differently
21:27:46dbussinkgdb ./vm
21:27:48dbussinkrun file.rbc
21:27:59heissundfettig enters the room.
21:27:59headiusok
21:28:01nexcastellangdb ./vm then when gdb has loaded, run file.rbc
21:28:01headiusbetter
21:28:11headiuspastie
21:28:27pastiehttp://pastie.org/236747 by headius.
21:29:01vjmpdbussink: do you know about those prelude_ methods in vm/llvm/instructions.cpp, they seem to break llvm-g++ compilation.
21:29:19rueIndex is a bit off.. signedness error maybe
21:29:38Yurik enters the room.
21:29:45headiusoh, that's supposed to be an index into the tuple?
21:29:47headiusyeah, el wrongo
21:30:07vjmpdbussink: how are you using gdb? directly or something else?
21:30:22dbussinkvjmp: usually directly
21:30:26rueDirectly is easiest with the new VM
21:30:39vjmpdbussink: I installed ddd today and it seemd to be great help ...
21:30:43dbussinkvjmp: but showgun has some wrappers around it that makes life easier in the more complex situation there
21:30:51dbussinkvjmp: yeah, i know ddd
21:31:12dbussinki'm more the low level command line junky
21:31:13headiushey, you guys are only using parsetree in a limited way, right? like string.to_sexp or something?
21:31:37headiusnot shit like Object.instance_method(:to_s).to_sexp or anything
21:31:40drbrainit's not really ParseTree
21:31:49drbrainat least, AFAIK
21:31:59headiuswhat does MRI do then?
21:32:03drbrainonly the former, I think
21:32:05headiusfor the new compiler
21:32:09twbray enters the room.
21:32:24drbrainit walks the NODEs
21:32:30drbrainat least, AFAIK
21:32:45headiusI'll have to have a look
21:33:11drbrainit may go through ripper, though
21:33:13headiusI have no desire to implement the wilder round-tripping that PT offers, but if I could get enough to run rbx compiler I'd be happy
21:34:23headiusmri_shim requires parse_tree
21:34:52headiusmaybe only parse_tree_for_string?
21:35:06vjmpdbussink: I love commandline, but seems that when I debug, I could use all help I can get
21:35:09brixendrbrain: is readme-c++ supposed to be rdoc?
21:35:17explody enters the room.
21:35:30drbrainbrixen: I doubt it
21:35:37rueNo, it resists the ickiness of RDoc
21:35:44ruePeoples Anti RDoc Front
21:35:49dbussinkvjmp: hmm, your rakefile change breaks for me
21:35:56drbrainsince it's only a temporary file, I don't see the point of formatting it
21:36:38brixendrbrain: k, just trying to follow existing
21:36:45vjmpdbussink: yes, see #666 at lighthouse
21:36:52brixenevan a doc with no format has a format
21:37:07vjmpdbussink: and question above about those prelude_ things
21:37:42vjmpdbussink: oops, do you have llvm-g++ installed?
21:38:00dbussinkvjmp: nope
21:38:10rueBad man
21:38:36dbussinkbut why didn't it fail before then i wonder
21:38:42vjmprue: who, me?
21:39:21heissund1ettig leaves the room.
21:39:23vjmpdbussink: I added dependency between instructions.bc and llvm/instructions.cpp ...
21:39:49dbussinkvjmp: yeah ok, but why did it work before then?
21:40:21vjmpdbussink: previously that instructions.bc was some old monster from git repo
21:40:55dbussinkah, some hand crafted menace?
21:41:51vjmpdbussink: something like that ... I lost some hair while wondering why my changes did not work (from instructions.cpp)
21:42:01dbussinkvjmp: ah ok, then i get it
21:42:29dbussinkdoes it look like the old instructions.bc is generated with llvm-g++ ?
21:42:42rueYeah
21:42:43vjmpdbussink: should I remove that dependency from patch?
21:43:02rueThe file should probably remain in the repo unless we bundle the compiler chain too
21:43:11dbussinkwell, i think we need evan to take a little look at this
21:52:01headius➔ jruby -e "require 'parse_tree'; p ParseTree.new.parse_tree_for_string('1')"
21:52:01headius[[:lit, 1]]
21:52:03headiusyay
21:52:04headiusso it begins
21:55:41heissund1ettig enters the room.
21:56:49vjmpdbussink: I'll break that patch to two halves -- Rakefile and rest
21:57:34vjmpdbussink: and btw, to work, that patch need new instructions.bc :-)
21:57:46dbussinkvjmp: i get that :P
21:57:57dbussinkvjmp: you can poke evan about it when he's back
21:58:24vjmpdbussink: when is evan back? long trip somewhere?
21:59:17dbussinkdunno, maybe some other people know, brixen ?
22:03:21vjmpis there ci for cpp branch? there were those 4 broken testcases, so my guess is, hmm -- no?
22:03:38dbussinkno
22:03:48dbussinkbut there has been a lot of work done on integrating llvm
22:04:16dbussinkand stuff was known broken when evan pushed changes
22:04:23dbussinkbut we all forced him to push stuff :p
22:06:33octopod enters the room.
22:06:47sholden leaves the room.
22:07:35joachimm leaves the room.
22:08:08heissundfettig leaves the room.
22:09:25boyscout1 commit by Eric Hodel
22:09:26boyscout * Update to RDoc r56; 0704787
22:09:36dbussinkvjmp: i pushed the two first fixes
22:10:40blakewatters leaves the room.
22:10:53masswaves hello
22:15:00dbussinkwaves back
22:15:39dbussinkbrixen: did you try running coverage for cpp already?
22:16:38vjmpdbussink: separated Rakefile from rest of the patch ...
22:17:12dbussinkhmm, seems like primitives don't properly work with static methods yet
22:17:16dbussinkthe annotation i mean
22:18:38c0sin leaves the room.
22:19:50headiuspastie
22:20:45pastiehttp://pastie.org/236777 by headius.
22:20:55headiusfun
22:21:17heissundfettig enters the room.
22:21:55catsapiens enters the room.
22:22:36enebo enters the room.
22:22:40dbussinkcool
22:22:52qrush leaves the room.
22:22:59qrush enters the room.
22:23:10Defilerheadius: cool
22:23:58headiusyeah, parse_tree.rb is all ruby and only about 82loc so far
22:24:03headiusobviously a little sparse though :)
22:25:07tarcieriwhoa
22:25:12tarcieriyou're writing ParseTree for JRuby?
22:25:59boyscout1 commit by Eric Hodel
22:26:00boyscout * Update to RDoc r104; 94d307e
22:26:11headiuswell the entire JRuby AST is already accessible
22:26:16headiusjust not in sexp form
22:26:22tarciericool
22:26:27headiusbasically everything in JRuby is accesible...it's all just objects
22:26:39tarcieriso that basically leaves YARV as the only mainstream Ruby implementation without ParseTree?
22:26:47headiuswell, this isn't exactly done
22:26:54tarcieriheh
22:27:01headiusi'm just implementing enough to do basic string -> sexp
22:27:17headiusnone of that crazy stuff turning define_method methods into bmethod sexps or whatever
22:28:04brixendbussink: I ran the coverage task quite a while ago, but not recently
22:28:28dbussinkbrixen: ah ok, well, just pointing it out
22:28:34brixenok
22:28:55brixenwhat's the issue with primitive annotation and static methods?
22:29:27dbussinkbrixen: well, it expects the method on the message receiver
22:29:44moofbong leaves the room.
22:29:47headiusDefiler: what would be the best specs to try to run to test this as I go along
22:29:52dbussinkbut there isn't a receiver for the static case
22:29:53headiuscompiler specs?
22:30:11Defilerheadius: Yeah, though I suspect it will 'just work', given JRuby's level of Ruby support.
22:30:14drbraintarcieri: YARV has Ripper
22:30:18headiusPT tests are going to hit a crapload of stuff I'm not going to add
22:30:23DefilerIt was meant to run on an impl that was far behind JRuby's current state
22:30:31shame leaves the room.
22:30:33headiuswell I just mean filling out PT cases
22:30:40drbraintarcieri: what people are usually doing with PT is proc { }.to_sexp
22:30:41Defilerbut the compiler specs are good because the spec the actual output of the compiler
22:30:45drbrainor method(:foo).to_sexp
22:30:51Defilernot hypothetical gimcrackery
22:30:54headiusI'm doing it by opening our AST node types and decorating them with sexp generating stuff
22:31:09headiusso it's a node-at-a-time thing
22:31:15DefilerAah
22:31:51tarcieridrbrain: what's Ripper?
22:32:05tarcieriman, I need a larger backlog, did you just explain it?
22:32:25tarcieriok
22:32:32tarcieribleh, I need a new IRC client :/
22:33:00drbrainirb(main):005:0> Ripper.sexp '1 + 1'
22:33:10drbrain=> [:program, [[:binary, [:@int, "1", [1, 0]], :+, [:@int, "1", [1, 4]]]]]
22:33:22drbrainit would be easy to go from Ripper.sexp output to UnifiedRuby
22:33:29drbrainand then to ruby2ruby
22:33:35benburkert enters the room.
22:33:53tarcieribut can it do #sexp on something that ISN'T a string eval?
22:34:00tarcieris/eval//
22:34:07heissund1ettig leaves the room.
22:34:25drbrainno
22:34:29drbrainnor can Rubinius
22:34:39tarcieri:/
22:34:52tarcierican you somehow give it an expression and have it convert it to an sexp?
22:35:25headiusdrbrain: can you point me toward info on "unifiedruby"
22:35:29drbrainso long as the expression is a string, yes
22:35:33drbrainin a string
22:35:34tarcierihaha
22:35:36headiusobviously there's AST differences I'm going to have to deal with
22:35:40tarcieriyeah, I meant, not in a string...
22:35:42headiusour AST has continued to evolve
22:35:49tarcierio
22:35:58cremes leaves the room.
22:36:09drbrainheadius: it's in ParseTree, lib/unified_ruby.rb
22:36:11tarcieriwas rather surprised at newlines being in the sexps :/
22:36:17headiusok
22:36:19Defileryeah, pt output is more like a compatibility layer for us, long-term
22:36:25Defilerrather than how we want to implement anything
22:36:38Defilerpresumably the same is true for you
22:36:46tarcieriReia has eol tokens in its grammar, but not in its sexps
22:36:56drbrainruby2ruby sits atop UnifiedRuby, so underlying parse trees can change
22:36:58tarcierialthough Reia's newline processing sucks right now
22:37:00headiusprimary thing that bothers me about PT is that it's basically MRI
22:37:01drbrainor, that's the idea
22:37:11headiusI dunno if unified improves on that or not
22:37:12rubuildius_amd64Eric Hodel: 94d307e85; 2585 files, 8510 examples, 28537 expectations, 0 failures, 0 errors
22:37:22Defilerno other lib has gotten popular enough to set a standard, though
22:37:23drbrainheadius: it's supposed to
22:37:31headiusiter still wraps call? :)
22:37:38Defilerso we are pretty well stuck with it
22:37:41drbrainsince MRI changes the parse tree so much
22:39:07rubuildius_ey64Eric Hodel: 94d307e85; 2585 files, 8510 examples, 28537 expectations, 0 failures, 0 errors
22:39:45headiushmm, here's a good example
22:39:52headiusfor def foo; 1; end, JRuby doesn't insert a block node because there's only a single body element
22:40:10headiusso it comes out as [:defn, :foo, [:scope, [:lit, 1]]]
22:40:19headiusrather than [:scope, [:block, ...
22:40:32Defilerhuh. seems like a weird optimization
22:40:43headiusmemory-related
22:40:51drbrainheadius: I thought MRI did the same thing
22:41:03headiusit's spendy to have a bunch of blocks with a collection of one node
22:41:07drbrainmaybe it did back in the 1.8 days :/
22:41:11drbrain1.8.2 days
22:41:16headius*shrugs*
22:41:28drbrainyeah
22:41:37headiusbut there's the other obvious changes, like closures are a child of call, rather than the other way around
22:41:50tarcieriso Ruby's grammar.y doesn't really spit out something that can be used as the definitive standard or what?
22:42:00headiusyou don't pass a call to an iter, so the MRI way seems backward
22:42:30Defilerwell, you create an iter based on syntax and then find yourself ready to do the matching call
22:42:43headiustarcieri: foo { } becomes [:iter, [:fcall, :foo], nil]
22:42:44DefilerI don't think it feels backwards, just syntax-y
22:42:58tarcieridoes something actually generate the JRuby parser?
22:43:00headiusthe call comes first, syntactically
22:43:05headiusnot sure what your point is Defiler
22:43:10drbraintarcieri: right, it's an implementation detail
22:43:14headiusblock is always the last parsed element of a call
22:43:21headiusignoring for the moment heredoc args
22:43:23Defilerprecedence-wise, it has to look right to left, IMO
22:43:33headiusit doesn't though, it's just another argument
22:43:45Defilerhuh. well, I don't know about the impl
22:43:54DefilerI just meant that the concept has always worked OK for me
22:44:06headiuswe used to do it that way
22:44:10tarcieridurr
22:44:16tarcieriRACC has a C extension?
22:44:18headiusflipping it vastly simplified closure logic
22:45:02headiusmore recently we've added specific-arity subclasses of call/fcall etc to avoid having to construct argument arrays
22:45:10headiusCallOneArgBlock
22:45:43headiusthose are all still CallNode though, so they'll be easy enough to cope with
22:45:46Defilergot any numbers on how much that helped? It certainly seems popular, as a technique
22:45:57heissund1ettig enters the room.
22:46:06headiusDefiler: almost doubled our interp speed for some things
22:48:41Defilerwow
22:48:50headiuspastie
22:50:09pastiehttp://pastie.org/236792 by headius.
22:50:13headiushmmm
22:50:22headiusyou guys ever have MRI suddenly get *really* slow?
22:50:49headiusMRI is taking 5s to run fib(30) on my machine these days
22:50:54headiusit should be more like 1.5s
22:51:08Defilerhuh. I can't say I have noticed, if it has happened to me
22:51:22headiusit's almost like I got an update that was compiled wrong
22:51:26headiusyou run off apple's dist?
22:51:39headiusmy macports one is ok
22:51:43ezmobiusappples mri is *slow*
22:51:54headiusezmobius: but this is only recently
22:52:13ezmobiushwo recently? there was an update in the latest osx software update
22:52:14headiusmaybe I moved macports in PATH or something and forgot about it
22:52:20headiushmm
22:52:26headiuslike within the past couple weeks recently
22:52:33ezmobiusthat jives with the update
22:52:44headiusyeah, it just seems like it's a bad build
22:53:23ljulliar leaves the room.
22:53:55headiusI don't know optz flags, what's -Os
22:54:13ezmobius--diable-pthreads gives a 30% speed boost to mri
22:54:17ezmobiusapples build doenst do that
22:54:21ezmobiusdisable*
22:55:08headiusneither does macports
22:55:23headiusand I didn't think that helped single-threaded builds any
22:55:31headiuser, single-threaded benchmarks
22:55:48DefilerI believe it does, actually
22:56:00DefilerIt's some crazy signal mask doodad
22:56:06headiuswell, I'll test that later
22:56:16headiusbut this is unrelated
22:56:16ezmobiusit does for sure
22:56:56drbrainon FreeBSD 5, --enable-pthread made ruby unusable
22:57:14drbrainbecause the threading library suck