Show enters and exits. Hide enters and exits.
| 00:48:40 | boyscout | Fix Thread.critical= allows all non-bool arguments - 4cc7cf9 - Jose Narvaez |
| 00:48:40 | boyscout | Remove tags for passing Thread.critical= specs, also removed duplicated Thread.critical= tags - 8cd6c66 - Jose Narvaez |
| 01:16:38 | boyscout | CI: rubinius: 8cd6c66 successful: 3502 files, 14747 examples, 42555 expectations, 0 failures, 0 errors |
| 01:42:46 | brixen | goyox86: I think that's a case where !!value makes sense |
| 01:43:26 | brixen | goyox86: also, we have a to_bool method |
| 01:44:20 | goyox86 | brixen: mmm, just let me know which one and i'll be fixin it :) |
| 01:44:31 | brixen | well, to_bool was created for these cases |
| 01:44:43 | brixen | see the comment in kernel/bootstrap/kernel.rb |
| 01:45:06 | goyox86 | brixen: 10-04 |
| 01:45:58 | brixen | honestly, I'm on the fence whether !!value or to_bool is better, but consistency is good |
| 01:47:06 | goyox86 | brixen: when you have decided just let me know :), anyway i'll do my own research :) |
| 01:47:36 | brixen | heh, I think the to_bool is appropriate |
| 01:55:09 | goyox86 | brixen: better? https://gist.github.com/d1fd80fb46f27576dace |
| 01:57:02 | brixen | looks good |
| 01:57:50 | goyox86 | brixen: k, CI-ing now |
| 02:02:55 | boyscout | Better fix for Thread.critical= allows all non-bool arguments, using to_bool, as brixen suggested - c2a6165 - Jose Narvaez |
| 02:03:33 | goyox86 | brixen: sorry by that bro :] |
| 02:15:13 | brixen | goyox86: no worries :) |
| 02:30:37 | boyscout | CI: rubinius: c2a6165 successful: 3502 files, 14747 examples, 42555 expectations, 0 failures, 0 errors |
| 06:51:03 | dbussink | morning |
| 06:51:06 | dbussink | evan: still there? |
| 06:51:13 | evan | briefly. |
| 06:51:15 | evan | wassup |
| 06:52:24 | dbussink | evan: i was wondering, do you already want to hear about crashes / hangs with hydra? guess you're probably still working on it right? |
| 06:52:31 | evan | nope |
| 06:52:32 | evan | i do not. |
| 06:52:44 | evan | you can gist them or something |
| 06:52:54 | evan | but it's still a ways off from being close to stable |
| 06:53:06 | evan | if you even tried to run the specs |
| 06:53:08 | evan | you're brave. |
| 06:53:16 | dbussink | hehe, i guess i am then ;) |
| 06:53:44 | dbussink | i was looking at adding slightly better error messages in the pthread helper stuff, now it often doesn't even show which error code it got back |
| 06:53:57 | evan | go for i.t |
| 06:53:58 | evan | it. |
| 06:54:07 | evan | nothing would surprise me about hydra though. |
| 06:54:24 | evan | thats not true |
| 06:54:30 | evan | "It runs all the specs all the time without crashing!" |
| 06:54:32 | evan | would surprise me. |
| 06:56:12 | dbussink | evan: hehe :) |
| 06:56:21 | dbussink | sadly i can't say that ;) |
| 06:56:34 | dbussink | especially the thread specs are good at crashing it ;) |
| 06:56:37 | dbussink | surprisingly :P |
| 06:56:44 | evan | :) |
| 06:57:01 | evan | i'm cascually interested in crashes if you can repro them to a small chunk of code. |
| 06:57:18 | evan | meaning "this 20 lines of ruby code crash and/or hang" |
| 06:59:29 | evan | i'll always accept improvements |
| 06:59:33 | evan | feel free to commit those directly. |
| 06:59:41 | evan | i'm working on per-object locking atm. |
| 06:59:59 | dbussink | evan: ok, i'll look into whether i can create small scripts, i understand hanging specs aren't that useful usually :) |
| 07:00:07 | dbussink | unless they are completely consistent each and every time |
| 07:00:23 | dbussink | evan: making every object a potential lock object like the jvm> |
| 07:00:24 | dbussink | ? |
| 07:00:29 | evan | yep. |
| 07:00:59 | dbussink | evan: what's the locking strategy going to be then? |
| 07:01:09 | dbussink | biased locking etc.? |
| 07:02:49 | evan | yep. |
| 07:02:55 | evan | thin, biased locking |
| 07:03:10 | evan | with promotion on contention |
| 07:03:58 | dbussink | evan: ok, cool :) |
| 07:04:18 | dbussink | heavy locks would probably grind it to a halt :P |
| 07:04:28 | evan | :) |
| 07:06:14 | evan | code should land tomorrow |
| 07:06:21 | evan | i've nearly got it all worked out now. |
| 07:06:32 | dbussink | evan: guess it should stabilize things a bit too then? |
| 07:06:34 | evan | lots of CAS. |
| 07:06:42 | evan | not until we start using the locks |
| 07:06:44 | evan | no. |
| 07:06:53 | evan | the locks aren't automatic. |
| 07:06:58 | evan | we have to decide where to use them. |
| 07:07:03 | evan | they're just a tool. |
| 07:07:20 | dbussink | ah ok, you're adding the mechanism only first :) |
| 07:07:21 | evan | crashes/hangs have to be handled by VM locks |
| 07:07:28 | dbussink | using it as step 2 |
| 07:07:34 | evan | so when you find one, isolate it. |
| 07:07:40 | evan | so we can figure out how to sync it. |
| 07:08:42 | dbussink | evan: but it's easier than you thought to do it? |
| 07:08:50 | dbussink | since it was planned as a 2.0 feature :) |
| 07:08:52 | evan | which? |
| 07:09:14 | dbussink | removing the gil |
| 07:10:10 | evan | here and there, yes. |
| 07:10:18 | evan | you're seeing hangs and crashes |
| 07:10:22 | evan | so there is still work to do :) |
| 07:10:36 | evan | we've been prepairing for this for a while though |
| 07:10:46 | evan | the slab allocator work I did a while ago |
| 07:10:58 | evan | the way the JIT thread interacts with the GC |
| 07:11:06 | evan | all that is used by all threads concurrently. |
| 07:11:12 | dbussink | well, guess it was a good thing that already was a separate thread |
| 07:11:19 | evan | totally. |
| 07:11:28 | evan | that alone sussed out a bunch of stuff. |
| 07:11:35 | evan | that we've already dealt with for a while. |
| 07:11:43 | evan | well, i'm off to bed. |
| 07:11:49 | dbussink | evan: is concurrent gc something on the roadmap for like ever? |
| 07:11:52 | evan | dbussink: let me know if you can isolate hangs/crashes |
| 07:11:57 | dbussink | or too complex / not too useful? |
| 07:12:04 | dbussink | evan: ok, i'll write up details on what i find |
| 07:12:06 | evan | probably even a particular spec is enough. |
| 07:12:19 | dbussink | but first some payed work :p |
| 07:12:19 | evan | concurrent gc is on no roadmap |
| 07:12:41 | evan | we'd have to see that the current GC strategy is hurting us. |
| 07:12:52 | evan | before we turn down that road. |
| 07:12:57 | evan | ok, nite! |
| 07:13:53 | dbussink | nite! |
| 12:09:22 | goyox86 | Morning! |
| 12:12:07 | dbussink | goyox86: afternoon :) |
| 15:25:15 | boyscout | Add missing includes for DRb.stop_service spec - 713bb8b - Dirkjan Bussink |
| 15:25:15 | boyscout | Remove tag for passing DRb.stop_service spec - 805dfd4 - Dirkjan Bussink |
| 15:52:58 | boyscout | CI: Commit 805dfd4 failed. http://github.com/evanphx/rubinius/commit/805dfd4742a2e3528426e9fc88dc5d755128cd7c |
| 16:13:27 | brixen | I <3 rubyspec: Thread#exit killing dying running does nothing |
| 16:13:34 | brixen | that is pure poetry |
| 16:13:45 | brixen | and just as incomprehensible |
| 17:44:54 | evan | brixen: heheh |
| 17:45:01 | evan | ug. dbussink.... |
| 17:46:05 | evan | dbussink: poke? you gonig to fix the CI fail? |
| 17:48:23 | evan | O_o |
| 17:48:42 | brixen | it's an odd failure |
| 17:49:43 | evan | not really |
| 17:49:45 | evan | it's doing it 10 times. |
| 17:50:03 | evan | and the OS doesn't allow you to rebind to a port in quick succession |
| 17:50:13 | evan | it puts the port in TIME_WAIT |
| 17:50:19 | brixen | ok, so timing issue |
| 17:50:28 | evan | if you remove the 10.times |
| 17:50:30 | evan | it should work |
| 17:50:35 | brixen | it was odd that the drb failure happened once, and the thread failure the 2nd time |
| 17:50:37 | evan | the 10.times should be removed anyways |
| 17:51:02 | evan | that is weird... |
| 17:51:39 | brixen | yeah, the 10.times is lame |
| 17:51:55 | brixen | ugh, so is the should_not raise_error |
| 17:51:59 | brixen | who wrote these... |
| 17:52:01 | evan | yep. |
| 17:56:08 | brixen | oh charles comstock, who woulda thunk :-/ |
| 17:56:38 | evan | he hasn't been around in a while |
| 17:56:55 | brixen | yep |
| 21:55:48 | Defiler | brixen: This is an awesome perl library: http://cpansearch.perl.org/src/INGY/orz-0.12/lib/orz.pm |
| 21:57:49 | evan | oh ingy |
| 21:58:02 | evan | i guess that turns all commented out lines into normal lines? |
| 21:58:12 | Defiler | Other way around |
| 21:58:22 | evan | aahh. |
| 21:58:45 | evan | hilarious. |
| 21:59:14 | Defiler | We should make a module you can include that makes the module you include it in not do anything anymore |
| 21:59:17 | Defiler | heh |
| 22:00:03 | evan | heh |
| 22:00:07 | evan | class Important |
| 22:00:11 | evan | include Neuter |
| 22:00:11 | evan | end |
| 22:00:42 | Defiler | include DoesntWorkLikeYouThinkDamnit |
| 22:02:34 | evan | heh |
| 22:07:20 | evan | rad |
| 22:07:29 | evan | thin locking with contention works. |
| 22:07:48 | brixen | Defiler: I started working on targetting Perl 6 to rubinius last night |
| 22:08:03 | Defiler | awesome |
| 22:08:20 | brixen | Defiler: let's just say, if you think your wanker is huge cus you can write Haskell, you haven't looked at Perl 6 yet :) |
| 22:08:27 | Defiler | I have to rewrite the whole universe in Redis first, but then I look forward to being able to contribute again |
| 22:08:35 | Defiler | haha |
| 22:09:15 | brixen | also, omfg Perl 6 seriously?! |
| 22:09:52 | evan | brixen: :) |
| 22:09:54 | evan | how did it go? |
| 22:10:53 | brixen | I won't deny that doing such things is cool http://gist.github.com/501404 |
| 22:10:57 | brixen | but... |
| 22:11:06 | brixen | evan: I started reading docs :) |
| 22:11:16 | brixen | after looking through some codez |
| 22:11:25 | Defiler | good god |
| 22:11:36 | evan | MY EYES |
| 22:11:53 | brixen | and asking someone fairly familiar with Perl how to define the equivalent to attr_accessor in Ruby |
| 22:11:57 | evan | save that to a file called job_security_example.pl6 |
| 22:12:00 | Defiler | what the hell are those xes |
| 22:12:15 | brixen | ie class Foo { has $.reqired = die "$.required must be set" } |
| 22:12:19 | Defiler | center justify or some madness? |
| 22:12:35 | brixen | I would want to have a: class Foo { has_required $.required } |
| 22:12:47 | brixen | we spent an hour on it |
| 22:12:52 | Defiler | wow |
| 22:12:58 | evan | is that the same? |
| 22:13:01 | evan | doesn't seem like it would be |
| 22:13:09 | brixen | read through this sometime http://perlcabal.org/syn/S12.html |
| 22:13:10 | evan | attr_accessor doesn't require the value to be set |
| 22:13:24 | brixen | not the equivalent, the same idea |
| 22:13:32 | brixen | a class method that does shit |
| 22:14:01 | Defiler | just.. why.. my A $root .= new(:a(B)); |
| 22:14:04 | evan | oh |
| 22:14:14 | goyox86 | brixen: http://www.perlmonks.org/?node_id=528042 |
| 22:14:15 | evan | you just want to write a class method that defines a method to access a variable |
| 22:14:16 | evan | gotcha. |
| 22:14:40 | goyox86 | :s |
| 22:14:45 | brixen | goyox86: that's purrty |
| 22:14:47 | brixen | :) |
| 22:15:13 | Defiler | Note that the self function is not context sensitive and thus always returns the current object as a single item even in list context. Hence if your current object happens to be an array but you did not declare it with an explicit array variable, you need to explicitly access the elements of the array somehow |
| 22:15:18 | Defiler | aaaaaaaaaaaaaaaaaaaa |
| 22:15:43 | brixen | Defiler: oh man, the ideas is Perl are just amazing |
| 22:16:01 | brixen | s/is/in/ |
| 22:16:26 | Defiler | any(@(self)) # okay |
| 22:16:34 | Defiler | I... don't agree with that comment. Heh |
| 22:16:38 | brixen | I tried really hard to learn it in '93, maybe 20 years later I'll get it |
| 22:17:10 | evan | it's things like |
| 22:17:12 | Defiler | This is totally amazing and I am going to learn perl6 |
| 22:17:13 | evan | \$@foo |
| 22:17:15 | Defiler | I'm sold |
| 22:17:15 | evan | in perl 5 |
| 22:17:22 | evan | that switched me off it. |
| 22:17:38 | Defiler | .doit\ () # okay, no arguments, same as .doit() (unspace form) |
| 22:17:48 | evan | i don't (and still don't) see why you'd want to have a hash and a ref to a hash and have them be so different |
| 22:19:28 | Defiler | oh my god |
| 22:19:32 | Defiler | $object = $class.bless($class.CREATE(), :k1($v1), :k2($v2), ...) |
| 22:20:05 | evan | wtf is the :k1($v1) |
| 22:20:06 | evan | ? |
| 22:20:08 | brixen | so, targetting rbx requires either porting this to Ruby http://svn.pugscode.org/pugs/src/perl6/STD.pm6 |
| 22:20:12 | Defiler | alternative to :k1 => $v1 |
| 22:20:26 | Defiler | http://perlcabal.org/syn/S12.html#Calling_sets_of_methods |
| 22:20:29 | brixen | or learing enough Perl to hack on Compiler.pm and related files |
| 22:20:36 | brixen | I can't decide which is worse |
| 22:20:42 | Defiler | $object.?meth(@args) # calls method if there is one, otherwise Nil |
| 22:20:49 | Defiler | hey look they made 'rescue nil' into dispatch syntax |
| 22:20:50 | Defiler | ha ha |
| 22:21:02 | Defiler | (kidding) |
| 22:21:10 | evan | ah yes |
| 22:21:11 | evan | .? |
| 22:21:18 | evan | i've thought about that a few times myself. |
| 22:21:20 | brixen | so _why has that in Potion: 3 ? gender => nil |
| 22:21:36 | brixen | sends #gender if the object has the method or returns nil |
| 22:21:58 | Defiler | Since it's possible to be dispatching within more than one candidate list at a time, these control flow calls are defined to apply only to the dynamically innermost dispatcher. If, for instance, you have a single dispatch to a proto method that then calls into a multiple dispatch on the multi methods within a class, nextsame within one of those multis would go to the next best multi method within the class, not the next method candidate in the original sin |
| 22:22:18 | Defiler | This is implementable? |
| 22:22:20 | brixen | hehe |
| 22:22:20 | Defiler | Amazing. |
| 22:22:24 | brixen | indeed |
| 22:22:34 | brixen | well, it's been 10 years, but in fairness, a lot runs |
| 22:23:26 | evan | do people really want a language with soooo many rules? |
| 22:23:42 | Defiler | Sure doesn't seem like it |
| 22:23:44 | evan | that, when layer, must be really hard to understand |
| 22:25:00 | Defiler | oh dude look at the 'Representations' section |
| 22:25:10 | Defiler | class Mammal is repr(*) {...} |
| 22:26:05 | brixen | also, art: http://glyphic.s3.amazonaws.com/ozone/mark/periodic/Periodic%20Table%20of%20the%20Operators%20A4%2 0300dpi.jpg |
| 22:26:26 | brixen | Defiler: yeah is repr(*) looks amazing |
| 22:26:39 | brixen | I like the idea of pessimization |
| 22:26:55 | jakedouglas | yo |
| 22:26:57 | jakedouglas | perl is fucking hard |
| 22:27:13 | brixen | basically, you can try all your public static final you want, and I can undo your world |
| 22:27:14 | jakedouglas | that is all. |
| 22:27:22 | brixen | jakedouglas: werd |
| 22:28:10 | evan | Defiler: thats awesome |
| 22:28:31 | brixen | I read through those docs to cheer me up while writing specs for pack/unpack |
| 22:28:38 | evan | what does repr(*) do? |
| 22:28:46 | brixen | matz was *extremely* tempered in what he borrowed from Perl |
| 22:30:24 | brixen | evan: related to how classes are actually represented in memory afaics |
| 22:30:44 | brixen | in this case, run-time specified representations |
| 22:30:52 | evan | huh? |
| 22:31:10 | evan | ok, i'm looking |
| 22:31:31 | brixen | start at the heading "Open vs Closed Classes" |
| 22:31:37 | Defiler | Yeah you can say 'hey, for this instance of Mammal, you are really a Hash in memory' |
| 22:31:43 | Defiler | and 'for this one, you're an opaque object' |
| 22:31:46 | Defiler | at bless-time |
| 22:31:48 | Defiler | ... |
| 22:32:24 | evan | right |
| 22:32:33 | evan | like in perl5 |
| 22:32:45 | evan | you can bless anything with a module and it's an object |
| 22:33:05 | evan | so you have bless an arary with UnionWorkers module to give it object behaviors |
| 22:33:12 | evan | they seem to have decided to keep that kind of thing. |
| 22:33:17 | Defiler | Yeah, I guess this is like the inverse of that |
| 22:33:29 | Defiler | repr P6opaque, P6hash, P5hash, P5array, PyDict, Cstruct, etc. |
| 22:33:32 | evan | the pessimize is |
| 22:33:48 | evan | it's not the inverse |
| 22:33:50 | evan | it's the same |
| 22:34:18 | Defiler | Once you have an array in perl5 you can't make it suddenly be stored as a hash in memory though, right? |
| 22:34:47 | evan | right |
| 22:35:00 | evan | thats how i read this too. |
| 22:35:10 | Defiler | aah, I see what you mean |
| 22:35:18 | Defiler | I guess this just lets them optimize away the need to care, in the default case |
| 22:35:26 | Defiler | and repr(*) goes back to perl5 style |
| 22:35:30 | evan | you're telling perl: "this object has functionality and data. use this data structure to store the data." |
| 22:36:06 | brixen | but is repr(*) is: If you wish to allow objects to be created with run-time specified representations, you must specifically pessimize the class: |
| 22:36:19 | brixen | which suggests you can change repr at run time |
| 22:36:45 | Defiler | I think if you think of perl5 as having repr(*) as its default.. |
| 22:36:54 | Defiler | and perl6 having repr(P6opaque) as default.. |
| 22:37:02 | Defiler | then it makes as much sense as it likely could. |
| 22:37:09 | brixen | ok |
| 22:37:12 | evan | sort oh. |
| 22:37:13 | evan | of. |
| 22:37:15 | evan | anyway |
| 22:37:19 | evan | rules rules rules rules rules. |
| 22:37:23 | Defiler | yeah wild |
| 22:37:28 | evan | perl6 seems like a language that a hall monitor would like |
| 22:37:31 | evan | they love rules. |
| 22:38:09 | Defiler | Advanced Perl & Paradigms 2nd Edition |
| 22:38:19 | brixen | "Perl 6: You can do anything, the rules say so" |
| 22:41:16 | brixen | haha |
| 22:41:25 | brixen | yo larrywall, I can haz a question? |
| 22:41:38 | larrywall | hey whatz up? |
| 22:41:47 | larrywall | $$$$$$-!!@@@ |
| 22:42:21 | larrywall | brixen: course |
| 22:42:48 | brixen | haha larrywall, you fail http://gist.github.com/501445 :) |
| 22:44:49 | larrywall | i'm from a far civilization called sigilia , i'm to tell ya -> I'm an alien we talk in PERL |
| 22:45:00 | larrywall | leaves earth |
| 22:55:20 | evan | joe! |
| 22:55:27 | joearnold | Hello! |
| 22:55:39 | joearnold | Contrats on all the 1.0 goodness! |
| 22:55:42 | evan | being a bad boy and IRCing from root I see! :) |
| 22:55:46 | evan | thanks! |
| 22:55:55 | joearnold | hah... a disposible rackspace instance. |
| 22:56:25 | evan | hows the new place? |
| 22:56:30 | joearnold | Got some folks running in production with rbx? |
| 22:56:44 | joearnold | It's quite awesome. |
| 22:57:09 | joearnold | I miss the large crew at EY though. |
| 22:57:22 | evan | haven't yet heard of people using it in production yet |
| 22:57:41 | evan | that will come with time. |
| 22:57:52 | joearnold | yup. Indeed it will. |
| 22:58:19 | joearnold | There is usually some lag once it's ready. As you have to wait for new projects to start up. |
| 22:58:28 | evan | yeah |
| 22:58:53 | evan | I think there are people playing with it running their apps in dev |
| 22:58:55 | evan | and maybe staging |
| 22:59:13 | joearnold | Always hiring, naturally. Right now looking for folks who want to work on OpenStack (in python). |
| 22:59:36 | joearnold | And Ruby folks who want to do nice things with Chef + systems management / automation |
| 22:59:42 | evan | cool. |
| 23:00:11 | joearnold | ComicCon this year for you? |
| 23:00:22 | evan | joearnold: yeah, it was last weekend |
| 23:00:26 | evan | was crazy again. |
| 23:00:30 | joearnold | :) |
| 23:00:54 | evan | it's an input overload |
| 23:01:11 | joearnold | for you!? I couoldn't imagine. |
| 23:01:35 | evan | :) |
| 23:02:21 | brixen | hi joearnold! |
| 23:02:29 | joearnold | Hey Brian! |
| 23:02:47 | joearnold | Have you moved to SF yet? :) |
| 23:03:03 | brixen | afaik, there's some crazy student in germany or something running a school site on rbx |
| 23:03:06 | brixen | joearnold: not yet :) |
| 23:07:19 | evan | joearnold: hows your new little one? |
| 23:17:43 | joearnold | evan: Ahh... she's doing great. Lots of fun. |
| 23:18:45 | evan | :) |
| 23:32:36 | brixen | ugh ["1"].pack('E') |
| 23:32:44 | brixen | strings are converted to floats |
| 23:32:49 | brixen | but not to integers |
| 23:33:01 | evan | hahah |
| 23:33:08 | brixen | fucking Perl |
| 23:33:18 | evan | i need to stop giving you the crappy tasks. |
| 23:33:28 | brixen | I'm almost done! :) |
| 23:33:33 | evan | :D |
| 23:33:45 | brixen | I want to get 1.9 syntax in soon |
| 23:33:50 | evan | yep |
| 23:33:53 | brixen | we need to merge one_nine |
| 23:42:22 | boyscout | Revert "Remove tag for passing DRb.stop_service spec" - 307f62e - Dirkjan Bussink |
| 23:51:28 | boyscout | CI: rubinius: 307f62e successful: 3502 files, 14747 examples, 42555 expectations, 0 failures, 0 errors |