Index

Show enters and exits. Hide enters and exits.

00:48:40boyscoutFix Thread.critical= allows all non-bool arguments - 4cc7cf9 - Jose Narvaez
00:48:40boyscoutRemove tags for passing Thread.critical= specs, also removed duplicated Thread.critical= tags - 8cd6c66 - Jose Narvaez
01:16:38boyscoutCI: rubinius: 8cd6c66 successful: 3502 files, 14747 examples, 42555 expectations, 0 failures, 0 errors
01:42:46brixengoyox86: I think that's a case where !!value makes sense
01:43:26brixengoyox86: also, we have a to_bool method
01:44:20goyox86brixen: mmm, just let me know which one and i'll be fixin it :)
01:44:31brixenwell, to_bool was created for these cases
01:44:43brixensee the comment in kernel/bootstrap/kernel.rb
01:45:06goyox86brixen: 10-04
01:45:58brixenhonestly, I'm on the fence whether !!value or to_bool is better, but consistency is good
01:47:06goyox86brixen: when you have decided just let me know :), anyway i'll do my own research :)
01:47:36brixenheh, I think the to_bool is appropriate
01:55:09goyox86brixen: better? https://gist.github.com/d1fd80fb46f27576dace
01:57:02brixenlooks good
01:57:50goyox86brixen: k, CI-ing now
02:02:55boyscoutBetter fix for Thread.critical= allows all non-bool arguments, using to_bool, as brixen suggested - c2a6165 - Jose Narvaez
02:03:33goyox86brixen: sorry by that bro :]
02:15:13brixengoyox86: no worries :)
02:30:37boyscoutCI: rubinius: c2a6165 successful: 3502 files, 14747 examples, 42555 expectations, 0 failures, 0 errors
06:51:03dbussinkmorning
06:51:06dbussinkevan: still there?
06:51:13evanbriefly.
06:51:15evanwassup
06:52:24dbussinkevan: 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:31evannope
06:52:32evani do not.
06:52:44evanyou can gist them or something
06:52:54evanbut it's still a ways off from being close to stable
06:53:06evanif you even tried to run the specs
06:53:08evanyou're brave.
06:53:16dbussinkhehe, i guess i am then ;)
06:53:44dbussinki 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:57evango for i.t
06:53:58evanit.
06:54:07evannothing would surprise me about hydra though.
06:54:24evanthats not true
06:54:30evan"It runs all the specs all the time without crashing!"
06:54:32evanwould surprise me.
06:56:12dbussinkevan: hehe :)
06:56:21dbussinksadly i can't say that ;)
06:56:34dbussinkespecially the thread specs are good at crashing it ;)
06:56:37dbussinksurprisingly :P
06:56:44evan:)
06:57:01evani'm cascually interested in crashes if you can repro them to a small chunk of code.
06:57:18evanmeaning "this 20 lines of ruby code crash and/or hang"
06:59:29evani'll always accept improvements
06:59:33evanfeel free to commit those directly.
06:59:41evani'm working on per-object locking atm.
06:59:59dbussinkevan: ok, i'll look into whether i can create small scripts, i understand hanging specs aren't that useful usually :)
07:00:07dbussinkunless they are completely consistent each and every time
07:00:23dbussinkevan: making every object a potential lock object like the jvm>
07:00:24dbussink?
07:00:29evanyep.
07:00:59dbussinkevan: what's the locking strategy going to be then?
07:01:09dbussinkbiased locking etc.?
07:02:49evanyep.
07:02:55evanthin, biased locking
07:03:10evanwith promotion on contention
07:03:58dbussinkevan: ok, cool :)
07:04:18dbussinkheavy locks would probably grind it to a halt :P
07:04:28evan:)
07:06:14evancode should land tomorrow
07:06:21evani've nearly got it all worked out now.
07:06:32dbussinkevan: guess it should stabilize things a bit too then?
07:06:34evanlots of CAS.
07:06:42evannot until we start using the locks
07:06:44evanno.
07:06:53evanthe locks aren't automatic.
07:06:58evanwe have to decide where to use them.
07:07:03evanthey're just a tool.
07:07:20dbussinkah ok, you're adding the mechanism only first :)
07:07:21evancrashes/hangs have to be handled by VM locks
07:07:28dbussinkusing it as step 2
07:07:34evanso when you find one, isolate it.
07:07:40evanso we can figure out how to sync it.
07:08:42dbussinkevan: but it's easier than you thought to do it?
07:08:50dbussinksince it was planned as a 2.0 feature :)
07:08:52evanwhich?
07:09:14dbussinkremoving the gil
07:10:10evanhere and there, yes.
07:10:18evanyou're seeing hangs and crashes
07:10:22evanso there is still work to do :)
07:10:36evanwe've been prepairing for this for a while though
07:10:46evanthe slab allocator work I did a while ago
07:10:58evanthe way the JIT thread interacts with the GC
07:11:06evanall that is used by all threads concurrently.
07:11:12dbussinkwell, guess it was a good thing that already was a separate thread
07:11:19evantotally.
07:11:28evanthat alone sussed out a bunch of stuff.
07:11:35evanthat we've already dealt with for a while.
07:11:43evanwell, i'm off to bed.
07:11:49dbussinkevan: is concurrent gc something on the roadmap for like ever?
07:11:52evandbussink: let me know if you can isolate hangs/crashes
07:11:57dbussinkor too complex / not too useful?
07:12:04dbussinkevan: ok, i'll write up details on what i find
07:12:06evanprobably even a particular spec is enough.
07:12:19dbussinkbut first some payed work :p
07:12:19evanconcurrent gc is on no roadmap
07:12:41evanwe'd have to see that the current GC strategy is hurting us.
07:12:52evanbefore we turn down that road.
07:12:57evanok, nite!
07:13:53dbussinknite!
12:09:22goyox86Morning!
12:12:07dbussinkgoyox86: afternoon :)
15:25:15boyscoutAdd missing includes for DRb.stop_service spec - 713bb8b - Dirkjan Bussink
15:25:15boyscoutRemove tag for passing DRb.stop_service spec - 805dfd4 - Dirkjan Bussink
15:52:58boyscoutCI: Commit 805dfd4 failed. http://github.com/evanphx/rubinius/commit/805dfd4742a2e3528426e9fc88dc5d755128cd7c
16:13:27brixenI <3 rubyspec: Thread#exit killing dying running does nothing
16:13:34brixenthat is pure poetry
16:13:45brixenand just as incomprehensible
17:44:54evanbrixen: heheh
17:45:01evanug. dbussink....
17:46:05evandbussink: poke? you gonig to fix the CI fail?
17:48:23evanO_o
17:48:42brixenit's an odd failure
17:49:43evannot really
17:49:45evanit's doing it 10 times.
17:50:03evanand the OS doesn't allow you to rebind to a port in quick succession
17:50:13evanit puts the port in TIME_WAIT
17:50:19brixenok, so timing issue
17:50:28evanif you remove the 10.times
17:50:30evanit should work
17:50:35brixenit was odd that the drb failure happened once, and the thread failure the 2nd time
17:50:37evanthe 10.times should be removed anyways
17:51:02evanthat is weird...
17:51:39brixenyeah, the 10.times is lame
17:51:55brixenugh, so is the should_not raise_error
17:51:59brixenwho wrote these...
17:52:01evanyep.
17:56:08brixenoh charles comstock, who woulda thunk :-/
17:56:38evanhe hasn't been around in a while
17:56:55brixenyep
21:55:48Defilerbrixen: This is an awesome perl library: http://cpansearch.perl.org/src/INGY/orz-0.12/lib/orz.pm
21:57:49evanoh ingy
21:58:02evani guess that turns all commented out lines into normal lines?
21:58:12DefilerOther way around
21:58:22evanaahh.
21:58:45evanhilarious.
21:59:14DefilerWe should make a module you can include that makes the module you include it in not do anything anymore
21:59:17Defilerheh
22:00:03evanheh
22:00:07evanclass Important
22:00:11evan include Neuter
22:00:11evanend
22:00:42Defilerinclude DoesntWorkLikeYouThinkDamnit
22:02:34evanheh
22:07:20evanrad
22:07:29evanthin locking with contention works.
22:07:48brixenDefiler: I started working on targetting Perl 6 to rubinius last night
22:08:03Defilerawesome
22:08:20brixenDefiler: 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:27DefilerI have to rewrite the whole universe in Redis first, but then I look forward to being able to contribute again
22:08:35Defilerhaha
22:09:15brixenalso, omfg Perl 6 seriously?!
22:09:52evanbrixen: :)
22:09:54evanhow did it go?
22:10:53brixenI won't deny that doing such things is cool http://gist.github.com/501404
22:10:57brixenbut...
22:11:06brixenevan: I started reading docs :)
22:11:16brixenafter looking through some codez
22:11:25Defilergood god
22:11:36evanMY EYES
22:11:53brixenand asking someone fairly familiar with Perl how to define the equivalent to attr_accessor in Ruby
22:11:57evansave that to a file called job_security_example.pl6
22:12:00Defilerwhat the hell are those xes
22:12:15brixenie class Foo { has $.reqired = die "$.required must be set" }
22:12:19Defilercenter justify or some madness?
22:12:35brixenI would want to have a: class Foo { has_required $.required }
22:12:47brixenwe spent an hour on it
22:12:52Defilerwow
22:12:58evanis that the same?
22:13:01evandoesn't seem like it would be
22:13:09brixenread through this sometime http://perlcabal.org/syn/S12.html
22:13:10evanattr_accessor doesn't require the value to be set
22:13:24brixennot the equivalent, the same idea
22:13:32brixena class method that does shit
22:14:01Defilerjust.. why.. my A $root .= new(:a(B));
22:14:04evanoh
22:14:14goyox86brixen: http://www.perlmonks.org/?node_id=528042
22:14:15evanyou just want to write a class method that defines a method to access a variable
22:14:16evangotcha.
22:14:40goyox86:s
22:14:45brixengoyox86: that's purrty
22:14:47brixen:)
22:15:13DefilerNote 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:18Defileraaaaaaaaaaaaaaaaaaaa
22:15:43brixenDefiler: oh man, the ideas is Perl are just amazing
22:16:01brixens/is/in/
22:16:26Defilerany(@(self)) # okay
22:16:34DefilerI... don't agree with that comment. Heh
22:16:38brixenI tried really hard to learn it in '93, maybe 20 years later I'll get it
22:17:10evanit's things like
22:17:12DefilerThis is totally amazing and I am going to learn perl6
22:17:13evan\$@foo
22:17:15DefilerI'm sold
22:17:15evanin perl 5
22:17:22evanthat switched me off it.
22:17:38Defiler.doit\ () # okay, no arguments, same as .doit() (unspace form)
22:17:48evani 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:28Defileroh my god
22:19:32Defiler $object = $class.bless($class.CREATE(), :k1($v1), :k2($v2), ...)
22:20:05evanwtf is the :k1($v1)
22:20:06evan?
22:20:08brixenso, targetting rbx requires either porting this to Ruby http://svn.pugscode.org/pugs/src/perl6/STD.pm6
22:20:12Defileralternative to :k1 => $v1
22:20:26Defilerhttp://perlcabal.org/syn/S12.html#Calling_sets_of_methods
22:20:29brixenor learing enough Perl to hack on Compiler.pm and related files
22:20:36brixenI can't decide which is worse
22:20:42Defiler$object.?meth(@args) # calls method if there is one, otherwise Nil
22:20:49Defilerhey look they made 'rescue nil' into dispatch syntax
22:20:50Defilerha ha
22:21:02Defiler(kidding)
22:21:10evanah yes
22:21:11evan.?
22:21:18evani've thought about that a few times myself.
22:21:20brixenso _why has that in Potion: 3 ? gender => nil
22:21:36brixensends #gender if the object has the method or returns nil
22:21:58DefilerSince 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:18DefilerThis is implementable?
22:22:20brixenhehe
22:22:20DefilerAmazing.
22:22:24brixenindeed
22:22:34brixenwell, it's been 10 years, but in fairness, a lot runs
22:23:26evando people really want a language with soooo many rules?
22:23:42DefilerSure doesn't seem like it
22:23:44evanthat, when layer, must be really hard to understand
22:25:00Defileroh dude look at the 'Representations' section
22:25:10Defilerclass Mammal is repr(*) {...}
22:26:05brixenalso, art: http://glyphic.s3.amazonaws.com/ozone/mark/periodic/Periodic%20Table%20of%20the%20Operators%20A4%2 0300dpi.jpg
22:26:26brixenDefiler: yeah is repr(*) looks amazing
22:26:39brixenI like the idea of pessimization
22:26:55jakedouglasyo
22:26:57jakedouglasperl is fucking hard
22:27:13brixenbasically, you can try all your public static final you want, and I can undo your world
22:27:14jakedouglasthat is all.
22:27:22brixenjakedouglas: werd
22:28:10evanDefiler: thats awesome
22:28:31brixenI read through those docs to cheer me up while writing specs for pack/unpack
22:28:38evanwhat does repr(*) do?
22:28:46brixenmatz was *extremely* tempered in what he borrowed from Perl
22:30:24brixenevan: related to how classes are actually represented in memory afaics
22:30:44brixenin this case, run-time specified representations
22:30:52evanhuh?
22:31:10evanok, i'm looking
22:31:31brixenstart at the heading "Open vs Closed Classes"
22:31:37DefilerYeah you can say 'hey, for this instance of Mammal, you are really a Hash in memory'
22:31:43Defilerand 'for this one, you're an opaque object'
22:31:46Defilerat bless-time
22:31:48Defiler...
22:32:24evanright
22:32:33evanlike in perl5
22:32:45evanyou can bless anything with a module and it's an object
22:33:05evanso you have bless an arary with UnionWorkers module to give it object behaviors
22:33:12evanthey seem to have decided to keep that kind of thing.
22:33:17DefilerYeah, I guess this is like the inverse of that
22:33:29Defilerrepr P6opaque, P6hash, P5hash, P5array, PyDict, Cstruct, etc.
22:33:32evanthe pessimize is
22:33:48evanit's not the inverse
22:33:50evanit's the same
22:34:18DefilerOnce you have an array in perl5 you can't make it suddenly be stored as a hash in memory though, right?
22:34:47evanright
22:35:00evanthats how i read this too.
22:35:10Defileraah, I see what you mean
22:35:18DefilerI guess this just lets them optimize away the need to care, in the default case
22:35:26Defilerand repr(*) goes back to perl5 style
22:35:30evanyou're telling perl: "this object has functionality and data. use this data structure to store the data."
22:36:06brixenbut 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:19brixenwhich suggests you can change repr at run time
22:36:45DefilerI think if you think of perl5 as having repr(*) as its default..
22:36:54Defilerand perl6 having repr(P6opaque) as default..
22:37:02Defilerthen it makes as much sense as it likely could.
22:37:09brixenok
22:37:12evansort oh.
22:37:13evanof.
22:37:15evananyway
22:37:19evanrules rules rules rules rules.
22:37:23Defileryeah wild
22:37:28evanperl6 seems like a language that a hall monitor would like
22:37:31evanthey love rules.
22:38:09DefilerAdvanced Perl & Paradigms 2nd Edition
22:38:19brixen"Perl 6: You can do anything, the rules say so"
22:41:16brixenhaha
22:41:25brixenyo larrywall, I can haz a question?
22:41:38larrywallhey whatz up?
22:41:47larrywall$$$$$$-!!@@@
22:42:21larrywallbrixen: course
22:42:48brixenhaha larrywall, you fail http://gist.github.com/501445 :)
22:44:49larrywalli'm from a far civilization called sigilia , i'm to tell ya -> I'm an alien we talk in PERL
22:45:00larrywallleaves earth
22:55:20evanjoe!
22:55:27joearnoldHello!
22:55:39joearnoldContrats on all the 1.0 goodness!
22:55:42evanbeing a bad boy and IRCing from root I see! :)
22:55:46evanthanks!
22:55:55joearnoldhah... a disposible rackspace instance.
22:56:25evanhows the new place?
22:56:30joearnoldGot some folks running in production with rbx?
22:56:44joearnoldIt's quite awesome.
22:57:09joearnoldI miss the large crew at EY though.
22:57:22evanhaven't yet heard of people using it in production yet
22:57:41evanthat will come with time.
22:57:52joearnoldyup. Indeed it will.
22:58:19joearnoldThere is usually some lag once it's ready. As you have to wait for new projects to start up.
22:58:28evanyeah
22:58:53evanI think there are people playing with it running their apps in dev
22:58:55evanand maybe staging
22:59:13joearnoldAlways hiring, naturally. Right now looking for folks who want to work on OpenStack (in python).
22:59:36joearnoldAnd Ruby folks who want to do nice things with Chef + systems management / automation
22:59:42evancool.
23:00:11joearnoldComicCon this year for you?
23:00:22evanjoearnold: yeah, it was last weekend
23:00:26evanwas crazy again.
23:00:30joearnold:)
23:00:54evanit's an input overload
23:01:11joearnoldfor you!? I couoldn't imagine.
23:01:35evan:)
23:02:21brixenhi joearnold!
23:02:29joearnoldHey Brian!
23:02:47joearnoldHave you moved to SF yet? :)
23:03:03brixenafaik, there's some crazy student in germany or something running a school site on rbx
23:03:06brixenjoearnold: not yet :)
23:07:19evanjoearnold: hows your new little one?
23:17:43joearnoldevan: Ahh... she's doing great. Lots of fun.
23:18:45evan:)
23:32:36brixenugh ["1"].pack('E')
23:32:44brixenstrings are converted to floats
23:32:49brixenbut not to integers
23:33:01evanhahah
23:33:08brixenfucking Perl
23:33:18evani need to stop giving you the crappy tasks.
23:33:28brixenI'm almost done! :)
23:33:33evan:D
23:33:45brixenI want to get 1.9 syntax in soon
23:33:50evanyep
23:33:53brixenwe need to merge one_nine
23:42:22boyscoutRevert "Remove tag for passing DRb.stop_service spec" - 307f62e - Dirkjan Bussink
23:51:28boyscoutCI: rubinius: 307f62e successful: 3502 files, 14747 examples, 42555 expectations, 0 failures, 0 errors