Index

Show enters and exits. Hide enters and exits.

00:15:52evanheh
00:15:53evani did
00:15:55evanary = []
00:16:08evanObjectSpace.find_object([:kind_of, Object], ary)
00:16:09evanp ary.
00:16:13evaner
00:16:14evanp ary
00:16:21evanie, print every object in the system
00:16:33brixenand it did?
00:16:39evanit's still trying.
00:16:42brixenheh
00:21:52jvoorhisevan: is it printing arrays recursively? and wouldn't ary contain itself? :)
00:23:08evanArray#inspect has a recursion guard, yes.
00:23:46jvoorhisah, so it does
00:25:04jvoorhiswhat prompted the new ObjectSpace feature? it looks neat
00:26:08evanwell, brixen brought up the idea for how to implement each_object
00:26:18evanand we've needed to do something for it
00:26:35evani've had in my head bouncing around the idea for an object graph query
00:26:52evanso those 2 things, plus needing to get _id2ref implemented came together
00:28:11jvoorhisdoes rbx work with any gui library yet? it would be neat to try making a smalltalk-like browser
00:28:36brixenwe could probably get fxruby working pretty easily
00:28:38brixenmaybe
00:28:39brixenheh
00:28:51BrianRice-worksomeone said smalltalk... :)
00:29:04brixenBrianRice-work: smalltalk-like :)
00:29:14BrianRice-workyeah, I just get pinged on the keyword
00:29:35brixenBrianRice-work: you need a fuzzy filter on that
00:30:01brixenconsiders randomly mentioning smalltalk on occasion
00:38:34evanhuh
00:38:44evanyou'd think that all finalizers should be called when a process exits
00:38:58evansince all objects are about to no longer exist
00:39:25BrianRice-workonly the objects which are strongly isolated from outside that process
00:39:50BrianRice-workthose you haven't aliased in an external interaction, basically
00:40:41evanwell, but if the process is about to exit
00:40:44evanthey're all garbage
00:40:51evanregardless if they reference something external or not.
00:42:03evanok, well, I got the logic I wanted
00:42:14evanso I guess i'll just shake my head and go on.
00:43:15evankendall :: git/rbx ยป bin/mspec spec/ruby/core/objectspace
00:43:21evan9 files, 13 examples, 22 expectations, 0 failures, 0 errors
00:43:22evanwoop!
00:43:25BrianRice-workI meant inbound references
00:43:40evanBrianRice-work: inbound?
00:44:00BrianRice-workyeah, any object outside the process referring to one of the process's objects
00:44:19evanwell
00:44:23BrianRice-work(I'm forgetting any details of your design for concurrency)
00:44:31evanlacking at present
00:44:33evanwould be the design.
00:44:45BrianRice-workheh
00:45:02BrianRice-workit's okay, I'm going through that too. ttyl
00:45:08evanthe design of external, stronge GC references is pretty an foreign notion to ruby
00:45:14evanlater.
00:49:42BrianRice-workoh! process. I thought you meant green-thread instead of OS process. right :)
00:49:51BrianRice-workyeah, finalize the shit out of them :)
00:50:01evanHAHAH
00:50:02evanyes,
00:50:09evanfinalize with the space laser!
00:50:15BrianRice-workit's the only way to be sure
01:01:39evanI wonder how values types in a dynamic language would work...
01:01:55boyscoutFix finalizer spec to use captureless proc - c51a65e - Evan Phoenix
01:01:55boyscoutAdd ObjectSpace.find_object, implement other OS methods - 4477824 - Evan Phoenix
01:01:59evanBOOM
01:02:10evanObjectSpace.each_object and _id2ref have finally landed
01:02:16evanit only took us 3 years.
01:05:02brixenheh
01:05:24brixenlook how much you can do without ObjectSpace#each
01:05:27brixen_object
01:05:32brixen:)
01:05:33evanbrixen: you're right, the pragmatism of saying "well, the GC has to be stopped while we do this, so be good!"
01:05:39evanis itself a good idea.
01:05:43brixencool
01:06:10evanI'm going to go look around at what people use each_object for
01:06:21brixenmm good idea
01:06:22evanand maybe put together an object query gem
01:06:24evanthat people can use
01:06:33evanthat would return arrays
01:06:45evanon MRI, it can be implemented with each_object
01:06:51evanand on rbx, i'll use find_object
01:10:31boyscoutCI: rubinius: 4477824 successful: 3024 files, 11841 examples, 36183 expectations, 0 failures, 0 errors
01:10:37evanwooo!
01:11:02brixensuccess
01:11:40evani'm also moving object_id to the header
01:11:46evansince on 64bit
01:11:52evanwe've been wasting 32bits in the header anyway
01:12:44brixenwhat about 32bit?
01:12:55evanwell, i'm conditionalizing putting it in the header
01:13:02evanso we can leave it in the ivar table
01:13:04brixenahh ok
01:13:08evanand decide at compile time
01:13:25evanmight make sense to do so on 32bit as well
01:13:53brixencould always overflow into an ivar
01:14:12brixenif some code uses object_id on too many objects
01:14:21evantoo many being 4G+
01:14:27evaner. 4B+
01:14:38brixenwell, I mean for 32bit
01:14:44brixendo we have any spare bits?
01:14:44evanyeah, the same
01:14:55evanwell hm
01:15:07evanthere is about 10 bits spare in the flags region
01:15:27evani pretty often seen object_id's greater than 1024
01:15:39evanso it's not a very rare thing.
01:15:46brixenok
01:18:50evanall the object_id code is very isolated
01:18:52evanwhich makes this easy.
01:44:00ezmobiusyou guys are kicking soo much ass with rbx these days. just want to say rock on dudes
01:44:10brixenwoot!
01:44:13brixenthanks ezmobius!
01:44:27brixenrunning into any issues using it daily?
01:45:58rxwVERSION GNAA > j00
01:45:58rxwVERSION GNAA > j00
01:45:58rxwVERSION GNAA > j00
01:45:59rxwVERSION GNAA > j00
01:46:01rxwVERSION GNAA > j00
01:46:03rxwVERSION GNAA > j00
01:46:05rxwVERSION GNAA > j00
01:46:07rxwVERSION GNAA > j00
01:46:09rxwVERSION GNAA > j00
01:46:11rxwVERSION GNAA > j00
01:46:13rxwVERSION GNAA > j00
01:46:15rxwVERSION GNAA > j00
01:46:17rxwVERSION GNAA > j00
01:46:19rxwVERSION GNAA > j00
01:46:21rxwVERSION GNAA > j00
01:46:23rxwVERSION GNAA > j00
01:46:25rxwVERSION GNAA > j00
01:46:27rxwVERSION GNAA > j00
01:46:29rxwVERSION GNAA > j00
01:46:31rxwVERSION GNAA > j00
04:18:32xfbrwowohtVERSION GNAA > j00
04:18:32xfbrwowohtVERSION GNAA > j00
04:18:32xfbrwowohtVERSION GNAA > j00
04:18:33xfbrwowohtVERSION GNAA > j00
04:18:35xfbrwowohtVERSION GNAA > j00
04:18:37xfbrwowohtVERSION GNAA > j00
04:18:39xfbrwowohtVERSION GNAA > j00
04:18:41xfbrwowohtVERSION GNAA > j00
04:18:43xfbrwowohtVERSION GNAA > j00
04:18:45xfbrwowohtVERSION GNAA > j00
04:18:47xfbrwowohtVERSION GNAA > j00
04:18:49xfbrwowohtVERSION GNAA > j00
04:18:51xfbrwowohtVERSION GNAA > j00
04:18:53xfbrwowohtVERSION GNAA > j00
04:18:55xfbrwowohtVERSION GNAA > j00
04:18:57xfbrwowohtVERSION GNAA > j00
04:18:59xfbrwowohtVERSION GNAA > j00
04:19:01xfbrwowohtVERSION GNAA > j00
04:19:03xfbrwowohtVERSION GNAA > j00
04:19:05xfbrwowohtVERSION GNAA > j00
04:19:07xfbrwowohtVERSION GNAA > j00
04:19:09xfbrwowohtVERSION GNAA > j00
04:19:11xfbrwowohtVERSION GNAA > j00
04:19:13xfbrwowohtVERSION GNAA > j00
04:19:15xfbrwowohtVERSION GNAA > j00
04:19:17xfbrwowohtVERSION GNAA > j00
04:19:19xfbrwowohtVERSION GNAA > j00
04:19:21xfbrwowohtVERSION GNAA > j00
04:19:23xfbrwowohtVERSION GNAA > j00
04:19:25xfbrwowohtVERSION GNAA > j00
04:19:27xfbrwowohtVERSION GNAA > j00
04:19:29xfbrwowohtVERSION GNAA > j00
04:19:31xfbrwowohtVERSION GNAA > j00
04:19:33xfbrwowohtVERSION GNAA > j00
04:19:35xfbrwowohtVERSION GNAA > j00
04:19:37xfbrwowohtVERSION GNAA > j00
04:19:39xfbrwowohtVERSION GNAA > j00
04:19:41xfbrwowohtVERSION GNAA > j00
04:19:43xfbrwowohtVERSION GNAA > j00
04:19:45xfbrwowohtVERSION GNAA > j00
04:19:47xfbrwowohtVERSION GNAA > j00
04:19:49xfbrwowohtVERSION GNAA > j00
04:19:51xfbrwowohtVERSION GNAA > j00
04:19:53xfbrwowohtVERSION GNAA > j00
04:19:55xfbrwowohtVERSION GNAA > j00
04:19:57xfbrwowohtVERSION GNAA > j00
04:19:59xfbrwowohtVERSION GNAA > j00
04:20:01xfbrwowohtVERSION GNAA > j00
04:20:03xfbrwowohtVERSION GNAA > j00
04:20:05xfbrwowohtVERSION GNAA > j00
04:20:07xfbrwowohtVERSION GNAA > j00
04:20:09xfbrwowohtVERSION GNAA > j00
04:20:11xfbrwowohtVERSION GNAA > j00
04:20:13xfbrwowohtVERSION GNAA > j00
04:20:15xfbrwowohtVERSION GNAA > j00
04:20:17xfbrwowohtVERSION GNAA > j00
04:20:19xfbrwowohtVERSION GNAA > j00
04:20:21xfbrwowohtVERSION GNAA > j00
04:20:23xfbrwowohtVERSION GNAA > j00
04:20:25xfbrwowohtVERSION GNAA > j00
04:20:27xfbrwowohtVERSION GNAA > j00
04:20:29xfbrwowohtVERSION GNAA > j00
04:20:31xfbrwowohtVERSION GNAA > j00
04:20:33xfbrwowohtVERSION GNAA > j00
04:20:35xfbrwowohtVERSION GNAA > j00
04:20:37xfbrwowohtVERSION GNAA > j00
04:20:39xfbrwowohtVERSION GNAA > j00
04:20:41xfbrwowohtVERSION GNAA > j00
04:20:43xfbrwowohtVERSION GNAA > j00
04:20:45xfbrwowohtVERSION GNAA > j00
04:20:47xfbrwowohtVERSION GNAA > j00
04:20:49xfbrwowohtVERSION GNAA > j00
04:20:51xfbrwowohtVERSION GNAA > j00
04:20:53xfbrwowohtVERSION GNAA > j00
04:20:55xfbrwowohtVERSION GNAA > j00
04:20:57xfbrwowohtVERSION GNAA > j00
04:20:59xfbrwowohtVERSION GNAA > j00
04:21:01xfbrwowohtVERSION GNAA > j00
04:21:03xfbrwowohtVERSION GNAA > j00
04:21:05xfbrwowohtVERSION GNAA > j00
04:21:07xfbrwowohtVERSION GNAA > j00
04:21:09xfbrwowohtVERSION GNAA > j00
04:21:11xfbrwowohtVERSION GNAA > j00
04:21:13xfbrwowohtVERSION GNAA > j00
04:21:15xfbrwowohtVERSION GNAA > j00
04:21:17xfbrwowohtVERSION GNAA > j00
04:21:19xfbrwowohtVERSION GNAA > j00
04:21:21xfbrwowohtVERSION GNAA > j00
04:21:23xfbrwowohtVERSION GNAA > j00
04:21:25xfbrwowohtVERSION GNAA > j00
04:21:27xfbrwowohtVERSION GNAA > j00
04:21:29xfbrwowohtVERSION GNAA > j00
04:21:31xfbrwowohtVERSION GNAA > j00
04:21:33xfbrwowohtVERSION GNAA > j00
04:21:35xfbrwowohtVERSION GNAA > j00
04:21:37xfbrwowohtVERSION GNAA > j00
04:21:39xfbrwowohtVERSION GNAA > j00
04:21:41xfbrwowohtVERSION GNAA > j00
04:55:09rueTime to turn off CTCP I guess
07:29:22boyscoutAdd ability to store object_id in the header (64bit only) - 06a8328 - Evan Phoenix
07:37:57boyscoutCI: rubinius: 06a8328 successful: 3024 files, 11841 examples, 36183 expectations, 0 failures, 0 errors
07:52:46boyscoutRefactor System::vm_find_object into it's own file. - bb7a0b6 - Evan Phoenix
07:56:59boyscoutCI: rubinius: bb7a0b6 successful: 3024 files, 11841 examples, 36183 expectations, 0 failures, 0 errors
08:22:46dbussinkevan: any reason for not using the IS_X8664 define that's available?
08:23:04evanprobably should have
08:23:09evanjust wasn't thinking
08:23:12evango ahead and change it.
08:34:41dbussinkevan: ok, btw, did you get anything out of investigating the issue with running datamapper specs?
08:34:49evanyeah
08:34:57evangot that indirect literals were buggy
08:35:00evani've removed them.
08:35:03evanif you wanna try again.
08:35:26dbussinkevan: ok, will try again to see if stuff still fails
08:36:10evank
08:37:41evani'm about to head to bed
08:37:54dbussinkevan: ok, will update the ticket with information i find
08:38:02evank
08:40:39boyscoutUse the already available 64 bit platform flag - 80242a0 - Dirkjan Bussink
08:49:15boyscoutCI: rubinius: 80242a0 successful: 3024 files, 11841 examples, 36183 expectations, 0 failures, 0 errors
08:53:12boyscoutCorrect a Mutex#lock spec (Mutex is not recursive) - 9f6b192 - Evan Phoenix
08:53:12boyscoutMemoryPointer#address should report signed pointers - 6111e7a - Evan Phoenix
08:53:12boyscoutUpdate spec tags - 2ff4e13 - Evan Phoenix
09:02:51evanprobably going to have a CI failure
09:02:54evani'll deal with it in the morning.
09:09:21boyscoutCI: Commit 2ff4e13 failed. http://github.com/evanphx/rubinius/commit/2ff4e13545dcfe1ce783a865a95c676cb4d4498e
11:41:28ghcupVERSION GNAA > j00
11:41:28ghcupVERSION GNAA > j00
11:41:28ghcupVERSION GNAA > j00
11:41:29ghcupVERSION GNAA > j00
11:41:31ghcupVERSION GNAA > j00
11:41:33ghcupVERSION GNAA > j00
11:41:35ghcupVERSION GNAA > j00
11:41:37ghcupVERSION GNAA > j00
11:41:39ghcupVERSION GNAA > j00
11:41:41ghcupVERSION GNAA > j00
11:41:43ghcupVERSION GNAA > j00
11:41:45ghcupVERSION GNAA > j00
11:41:47ghcupVERSION GNAA > j00
11:41:49ghcupVERSION GNAA > j00
11:41:51ghcupVERSION GNAA > j00
11:41:53ghcupVERSION GNAA > j00
11:41:55ghcupVERSION GNAA > j00
11:41:57ghcupVERSION GNAA > j00
11:41:59ghcupVERSION GNAA > j00
11:42:01ghcupVERSION GNAA > j00
11:42:03ghcupVERSION GNAA > j00
11:42:05ghcupVERSION GNAA > j00
11:42:07ghcupVERSION GNAA > j00
11:42:09ghcupVERSION GNAA > j00
11:42:11ghcupVERSION GNAA > j00
11:42:13ghcupVERSION GNAA > j00
11:42:15ghcupVERSION GNAA > j00
11:42:17ghcupVERSION GNAA > j00
11:42:19ghcupVERSION GNAA > j00
11:42:21ghcupVERSION GNAA > j00
11:42:23ghcupVERSION GNAA > j00
11:42:25ghcupVERSION GNAA > j00
11:42:27ghcupVERSION GNAA > j00
11:42:29ghcupVERSION GNAA > j00
11:42:31ghcupVERSION GNAA > j00
12:31:39dqscmvzaiVERSION GNAA > j00
12:31:39dqscmvzaiVERSION GNAA > j00
12:31:39dqscmvzaiVERSION GNAA > j00
12:31:40dqscmvzaiVERSION GNAA > j00
12:31:42dqscmvzaiVERSION GNAA > j00
12:31:44dqscmvzaiVERSION GNAA > j00
12:31:46dqscmvzaiVERSION GNAA > j00
12:31:48dqscmvzaiVERSION GNAA > j00
12:31:50dqscmvzaiVERSION GNAA > j00
12:31:52dqscmvzaiVERSION GNAA > j00
12:31:54dqscmvzaiVERSION GNAA > j00
12:57:46rvdtVERSION GNAA > j00
12:57:46rvdtVERSION GNAA > j00
12:57:46rvdtVERSION GNAA > j00
12:57:47rvdtVERSION GNAA > j00
12:57:49rvdtVERSION GNAA > j00
12:57:51rvdtVERSION GNAA > j00
12:57:53rvdtVERSION GNAA > j00
12:57:55rvdtVERSION GNAA > j00
12:57:57rvdtVERSION GNAA > j00
12:57:59rvdtVERSION GNAA > j00
12:58:01rvdtVERSION GNAA > j00
12:58:03rvdtVERSION GNAA > j00
12:58:05rvdtVERSION GNAA > j00
12:58:07rvdtVERSION GNAA > j00
14:23:18bhdsgwVERSION GNAA > j00
14:23:18bhdsgwVERSION GNAA > j00
14:23:18bhdsgwVERSION GNAA > j00
14:23:19bhdsgwVERSION GNAA > j00
14:44:51enrkwoqVERSION GNAA > j00
14:44:51enrkwoqVERSION GNAA > j00
14:44:51enrkwoqVERSION GNAA > j00
14:44:52enrkwoqVERSION GNAA > j00
14:44:54enrkwoqVERSION GNAA > j00
14:44:56enrkwoqVERSION GNAA > j00
14:44:58enrkwoqVERSION GNAA > j00
14:45:00enrkwoqVERSION GNAA > j00
14:45:02enrkwoqVERSION GNAA > j00
14:45:04enrkwoqVERSION GNAA > j00
14:45:06enrkwoqVERSION GNAA > j00
14:45:08enrkwoqVERSION GNAA > j00
14:45:10enrkwoqVERSION GNAA > j00
15:50:16cvaVERSION GNAA > j00
15:50:16cvaVERSION GNAA > j00
15:50:16cvaVERSION GNAA > j00
15:50:17cvaVERSION GNAA > j00
15:50:19cvaVERSION GNAA > j00
15:50:21cvaVERSION GNAA > j00
17:17:34boyscoutRemove redundent fails tag - eaed6e7 - Evan Phoenix
17:22:31boyscoutCI: rubinius: eaed6e7 successful: 3024 files, 11899 examples, 36299 expectations, 0 failures, 0 errors
17:23:23evanweird, ok.
17:24:19scooprdouble-fail? :P
17:29:02tcckvwsqxvVERSION GNAA > j00
17:29:02tcckvwsqxvVERSION GNAA > j00
17:29:02tcckvwsqxvVERSION GNAA > j00
17:29:03tcckvwsqxvVERSION GNAA > j00
17:29:05tcckvwsqxvVERSION GNAA > j00
17:29:07tcckvwsqxvVERSION GNAA > j00
17:29:09tcckvwsqxvVERSION GNAA > j00
17:41:39brixensees ~20 commits to rubyspec overnight, *shudders*
17:41:41brixenle'see
17:43:07evanjeez wtf
17:43:31brixenevan: ?
17:43:41evanthe rubyspec commit flood
17:43:45brixenoh heh
17:43:53brixendunno, just gave mame a bit yesterday
17:44:03brixenlooks like he's attacking 1.9 stdlib failures
17:44:09brixenI'm just reviewing now
17:47:22evanhuzzah!
17:47:29evanhe removed the CGI::TagMaker specs
17:47:34evangood riddence
17:50:55brixenheh
17:51:06evanand a bunch of the other tag based CGI specs
17:51:19evanwhich were exhaustively unnecessary.
17:53:00evanhm, i have to figure out what to do with the socket code
17:53:10evansince it uses FFI, and thusly blocks all threads easily.
18:01:21brixenhmm yeah, this clarification on the CGI api is most appreciated
18:14:07yvggenziuxVERSION GNAA > j00
18:14:07yvggenziuxVERSION GNAA > j00
18:14:07yvggenziuxVERSION GNAA > j00
18:14:08yvggenziuxVERSION GNAA > j00
18:14:10yvggenziuxVERSION GNAA > j00
18:14:12yvggenziuxVERSION GNAA > j00
20:56:29brixenhrm, well that blew up
20:56:38brixenshared specs are hard, let's get lunch :)
20:59:51choffsteinHey all. Quick question -- I am trying out rubinius for the first time and was really keen on the sandboxing feature with multi-vm but I keep getting an error: "AssertionError: Called unbound or invalid primitive from method name: spawn_prim". Any ideas? I am just dropping into rbx and typing "vm = Rubinius::VM.spawn "test", "-e", "puts 'hello\n'""
21:00:21brixenchoffstein: the MVM stuff needs work
21:00:35brixenshould get it fixed up soon, but I would not expect it to work now
21:00:41choffsteinAh, okay.
21:00:55brixenI talked with evan about it last week
21:01:02choffsteinAre there any known sandboxing solutions for Ruby besides JRuby?
21:01:04brixenI'll mention it again
21:01:26choffsteinWell, overall Rubinius looks (and has been running) fantastic
21:01:28brixenhm, the was _why's thing, but don't know
21:01:43choffstein_why's hackery magic only stops working after 1.8.5
21:01:58choffsteinerr, nix the 'only' there
21:02:30brixenhttp://github.com/whymirror/sandbox
21:02:33brixenahh ok
21:03:04brixenyeah, none other that I know of offhand
21:03:55brixenit shouldn't take too much work to get rbx mvm working again
21:03:55brixenbut really gotta get some food atm
21:05:07choffsteinWell, either way, thanks for putting the time and effort into Rubinius. Between MRI, Rubinius, JRuby, MacRuby and soon MagLev, Ruby developers really benefit from the competition and mutual advances
21:06:51brixenthanks
21:07:01brixenyeah, it's an interesting time to be alive :)
21:08:53choffsteinI personally think rubinius has the leg up with JIT on LLVM, but don't tell anyone I said that
21:11:04brixenyeah, it's really starting to pay dividends
21:38:07slavahi brixen
21:39:52brixenhey slava
21:42:09slavawhat's he latest news?
21:46:44brixenshared state is hard, let's use haskell :)
21:47:27brixenslava: fixing running shared specs atm
21:47:44slavayeah I saw lots of spec activity in the repo lately
21:48:05brixenevan's been hammering the spec failures
21:48:11slavaso do you guy allow yourselves to define non-standard methods in ruby core classes?
21:48:18brixenyes
21:48:36slavadoes this ever cause problems if people monkey patch in something that has the same nam?
21:48:40slavaif they only tested on mri
21:48:44brixenoften we just do what is simplest until there is a conflict
21:48:50brixenthen we think of a way around it
21:49:03brixeneg user code redefining Module#name
21:49:31brixenit does cause problems sometimes
21:49:45brixennot really a big deal though
23:33:42maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:42maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:42maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:43maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:45maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:47maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:49maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:51maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:53maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:55maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:57maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:33:59maqxalgtxVERSION irc.gnaa.fr #gnaa GNAA > j00
23:37:42evanis back
23:38:32rueYou rode in on a tide of spam
23:39:13evanlimechat doesn't seem to support ctcp
23:39:18evanso i don't even see it.
23:39:53slavaevan: I found a case where compile-time method dispatch and runtime method dispatch disagreed in factor
23:40:05evanoh? where at?
23:40:15slavaI'm not completely sure which one is right :)
23:40:23slavaI think the compile time case, because its simpler
23:40:38slavaso what does ruby do if two superclasses define the same method?
23:40:57evanthere is only single inheritance
23:41:05evanso they never have the same weight.
23:41:07slavawhat about mixins?
23:41:09evanone is always before another
23:41:10evansame
23:41:23evanmixins are just a cute form of late decision single inheritance
23:41:47evanmixins are prefered inverse to their include order
23:42:03evanLIFU (Last In, First Used)
23:42:12slavaok
23:42:30evanruby mandates a flat superclass traversal chain
23:42:57brixenthankfully
23:43:28slavain factor its messier than that
23:43:34evanwhile sup; o = sup.methods[name]; return o if o; sup = sup.superclass; end
23:43:43evanis the rule.
23:43:46evanto rule them all.
23:44:06slavathe methods in a generic word are sorted by class precedence
23:44:42slavaclasses are partially ordred only
23:44:46slavatie-breakers are used to resolve ambiguities
23:45:13evanah yes
23:45:23evanthe ordering within a generic word/function
23:45:25evanhow interesting
23:45:28evanwhat does CLOS do?
23:45:33slavasame thing really