Index

Show enters and exits. Hide enters and exits.

00:01:38brixenrosejn: yes, that's fine
00:02:30rosejnbrixen: thanks. It's done.
00:03:21webmat leaves the room.
00:04:29peeja enters the room.
00:07:33peeja leaves the room.
00:08:10hornbeck enters the room.
00:09:27srbaker leaves the room.
00:09:53foysavas leaves the room.
00:18:46cypher23 leaves the room.
00:18:58zimbatm leaves the room.
00:23:39fbuilesv leaves the room.
00:26:13crossblaim leaves the room.
00:28:09skaar leaves the room.
00:28:54tierack leaves the room.
00:30:21rueMan, this little keyboard light LED is the best invention ever
00:30:46agardinerbetter than sliced bread? wow!
00:32:21crossblaim enters the room.
00:32:29rueSliced bread is for pansies
00:34:09agardinerhah! while you maybe able to ninja-chop me with your breadstick, i can fling slices of bread from fifty paces... you want lay a crumb on me! :-D
00:34:23agardiners/want/won't/
00:35:10rueHey, nice, over 22_500 specs now
00:35:55boyscout2 commits by Jeff Rose
00:35:56boyscout * Actors get registered services, basic linking. Mailbox gets timeouts.; b23a85b
00:35:57boyscout * Specs for Actor linking and registration, and Mailbox timeouts.; 5b1f204
00:36:20binary42I've noticed the cpp branch pop up recently. Is there a definite intention of moving to c++ for the VM or is that more of an experiment at this point?
00:36:25tarcierisweet
00:36:28tarcieri@ actor tuff
00:36:31tarcieristuff
00:36:37tarcieriI'll have to check that out
00:36:54agardinerbinary42: definite intention
00:36:59kw leaves the room.
00:37:25binary42agardiner: thanks. It's an interesting change from C. I'll have to look around for the reasons.
00:37:43agardinercpp branch == shotgun++ or shotgun2 or whatever name it gets given
00:37:50headius enters the room.
00:37:51binary42:-)
00:38:07tarcieridblbrlshotgun
00:38:12binary42Yeah... but why C++? (rhetorical)
00:38:36tarcieribinary42: better testing frameworks, strong typing, object orientation, and not that much of a departure from C?
00:38:43wmoxam leaves the room.
00:38:44rue'Cause! (Rhetorical:)
00:39:15srbaker enters the room.
00:39:26rudebwoy leaves the room.
00:39:44tarcierihmmm
00:39:45binary42tarcieri: fair enough. I'm not saying don't do it. Just musing now.
00:40:09srbaker leaves the room.
00:40:16tarcierinotes the Actor linking implementation kind of ignores the main design considerations of linking
00:41:25srbaker enters the room.
00:41:52tarcierinamely: exit errors should cascade to linked actors, causing them to exit unless they're trapping exit messages
00:42:09rueHrm, why is it trying to push cpp?
00:42:19srbaker leaves the room.
00:42:29hornbeck leaves the room.
00:42:46ruetarcieri: Cool! Fix it ;)
00:42:57tarcierirue: I might
00:43:04rueSend patches! :D
00:43:10tarcierihas commit access now!
00:43:11tarcieriyay
00:43:13rueHehe
00:43:19tarcieriwants to avoid code fisting though
00:43:26tarcieriI'll ping the guy on the mailing list first
00:43:32lstoll enters the room.
00:43:34ruetarcieri: rosejn
00:44:06rueMenTaL is due to come around in a couple too, probably, so you guys can figure it out
00:44:38srbaker enters the room.
00:44:44tarcieriyeah
00:46:42rubuildius_amd64Jeff Rose: b23a85b24; 1857 files, 6420 examples, 22495 expectations, 0 failures, 0 errors; http://rafb.net/p/DtG6oc73.html
00:46:58rubuildius_ppcJeff Rose: b23a85b24; 1857 files, 6423 examples, 22524 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177580
00:51:49rueHm, I am seeing the sporadic Process.kill failure again
00:55:48imajes leaves the room.
00:57:24AndrewO enters the room.
00:57:43agardiner leaves the room.
00:58:09agardiner enters the room.
01:01:50boyscout1 commit by Evan Phoenix
01:01:51boyscout * Compiler is now autoloaded by the kernel, then masked.; 374e4c6
01:03:44binary42 leaves the room.
01:03:50peeja enters the room.
01:05:30peeja leaves the room.
01:05:38jtoy enters the room.
01:05:39radarek leaves the room.
01:05:45agardiner leaves the room.
01:06:27agardiner enters the room.
01:07:15jayWHY leaves the room.
01:07:37zenspidermy brain hurts
01:07:47rueYou need a larger jar
01:08:38jayWHY enters the room.
01:09:36dysinger leaves the room.
01:11:17stepheneb enters the room.
01:11:44rubuildius_amd64Evan Phoenix: 374e4c6f3; 1857 files, 6420 examples, 22495 expectations, 0 failures, 0 errors; http://rafb.net/p/a11x6x19.html
01:12:24rubuildius_ppcEvan Phoenix: 374e4c6f3; 1857 files, 6423 examples, 22524 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177594
01:13:56lopex leaves the room.
01:14:20rosejn leaves the room.
01:17:22jrun leaves the room.
01:21:10boyscout1 commit by Thomas Lachmann
01:21:11boyscout * specs for BigDecimal.new and BigDecimal#zero? (plus tag files).; f6f307e
01:23:06srbaker leaves the room.
01:32:27rueheadius: What is your view on Marshal and the stdlib Singleton?
01:32:32lstoll leaves the room.
01:32:41rubuildius_ppcThomas Lachmann: f6f307e75; 1859 files, 6423 examples, 22524 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177604
01:32:56headiusseems like a bug in MRI, but I didn't look into it deeply
01:33:30dgtizedwhat that you can't marshal a singleton?
01:34:25headiusrelating to the singleton library, not singleton objects
01:34:40dgtizedI know that
01:35:19dgtizedSo you can't marshal a Singleton because then you would have one in memory and one on disk
01:35:24rueheadius: Broadly, would you prefer 1) just raise on .load or .dump; 2) pretend the operation is successful but do not actually marshal any data or 3) actually store/load whatever data is available?
01:35:41headiusdo you have that test case handy?
01:36:06cored enters the room.
01:37:14rubuildius_amd64Thomas Lachmann: f6f307e75; 1859 files, 6420 examples, 22495 expectations, 0 failures, 0 errors; http://rafb.net/p/YB4vAW63.html
01:38:57lstoll enters the room.
01:39:22headiusI'm not clear what exactly is the problem
01:39:39headiusSingleton defines _load to retrieve the existing instance or construct it
01:42:43bitbang enters the room.
01:43:25jayWHY leaves the room.
01:44:48rueheadius: (Sorry, door.) That is correct, but what does ._dump do?
01:45:27headiusempty string
01:45:32rueWhy would one ever ._dump a Singleton if it does not actually do anything?
01:46:13headiusit doesn't do nothing
01:47:05headiusempty string is just a null body
01:47:19headiusit still writes out the type information...it always does that
01:47:22headius~/NetBeansProjects/jruby ➔ ruby -rsingleton -e "class Foo; include Singleton; end; p Marshal.dump(Foo.instance)"
01:47:22headius"\004\bo:\bFoo\000"
01:47:35headiusso load then restores the existing instance
01:48:47headiusso I would argue this behavior is wrong:
01:48:47headius~/NetBeansProjects/jruby ➔ ruby -rsingleton -e "class Foo; include Singleton; end; foo = Foo.instance; p foo; p Marshal.load(Marshal.dump(foo))"
01:48:47headius#<Foo:0x220d8>
01:48:47headius#<Foo:0x21fd4>
01:49:06headiusin JRuby, they're the same object
01:49:07rueWhat about one from a different process?
01:49:19headiuswhat of it
01:49:34headiusthe unmarshalling calls _load which calls the singleton's 'instance' method
01:49:51headiusfrom another process or not, it always should restore the one instance in a given process
01:50:38rueBut there is no expectation that any of the data is restored?
01:51:38headiusit doesn't marshal out any data
01:51:54headiusso there's no data to restore
01:53:28drbrainrue: I prefer (2) by default
01:53:41drbrainrue: and leave it up to the user to define their own dump/load behavior when they need it
01:53:56drbrainthere isn't a default way to make it Just Work
01:54:11justinweiss_ enters the room.
01:54:16headiuswhat's (2)
01:54:26dgtizedwoo hoo! I found a bug in MRI's threading I think
01:54:35dgtizedwoo hoo! I found a bug in MRI's threading I think
01:54:38dgtizedoops
01:54:54zenspiderhaha. race condition!
01:55:30drbrain(2) is what it does right now, pretend to Marshal stuff
01:55:54stepheneb_ enters the room.
01:55:57drbrainbut, it seems that Ruby is broken
01:56:12drbrainaccording to the intention of the implementation
01:57:02jtoy leaves the room.
01:57:02headiusyes
01:57:03headiusit is
01:58:00headius1.8, 1.9, and rubinius all construct a new instance
01:58:02headiusJRuby restores the existing one
01:58:06zenspiderwhy is this gathering so much attention today?
01:58:16headiusbecause someone found it
01:58:49dgtizedbasically if you have two threads that keep going into a Thread.stop, and then you have a third thread calling t1.wakeup, t2.wakeup, then MRI thinks there is a deadlock
01:59:19tarcierinice
02:00:03headiusbleh
02:00:22headiusgot a test I could try?
02:00:27zenspideryeah, but what I'm asking is: so?
02:00:56zenspiderthis has been discussed off and on for hours now (since about lunch) and I just don't see it being that big a deal
02:01:03headiusit's a bug
02:01:13headiusmaybe not a big one in your opinion, but it's a bug
02:01:37headiusI would have thought by now it would have been decided that it was just a bug and fixed, but there still seems to be confusion about it
02:01:56headiusso I guess i'm with you on that
02:03:10boyscout2 commits by Charles Comstock
02:03:11boyscout * spec for wakeup which causes MRI to deadlock when it shouldn't; dbb744d
02:03:12boyscout * specs for Thread::list; 208a7df
02:03:13zenspidergoes to dinner
02:03:18zenspideryay for nerd party
02:04:20stepheneb__ enters the room.
02:05:19rueheadius: Right, it just seems pointless to allow storing something that does not actually store anything
02:05:44evandgtized: eek.
02:05:47headiusdgtized: I might have chosen a more descriptive spec for that
02:05:55evandgtized: does the spec you committed just cause MRI to crash now?
02:06:12dgtizedevan: yes
02:06:15evanremove it
02:06:19evanthats not useful
02:06:24evanor quarantine it.
02:06:35headiusbug
02:06:41tarcierivf_vo.c:(.text+0x524): undefined reference to ass_track'
02:06:53tarcierid'oh
02:07:02dgtizedI guess it should go in the rubinius specs and not in the MRI ones
02:07:19evandgtized: we must not keep the specs from being run on MRI
02:07:48rueheadius: Another approach: if it is possible to store the state of the Singleton, is there a reason to not do so?
02:08:18dgtizedevan: isn't there a way to specify not run that spec on MRI but allow it on rubinius?
02:08:26evanwith a guard
02:08:29headiusrue: if the singleton was included as part of an object graph, marshaling the graph should not fail
02:08:32rueIf it is a bug in MatzRuby, use #ruby_bug
02:08:35headiusand that's certainly a case that could happen
02:08:38jrun enters the room.
02:08:40stepheneb leaves the room.
02:09:08headiusevery such entry in the unmarshaled graph should still be the same object
02:09:09tarcieri#ruby_bug eh?
02:09:25rueAn actual, verifiable bug
02:09:36dgtizedrue: so I think what it is is that the deadlock detection is overly greedy
02:09:36tarcierifound one!
02:09:42rueAnd I mean the method, not the IRC channel
02:09:54nkpart leaves the room.
02:10:21tarcierio
02:10:30headiusI'm not sure how this situation could ever be perceived as a deadlock
02:10:49headiusthere's nothing to deadlock
02:10:59dgtizedheadius: well it does on MRI
02:11:14headiusyeah, I just don't know what their deadlock detection would be doing to cause this
02:12:01dgtizedheadius: what does it do on JRuby
02:12:10headiusworks fine
02:12:17rueheadius: Well, yes, all instances should still continue to be the same instance
02:12:27headiuswakeup and stop just use Java monitors, so there's nothing to really deadlock
02:12:41headiusrue: and if you marshal a graph containing a singleton?
02:12:50dgtizedheadius: do you have any ideas how to spec the difference between wakeup and run?
02:12:59headiusthere's a difference?
02:13:06stepheneb_ leaves the room.
02:13:22headiusoh right
02:13:29nkpart enters the room.
02:13:37dgtizedheadius: run invokes the scheduler, wakeup does not
02:13:42headiusimpl detail
02:13:59headiusI wouldn't bother specing it
02:14:08headiusit assumes you have control over thread scheduling
02:14:13stepheneb__ leaves the room.
02:14:24twbray enters the room.
02:14:31headiusa relic nobody depends on I'd wager
02:14:34dgtizedis MRI1.9 getting rid of all the exclusive and critical crap?
02:14:43stepheneb enters the room.
02:14:50headius1.9 doesn't have critical
02:14:59rubuildius_ppcCharles Comstock: dbb744d96; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177617
02:15:18dgtizedawesome, that's wonderful
02:15:23headiusyeah, critical is gross
02:16:16evanheadius: what does jruby do for critical?
02:16:22headiuscheckpoint
02:16:29mernen enters the room.
02:16:50headius"has someone criticalized? yes = wait on critical lock, no = continue"
02:16:56headiusit's gross too
02:17:03headiusno other way though
02:17:15headiusit's like shoehorning a GIL into Java
02:17:23rueheadius: Those should still be the same instance, no?
02:18:00headiusrue: yeah, I'm just saying you can't say it shouldn't marshal, since singletons could arbitrarily be included in an object graph
02:18:03headiusso the behavior as written seems correct to me
02:18:19rubuildius_amd64Charles Comstock: dbb744d96; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/QchgSU12.html
02:20:05rueheadius: If you could not marshal singletons, then those would no longer be in such an object graph :) Precedent from singleton methods. But what about dumping and loading /and/ storing the data like a default dump would?
02:20:13boyscout1 commit by Charles Comstock
02:20:14boyscout * Thread#wakeup deadlock for MRI marked as ruby_bug; eec07ba
02:22:01headiusI think the contract of singleton is that it can't have any non-ephemeral state
02:22:16headiusor at least, that's what a null _dump implies to me
02:22:37rueYes, but that is just because of the current implementatin
02:22:45headiusbut now we're into a guessing game...obviously someone implemented _dump that way for some reason
02:23:10rueThe Singleton pattern specifies that there is only a single instance of the class at any given time
02:23:11headiusI think there would be some serious problems allowing singletons to serialize state
02:23:24headiuswhat if you serialize it out, make some changes to internal state, and then restore it?
02:23:27headiuswhat should it do?
02:23:42headiusyou now have two representations of the same singleton
02:24:04stepheneb_ enters the room.
02:24:05rueIt would need to replace the current instance
02:24:13headiusby only allowing a null body to be marshalled and only an 'instance' call on load, you avoid there ever being two alternate representations in existence
02:24:41headiusI disagree...the existing instance may still be in use
02:24:44headiusyou can't arbitrarily overwrite it
02:24:54twbray leaves the room.
02:24:56VVSiz_ enters the room.
02:26:05rueIt is the normal behaviour. If you load into a variable from marshal, it is overwritten
02:26:28headiusa variable is on the stack
02:26:49trythil leaves the room.
02:26:49headiusyou can't unmarshal over an existing object on the heap
02:27:00dgtizedwhat happens if you call a method on a singleton over DRb
02:27:08crafterm enters the room.
02:27:09dgtizedI'm guessing that's what the dump/load symantics are for
02:28:26headiusyeah, that's possible
02:28:34headiusI don't really know the details of how DRb handles all that
02:28:47dgtizeddoes DRb work on JRuby yet?
02:29:09headiuseverything works in JRuby!
02:29:31headiusexcept what doesn't
02:29:37dgtizedhow did you deal with the retry outside of the block?
02:29:39headiusI don't think DRb is in that category
02:29:42rueheadius: Sorry, differentiate? One can surely overwrite instance variables, for example
02:29:51headiusrue: not via marshalling
02:30:17yipstar leaves the room.
02:31:43rubuildius_ppcCharles Comstock: eec07baa0; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177626
02:31:43rueSure you can, or do I misunderstand?
02:31:53headiusof course you can write custom marshalling logic to do anything, but that's far from typical
02:32:05rue ruby -e 'class A; attr_accessor :a; end; obj = A.new; obj.a = "hi"; p obj.a; obj.a = Marshal.load(Marshal.dump "aloha"); p obj.a'
02:32:26headiusthat's not via marshalling
02:32:35headiusyou're assigning the result of a marshal to something
02:32:55headiusmarshalling can't replace an existing object normally
02:33:12rueMatzRuby does not have #become
02:34:40headiusbecome is not state, it's type
02:35:35headiuslook, unless you define accessors for a singleton's internal state, there's *no way* that marshalling can overwrite it
02:35:45rueOK, this is not a productive avenue, we are talking past eachother. What I was saying is that loading a Singleton would be equivalent to @my_singleton = Marshal.load
02:35:59headiusso any singleton you create can't be restored from a stream, whether there's data there from the dump or not
02:36:12headiusno, it would not
02:36:20headiusbecause all references to the singleton must remain references to the same object
02:36:29headiusand you can't replace an existing object's state in-place
02:36:41headiusso you can't dump singleton state, and loading must just return the existing instance
02:37:16ineffablygregory enters the room.
02:37:59rueI think you will find that my statement agrees with that
02:38:39rubuildius_amd64Charles Comstock: eec07baa0; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/lTlqZc99.html
02:38:48headiusthen I don't understand your statement
02:39:31headiusthe compromise between the fact that you can't dump and restore singleton state, but might have references to singletons in a graph of objects, is to do exactly what the singleton library does: serialize nothing, restore the existing instance
02:39:36yipstar enters the room.
02:40:25rueYes.. I understand what the current behaviour is.
02:41:09headiusand your proposal is what, exactly?
02:42:27VVSiz leaves the room.
02:42:31trythil enters the room.
02:43:36rueI am trying to /find out/ whether another model would be possible
02:46:21rueTo me, it seems that the current model conflicts with the precedent which is to disallow marshalling if the object cannot be marshalled correctly. It is also contrary to the stated intention of the Marshal library.
02:48:40headiuscorrectly is subjective
02:48:53headiusthere are lots of cases where the dump/load sequence does not return an identical copy
02:49:01stepheneb leaves the room.
02:50:37rueThe Marshal rdoc is fairly clear in stating that "the original objects [are] reconstituted"
02:51:05headiushahah, rdoc being clear
02:51:10headiusthat's the best one I've heard all day
02:51:24headius:)
02:51:49loincloth enters the room.
02:51:51rueTrue as it may be, that is argumentum ad rdocinem ;)
02:52:04headiuswhere are you seeing that anyway?
02:52:09rueri Marshal
02:52:17rueSecond sentence
02:52:51rueBut that comes down to the same question: why would I want to store an object that cannot be reconstrued correctly?
02:52:55kw enters the room.
02:52:56headius"original object" could certainly mean the same object :) it doesn't exclude that case
02:53:13rueA corollary: say that you DO have an object graph with a Singleton in there
02:53:29kw leaves the room.
02:53:50ineffablygregory leaves the room.
02:53:54rueWhat if another part of the OG depends on the value of the Singleton when dumped and the value is different when loaded?
02:54:16headiuswhy would it be different
02:54:29rueSingletons are not *immutable*
02:54:33headiusyou're saying it depends on the temporal state of the singleton
02:54:36headiuswhich is broken encapsulation
02:54:40headiusI brush it aside!
02:55:01headiusthe graph does not own the singleton
02:55:23rueA Singleton may have whatever state it pleases and objects may rely on it through the normal interface
02:55:39headiusand its state may change without intervention from the objects of the graph
02:55:51headiusbut now we're well beyond singleton marshaling
02:57:14rueNo, because the Singleton *can* have a state. More fundamentally, why would you marshal it if not to hold on to the state?
02:57:34headiuswhy would you marshal a singleton, knowing you could not restore it into a new object?
02:57:58headiusor rather, why would you marshal a singleton and expect its state to be preserved
02:58:03headiusknowing full well that once a singleton exists, it cannot unexist and cannot be overwritten
02:58:18rueThat is not necessarily correct
02:59:23rueBut the inverse is true; why would you store the singleton if it does not retain state? You are not saving any work because you have to already take that into account
02:59:46headiusif your entire goal is just to marshal singletons, I think you need a new hobby
03:00:15headiusif, however, marshalling singletons just happens as part of them being in an object graph somewhere, they should continue to act as singletons
03:00:46rueWhy do you put the singleton in the object graph?
03:00:49dgtizedrue: are you working on code that could be used to make a vm image?
03:00:54headiusand if you're doing any time-sensitive work in a singleton that you intend to save off, I don't think marshalling is the way you should be going
03:01:28headiusperhaps you assign the singleton into an ivar
03:01:30ruedgtized: Nope, I think agardiner was talking about that earlier
03:01:33headiusperhaps you don't even know you've got a singleton object
03:02:29headiusclass Foo; def initialize(some_service); @service = some_service; end; end ..... Foo.new(SomeSingletonService.instance)
03:02:34nicksieger leaves the room.
03:02:41rueIn that case it would be likely that you would expect it to do what it did before you marshalled it, though, no?
03:02:52headiusmaybe?
03:03:08headiusdepends what contract you expect from some opaque object you're given
03:03:15headiuscan't you make that assumption?
03:03:23smparkes enters the room.
03:03:40headiusif the left hand doesn't know what the right hand is doing, I think there's larger problems than marshalling singletons
03:04:49rueThat is a bit of a strawman. There is no reason to store a singleton unless you expect it to provide expected services
03:04:57rueWhatever that may be
03:07:58headiuswell, whatever it is, I'm getting too tired for hypothetical discussions :)
03:08:30headiusas I see it, there's no way to save and restore the state, so that's out
03:08:56headiusand having it fail hard is certainly an option, but it's rather intrusive if singletons happen to get into a graph and prevent it being serialized at all
03:11:13rueMm. I think that in that view, it should be an error. But I suppose it is pointless to try to come up with a better behaviour.
03:11:54justinweissI think I found a bug in rubinius' rdoc, but the organization of files is completely different than ruby1.8's rdoc... are we using a newer version?
03:12:17justinweissalso, how should I go about writing a failing spec that works on 1.8 if the class names are different?
03:14:43drbrainjustinweiss_: yes
03:14:58drbrainjustinweiss_: write tests, not specs
03:15:21drbrainjustinweiss_: http://rubyforge.org/scm/?group_id=627
03:15:22ezmobius leaves the room.
03:17:25justinweissok, that makes more sense, thanks :-)
03:20:35bitbang leaves the room.
03:28:22boyscout1 commit by Eero Saynatkari
03:28:23boyscout * Amended spec wording for Singleton._load slightly. Updated exclude.; e306408
03:30:00ineffablygregory enters the room.
03:30:12rueAlright, that should be the last patch.
03:35:51JimMc enters the room.
03:36:08JimMcevening lads
03:37:59JimMcis having a compile issue, currently on a Linux box but was having the same trouble on OpenSolaris
03:38:24JimMcwondering if someone might have a workaround off the top of their head?
03:39:18JimMclibtool --mode=install install -c lib/librubinius-0.8.0.so /usr/local/lib
03:39:18JimMcmake: libtool: Command not found
03:39:18JimMcmake: *** [install] Error 127
03:39:18JimMcrake aborted!
03:39:18JimMcCommand failed with status (2): [cd shotgun; make install]
03:39:20obvio leaves the room.
03:39:41JimMclook familiar to anyone?
03:40:04rubuildius_ppcEero Saynatkari: e3064084e; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177656
03:43:14rubuildius_amd64Eero Saynatkari: e3064084e; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/ijSuOa78.html
03:43:50JimMcwoops, just going over the install notes there & whats required.
03:44:19dysinger enters the room.
03:45:11wmoxam enters the room.
03:48:38tierack enters the room.
03:49:28cored leaves the room.
03:50:13ineffablygregory leaves the room.
03:50:27drbrainugh, libtool
03:51:43drbrainthat's the only thing we use libtool for
03:53:00JimMchttp://pastie.org/177659 here's my config.log
03:53:25JimMcinstalled all deps specified in install and no shimola
03:55:48aotearoa leaves the room.
03:57:29JimMcalthough...
03:57:33JimMcone sec
03:59:44JimMcneed to specify g++ as a requirement for the install
04:00:11JimMcthat was the issue, it wasn't installed with gcc packages by default-ubuntu
04:00:54JimMchow to update the getting started guide to include this?
04:01:57drbrainum, you shouldn't be re-running configure for libltdl
04:02:02drbrainor, no
04:02:09drbrainthat's autoconf, sorry
04:02:37drbrainbut, that's crazy that gcc doesn't include the C++ compiler
04:03:29JimMcyep
04:03:36JimMchair pulling crazy
04:04:06JimMcand libreadline5-dev needs to be installed
04:04:43JimMcor libreadline-dev will just install the latest, which currently is 5
04:04:54jtoy enters the room.
04:05:25yipstar leaves the room.
04:05:34drbraingo ahead and make a patch for INSTALL and so-forth
04:05:48JimMcah
04:05:50JimMcsure
04:05:53JimMctomorrow
04:05:59JimMcit's 4am here
04:06:16JimMcit's working which is good enough for me
04:06:27JimMcso will patch it tommorrow
04:09:08JimMcactually just running a performance script to test, whats the max number of (idle)threads shotgun can handle at once?
04:16:04tierack leaves the room.
04:20:34JimMc1000 thread's in 2.5 seconds using 105,2760Kb RAM including the VM
04:21:13guessmethod enters the room.
04:21:17drbrainI don't know
04:21:30JimMcno not asking
04:21:40JimMcthis is a test that I've just run
04:22:11JimMccreates thread's, stops them, then sticks them in an array
04:22:35JimMcprints out how long, how many threads & how much memory the whole VM is using at the time
04:23:22jrun leaves the room.
04:24:03JimMc1500 thread's in 3.69 seconds using 1568156Kb RAM
04:24:23JimMcAnd craps out at much more threads than that.
04:24:27JimMchave a nice evening
04:26:10nicksieger enters the room.
04:31:03peeja enters the room.
04:31:44MenTaLguY enters the room.
04:38:53scooner enters the room.
04:41:37tarcierisup MenTaLguY
04:41:46MenTaLguYhey
04:41:49MenTaLguYnot a whole lot
04:42:00tarcieriyou should really have a look at the Actor linking that got checked in today
04:42:11tarcieriit's uhh, not exactly implemented in an optimal manner
04:42:33tarcierinamely linked Actors just send exit messages... to the normal Mailbox
04:43:09tarcierithey don't cascade the error through the linked Actor grapgh by default or anything like that
04:45:11AndrewO leaves the room.
04:48:21kw enters the room.
04:50:44guessmethod leaves the room.
05:03:29wycats_ enters the room.
05:07:38crafterm leaves the room.
05:07:52crafterm enters the room.
05:12:11rubby leaves the room.
05:20:54wycats__ leaves the room.
05:22:50MenTaLguYbleah
05:24:45MenTaLguYspawn_link is also done wrong
05:25:25MenTaLguYat least they got Actor.link right
05:25:29MenTaLguYsort of
05:27:56MenTaLguYhm, cool
05:28:00MenTaLguYactually this isn't too bad for the most part
05:28:48tarcierineeds Actor#trap_exit...
05:29:32MenTaLguYyeah
05:29:52tarcieridid he do Actor.link and Actor.unlink too?
05:29:54MenTaLguYexit notifications and all need to go through the message queue as well
05:29:55MenTaLguYyes
05:30:16tarcierii.e. shortcuts to Actor.current.link, Actor.current.unlink
05:30:21MenTaLguYyeah
05:30:24tarciericool
05:30:36MenTaLguYI was thinking about that today and I actually don't think we should have Actor#link and Actor#unlink
05:30:49MenTaLguYjust have Actor.link and Actor.unlink make the calls to Actor#notify_link directly
05:30:58tarcieriyeah, I don't really care if they're there or not
05:31:02MenTaLguYotherwise things don't work if you mix actor implementations
05:31:27tarcierihaving several duck types of Actor floating around will get interesting...
05:31:57tarcieriespecially when you start message passing them around to different types of things
05:32:00MenTaLguYI'm a little more distressed that no synchronization at all is used on shared data structures
05:32:12tarcierioh yeah?
05:32:22MenTaLguY@linked and @@registered for instance
05:32:29MenTaLguYthe guy really deserves to be beaten for that
05:32:33tarcieriheh
05:33:40MenTaLguYspawn_link is also wrong
05:33:47MenTaLguYthe link needs to happen before the user code in the block is called
05:33:49MenTaLguYnot after
05:34:03MenTaLguYstill, there's nothing disasterous in here
05:34:06MenTaLguYjust things to fix
05:34:51tarciericool
05:38:46boyscout1 commit by MenTaLguY
05:38:47boyscout * do not encourage cross-linking other actors; a3aa09c
05:39:03MenTaLguYlots of things to fix... :(
05:39:09tarcieriheh
05:43:23agile leaves the room.
05:45:56boyscout1 commit by MenTaLguY
05:45:57boyscout * fix Actor.spawn_link to complete link before either running user code; 072243a
05:47:24rubuildius_amd64MenTaLguY: a3aa09c53; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/gk1MHi23.html
05:47:42ezmobius enters the room.
05:48:10ineffablygregory enters the room.
05:51:38wmoxam leaves the room.
05:51:49cyndis leaves the room.
05:53:26boyscout1 commit by MenTaLguY
05:53:27boyscout * add missing synchronization for @@registered; d00f008
05:53:29cyndis enters the room.
05:57:18ineffablygregory leaves the room.
05:57:39srbaker enters the room.
06:04:11boyscout1 commit by MenTaLguY
06:04:12boyscout * add missing synchronization for @links; e4bdf86
06:06:01boyscout1 commit by MenTaLguY
06:06:02boyscout * rely on normal Ruby boolean conventions; ee7b1ea
06:09:31mernen leaves the room.
06:09:55RyanTM leaves the room.
06:12:28bitbang enters the room.
06:16:48rubuildius_ppcMenTaLguY: ee7b1ea76; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177708
06:16:49rubuildius_ppcMenTaLguY: e4bdf8674; build failed! http://pastie.caboo.se/paste/177706
06:16:50rubuildius_ppcMenTaLguY: d00f00854; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177707
06:16:51rubuildius_ppcMenTaLguY: 072243a54; 1859 files, 6424 examples, 22525 expectations, 1 failure, 0 errors; http://pastie.caboo.se/paste/177703
06:16:52rubuildius_ppcMenTaLguY: a3aa09c53; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177700
06:25:06rubuildius_amd64MenTaLguY: ee7b1ea76; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/VwBicK38.html
06:25:07rubuildius_amd64MenTaLguY: e4bdf8674; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/HVadmC58.html
06:25:08rubuildius_amd64MenTaLguY: d00f00854; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/Mj5MUl50.html
06:25:09rubuildius_amd64MenTaLguY: 072243a54; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/YofYRw34.html
06:25:17benburkert leaves the room.
06:28:29yaroslav enters the room.
06:33:11rueHurray, fixeroo
06:41:44wycats__ enters the room.
06:42:37nicksieger leaves the room.
06:47:44agile enters the room.
06:48:41nicksieger enters the room.
06:52:49MenTaLguYstill lots to fix
06:54:28drbrainbuildorhea
06:58:28stepheneb_ leaves the room.
06:58:44wycats_ leaves the room.
07:01:48yaroslav leaves the room.
07:02:20yaroslav enters the room.
07:19:49dysinger leaves the room.
07:21:30lstoll_ enters the room.
07:29:07mib_h67dsj enters the room.
07:29:57lstoll leaves the room.
07:39:51rueevan: Are you holding #336 for any reason? I will push or close it unless there was something to review
07:49:00qwert666 enters the room.
07:51:02dysinger enters the room.
07:54:46MenTaLguY leaves the room.
07:55:13nkpart leaves the room.
08:02:10VVSiz enters the room.
08:02:27VVSiz_ leaves the room.
08:02:33lstoll enters the room.
08:04:08d2dchat leaves the room.
08:05:05wycats__ leaves the room.
08:05:24anonuser leaves the room.
08:11:04Maledictus enters the room.
08:11:14lstoll_ leaves the room.
08:17:01thehcdreamer enters the room.
08:21:54Skip enters the room.
08:22:46be9 enters the room.
08:35:01agardiner leaves the room.
08:37:48trythil leaves the room.
08:39:33Fullmoon leaves the room.
08:44:27bitbang leaves the room.
08:49:17cypher23 enters the room.
08:49:37mib_h67dsj leaves the room.
08:53:07wycats_ enters the room.
08:53:34octopod enters the room.
08:55:35kw leaves the room.
08:55:47wycats__ enters the room.
08:56:36crafterm leaves the room.
08:56:46ezmobius leaves the room.
09:01:28lstoll leaves the room.
09:03:30jartz enters the room.
09:03:44mutle enters the room.
09:08:05Arjen_ enters the room.
09:09:24dysinger leaves the room.
09:11:48wycats_ leaves the room.
09:18:30_mk_ enters the room.
09:26:44antares enters the room.
09:58:41wycats leaves the room.
10:06:54zenspider leaves the room.
10:11:46wyhaines leaves the room.
10:15:12wycats enters the room.
10:28:16gnufied leaves the room.
10:39:33rueHave I mentioned that Apache sucks before?
10:41:18naeu enters the room.
10:45:50scoopr:)
10:49:57cypher23 leaves the room.
10:55:23wycats leaves the room.
10:57:09rueBedtime, be back at a later occurrence
10:59:42cypher23 enters the room.
11:02:01riffraff enters the room.
11:13:36antares leaves the room.
11:19:45MaledictusIs there a script the can show differences between mri and rubinius Objects? like methods available.
11:20:32Lachi enters the room.
11:24:14tim_w enters the room.
11:28:02rubuildius_ppc leaves the room.
11:32:03perdix enters the room.
11:32:03jtoy leaves the room.
11:39:21sfaxon enters the room.
11:42:42yaroslav leaves the room.
11:43:24tim_w leaves the room.
12:02:55jero5 enters the room.
12:04:01jartz leaves the room.
12:07:05justinweiss_ leaves the room.
12:07:22justinweiss_ enters the room.
12:12:10riffraff leaves the room.
12:13:02jartz enters the room.
12:15:14NoKarma enters the room.
12:23:49NoKarmaheya
12:25:20sfaxon leaves the room.
12:28:46w1rele55 leaves the room.
12:31:10w1rele55 enters the room.
12:34:15ctennis leaves the room.
12:50:49webmat enters the room.
12:53:16wdperson enters the room.
12:54:21rubuildius_ppc enters the room.
12:56:52stepheneb enters the room.
12:59:04zimbatm enters the room.
13:04:44reima enters the room.
13:06:07reimaIs this intended behaviour? http://pastie.caboo.se/177849
13:09:50rubuildius_ppcMenTaLguY: ee7b1ea76; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177854
13:10:13reimaI know why it breaks (see Numeric#==), but I'm not quite sure if it should
13:21:28stepheneb_ enters the room.
13:22:50qwert666 leaves the room.
13:26:54reimaI've got to go, but I'll check back later. Cya!
13:27:02reima leaves the room.
13:33:27stepheneb leaves the room.
13:54:30naeu leaves the room.
13:55:56cremes enters the room.
14:16:34NoKarma leaves the room.
14:17:23headius leaves the room.
14:20:52yaroslav enters the room.
14:25:57RyanTM enters the room.
14:27:47fbuilesv enters the room.
14:29:14stepheneb_ leaves the room.
14:42:17AndrewO enters the room.
14:43:06yugui enters the room.
14:45:59twbray enters the room.
14:47:37brainopia enters the room.
14:52:31wmoxam enters the room.
14:54:08macournoyer enters the room.
15:05:09chris2 enters the room.
15:05:19jlindley enters the room.
15:11:57boyscout1 commit by Federico Builes
15:11:58boyscout * Adding spec helpers to REXML specs; 8ebefe3
15:12:29d2dchat enters the room.
15:13:47boyscout1 commit by Federico Builes
15:13:48boyscout * Cleaning up UPSocket#send specs; c281add
15:17:22stepheneb enters the room.
15:19:24yaroslav leaves the room.
15:20:04yaroslav enters the room.
15:25:28moofbong enters the room.
15:26:53rubuildius_ppcFederico Builes: c281add79; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177902
15:26:54rubuildius_ppcFederico Builes: 8ebefe3c0; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177901
15:28:23rubuildius_amd64Federico Builes: c281add79; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/njEwX953.html
15:33:45pauldix enters the room.
15:36:06ctennis_ enters the room.
15:37:58pauldix leaves the room.
15:38:57djwhittci time is creaping up again on rubuildius_amd64
15:39:05guessmethod enters the room.
15:41:04jeremydurham enters the room.
15:42:22fbuilesvdjwhitt: curiously enough, it's after one of my commits again
15:42:57djwhittfbuilesv: nah, not really. it was happening earlier too
15:43:05djwhittthis is just the first I mentioned it
15:43:07fbuilesvdjwhitt: :)
15:43:33djwhittfbuilesv: I think I'll still blame you though ;)
15:43:40fbuilesvdjwhitt: hah
15:48:44ineffablygregory enters the room.
15:49:16ineffablygregory leaves the room.
15:50:58d2dchat leaves the room.
15:51:23d2dchat enters the room.
16:01:13therealadam enters the room.
16:02:48rby_ enters the room.
16:03:04fbuilesv leaves the room.
16:03:34justinweiss_ leaves the room.
16:04:06fbuilesv enters the room.
16:06:59scoopr leaves the room.
16:07:58srbaker leaves the room.
16:08:22qwert666 enters the room.
16:08:39srbaker enters the room.
16:20:14headius enters the room.
16:20:28guessmethod leaves the room.
16:20:36guessmethod enters the room.
16:21:38scoopr enters the room.
16:22:00cremesdjwhitt: i'm just glad it's slower than rubuildius_ppc again; my poor box was getting a complex about its (lack of) performance... ;)
16:22:39djwhitthehe
16:28:43rubuildius_amd64 leaves the room.
16:31:21headius_ enters the room.
16:33:27jartz leaves the room.
16:38:29headius leaves the room.
16:38:47enebo enters the room.
16:42:09rueMorning
16:42:53ineffablygregory enters the room.
16:45:11mentz enters the room.
16:49:45trythil enters the room.
16:49:51headius leaves the room.
16:50:58headius enters the room.
16:53:56MaledictusI wrote a bunch of methods for ENV. Now shotgun/rubinius -e 'p(ENV.methods.sort - Object.methods)' returns []. Any idea? My specs still run, so more methods are actually there.
16:54:37justinweiss enters the room.
16:56:41brixenMaledictus: what does ENV.methods(false) look like?
16:56:56brixeni.e. are your methods listed?
17:00:39jeremydurham_ enters the room.
17:02:49dodecaphonic_ leaves the room.
17:03:45jeremydurham_ leaves the room.
17:03:48evanMaledictus: did you run 'rake' after adding the methods?
17:04:19rby_ leaves the room.
17:12:10benburkert enters the room.
17:12:53nicksieger leaves the room.
17:14:12mitsuhiko leaves the room.
17:16:44jeremydurham leaves the room.
17:18:15trythil leaves the room.
17:18:23Arjen_ leaves the room.
17:18:31Skip leaves the room.
17:19:20mitsuhiko enters the room.
17:19:44mentz leaves the room.
17:24:13mentz enters the room.
17:25:38nicksieger enters the room.
17:26:19trythil enters the room.
17:29:36mutle leaves the room.
17:31:54jlindley leaves the room.
17:34:17codebrulee enters the room.
17:35:18thehcdreamer leaves the room.
17:39:07yaroslav_ enters the room.
17:39:33Maledictusevan: yep, did rake.
17:39:49Maledictusproblem was I had a method called class which returned Object
17:39:53Skip enters the room.
17:39:56evanwhere did you add the methods?
17:40:00yaroslavIs there any place I can read about actors (except source)?
17:40:08evanMaledictus: eek, what did you do that?
17:40:14Maledictuskernel/core/env.rb
17:40:18Maledictusto match mri
17:40:25Maledictusit's disabled now
17:40:26evandon't.
17:40:37evannever redefine #class
17:40:37Maledictusno need to be that accurate?
17:40:41evannot for that.
17:40:52evanwe model ENV differently that MRI
17:41:05Maledictuscurrently thinking about doing it like mri. like ENV = Object.
17:41:05evanin MRI, it's a generic Object, with a ton of methods added
17:41:06Maledictusnew
17:41:14evanin Rubinius, it's an instance of EnvironmentVariables
17:41:18Maledictusand then class <<ENV and defining the methods there
17:41:20evanMaledictus: DO NOT.
17:41:42evanno, leave it modeled as is.
17:41:45Maledictusok
17:41:51Maledictusit is currently here.
17:42:20MaledictusOnly difference in behaviour I currently know of if #class then
17:42:27evanthats fine.
17:42:34Maledictusbut haven't finished the specs. Doing that now
17:43:14tarcieriwow, nice @ Actor linking after MenTaLguY's changes
17:43:24rueyaroslav_: There is some concurrency literature out there. If you search on the web, Erlang blogs etc. are probably the best bet
17:43:30rueyaroslav_: Or you could ask tarcieri :D
17:43:44yaroslavrue: thats what antares told me :)
17:44:04tarcierihad a nice intro to Actors up, but the server it was on crashed :/
17:44:11tarcierishould be back up today
17:44:38yaroslavkay :)
17:47:45yaroslav leaves the room.
17:48:30fbuilesv leaves the room.
17:49:44ctennis_ leaves the room.
17:52:08jlindley enters the room.
17:55:44yaroslav_ leaves the room.
18:00:09Maledikt enters the room.
18:01:32rueBe back in a while, store
18:04:22codebrulee leaves the room.
18:05:18agile leaves the room.
18:05:23Maledictus leaves the room.
18:08:40wyhaines enters the room.
18:08:54agile enters the room.
18:14:13Arjen_ enters the room.
18:15:14benburkert leaves the room.
18:16:17benburkert enters the room.
18:22:26TheVoice enters the room.
18:22:49mentz_ enters the room.
18:22:59joachimm_ enters the room.
18:23:42yipstar enters the room.
18:27:19benburkert leaves the room.
18:28:40MalediktCan I test for warn with mspec?
18:30:11brixenyes
18:30:19brixenlambda { }.should warn
18:30:29Malediktthanks :)
18:30:47brixenMaledikt: actually, should complain ;)
18:30:55brixenwarn can't be overridden like that
18:31:06brixenmspec/matchers/complain.rb
18:31:17MalediktI see
18:31:55brixenMaledikt: what are you testing about warnings? generally we don't spec them
18:32:06MalediktENV.fetch
18:32:37wycats enters the room.
18:33:19MalediktExpected warning: "aaa"
18:33:25Malediktbut got: "aaa"
18:33:34Maledikthmm, theres something wrong with complain
18:33:40Malediktit's not really aaa
18:35:50brixenthe io specs use it, you could look at the examples there
18:36:20joachimm leaves the room.
18:36:58Malediktah, needs to be a regexp
18:37:27brixenit doesn't have to be
18:37:40Malediktanyway, now it works :)
18:39:21vborja enters the room.
18:40:19mentz leaves the room.
18:43:42ciscbrain enters the room.
18:47:53ciscbrain leaves the room.
18:49:24qwert666_ enters the room.
18:53:30qwert666__ enters the room.
18:53:44dodecaphonic enters the room.
18:54:18benburkert enters the room.
18:57:00yaroslav enters the room.
18:59:11loincloth enters the room.
19:03:01sfaxon enters the room.
19:06:23qwert666 leaves the room.
19:09:43qwert666_ leaves the room.
19:30:07twbray leaves the room.
19:30:32therealadam leaves the room.
19:31:49twbray enters the room.
19:33:58qwert666__ leaves the room.
19:37:58LachiCan someone please give some advice, about how to push changes to the git repository, evan said, he added me, but git push doesn' work.
19:38:41djwhittyou have to switch to the committer url
19:39:15djwhittrake git:committer
19:39:17djwhittthat should do it
19:40:26LachiOkay, will try it thank you.
19:41:05boyscout1 commit by Thomas Lachmann
19:41:05boyscout * Bunch of specs for BigDecimal.; 09bc62e
19:41:38LachiOkay, worked thank you, hope I did not too much wrong.
19:41:55Malediktwoot Lachi :D
19:43:36DefilerLachi: Freaking awesome. Thank you for working on that
19:43:38brixenLachi: sweet!
19:43:51brixenLachi: those specs look great
19:44:12dbussinkLachi: can i be the first one to complain?
19:44:20dbussinkLachi: i have some specs that fail on mri for me
19:44:27dbussinkon 1.8.6p111
19:44:35LachiOf course or will do it wrong on the next ones too
19:44:52LachiWhich? I will try to fix it immediately
19:44:56dbussinkwell, it's very good work :)
19:45:08dbussinkLachi: what version of mri do you have to test with?
19:45:09ezmobius enters the room.
19:45:35Lachiruby 1.8.6 (2007-09-24 patchlevel 111) [x86_64-linux]
19:46:06dbussinkah, maybe it's because some things fit in a 64 bit fixnum and not in a 32 bit one
19:46:09LachiMight have done some things wrong with precisions, think these are architecture specific
19:46:23dbussinkyeah, you can spec those though
19:46:35dbussinkuse the platform word size to define different behavior
19:46:43dbussinkthere are more specs that have the same issue
19:47:19LachiOkay, will try them on 32bit and fix issues
19:47:47dysinger enters the room.
19:48:59maharg leaves the room.
19:49:47wycats leaves the room.
19:52:04rubuildius_ppcThomas Lachmann: 09bc62e39; 1882 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178054
19:52:45rubuildius_amd64 enters the room.
19:53:50halorgiumdbussink: i wonder if there should be a MRI build-bot
19:55:30MalediktYes please, and a x86?
19:56:51djwhitthttp://code.google.com/p/rubuildius/
19:57:02djwhittsubmit tickets, hack the code, setup bots
19:57:03djwhitt:)
19:57:30Maledikthehe
19:57:34djwhittjust please test in another channel before pointing them here
20:00:07djwhittI don't think there's anyway to give people direct access to the github repo, but I'll accept pull requests if you add features
20:00:15djwhittI also have invites if people want accounts
20:00:41halorgiumyou can
20:00:55djwhittgive direct access?
20:00:56halorgiumin the edit page
20:00:58halorgiumyes
20:01:13djwhittoh, sweet
20:01:23djwhitt(haven't used github much)
20:01:29EugZol enters the room.
20:01:30halorgiumi have to go into SF
20:02:12djwhittok, so I'll follow the same policy as evan
20:02:40djwhittsubmit a patch to rubuildius and I'll add you to the project member list
20:05:59guessmethod leaves the room.
20:06:22maharg enters the room.
20:08:37wycats enters the room.
20:09:43Lachidbussink: Can you test, if it doesn't fail with these changes, I will commit it if it passes.
20:09:44Lachihttp://pastie.caboo.se/178066
20:10:27dbussinkLachi: yeah, that fixes it for me
20:10:56LachiOkay, thanks.
20:11:31boyscout1 commit by Thomas Lachmann
20:11:32boyscout * Fixed failures for BigDecimal#specs.; 6a50f0d
20:12:07be9 leaves the room.
20:12:18__johan__ enters the room.
20:12:52twbray leaves the room.
20:13:12singleton leaves the room.
20:14:02__johan__ enters the room.
20:14:39singleton leaves the room.
20:14:44__johan__ enters the room.
20:21:43rubuildius_amd64Thomas Lachmann: 6a50f0d2f; 1882 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/tVze7h59.html
20:22:52rubuildius_ppcThomas Lachmann: 6a50f0d2f; 1882 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178074
20:26:26wmoxam leaves the room.
20:29:07ezmobius leaves the room.
20:30:31wmoxam enters the room.
20:37:22yaroslav leaves the room.
20:37:55dodecaphonic leaves the room.
20:46:54rby enters the room.
20:48:56rby leaves the room.
20:52:26rby enters the room.
20:52:27guessmethod enters the room.
20:52:47ezmobius enters the room.
20:57:27srbaker leaves the room.
20:59:56headius leaves the room.
21:03:23twbray enters the room.
21:20:34jlindley leaves the room.
21:27:25wycats leaves the room.
21:28:17wycats enters the room.
21:29:41wycats_ enters the room.
21:37:22yaroslav enters the room.
21:39:22obvio enters the room.
21:42:19ctennis enters the room.
21:42:37dgtizedthis is totally off topic but has anyone done any Rake hacking?
21:44:10DefilerYep
21:44:57dgtizedhave you ever played with Sun Gridengine?
21:45:11DefilerNope
21:45:38tarcieridgtized: ugh, I tried to set that up once and never got it working
21:45:40wycats leaves the room.
21:45:52dgtizedI guess the more general question is I see there is a Rake mode where it's possible to use ruby Threads for parellelism
21:45:54DefilerThough this appears to exit http://drmaa4ruby.sunsource.net/
21:46:01Defilerexit = exist
21:46:05headius enters the room.
21:46:28Defilerdgtized: That mode doesn't work the way most people expect it to, really
21:46:43Defilerdgtized: As I recall, it just uses multiple threads to satisfy pre-requisites
21:47:02DefilerWhen I have needed multi-threaded Rake tasks, I have done them by hand or made my own Task subclass, a la Vlad
21:47:23dgtizedDefiler: ah -- well I was curious how nicely it would play with using some other method other then threads for parellelism, like for instance SGE jobs
21:47:46DefilerShould work fine, assuming its definition of 'work' matches your needs
21:48:22dgtizedDefiler: SGE publishes this version of make called qmake that basically let's you use MPI with make and spawn out jobs to a cluster
21:48:26wycats_ leaves the room.
21:48:38DefilerCool
21:48:51dgtizedDefiler: but it's make, so it's obnoxious to use, but if I could do the same for rake...
21:48:52Defilerrake's threaded mode is quite different from make -j, though
21:49:00DefilerBut you could totally make it work
21:49:06DefilerIt's pretty trivial to subclass Task
21:49:14dgtizedexcept for a tricky part
21:49:25dgtizedwhen you submit grid jobs, you are no longer in process
21:49:31dgtizedso it means you have to do it with a callback
21:49:51dgtizedor something like that
21:49:55DefilerMaybe this wacky DRMAA library will help
21:50:34dgtizedyea I have played with that, not sure how happy it would be for concurrent compiling tasks, aka if an array of things in a depends on array of things in b
21:51:05dgtizedthen it would be more fun to have the jobs in a run once there matching job in b finished, and not wait until all of b finished
21:51:06DefilerOne issue here is that Rake doesn't provide a lot of metadata about dependencies
21:51:17Defilere.g. task :foo => [:prereq1, :prereq2]
21:51:19_mk_ leaves the room.
21:51:29DefilerDoesn't say whether those need to run in order
21:51:44dgtizedhmm, maybe I just need to roll my own that's more amenable
21:51:51DefilerThough, really, if you wanted that, you would be better served to make prereq2 depend on prereq1 and then list prereq2 as the only dependency for :foo
21:52:08DefilerSo, as long as you stuck to a 'style' of declaring tasks, you could make it work
21:52:26dgtizedI think I would have to make rule's be fancier
21:52:51dgtizedas in rules would need to be more akin to a generation of a list of jobs
21:53:04DefilerIsn't that what they already are?
21:53:28dgtizedexcept that I think it can re kick off if another dependency generates something new to generate
21:53:44DefilerAah, that is true, yeah. They are 'lazy'
21:54:49dgtizedor -- better yet, maybe the trick is it could just take an initial state, and just generate a huge job script, and then just go, somehow that might be safer -- anyway it sounds like Rake won't exactly match what I need
21:54:59NoKarma enters the room.
21:55:04NoKarmaheya all
21:55:21Defilerdgtized: subclassing Task is probably going to be the easiest way
21:55:40dgtizedDefiler: you said that Vlad did that?
21:55:44DefilerYeah
21:56:05DefilerWe also added 'remote_task' to the toplevel, so you didn't have to use the clunky class-method way of declaring tasks
21:56:14DefilerSo you could do that for 'grid_task'
21:56:50