Show enters and exits. Hide enters and exits.
| 00:01:38 | brixen | rosejn: yes, that's fine |
| 00:02:30 | rosejn | brixen: thanks. It's done. |
| 00:03:21 | webmat leaves the room. | |
| 00:04:29 | peeja enters the room. | |
| 00:07:33 | peeja leaves the room. | |
| 00:08:10 | hornbeck enters the room. | |
| 00:09:27 | srbaker leaves the room. | |
| 00:09:53 | foysavas leaves the room. | |
| 00:18:46 | cypher23 leaves the room. | |
| 00:18:58 | zimbatm leaves the room. | |
| 00:23:39 | fbuilesv leaves the room. | |
| 00:26:13 | crossblaim leaves the room. | |
| 00:28:09 | skaar leaves the room. | |
| 00:28:54 | tierack leaves the room. | |
| 00:30:21 | rue | Man, this little keyboard light LED is the best invention ever |
| 00:30:46 | agardiner | better than sliced bread? wow! |
| 00:32:21 | crossblaim enters the room. | |
| 00:32:29 | rue | Sliced bread is for pansies |
| 00:34:09 | agardiner | hah! 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:23 | agardiner | s/want/won't/ |
| 00:35:10 | rue | Hey, nice, over 22_500 specs now |
| 00:35:55 | boyscout | 2 commits by Jeff Rose |
| 00:35:56 | boyscout | * Actors get registered services, basic linking. Mailbox gets timeouts.; b23a85b |
| 00:35:57 | boyscout | * Specs for Actor linking and registration, and Mailbox timeouts.; 5b1f204 |
| 00:36:20 | binary42 | I'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:25 | tarcieri | sweet |
| 00:36:28 | tarcieri | @ actor tuff |
| 00:36:31 | tarcieri | stuff |
| 00:36:37 | tarcieri | I'll have to check that out |
| 00:36:54 | agardiner | binary42: definite intention |
| 00:36:59 | kw leaves the room. | |
| 00:37:25 | binary42 | agardiner: thanks. It's an interesting change from C. I'll have to look around for the reasons. |
| 00:37:43 | agardiner | cpp branch == shotgun++ or shotgun2 or whatever name it gets given |
| 00:37:50 | headius enters the room. | |
| 00:37:51 | binary42 | :-) |
| 00:38:07 | tarcieri | dblbrlshotgun |
| 00:38:12 | binary42 | Yeah... but why C++? (rhetorical) |
| 00:38:36 | tarcieri | binary42: better testing frameworks, strong typing, object orientation, and not that much of a departure from C? |
| 00:38:43 | wmoxam leaves the room. | |
| 00:38:44 | rue | 'Cause! (Rhetorical:) |
| 00:39:15 | srbaker enters the room. | |
| 00:39:26 | rudebwoy leaves the room. | |
| 00:39:44 | tarcieri | hmmm |
| 00:39:45 | binary42 | tarcieri: fair enough. I'm not saying don't do it. Just musing now. |
| 00:40:09 | srbaker leaves the room. | |
| 00:40:16 | tarcieri | notes the Actor linking implementation kind of ignores the main design considerations of linking |
| 00:41:25 | srbaker enters the room. | |
| 00:41:52 | tarcieri | namely: exit errors should cascade to linked actors, causing them to exit unless they're trapping exit messages |
| 00:42:09 | rue | Hrm, why is it trying to push cpp? |
| 00:42:19 | srbaker leaves the room. | |
| 00:42:29 | hornbeck leaves the room. | |
| 00:42:46 | rue | tarcieri: Cool! Fix it ;) |
| 00:42:57 | tarcieri | rue: I might |
| 00:43:04 | rue | Send patches! :D |
| 00:43:10 | tarcieri | has commit access now! |
| 00:43:11 | tarcieri | yay |
| 00:43:13 | rue | Hehe |
| 00:43:19 | tarcieri | wants to avoid code fisting though |
| 00:43:26 | tarcieri | I'll ping the guy on the mailing list first |
| 00:43:32 | lstoll enters the room. | |
| 00:43:34 | rue | tarcieri: rosejn |
| 00:44:06 | rue | MenTaL is due to come around in a couple too, probably, so you guys can figure it out |
| 00:44:38 | srbaker enters the room. | |
| 00:44:44 | tarcieri | yeah |
| 00:46:42 | rubuildius_amd64 | Jeff Rose: b23a85b24; 1857 files, 6420 examples, 22495 expectations, 0 failures, 0 errors; http://rafb.net/p/DtG6oc73.html |
| 00:46:58 | rubuildius_ppc | Jeff Rose: b23a85b24; 1857 files, 6423 examples, 22524 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177580 |
| 00:51:49 | rue | Hm, I am seeing the sporadic Process.kill failure again |
| 00:55:48 | imajes leaves the room. | |
| 00:57:24 | AndrewO enters the room. | |
| 00:57:43 | agardiner leaves the room. | |
| 00:58:09 | agardiner enters the room. | |
| 01:01:50 | boyscout | 1 commit by Evan Phoenix |
| 01:01:51 | boyscout | * Compiler is now autoloaded by the kernel, then masked.; 374e4c6 |
| 01:03:44 | binary42 leaves the room. | |
| 01:03:50 | peeja enters the room. | |
| 01:05:30 | peeja leaves the room. | |
| 01:05:38 | jtoy enters the room. | |
| 01:05:39 | radarek leaves the room. | |
| 01:05:45 | agardiner leaves the room. | |
| 01:06:27 | agardiner enters the room. | |
| 01:07:15 | jayWHY leaves the room. | |
| 01:07:37 | zenspider | my brain hurts |
| 01:07:47 | rue | You need a larger jar |
| 01:08:38 | jayWHY enters the room. | |
| 01:09:36 | dysinger leaves the room. | |
| 01:11:17 | stepheneb enters the room. | |
| 01:11:44 | rubuildius_amd64 | Evan Phoenix: 374e4c6f3; 1857 files, 6420 examples, 22495 expectations, 0 failures, 0 errors; http://rafb.net/p/a11x6x19.html |
| 01:12:24 | rubuildius_ppc | Evan Phoenix: 374e4c6f3; 1857 files, 6423 examples, 22524 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177594 |
| 01:13:56 | lopex leaves the room. | |
| 01:14:20 | rosejn leaves the room. | |
| 01:17:22 | jrun leaves the room. | |
| 01:21:10 | boyscout | 1 commit by Thomas Lachmann |
| 01:21:11 | boyscout | * specs for BigDecimal.new and BigDecimal#zero? (plus tag files).; f6f307e |
| 01:23:06 | srbaker leaves the room. | |
| 01:32:27 | rue | headius: What is your view on Marshal and the stdlib Singleton? |
| 01:32:32 | lstoll leaves the room. | |
| 01:32:41 | rubuildius_ppc | Thomas Lachmann: f6f307e75; 1859 files, 6423 examples, 22524 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177604 |
| 01:32:56 | headius | seems like a bug in MRI, but I didn't look into it deeply |
| 01:33:30 | dgtized | what that you can't marshal a singleton? |
| 01:34:25 | headius | relating to the singleton library, not singleton objects |
| 01:34:40 | dgtized | I know that |
| 01:35:19 | dgtized | So you can't marshal a Singleton because then you would have one in memory and one on disk |
| 01:35:24 | rue | headius: 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:41 | headius | do you have that test case handy? |
| 01:36:06 | cored enters the room. | |
| 01:37:14 | rubuildius_amd64 | Thomas Lachmann: f6f307e75; 1859 files, 6420 examples, 22495 expectations, 0 failures, 0 errors; http://rafb.net/p/YB4vAW63.html |
| 01:38:57 | lstoll enters the room. | |
| 01:39:22 | headius | I'm not clear what exactly is the problem |
| 01:39:39 | headius | Singleton defines _load to retrieve the existing instance or construct it |
| 01:42:43 | bitbang enters the room. | |
| 01:43:25 | jayWHY leaves the room. | |
| 01:44:48 | rue | headius: (Sorry, door.) That is correct, but what does ._dump do? |
| 01:45:27 | headius | empty string |
| 01:45:32 | rue | Why would one ever ._dump a Singleton if it does not actually do anything? |
| 01:46:13 | headius | it doesn't do nothing |
| 01:47:05 | headius | empty string is just a null body |
| 01:47:19 | headius | it still writes out the type information...it always does that |
| 01:47:22 | headius | ~/NetBeansProjects/jruby ➔ ruby -rsingleton -e "class Foo; include Singleton; end; p Marshal.dump(Foo.instance)" |
| 01:47:22 | headius | "\004\bo:\bFoo\000" |
| 01:47:35 | headius | so load then restores the existing instance |
| 01:48:47 | headius | so I would argue this behavior is wrong: |
| 01:48:47 | headius | ~/NetBeansProjects/jruby ➔ ruby -rsingleton -e "class Foo; include Singleton; end; foo = Foo.instance; p foo; p Marshal.load(Marshal.dump(foo))" |
| 01:48:47 | headius | #<Foo:0x220d8> |
| 01:48:47 | headius | #<Foo:0x21fd4> |
| 01:49:06 | headius | in JRuby, they're the same object |
| 01:49:07 | rue | What about one from a different process? |
| 01:49:19 | headius | what of it |
| 01:49:34 | headius | the unmarshalling calls _load which calls the singleton's 'instance' method |
| 01:49:51 | headius | from another process or not, it always should restore the one instance in a given process |
| 01:50:38 | rue | But there is no expectation that any of the data is restored? |
| 01:51:38 | headius | it doesn't marshal out any data |
| 01:51:54 | headius | so there's no data to restore |
| 01:53:28 | drbrain | rue: I prefer (2) by default |
| 01:53:41 | drbrain | rue: and leave it up to the user to define their own dump/load behavior when they need it |
| 01:53:56 | drbrain | there isn't a default way to make it Just Work |
| 01:54:11 | justinweiss_ enters the room. | |
| 01:54:16 | headius | what's (2) |
| 01:54:26 | dgtized | woo hoo! I found a bug in MRI's threading I think |
| 01:54:35 | dgtized | woo hoo! I found a bug in MRI's threading I think |
| 01:54:38 | dgtized | oops |
| 01:54:54 | zenspider | haha. race condition! |
| 01:55:30 | drbrain | (2) is what it does right now, pretend to Marshal stuff |
| 01:55:54 | stepheneb_ enters the room. | |
| 01:55:57 | drbrain | but, it seems that Ruby is broken |
| 01:56:12 | drbrain | according to the intention of the implementation |
| 01:57:02 | jtoy leaves the room. | |
| 01:57:02 | headius | yes |
| 01:57:03 | headius | it is |
| 01:58:00 | headius | 1.8, 1.9, and rubinius all construct a new instance |
| 01:58:02 | headius | JRuby restores the existing one |
| 01:58:06 | zenspider | why is this gathering so much attention today? |
| 01:58:16 | headius | because someone found it |
| 01:58:49 | dgtized | basically 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:19 | tarcieri | nice |
| 02:00:03 | headius | bleh |
| 02:00:22 | headius | got a test I could try? |
| 02:00:27 | zenspider | yeah, but what I'm asking is: so? |
| 02:00:56 | zenspider | this 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:03 | headius | it's a bug |
| 02:01:13 | headius | maybe not a big one in your opinion, but it's a bug |
| 02:01:37 | headius | I 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:56 | headius | so I guess i'm with you on that |
| 02:03:10 | boyscout | 2 commits by Charles Comstock |
| 02:03:11 | boyscout | * spec for wakeup which causes MRI to deadlock when it shouldn't; dbb744d |
| 02:03:12 | boyscout | * specs for Thread::list; 208a7df |
| 02:03:13 | zenspider | goes to dinner |
| 02:03:18 | zenspider | yay for nerd party |
| 02:04:20 | stepheneb__ enters the room. | |
| 02:05:19 | rue | headius: Right, it just seems pointless to allow storing something that does not actually store anything |
| 02:05:44 | evan | dgtized: eek. |
| 02:05:47 | headius | dgtized: I might have chosen a more descriptive spec for that |
| 02:05:55 | evan | dgtized: does the spec you committed just cause MRI to crash now? |
| 02:06:12 | dgtized | evan: yes |
| 02:06:15 | evan | remove it |
| 02:06:19 | evan | thats not useful |
| 02:06:24 | evan | or quarantine it. |
| 02:06:35 | headius | bug |
| 02:06:41 | tarcieri | vf_vo.c:(.text+0x524): undefined reference to ass_track' |
| 02:06:53 | tarcieri | d'oh |
| 02:07:02 | dgtized | I guess it should go in the rubinius specs and not in the MRI ones |
| 02:07:19 | evan | dgtized: we must not keep the specs from being run on MRI |
| 02:07:48 | rue | headius: Another approach: if it is possible to store the state of the Singleton, is there a reason to not do so? |
| 02:08:18 | dgtized | evan: isn't there a way to specify not run that spec on MRI but allow it on rubinius? |
| 02:08:26 | evan | with a guard |
| 02:08:29 | headius | rue: if the singleton was included as part of an object graph, marshaling the graph should not fail |
| 02:08:32 | rue | If it is a bug in MatzRuby, use #ruby_bug |
| 02:08:35 | headius | and that's certainly a case that could happen |
| 02:08:38 | jrun enters the room. | |
| 02:08:40 | stepheneb leaves the room. | |
| 02:09:08 | headius | every such entry in the unmarshaled graph should still be the same object |
| 02:09:09 | tarcieri | #ruby_bug eh? |
| 02:09:25 | rue | An actual, verifiable bug |
| 02:09:36 | dgtized | rue: so I think what it is is that the deadlock detection is overly greedy |
| 02:09:36 | tarcieri | found one! |
| 02:09:42 | rue | And I mean the method, not the IRC channel |
| 02:09:54 | nkpart leaves the room. | |
| 02:10:21 | tarcieri | o |
| 02:10:30 | headius | I'm not sure how this situation could ever be perceived as a deadlock |
| 02:10:49 | headius | there's nothing to deadlock |
| 02:10:59 | dgtized | headius: well it does on MRI |
| 02:11:14 | headius | yeah, I just don't know what their deadlock detection would be doing to cause this |
| 02:12:01 | dgtized | headius: what does it do on JRuby |
| 02:12:10 | headius | works fine |
| 02:12:17 | rue | headius: Well, yes, all instances should still continue to be the same instance |
| 02:12:27 | headius | wakeup and stop just use Java monitors, so there's nothing to really deadlock |
| 02:12:41 | headius | rue: and if you marshal a graph containing a singleton? |
| 02:12:50 | dgtized | headius: do you have any ideas how to spec the difference between wakeup and run? |
| 02:12:59 | headius | there's a difference? |
| 02:13:06 | stepheneb_ leaves the room. | |
| 02:13:22 | headius | oh right |
| 02:13:29 | nkpart enters the room. | |
| 02:13:37 | dgtized | headius: run invokes the scheduler, wakeup does not |
| 02:13:42 | headius | impl detail |
| 02:13:59 | headius | I wouldn't bother specing it |
| 02:14:08 | headius | it assumes you have control over thread scheduling |
| 02:14:13 | stepheneb__ leaves the room. | |
| 02:14:24 | twbray enters the room. | |
| 02:14:31 | headius | a relic nobody depends on I'd wager |
| 02:14:34 | dgtized | is MRI1.9 getting rid of all the exclusive and critical crap? |
| 02:14:43 | stepheneb enters the room. | |
| 02:14:50 | headius | 1.9 doesn't have critical |
| 02:14:59 | rubuildius_ppc | Charles Comstock: dbb744d96; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177617 |
| 02:15:18 | dgtized | awesome, that's wonderful |
| 02:15:23 | headius | yeah, critical is gross |
| 02:16:16 | evan | headius: what does jruby do for critical? |
| 02:16:22 | headius | checkpoint |
| 02:16:29 | mernen enters the room. | |
| 02:16:50 | headius | "has someone criticalized? yes = wait on critical lock, no = continue" |
| 02:16:56 | headius | it's gross too |
| 02:17:03 | headius | no other way though |
| 02:17:15 | headius | it's like shoehorning a GIL into Java |
| 02:17:23 | rue | headius: Those should still be the same instance, no? |
| 02:18:00 | headius | rue: 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:03 | headius | so the behavior as written seems correct to me |
| 02:18:19 | rubuildius_amd64 | Charles Comstock: dbb744d96; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/QchgSU12.html |
| 02:20:05 | rue | headius: 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:13 | boyscout | 1 commit by Charles Comstock |
| 02:20:14 | boyscout | * Thread#wakeup deadlock for MRI marked as ruby_bug; eec07ba |
| 02:22:01 | headius | I think the contract of singleton is that it can't have any non-ephemeral state |
| 02:22:16 | headius | or at least, that's what a null _dump implies to me |
| 02:22:37 | rue | Yes, but that is just because of the current implementatin |
| 02:22:45 | headius | but now we're into a guessing game...obviously someone implemented _dump that way for some reason |
| 02:23:10 | rue | The Singleton pattern specifies that there is only a single instance of the class at any given time |
| 02:23:11 | headius | I think there would be some serious problems allowing singletons to serialize state |
| 02:23:24 | headius | what if you serialize it out, make some changes to internal state, and then restore it? |
| 02:23:27 | headius | what should it do? |
| 02:23:42 | headius | you now have two representations of the same singleton |
| 02:24:04 | stepheneb_ enters the room. | |
| 02:24:05 | rue | It would need to replace the current instance |
| 02:24:13 | headius | by 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:41 | headius | I disagree...the existing instance may still be in use |
| 02:24:44 | headius | you can't arbitrarily overwrite it |
| 02:24:54 | twbray leaves the room. | |
| 02:24:56 | VVSiz_ enters the room. | |
| 02:26:05 | rue | It is the normal behaviour. If you load into a variable from marshal, it is overwritten |
| 02:26:28 | headius | a variable is on the stack |
| 02:26:49 | trythil leaves the room. | |
| 02:26:49 | headius | you can't unmarshal over an existing object on the heap |
| 02:27:00 | dgtized | what happens if you call a method on a singleton over DRb |
| 02:27:08 | crafterm enters the room. | |
| 02:27:09 | dgtized | I'm guessing that's what the dump/load symantics are for |
| 02:28:26 | headius | yeah, that's possible |
| 02:28:34 | headius | I don't really know the details of how DRb handles all that |
| 02:28:47 | dgtized | does DRb work on JRuby yet? |
| 02:29:09 | headius | everything works in JRuby! |
| 02:29:31 | headius | except what doesn't |
| 02:29:37 | dgtized | how did you deal with the retry outside of the block? |
| 02:29:39 | headius | I don't think DRb is in that category |
| 02:29:42 | rue | headius: Sorry, differentiate? One can surely overwrite instance variables, for example |
| 02:29:51 | headius | rue: not via marshalling |
| 02:30:17 | yipstar leaves the room. | |
| 02:31:43 | rubuildius_ppc | Charles Comstock: eec07baa0; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177626 |
| 02:31:43 | rue | Sure you can, or do I misunderstand? |
| 02:31:53 | headius | of course you can write custom marshalling logic to do anything, but that's far from typical |
| 02:32:05 | rue | 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:26 | headius | that's not via marshalling |
| 02:32:35 | headius | you're assigning the result of a marshal to something |
| 02:32:55 | headius | marshalling can't replace an existing object normally |
| 02:33:12 | rue | MatzRuby does not have #become |
| 02:34:40 | headius | become is not state, it's type |
| 02:35:35 | headius | look, unless you define accessors for a singleton's internal state, there's *no way* that marshalling can overwrite it |
| 02:35:45 | rue | OK, 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:59 | headius | so any singleton you create can't be restored from a stream, whether there's data there from the dump or not |
| 02:36:12 | headius | no, it would not |
| 02:36:20 | headius | because all references to the singleton must remain references to the same object |
| 02:36:29 | headius | and you can't replace an existing object's state in-place |
| 02:36:41 | headius | so you can't dump singleton state, and loading must just return the existing instance |
| 02:37:16 | ineffablygregory enters the room. | |
| 02:37:59 | rue | I think you will find that my statement agrees with that |
| 02:38:39 | rubuildius_amd64 | Charles Comstock: eec07baa0; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/lTlqZc99.html |
| 02:38:48 | headius | then I don't understand your statement |
| 02:39:31 | headius | the 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:36 | yipstar enters the room. | |
| 02:40:25 | rue | Yes.. I understand what the current behaviour is. |
| 02:41:09 | headius | and your proposal is what, exactly? |
| 02:42:27 | VVSiz leaves the room. | |
| 02:42:31 | trythil enters the room. | |
| 02:43:36 | rue | I am trying to /find out/ whether another model would be possible |
| 02:46:21 | rue | To 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:40 | headius | correctly is subjective |
| 02:48:53 | headius | there are lots of cases where the dump/load sequence does not return an identical copy |
| 02:49:01 | stepheneb leaves the room. | |
| 02:50:37 | rue | The Marshal rdoc is fairly clear in stating that "the original objects [are] reconstituted" |
| 02:51:05 | headius | hahah, rdoc being clear |
| 02:51:10 | headius | that's the best one I've heard all day |
| 02:51:24 | headius | :) |
| 02:51:49 | loincloth enters the room. | |
| 02:51:51 | rue | True as it may be, that is argumentum ad rdocinem ;) |
| 02:52:04 | headius | where are you seeing that anyway? |
| 02:52:09 | rue | ri Marshal |
| 02:52:17 | rue | Second sentence |
| 02:52:51 | rue | But that comes down to the same question: why would I want to store an object that cannot be reconstrued correctly? |
| 02:52:55 | kw enters the room. | |
| 02:52:56 | headius | "original object" could certainly mean the same object :) it doesn't exclude that case |
| 02:53:13 | rue | A corollary: say that you DO have an object graph with a Singleton in there |
| 02:53:29 | kw leaves the room. | |
| 02:53:50 | ineffablygregory leaves the room. | |
| 02:53:54 | rue | What if another part of the OG depends on the value of the Singleton when dumped and the value is different when loaded? |
| 02:54:16 | headius | why would it be different |
| 02:54:29 | rue | Singletons are not *immutable* |
| 02:54:33 | headius | you're saying it depends on the temporal state of the singleton |
| 02:54:36 | headius | which is broken encapsulation |
| 02:54:40 | headius | I brush it aside! |
| 02:55:01 | headius | the graph does not own the singleton |
| 02:55:23 | rue | A Singleton may have whatever state it pleases and objects may rely on it through the normal interface |
| 02:55:39 | headius | and its state may change without intervention from the objects of the graph |
| 02:55:51 | headius | but now we're well beyond singleton marshaling |
| 02:57:14 | rue | No, because the Singleton *can* have a state. More fundamentally, why would you marshal it if not to hold on to the state? |
| 02:57:34 | headius | why would you marshal a singleton, knowing you could not restore it into a new object? |
| 02:57:58 | headius | or rather, why would you marshal a singleton and expect its state to be preserved |
| 02:58:03 | headius | knowing full well that once a singleton exists, it cannot unexist and cannot be overwritten |
| 02:58:18 | rue | That is not necessarily correct |
| 02:59:23 | rue | But 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:46 | headius | if your entire goal is just to marshal singletons, I think you need a new hobby |
| 03:00:15 | headius | if, however, marshalling singletons just happens as part of them being in an object graph somewhere, they should continue to act as singletons |
| 03:00:46 | rue | Why do you put the singleton in the object graph? |
| 03:00:49 | dgtized | rue: are you working on code that could be used to make a vm image? |
| 03:00:54 | headius | and 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:28 | headius | perhaps you assign the singleton into an ivar |
| 03:01:30 | rue | dgtized: Nope, I think agardiner was talking about that earlier |
| 03:01:33 | headius | perhaps you don't even know you've got a singleton object |
| 03:02:29 | headius | class Foo; def initialize(some_service); @service = some_service; end; end ..... Foo.new(SomeSingletonService.instance) |
| 03:02:34 | nicksieger leaves the room. | |
| 03:02:41 | rue | In that case it would be likely that you would expect it to do what it did before you marshalled it, though, no? |
| 03:02:52 | headius | maybe? |
| 03:03:08 | headius | depends what contract you expect from some opaque object you're given |
| 03:03:15 | headius | can't you make that assumption? |
| 03:03:23 | smparkes enters the room. | |
| 03:03:40 | headius | if the left hand doesn't know what the right hand is doing, I think there's larger problems than marshalling singletons |
| 03:04:49 | rue | That is a bit of a strawman. There is no reason to store a singleton unless you expect it to provide expected services |
| 03:04:57 | rue | Whatever that may be |
| 03:07:58 | headius | well, whatever it is, I'm getting too tired for hypothetical discussions :) |
| 03:08:30 | headius | as I see it, there's no way to save and restore the state, so that's out |
| 03:08:56 | headius | and 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:13 | rue | Mm. 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:54 | justinweiss | I 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:17 | justinweiss | also, how should I go about writing a failing spec that works on 1.8 if the class names are different? |
| 03:14:43 | drbrain | justinweiss_: yes |
| 03:14:58 | drbrain | justinweiss_: write tests, not specs |
| 03:15:21 | drbrain | justinweiss_: http://rubyforge.org/scm/?group_id=627 |
| 03:15:22 | ezmobius leaves the room. | |
| 03:17:25 | justinweiss | ok, that makes more sense, thanks :-) |
| 03:20:35 | bitbang leaves the room. | |
| 03:28:22 | boyscout | 1 commit by Eero Saynatkari |
| 03:28:23 | boyscout | * Amended spec wording for Singleton._load slightly. Updated exclude.; e306408 |
| 03:30:00 | ineffablygregory enters the room. | |
| 03:30:12 | rue | Alright, that should be the last patch. |
| 03:35:51 | JimMc enters the room. | |
| 03:36:08 | JimMc | evening lads |
| 03:37:59 | JimMc | is having a compile issue, currently on a Linux box but was having the same trouble on OpenSolaris |
| 03:38:24 | JimMc | wondering if someone might have a workaround off the top of their head? |
| 03:39:18 | JimMc | libtool --mode=install install -c lib/librubinius-0.8.0.so /usr/local/lib |
| 03:39:18 | JimMc | make: libtool: Command not found |
| 03:39:18 | JimMc | make: *** [install] Error 127 |
| 03:39:18 | JimMc | rake aborted! |
| 03:39:18 | JimMc | Command failed with status (2): [cd shotgun; make install] |
| 03:39:20 | obvio leaves the room. | |
| 03:39:41 | JimMc | look familiar to anyone? |
| 03:40:04 | rubuildius_ppc | Eero Saynatkari: e3064084e; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177656 |
| 03:43:14 | rubuildius_amd64 | Eero Saynatkari: e3064084e; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/ijSuOa78.html |
| 03:43:50 | JimMc | woops, just going over the install notes there & whats required. |
| 03:44:19 | dysinger enters the room. | |
| 03:45:11 | wmoxam enters the room. | |
| 03:48:38 | tierack enters the room. | |
| 03:49:28 | cored leaves the room. | |
| 03:50:13 | ineffablygregory leaves the room. | |
| 03:50:27 | drbrain | ugh, libtool |
| 03:51:43 | drbrain | that's the only thing we use libtool for |
| 03:53:00 | JimMc | http://pastie.org/177659 here's my config.log |
| 03:53:25 | JimMc | installed all deps specified in install and no shimola |
| 03:55:48 | aotearoa leaves the room. | |
| 03:57:29 | JimMc | although... |
| 03:57:33 | JimMc | one sec |
| 03:59:44 | JimMc | need to specify g++ as a requirement for the install |
| 04:00:11 | JimMc | that was the issue, it wasn't installed with gcc packages by default-ubuntu |
| 04:00:54 | JimMc | how to update the getting started guide to include this? |
| 04:01:57 | drbrain | um, you shouldn't be re-running configure for libltdl |
| 04:02:02 | drbrain | or, no |
| 04:02:09 | drbrain | that's autoconf, sorry |
| 04:02:37 | drbrain | but, that's crazy that gcc doesn't include the C++ compiler |
| 04:03:29 | JimMc | yep |
| 04:03:36 | JimMc | hair pulling crazy |
| 04:04:06 | JimMc | and libreadline5-dev needs to be installed |
| 04:04:43 | JimMc | or libreadline-dev will just install the latest, which currently is 5 |
| 04:04:54 | jtoy enters the room. | |
| 04:05:25 | yipstar leaves the room. | |
| 04:05:34 | drbrain | go ahead and make a patch for INSTALL and so-forth |
| 04:05:48 | JimMc | ah |
| 04:05:50 | JimMc | sure |
| 04:05:53 | JimMc | tomorrow |
| 04:05:59 | JimMc | it's 4am here |
| 04:06:16 | JimMc | it's working which is good enough for me |
| 04:06:27 | JimMc | so will patch it tommorrow |
| 04:09:08 | JimMc | actually just running a performance script to test, whats the max number of (idle)threads shotgun can handle at once? |
| 04:16:04 | tierack leaves the room. | |
| 04:20:34 | JimMc | 1000 thread's in 2.5 seconds using 105,2760Kb RAM including the VM |
| 04:21:13 | guessmethod enters the room. | |
| 04:21:17 | drbrain | I don't know |
| 04:21:30 | JimMc | no not asking |
| 04:21:40 | JimMc | this is a test that I've just run |
| 04:22:11 | JimMc | creates thread's, stops them, then sticks them in an array |
| 04:22:35 | JimMc | prints out how long, how many threads & how much memory the whole VM is using at the time |
| 04:23:22 | jrun leaves the room. | |
| 04:24:03 | JimMc | 1500 thread's in 3.69 seconds using 1568156Kb RAM |
| 04:24:23 | JimMc | And craps out at much more threads than that. |
| 04:24:27 | JimMc | have a nice evening |
| 04:26:10 | nicksieger enters the room. | |
| 04:31:03 | peeja enters the room. | |
| 04:31:44 | MenTaLguY enters the room. | |
| 04:38:53 | scooner enters the room. | |
| 04:41:37 | tarcieri | sup MenTaLguY |
| 04:41:46 | MenTaLguY | hey |
| 04:41:49 | MenTaLguY | not a whole lot |
| 04:42:00 | tarcieri | you should really have a look at the Actor linking that got checked in today |
| 04:42:11 | tarcieri | it's uhh, not exactly implemented in an optimal manner |
| 04:42:33 | tarcieri | namely linked Actors just send exit messages... to the normal Mailbox |
| 04:43:09 | tarcieri | they don't cascade the error through the linked Actor grapgh by default or anything like that |
| 04:45:11 | AndrewO leaves the room. | |
| 04:48:21 | kw enters the room. | |
| 04:50:44 | guessmethod leaves the room. | |
| 05:03:29 | wycats_ enters the room. | |
| 05:07:38 | crafterm leaves the room. | |
| 05:07:52 | crafterm enters the room. | |
| 05:12:11 | rubby leaves the room. | |
| 05:20:54 | wycats__ leaves the room. | |
| 05:22:50 | MenTaLguY | bleah |
| 05:24:45 | MenTaLguY | spawn_link is also done wrong |
| 05:25:25 | MenTaLguY | at least they got Actor.link right |
| 05:25:29 | MenTaLguY | sort of |
| 05:27:56 | MenTaLguY | hm, cool |
| 05:28:00 | MenTaLguY | actually this isn't too bad for the most part |
| 05:28:48 | tarcieri | needs Actor#trap_exit... |
| 05:29:32 | MenTaLguY | yeah |
| 05:29:52 | tarcieri | did he do Actor.link and Actor.unlink too? |
| 05:29:54 | MenTaLguY | exit notifications and all need to go through the message queue as well |
| 05:29:55 | MenTaLguY | yes |
| 05:30:16 | tarcieri | i.e. shortcuts to Actor.current.link, Actor.current.unlink |
| 05:30:21 | MenTaLguY | yeah |
| 05:30:24 | tarcieri | cool |
| 05:30:36 | MenTaLguY | I was thinking about that today and I actually don't think we should have Actor#link and Actor#unlink |
| 05:30:49 | MenTaLguY | just have Actor.link and Actor.unlink make the calls to Actor#notify_link directly |
| 05:30:58 | tarcieri | yeah, I don't really care if they're there or not |
| 05:31:02 | MenTaLguY | otherwise things don't work if you mix actor implementations |
| 05:31:27 | tarcieri | having several duck types of Actor floating around will get interesting... |
| 05:31:57 | tarcieri | especially when you start message passing them around to different types of things |
| 05:32:00 | MenTaLguY | I'm a little more distressed that no synchronization at all is used on shared data structures |
| 05:32:12 | tarcieri | oh yeah? |
| 05:32:22 | MenTaLguY | @linked and @@registered for instance |
| 05:32:29 | MenTaLguY | the guy really deserves to be beaten for that |
| 05:32:33 | tarcieri | heh |
| 05:33:40 | MenTaLguY | spawn_link is also wrong |
| 05:33:47 | MenTaLguY | the link needs to happen before the user code in the block is called |
| 05:33:49 | MenTaLguY | not after |
| 05:34:03 | MenTaLguY | still, there's nothing disasterous in here |
| 05:34:06 | MenTaLguY | just things to fix |
| 05:34:51 | tarcieri | cool |
| 05:38:46 | boyscout | 1 commit by MenTaLguY |
| 05:38:47 | boyscout | * do not encourage cross-linking other actors; a3aa09c |
| 05:39:03 | MenTaLguY | lots of things to fix... :( |
| 05:39:09 | tarcieri | heh |
| 05:43:23 | agile leaves the room. | |
| 05:45:56 | boyscout | 1 commit by MenTaLguY |
| 05:45:57 | boyscout | * fix Actor.spawn_link to complete link before either running user code; 072243a |
| 05:47:24 | rubuildius_amd64 | MenTaLguY: a3aa09c53; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/gk1MHi23.html |
| 05:47:42 | ezmobius enters the room. | |
| 05:48:10 | ineffablygregory enters the room. | |
| 05:51:38 | wmoxam leaves the room. | |
| 05:51:49 | cyndis leaves the room. | |
| 05:53:26 | boyscout | 1 commit by MenTaLguY |
| 05:53:27 | boyscout | * add missing synchronization for @@registered; d00f008 |
| 05:53:29 | cyndis enters the room. | |
| 05:57:18 | ineffablygregory leaves the room. | |
| 05:57:39 | srbaker enters the room. | |
| 06:04:11 | boyscout | 1 commit by MenTaLguY |
| 06:04:12 | boyscout | * add missing synchronization for @links; e4bdf86 |
| 06:06:01 | boyscout | 1 commit by MenTaLguY |
| 06:06:02 | boyscout | * rely on normal Ruby boolean conventions; ee7b1ea |
| 06:09:31 | mernen leaves the room. | |
| 06:09:55 | RyanTM leaves the room. | |
| 06:12:28 | bitbang enters the room. | |
| 06:16:48 | rubuildius_ppc | MenTaLguY: ee7b1ea76; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177708 |
| 06:16:49 | rubuildius_ppc | MenTaLguY: e4bdf8674; build failed! http://pastie.caboo.se/paste/177706 |
| 06:16:50 | rubuildius_ppc | MenTaLguY: d00f00854; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177707 |
| 06:16:51 | rubuildius_ppc | MenTaLguY: 072243a54; 1859 files, 6424 examples, 22525 expectations, 1 failure, 0 errors; http://pastie.caboo.se/paste/177703 |
| 06:16:52 | rubuildius_ppc | MenTaLguY: a3aa09c53; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177700 |
| 06:25:06 | rubuildius_amd64 | MenTaLguY: ee7b1ea76; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/VwBicK38.html |
| 06:25:07 | rubuildius_amd64 | MenTaLguY: e4bdf8674; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/HVadmC58.html |
| 06:25:08 | rubuildius_amd64 | MenTaLguY: d00f00854; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/Mj5MUl50.html |
| 06:25:09 | rubuildius_amd64 | MenTaLguY: 072243a54; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/YofYRw34.html |
| 06:25:17 | benburkert leaves the room. | |
| 06:28:29 | yaroslav enters the room. | |
| 06:33:11 | rue | Hurray, fixeroo |
| 06:41:44 | wycats__ enters the room. | |
| 06:42:37 | nicksieger leaves the room. | |
| 06:47:44 | agile enters the room. | |
| 06:48:41 | nicksieger enters the room. | |
| 06:52:49 | MenTaLguY | still lots to fix |
| 06:54:28 | drbrain | buildorhea |
| 06:58:28 | stepheneb_ leaves the room. | |
| 06:58:44 | wycats_ leaves the room. | |
| 07:01:48 | yaroslav leaves the room. | |
| 07:02:20 | yaroslav enters the room. | |
| 07:19:49 | dysinger leaves the room. | |
| 07:21:30 | lstoll_ enters the room. | |
| 07:29:07 | mib_h67dsj enters the room. | |
| 07:29:57 | lstoll leaves the room. | |
| 07:39:51 | rue | evan: Are you holding #336 for any reason? I will push or close it unless there was something to review |
| 07:49:00 | qwert666 enters the room. | |
| 07:51:02 | dysinger enters the room. | |
| 07:54:46 | MenTaLguY leaves the room. | |
| 07:55:13 | nkpart leaves the room. | |
| 08:02:10 | VVSiz enters the room. | |
| 08:02:27 | VVSiz_ leaves the room. | |
| 08:02:33 | lstoll enters the room. | |
| 08:04:08 | d2dchat leaves the room. | |
| 08:05:05 | wycats__ leaves the room. | |
| 08:05:24 | anonuser leaves the room. | |
| 08:11:04 | Maledictus enters the room. | |
| 08:11:14 | lstoll_ leaves the room. | |
| 08:17:01 | thehcdreamer enters the room. | |
| 08:21:54 | Skip enters the room. | |
| 08:22:46 | be9 enters the room. | |
| 08:35:01 | agardiner leaves the room. | |
| 08:37:48 | trythil leaves the room. | |
| 08:39:33 | Fullmoon leaves the room. | |
| 08:44:27 | bitbang leaves the room. | |
| 08:49:17 | cypher23 enters the room. | |
| 08:49:37 | mib_h67dsj leaves the room. | |
| 08:53:07 | wycats_ enters the room. | |
| 08:53:34 | octopod enters the room. | |
| 08:55:35 | kw leaves the room. | |
| 08:55:47 | wycats__ enters the room. | |
| 08:56:36 | crafterm leaves the room. | |
| 08:56:46 | ezmobius leaves the room. | |
| 09:01:28 | lstoll leaves the room. | |
| 09:03:30 | jartz enters the room. | |
| 09:03:44 | mutle enters the room. | |
| 09:08:05 | Arjen_ enters the room. | |
| 09:09:24 | dysinger leaves the room. | |
| 09:11:48 | wycats_ leaves the room. | |
| 09:18:30 | _mk_ enters the room. | |
| 09:26:44 | antares enters the room. | |
| 09:58:41 | wycats leaves the room. | |
| 10:06:54 | zenspider leaves the room. | |
| 10:11:46 | wyhaines leaves the room. | |
| 10:15:12 | wycats enters the room. | |
| 10:28:16 | gnufied leaves the room. | |
| 10:39:33 | rue | Have I mentioned that Apache sucks before? |
| 10:41:18 | naeu enters the room. | |
| 10:45:50 | scoopr | :) |
| 10:49:57 | cypher23 leaves the room. | |
| 10:55:23 | wycats leaves the room. | |
| 10:57:09 | rue | Bedtime, be back at a later occurrence |
| 10:59:42 | cypher23 enters the room. | |
| 11:02:01 | riffraff enters the room. | |
| 11:13:36 | antares leaves the room. | |
| 11:19:45 | Maledictus | Is there a script the can show differences between mri and rubinius Objects? like methods available. |
| 11:20:32 | Lachi enters the room. | |
| 11:24:14 | tim_w enters the room. | |
| 11:28:02 | rubuildius_ppc leaves the room. | |
| 11:32:03 | perdix enters the room. | |
| 11:32:03 | jtoy leaves the room. | |
| 11:39:21 | sfaxon enters the room. | |
| 11:42:42 | yaroslav leaves the room. | |
| 11:43:24 | tim_w leaves the room. | |
| 12:02:55 | jero5 enters the room. | |
| 12:04:01 | jartz leaves the room. | |
| 12:07:05 | justinweiss_ leaves the room. | |
| 12:07:22 | justinweiss_ enters the room. | |
| 12:12:10 | riffraff leaves the room. | |
| 12:13:02 | jartz enters the room. | |
| 12:15:14 | NoKarma enters the room. | |
| 12:23:49 | NoKarma | heya |
| 12:25:20 | sfaxon leaves the room. | |
| 12:28:46 | w1rele55 leaves the room. | |
| 12:31:10 | w1rele55 enters the room. | |
| 12:34:15 | ctennis leaves the room. | |
| 12:50:49 | webmat enters the room. | |
| 12:53:16 | wdperson enters the room. | |
| 12:54:21 | rubuildius_ppc enters the room. | |
| 12:56:52 | stepheneb enters the room. | |
| 12:59:04 | zimbatm enters the room. | |
| 13:04:44 | reima enters the room. | |
| 13:06:07 | reima | Is this intended behaviour? http://pastie.caboo.se/177849 |
| 13:09:50 | rubuildius_ppc | MenTaLguY: ee7b1ea76; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177854 |
| 13:10:13 | reima | I know why it breaks (see Numeric#==), but I'm not quite sure if it should |
| 13:21:28 | stepheneb_ enters the room. | |
| 13:22:50 | qwert666 leaves the room. | |
| 13:26:54 | reima | I've got to go, but I'll check back later. Cya! |
| 13:27:02 | reima leaves the room. | |
| 13:33:27 | stepheneb leaves the room. | |
| 13:54:30 | naeu leaves the room. | |
| 13:55:56 | cremes enters the room. | |
| 14:16:34 | NoKarma leaves the room. | |
| 14:17:23 | headius leaves the room. | |
| 14:20:52 | yaroslav enters the room. | |
| 14:25:57 | RyanTM enters the room. | |
| 14:27:47 | fbuilesv enters the room. | |
| 14:29:14 | stepheneb_ leaves the room. | |
| 14:42:17 | AndrewO enters the room. | |
| 14:43:06 | yugui enters the room. | |
| 14:45:59 | twbray enters the room. | |
| 14:47:37 | brainopia enters the room. | |
| 14:52:31 | wmoxam enters the room. | |
| 14:54:08 | macournoyer enters the room. | |
| 15:05:09 | chris2 enters the room. | |
| 15:05:19 | jlindley enters the room. | |
| 15:11:57 | boyscout | 1 commit by Federico Builes |
| 15:11:58 | boyscout | * Adding spec helpers to REXML specs; 8ebefe3 |
| 15:12:29 | d2dchat enters the room. | |
| 15:13:47 | boyscout | 1 commit by Federico Builes |
| 15:13:48 | boyscout | * Cleaning up UPSocket#send specs; c281add |
| 15:17:22 | stepheneb enters the room. | |
| 15:19:24 | yaroslav leaves the room. | |
| 15:20:04 | yaroslav enters the room. | |
| 15:25:28 | moofbong enters the room. | |
| 15:26:53 | rubuildius_ppc | Federico Builes: c281add79; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177902 |
| 15:26:54 | rubuildius_ppc | Federico Builes: 8ebefe3c0; 1859 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/177901 |
| 15:28:23 | rubuildius_amd64 | Federico Builes: c281add79; 1859 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/njEwX953.html |
| 15:33:45 | pauldix enters the room. | |
| 15:36:06 | ctennis_ enters the room. | |
| 15:37:58 | pauldix leaves the room. | |
| 15:38:57 | djwhitt | ci time is creaping up again on rubuildius_amd64 |
| 15:39:05 | guessmethod enters the room. | |
| 15:41:04 | jeremydurham enters the room. | |
| 15:42:22 | fbuilesv | djwhitt: curiously enough, it's after one of my commits again |
| 15:42:57 | djwhitt | fbuilesv: nah, not really. it was happening earlier too |
| 15:43:05 | djwhitt | this is just the first I mentioned it |
| 15:43:07 | fbuilesv | djwhitt: :) |
| 15:43:33 | djwhitt | fbuilesv: I think I'll still blame you though ;) |
| 15:43:40 | fbuilesv | djwhitt: hah |
| 15:48:44 | ineffablygregory enters the room. | |
| 15:49:16 | ineffablygregory leaves the room. | |
| 15:50:58 | d2dchat leaves the room. | |
| 15:51:23 | d2dchat enters the room. | |
| 16:01:13 | therealadam enters the room. | |
| 16:02:48 | rby_ enters the room. | |
| 16:03:04 | fbuilesv leaves the room. | |
| 16:03:34 | justinweiss_ leaves the room. | |
| 16:04:06 | fbuilesv enters the room. | |
| 16:06:59 | scoopr leaves the room. | |
| 16:07:58 | srbaker leaves the room. | |
| 16:08:22 | qwert666 enters the room. | |
| 16:08:39 | srbaker enters the room. | |
| 16:20:14 | headius enters the room. | |
| 16:20:28 | guessmethod leaves the room. | |
| 16:20:36 | guessmethod enters the room. | |
| 16:21:38 | scoopr enters the room. | |
| 16:22:00 | cremes | djwhitt: 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:39 | djwhitt | hehe |
| 16:28:43 | rubuildius_amd64 leaves the room. | |
| 16:31:21 | headius_ enters the room. | |
| 16:33:27 | jartz leaves the room. | |
| 16:38:29 | headius leaves the room. | |
| 16:38:47 | enebo enters the room. | |
| 16:42:09 | rue | Morning |
| 16:42:53 | ineffablygregory enters the room. | |
| 16:45:11 | mentz enters the room. | |
| 16:49:45 | trythil enters the room. | |
| 16:49:51 | headius leaves the room. | |
| 16:50:58 | headius enters the room. | |
| 16:53:56 | Maledictus | I 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:37 | justinweiss enters the room. | |
| 16:56:41 | brixen | Maledictus: what does ENV.methods(false) look like? |
| 16:56:56 | brixen | i.e. are your methods listed? |
| 17:00:39 | jeremydurham_ enters the room. | |
| 17:02:49 | dodecaphonic_ leaves the room. | |
| 17:03:45 | jeremydurham_ leaves the room. | |
| 17:03:48 | evan | Maledictus: did you run 'rake' after adding the methods? |
| 17:04:19 | rby_ leaves the room. | |
| 17:12:10 | benburkert enters the room. | |
| 17:12:53 | nicksieger leaves the room. | |
| 17:14:12 | mitsuhiko leaves the room. | |
| 17:16:44 | jeremydurham leaves the room. | |
| 17:18:15 | trythil leaves the room. | |
| 17:18:23 | Arjen_ leaves the room. | |
| 17:18:31 | Skip leaves the room. | |
| 17:19:20 | mitsuhiko enters the room. | |
| 17:19:44 | mentz leaves the room. | |
| 17:24:13 | mentz enters the room. | |
| 17:25:38 | nicksieger enters the room. | |
| 17:26:19 | trythil enters the room. | |
| 17:29:36 | mutle leaves the room. | |
| 17:31:54 | jlindley leaves the room. | |
| 17:34:17 | codebrulee enters the room. | |
| 17:35:18 | thehcdreamer leaves the room. | |
| 17:39:07 | yaroslav_ enters the room. | |
| 17:39:33 | Maledictus | evan: yep, did rake. |
| 17:39:49 | Maledictus | problem was I had a method called class which returned Object |
| 17:39:53 | Skip enters the room. | |
| 17:39:56 | evan | where did you add the methods? |
| 17:40:00 | yaroslav | Is there any place I can read about actors (except source)? |
| 17:40:08 | evan | Maledictus: eek, what did you do that? |
| 17:40:14 | Maledictus | kernel/core/env.rb |
| 17:40:18 | Maledictus | to match mri |
| 17:40:25 | Maledictus | it's disabled now |
| 17:40:26 | evan | don't. |
| 17:40:37 | evan | never redefine #class |
| 17:40:37 | Maledictus | no need to be that accurate? |
| 17:40:41 | evan | not for that. |
| 17:40:52 | evan | we model ENV differently that MRI |
| 17:41:05 | Maledictus | currently thinking about doing it like mri. like ENV = Object. |
| 17:41:05 | evan | in MRI, it's a generic Object, with a ton of methods added |
| 17:41:06 | Maledictus | new |
| 17:41:14 | evan | in Rubinius, it's an instance of EnvironmentVariables |
| 17:41:18 | Maledictus | and then class <<ENV and defining the methods there |
| 17:41:20 | evan | Maledictus: DO NOT. |
| 17:41:42 | evan | no, leave it modeled as is. |
| 17:41:45 | Maledictus | ok |
| 17:41:51 | Maledictus | it is currently here. |
| 17:42:20 | Maledictus | Only difference in behaviour I currently know of if #class then |
| 17:42:27 | evan | thats fine. |
| 17:42:34 | Maledictus | but haven't finished the specs. Doing that now |
| 17:43:14 | tarcieri | wow, nice @ Actor linking after MenTaLguY's changes |
| 17:43:24 | rue | yaroslav_: There is some concurrency literature out there. If you search on the web, Erlang blogs etc. are probably the best bet |
| 17:43:30 | rue | yaroslav_: Or you could ask tarcieri :D |
| 17:43:44 | yaroslav | rue: thats what antares told me :) |
| 17:44:04 | tarcieri | had a nice intro to Actors up, but the server it was on crashed :/ |
| 17:44:11 | tarcieri | should be back up today |
| 17:44:38 | yaroslav | kay :) |
| 17:47:45 | yaroslav leaves the room. | |
| 17:48:30 | fbuilesv leaves the room. | |
| 17:49:44 | ctennis_ leaves the room. | |
| 17:52:08 | jlindley enters the room. | |
| 17:55:44 | yaroslav_ leaves the room. | |
| 18:00:09 | Maledikt enters the room. | |
| 18:01:32 | rue | Be back in a while, store |
| 18:04:22 | codebrulee leaves the room. | |
| 18:05:18 | agile leaves the room. | |
| 18:05:23 | Maledictus leaves the room. | |
| 18:08:40 | wyhaines enters the room. | |
| 18:08:54 | agile enters the room. | |
| 18:14:13 | Arjen_ enters the room. | |
| 18:15:14 | benburkert leaves the room. | |
| 18:16:17 | benburkert enters the room. | |
| 18:22:26 | TheVoice enters the room. | |
| 18:22:49 | mentz_ enters the room. | |
| 18:22:59 | joachimm_ enters the room. | |
| 18:23:42 | yipstar enters the room. | |
| 18:27:19 | benburkert leaves the room. | |
| 18:28:40 | Maledikt | Can I test for warn with mspec? |
| 18:30:11 | brixen | yes |
| 18:30:19 | brixen | lambda { }.should warn |
| 18:30:29 | Maledikt | thanks :) |
| 18:30:47 | brixen | Maledikt: actually, should complain ;) |
| 18:30:55 | brixen | warn can't be overridden like that |
| 18:31:06 | brixen | mspec/matchers/complain.rb |
| 18:31:17 | Maledikt | I see |
| 18:31:55 | brixen | Maledikt: what are you testing about warnings? generally we don't spec them |
| 18:32:06 | Maledikt | ENV.fetch |
| 18:32:37 | wycats enters the room. | |
| 18:33:19 | Maledikt | Expected warning: "aaa" |
| 18:33:25 | Maledikt | but got: "aaa" |
| 18:33:34 | Maledikt | hmm, theres something wrong with complain |
| 18:33:40 | Maledikt | it's not really aaa |
| 18:35:50 | brixen | the io specs use it, you could look at the examples there |
| 18:36:20 | joachimm leaves the room. | |
| 18:36:58 | Maledikt | ah, needs to be a regexp |
| 18:37:27 | brixen | it doesn't have to be |
| 18:37:40 | Maledikt | anyway, now it works :) |
| 18:39:21 | vborja enters the room. | |
| 18:40:19 | mentz leaves the room. | |
| 18:43:42 | ciscbrain enters the room. | |
| 18:47:53 | ciscbrain leaves the room. | |
| 18:49:24 | qwert666_ enters the room. | |
| 18:53:30 | qwert666__ enters the room. | |
| 18:53:44 | dodecaphonic enters the room. | |
| 18:54:18 | benburkert enters the room. | |
| 18:57:00 | yaroslav enters the room. | |
| 18:59:11 | loincloth enters the room. | |
| 19:03:01 | sfaxon enters the room. | |
| 19:06:23 | qwert666 leaves the room. | |
| 19:09:43 | qwert666_ leaves the room. | |
| 19:30:07 | twbray leaves the room. | |
| 19:30:32 | therealadam leaves the room. | |
| 19:31:49 | twbray enters the room. | |
| 19:33:58 | qwert666__ leaves the room. | |
| 19:37:58 | Lachi | Can 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:41 | djwhitt | you have to switch to the committer url |
| 19:39:15 | djwhitt | rake git:committer |
| 19:39:17 | djwhitt | that should do it |
| 19:40:26 | Lachi | Okay, will try it thank you. |
| 19:41:05 | boyscout | 1 commit by Thomas Lachmann |
| 19:41:05 | boyscout | * Bunch of specs for BigDecimal.; 09bc62e |
| 19:41:38 | Lachi | Okay, worked thank you, hope I did not too much wrong. |
| 19:41:55 | Maledikt | woot Lachi :D |
| 19:43:36 | Defiler | Lachi: Freaking awesome. Thank you for working on that |
| 19:43:38 | brixen | Lachi: sweet! |
| 19:43:51 | brixen | Lachi: those specs look great |
| 19:44:12 | dbussink | Lachi: can i be the first one to complain? |
| 19:44:20 | dbussink | Lachi: i have some specs that fail on mri for me |
| 19:44:27 | dbussink | on 1.8.6p111 |
| 19:44:35 | Lachi | Of course or will do it wrong on the next ones too |
| 19:44:52 | Lachi | Which? I will try to fix it immediately |
| 19:44:56 | dbussink | well, it's very good work :) |
| 19:45:08 | dbussink | Lachi: what version of mri do you have to test with? |
| 19:45:09 | ezmobius enters the room. | |
| 19:45:35 | Lachi | ruby 1.8.6 (2007-09-24 patchlevel 111) [x86_64-linux] |
| 19:46:06 | dbussink | ah, maybe it's because some things fit in a 64 bit fixnum and not in a 32 bit one |
| 19:46:09 | Lachi | Might have done some things wrong with precisions, think these are architecture specific |
| 19:46:23 | dbussink | yeah, you can spec those though |
| 19:46:35 | dbussink | use the platform word size to define different behavior |
| 19:46:43 | dbussink | there are more specs that have the same issue |
| 19:47:19 | Lachi | Okay, will try them on 32bit and fix issues |
| 19:47:47 | dysinger enters the room. | |
| 19:48:59 | maharg leaves the room. | |
| 19:49:47 | wycats leaves the room. | |
| 19:52:04 | rubuildius_ppc | Thomas Lachmann: 09bc62e39; 1882 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178054 |
| 19:52:45 | rubuildius_amd64 enters the room. | |
| 19:53:50 | halorgium | dbussink: i wonder if there should be a MRI build-bot |
| 19:55:30 | Maledikt | Yes please, and a x86? |
| 19:56:51 | djwhitt | http://code.google.com/p/rubuildius/ |
| 19:57:02 | djwhitt | submit tickets, hack the code, setup bots |
| 19:57:03 | djwhitt | :) |
| 19:57:30 | Maledikt | hehe |
| 19:57:34 | djwhitt | just please test in another channel before pointing them here |
| 20:00:07 | djwhitt | I 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:15 | djwhitt | I also have invites if people want accounts |
| 20:00:41 | halorgium | you can |
| 20:00:55 | djwhitt | give direct access? |
| 20:00:56 | halorgium | in the edit page |
| 20:00:58 | halorgium | yes |
| 20:01:13 | djwhitt | oh, sweet |
| 20:01:23 | djwhitt | (haven't used github much) |
| 20:01:29 | EugZol enters the room. | |
| 20:01:30 | halorgium | i have to go into SF |
| 20:02:12 | djwhitt | ok, so I'll follow the same policy as evan |
| 20:02:40 | djwhitt | submit a patch to rubuildius and I'll add you to the project member list |
| 20:05:59 | guessmethod leaves the room. | |
| 20:06:22 | maharg enters the room. | |
| 20:08:37 | wycats enters the room. | |
| 20:09:43 | Lachi | dbussink: Can you test, if it doesn't fail with these changes, I will commit it if it passes. |
| 20:09:44 | Lachi | http://pastie.caboo.se/178066 |
| 20:10:27 | dbussink | Lachi: yeah, that fixes it for me |
| 20:10:56 | Lachi | Okay, thanks. |
| 20:11:31 | boyscout | 1 commit by Thomas Lachmann |
| 20:11:32 | boyscout | * Fixed failures for BigDecimal#specs.; 6a50f0d |
| 20:12:07 | be9 leaves the room. | |
| 20:12:18 | __johan__ enters the room. | |
| 20:12:52 | twbray leaves the room. | |
| 20:13:12 | singleton leaves the room. | |
| 20:14:02 | __johan__ enters the room. | |
| 20:14:39 | singleton leaves the room. | |
| 20:14:44 | __johan__ enters the room. | |
| 20:21:43 | rubuildius_amd64 | Thomas Lachmann: 6a50f0d2f; 1882 files, 6421 examples, 22496 expectations, 0 failures, 0 errors; http://rafb.net/p/tVze7h59.html |
| 20:22:52 | rubuildius_ppc | Thomas Lachmann: 6a50f0d2f; 1882 files, 6424 examples, 22525 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178074 |
| 20:26:26 | wmoxam leaves the room. | |
| 20:29:07 | ezmobius leaves the room. | |
| 20:30:31 | wmoxam enters the room. | |
| 20:37:22 | yaroslav leaves the room. | |
| 20:37:55 | dodecaphonic leaves the room. | |
| 20:46:54 | rby enters the room. | |
| 20:48:56 | rby leaves the room. | |
| 20:52:26 | rby enters the room. | |
| 20:52:27 | guessmethod enters the room. | |
| 20:52:47 | ezmobius enters the room. | |
| 20:57:27 | srbaker leaves the room. | |
| 20:59:56 | headius leaves the room. | |
| 21:03:23 | twbray enters the room. | |
| 21:20:34 | jlindley leaves the room. | |
| 21:27:25 | wycats leaves the room. | |
| 21:28:17 | wycats enters the room. | |
| 21:29:41 | wycats_ enters the room. | |
| 21:37:22 | yaroslav enters the room. | |
| 21:39:22 | obvio enters the room. | |
| 21:42:19 | ctennis enters the room. | |
| 21:42:37 | dgtized | this is totally off topic but has anyone done any Rake hacking? |
| 21:44:10 | Defiler | Yep |
| 21:44:57 | dgtized | have you ever played with Sun Gridengine? |
| 21:45:11 | Defiler | Nope |
| 21:45:38 | tarcieri | dgtized: ugh, I tried to set that up once and never got it working |
| 21:45:40 | wycats leaves the room. | |
| 21:45:52 | dgtized | I 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:54 | Defiler | Though this appears to exit http://drmaa4ruby.sunsource.net/ |
| 21:46:01 | Defiler | exit = exist |
| 21:46:05 | headius enters the room. | |
| 21:46:28 | Defiler | dgtized: That mode doesn't work the way most people expect it to, really |
| 21:46:43 | Defiler | dgtized: As I recall, it just uses multiple threads to satisfy pre-requisites |
| 21:47:02 | Defiler | When I have needed multi-threaded Rake tasks, I have done them by hand or made my own Task subclass, a la Vlad |
| 21:47:23 | dgtized | Defiler: 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:46 | Defiler | Should work fine, assuming its definition of 'work' matches your needs |
| 21:48:22 | dgtized | Defiler: 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:26 | wycats_ leaves the room. | |
| 21:48:38 | Defiler | Cool |
| 21:48:51 | dgtized | Defiler: but it's make, so it's obnoxious to use, but if I could do the same for rake... |
| 21:48:52 | Defiler | rake's threaded mode is quite different from make -j, though |
| 21:49:00 | Defiler | But you could totally make it work |
| 21:49:06 | Defiler | It's pretty trivial to subclass Task |
| 21:49:14 | dgtized | except for a tricky part |
| 21:49:25 | dgtized | when you submit grid jobs, you are no longer in process |
| 21:49:31 | dgtized | so it means you have to do it with a callback |
| 21:49:51 | dgtized | or something like that |
| 21:49:55 | Defiler | Maybe this wacky DRMAA library will help |
| 21:50:34 | dgtized | yea 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:05 | dgtized | then 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:06 | Defiler | One issue here is that Rake doesn't provide a lot of metadata about dependencies |
| 21:51:17 | Defiler | e.g. task :foo => [:prereq1, :prereq2] |
| 21:51:19 | _mk_ leaves the room. | |
| 21:51:29 | Defiler | Doesn't say whether those need to run in order |
| 21:51:44 | dgtized | hmm, maybe I just need to roll my own that's more amenable |
| 21:51:51 | Defiler | Though, 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:08 | Defiler | So, as long as you stuck to a 'style' of declaring tasks, you could make it work |
| 21:52:26 | dgtized | I think I would have to make rule's be fancier |
| 21:52:51 | dgtized | as in rules would need to be more akin to a generation of a list of jobs |
| 21:53:04 | Defiler | Isn't that what they already are? |
| 21:53:28 | dgtized | except that I think it can re kick off if another dependency generates something new to generate |
| 21:53:44 | Defiler | Aah, that is true, yeah. They are 'lazy' |
| 21:54:49 | dgtized | or -- 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:59 | NoKarma enters the room. | |
| 21:55:04 | NoKarma | heya all |
| 21:55:21 | Defiler | dgtized: subclassing Task is probably going to be the easiest way |
| 21:55:40 | dgtized | Defiler: you said that Vlad did that? |
| 21:55:44 | Defiler | Yeah |
| 21:56:05 | Defiler | We also added 'remote_task' to the toplevel, so you didn't have to use the clunky class-method way of declaring tasks |
| 21:56:14 | Defiler | So you could do that for 'grid_task' |
| 21:56:50 |