Show enters and exits. Hide enters and exits.
| 00:00:55 | neelance leaves the room. | |
| 00:03:39 | lopex_ enters the room. | |
| 00:06:01 | Fullmoon leaves the room. | |
| 00:09:55 | rue leaves the room. | |
| 00:11:39 | ijcd leaves the room. | |
| 00:11:58 | ijcd enters the room. | |
| 00:16:01 | rue enters the room. | |
| 00:17:11 | yasuhito enters the room. | |
| 00:19:50 | antares leaves the room. | |
| 00:24:05 | yasuhito leaves the room. | |
| 00:26:05 | dary enters the room. | |
| 00:27:27 | ezmobius enters the room. | |
| 00:29:36 | twbray leaves the room. | |
| 00:30:54 | elight enters the room. | |
| 00:34:45 | lopex_2725 leaves the room. | |
| 00:37:10 | elight leaves the room. | |
| 00:37:37 | elight enters the room. | |
| 00:38:08 | cored enters the room. | |
| 00:43:28 | blakewatters enters the room. | |
| 00:44:06 | radarek leaves the room. | |
| 00:48:45 | cremes enters the room. | |
| 00:50:20 | antares enters the room. | |
| 00:52:05 | tarcieri | *boggle* @ massign syntax |
| 00:52:10 | tarcieri | foo, = [1,2] |
| 00:52:20 | tarcieri | I had no idea that was valid |
| 00:52:34 | tarcieri | has always done the Erlangy foo,_ = [1,2] |
| 00:52:54 | wyhaines | has always done it that way, too. |
| 00:53:39 | tarcieri | wyhaines: When you're coalescing buffers in Ruby before writing them with EM, is that with or without Nagle? |
| 00:54:18 | drbrain | is well-aquainted with masgn |
| 00:55:05 | drbrain | a, (b, c), = [1, [2, 3], 4, 5] |
| 00:55:20 | tarcieri | massign seems like primitive pattern matching |
| 00:55:29 | tarcieri | especially in cases like ^^^ |
| 00:55:49 | drbrain | or, a, (b,), c, = [1, [2, 3], 4, 5] |
| 00:55:54 | tarcieri | heh |
| 00:55:54 | wyhaines | tarcieri: it's with however EM is by default. I'd assumed that meant that nagel was disabed, but I recall a bug reported by Roger Pack about it not being disabled properly? |
| 00:56:19 | tarcieri | wyhaines: weird... you'd think Nagle would help in that case |
| 00:56:33 | tarcieri | wyhaines: it's unfortunate POSIX never standardized "corking" |
| 00:57:19 | drbrain | corking? |
| 00:57:44 | zenspider | VVSiz: oy |
| 00:58:01 | VVSiz | zenspider: hehehe, that was painful to watch |
| 00:58:09 | tarcieri | drbrain: like TCP_CORK |
| 00:58:21 | tarcieri | drbrain: letting you do a number of writes that get buffered by the kernel |
| 00:58:30 | tarcieri | drbrain: then you "pull the cork" and they actually get written to the wire |
| 00:58:43 | drbrain | Socket.constants.grep /TCP_/ |
| 00:58:49 | drbrain | => ["TCP_MAXSEG", "TCP_NODELAY"] |
| 00:58:57 | tarcieri | heh |
| 00:59:16 | tarcieri | yeah I think TCP_CORK is Linux-specific... BSD has TPP_NOPUSH |
| 00:59:19 | tarcieri | geh |
| 00:59:20 | tarcieri | TCP |
| 00:59:40 | drbrain | to prevent packet fragmentation, yes? |
| 00:59:51 | tarcieri | yeah |
| 01:00:16 | zenspider | VVSiz: jesus he's a douchebag |
| 01:00:31 | drbrain | does setting an appropriate socket buffer size and flushing not work? |
| 01:00:38 | zenspider | he was a douchebag back when he was at gemstone, and it hasn't changed in 15 years |
| 01:00:51 | zenspider | VVSiz: so, care to help me figger this shit out? |
| 01:01:12 | drbrain | I think there is a NOPUSH though |
| 01:01:30 | elight leaves the room. | |
| 01:01:52 | drbrain | #define TCP_NOPUSH 0x04 /* don't push last block of write */ |
| 01:02:22 | drbrain | doesn't sound like it has quite the same semantics |
| 01:02:32 | tarcieri | TCP_NOPUSH has different smeantics than TCP_CORK :/ |
| 01:02:34 | tarcieri | which sicks |
| 01:02:43 | tarcieri | it makes it hard to write a portable wrapper that covers both |
| 01:02:47 | elight enters the room. | |
| 01:09:45 | rue leaves the room. | |
| 01:11:06 | zenspider | VVSiz: oy. you there? |
| 01:14:40 | tarcieri | oh boy |
| 01:15:32 | rue enters the room. | |
| 01:16:00 | antares leaves the room. | |
| 01:16:25 | dary leaves the room. | |
| 01:16:58 | dary enters the room. | |
| 01:17:38 | imajes enters the room. | |
| 01:19:35 | tarcieri | why the hell don't they stick the patchlevels in the names of the tarballs for Ruby |
| 01:20:07 | tarcieri | especially if certain things won't run on 1.8.7p0, they need 1.8.7p17 to work, and your only clue is some totally nonsensical broken error message |
| 01:20:22 | zenspider | or in the C version macros for that matter |
| 01:20:33 | elight leaves the room. | |
| 01:20:40 | tarcieri | :/ |
| 01:20:58 | ezmobius | there is no rhyme or reason to ruby release policy |
| 01:21:00 | zenspider | I've got code I need to conditionalize but can't, because the best resolution I have is 187 vs 186 |
| 01:21:01 | tarcieri | go go gadget release engineering |
| 01:21:02 | ezmobius | its a free for all... whee! |
| 01:21:34 | tarcieri | downloads a tarball he hopes is at least 1.8.7p17 |
| 01:21:39 | tarcieri | too bad I can't tell because it's not labeled |
| 01:21:50 | lopex_ leaves the room. | |
| 01:23:04 | zenspider | it isn't the release policy that has problems... it's actually not that bad all things considering... it is the merge policy that needs refinement |
| 01:23:35 | zenspider | unfortunately, those two concepts get merged together a lot... AND we're dealing with a language / thought barrier on top of it |
| 01:23:54 | larrytheliquid enters the room. | |
| 01:24:04 | tarcieri | the release policy doesn't seem to include, say, testing |
| 01:24:16 | Defiler | or policies |
| 01:24:19 | tarcieri | heh |
| 01:24:20 | ezmobius | yeah it was amusing that they said all they do is run make check |
| 01:24:25 | ezmobius | and if it passes its a release |
| 01:24:34 | ezmobius | no try to run a rails app or the rubyspecs |
| 01:24:45 | ezmobius | make check has like 3 tests |
| 01:24:54 | tarcieri | heh |
| 01:25:00 | tarcieri | needs more CI bot that fakes being a human |
| 01:25:13 | tarcieri | and spams ruby-core |
| 01:25:23 | ezmobius | ++ |
| 01:25:48 | tarcieri | "Hey I was just playing around with rXXX and I was trying to ... and noticed that it seems to be broken, here's the error message I got:" |
| 01:26:25 | Defiler | That is a fucking spectacular idea |
| 01:26:59 | zenspider | tarcieri that's patently false (about no testing)... (sorry, got kicked off cafe net) |
| 01:27:03 | Defiler | Even better, we could have it post anonymously to 2ch in Japanese from a .jp VPS |
| 01:27:14 | tarcieri | zenspider: eh, I'm just pissed off at getting bitten in the ass by bugs :/ |
| 01:27:28 | zenspider | *nod* |
| 01:27:30 | tarcieri | Defiler: heh |
| 01:28:27 | zenspider | Defiler: we could have that if I could figure out how to fucking test this stupid script. :P |
| 01:28:29 | jbarnette | Defiler: joking aside, would it be worth setting up a CI machine that runs rubyspec against a buncha versions of the various implementations, provides nice web-accessible reports, and optionally emails failure messages? |
| 01:28:40 | ezmobius | yes |
| 01:28:49 | brixen | jbarnette: that's being setup now |
| 01:28:50 | zenspider | jbarnette: already in the works |
| 01:28:56 | ryanlowe | nice |
| 01:28:57 | jbarnette | sweet |
| 01:29:00 | zenspider | that's what I'm stuck on. :P |
| 01:29:11 | zenspider | stupid fucking git. :D |
| 01:29:11 | jbarnette | i'm up to help with that if extra nerdpower is needed |
| 01:29:21 | tarcieri | okay, I appear to have Ruby 1.8.7 p22 now, yay |
| 01:29:44 | brixen | tarcieri: your best bet for a particular PL is probably a svn tag |
| 01:29:55 | zenspider | jbarnette: aye. needed. I'm frustrated to the point of seeing red. :) |
| 01:30:00 | brixen | tarcieri: I don't believe they make tarballs for every PL, but I could be mistaken |
| 01:30:11 | zenspider | tarcieri: you might prefer to use multiruby |
| 01:30:13 | jbarnette | zenspider: tomorrow night? |
| 01:30:27 | zenspider | I need to release to get a bug fix out, but it is really handy in this regard |
| 01:30:34 | tarcieri | brixen: I just went here and picked out the highest patchlevel: |
| 01:30:35 | tarcieri | ftp://ftp.ruby-lang.org/pub/ruby/1.8/ |
| 01:30:42 | tarcieri | that worked fine |
| 01:30:58 | brixen | tarcieri: yeah, that should get you a "released" pl |
| 01:31:04 | tarcieri | heh |
| 01:31:32 | tarcieri | is stuck in horrible circular dependiences of incompatible versions of different things :/ |
| 01:31:46 | zenspider | tarcieri: multiruby_setup mri:svn:tag:mri_rel_1_8_7_22 |
| 01:31:55 | zenspider | *nod* |
| 01:32:01 | tarcieri | heh |
| 01:32:04 | tarcieri | zenspider: I'll check it out |
| 01:32:35 | AndrewO enters the room. | |
| 01:32:57 | zenspider | needs to push a new zentest and hoe |
| 01:33:27 | AndrewO leaves the room. | |
| 01:35:31 | enebo enters the room. | |
| 01:35:54 | loincloth leaves the room. | |
| 01:40:44 | qwert666_ leaves the room. | |
| 01:43:29 | headius enters the room. | |
| 01:45:17 | anteaya leaves the room. | |
| 01:51:15 | anteaya enters the room. | |
| 01:52:19 | crafterm enters the room. | |
| 01:56:10 | tarcieri | ugh, I should just give up and go back to 1.8.6 |
| 01:56:12 | eventualbuddha leaves the room. | |
| 01:56:15 | tarcieri | this is retarded |
| 01:58:22 | tarcieri | 1.8.7 is a "TEENY" bump over 1.8.6, eh? |
| 01:58:27 | ryanlowe | tarcieri: are you trying to patch those 1.8.6 vulnerabilities? |
| 01:58:46 | jbarnette leaves the room. | |
| 01:59:00 | enebo leaves the room. | |
| 01:59:07 | tarcieri | no, I'm trying to move stuff off one server onto another, at the other server had 1.8.7 installed, and working fine for the few limited things it was doing |
| 01:59:15 | tarcieri | now I'm trying to install more things on it and it's gibbing horribly |
| 01:59:21 | ryanlowe | ahh |
| 01:59:35 | ryanlowe | Rails stuff I suppose? |
| 01:59:41 | tarcieri | yes |
| 01:59:56 | tarcieri | the other stuff was Camping and Radiant (so Rails vicariously I guess) |
| 02:00:26 | jtoy enters the room. | |
| 02:00:33 | tarcieri | now everything's fine except things returning Enumerator unexpectedly |
| 02:00:42 | ryanlowe | I had heard 1.8.7 was a small update too, except it breaks everything :S |
| 02:01:05 | tarcieri | 1.8.7 seems like it should be Ruby 1.9 1/2 |
| 02:01:16 | ryanlowe | I'm hoping Rubinius will have a saner release procedure :) |
| 02:01:30 | tarcieri | Having CI alone is an enormous step forward |
| 02:01:30 | ryanlowe | yes they backported some features |
| 02:01:48 | ryanlowe | into 1.8.7 from the 1.9 branch |
| 02:02:19 | ryanlowe | if it didn't break things I would be fine with that, but it did apparently |
| 02:02:34 | tarcieri | the entire 1.9 approach just fails miserably |
| 02:02:46 | tarcieri | 1.9 should've been YARV with no changes to the core language |
| 02:03:26 | ryanlowe | interesting :) |
| 02:03:31 | binary42 enters the room. | |
| 02:03:34 | tarcieri | but instead 1.9 is "Let's change everything at once! The threading model, the virtual machine, and a bazillion language features which aren't entirely backwards compatible! And while we're at it change strings in the C API, etc. etc." |
| 02:03:47 | ryanlowe | I'm sure that would have made deployers happier, but it would have held up Ruby for a year |
| 02:04:00 | ryanlowe | YARV seems like a giant ball of poo right now |
| 02:04:29 | tarcieri | we're using it in production, but not for the new language features... just for YARV and the sane I/O native threads facilitate |
| 02:04:32 | ryanlowe | not the language, the implementation |
| 02:04:41 | ryanlowe | interesting |
| 02:05:04 | ryanlowe | and it's behaving fine in production for you? |
| 02:05:08 | tarcieri | yes |
| 02:05:26 | tarcieri | save for having to duplicate tons of stuff across 1.8 and 1.9 |
| 02:05:50 | imajes leaves the room. | |
| 02:06:00 | jicksta enters the room. | |
| 02:06:53 | ryanlowe | YARV is changing everything at once because it was a completely different project from MRI, then ended up replacing MRI for 1.9 .... as far as I understand they aren't even related ... so there are bound to be bugs between them |
| 02:07:06 | dfg59 leaves the room. | |
| 02:07:07 | ryanlowe | especially if there's no CI policing things |
| 02:07:47 | ryanlowe | I'm surprised it works well in production already |
| 02:08:02 | jicksta leaves the room. | |
| 02:09:45 | rue leaves the room. | |
| 02:10:18 | tarcieri | ryanlowe: forever there were MATZ and YARV branches |
| 02:11:01 | ryanlowe | yup |
| 02:11:22 | c0sin leaves the room. | |
| 02:12:00 | ryanlowe | I'm pleasantly surprised I mean ... MRI's been getting all of the attention in production and YARV has not |
| 02:12:10 | ryanlowe | til recently |
| 02:12:36 | headius leaves the room. | |
| 02:12:43 | tarcieri | I guess it helps that everything we're doing on 1.9 was pretty much developed natively on 1.9 |
| 02:12:54 | tarcieri | and backported to 1.8 |
| 02:13:07 | ryanlowe | geez :) |
| 02:13:12 | ryanlowe | a lot of work? |
| 02:13:20 | tarcieri | I guess |
| 02:13:44 | tarcieri | the real work is maintaining all this crap for 1.9 and 1.8 |
| 02:14:05 | ryanlowe | yeah, why are you doing it? |
| 02:14:24 | ezmobius | yeah it's been fun trying to patch 3000 installs of 1.8.6p114 |
| 02:14:27 | tarcieri | massively concurrent HTTP fetching |
| 02:14:39 | stepheneb enters the room. | |
| 02:14:50 | ryanlowe | ezmobius: which patch are you moving up to? |
| 02:15:03 | ezmobius | the phusion guys patch plus a few things we put in there |
| 02:15:07 | ezmobius | against p114 |
| 02:15:35 | cremes leaves the room. | |
| 02:15:50 | ryanlowe | from their work on Ruby Enterprise Edition |
| 02:16:04 | rue enters the room. | |
| 02:16:06 | ezmobius | well actually its form the freeBSD guys patch is what the phusion patch is based one |
| 02:16:14 | ryanlowe | it's interesting that everyone is patching it slightly differently ... sigh :) |
| 02:16:45 | ryanlowe | ezmobius: is the patch you are using public? |
| 02:17:04 | ryanlowe | or just the phusion part |
| 02:17:07 | jicksta enters the room. | |
| 02:17:10 | ezmobius | it's pretty much the phusion guys patch version 2 |
| 02:17:20 | ezmobius | with our own customer ebuild and patches we do for ruby |
| 02:17:23 | ezmobius | custom* |
| 02:17:26 | ryanlowe | ahh |
| 02:17:57 | ezmobius | gentoo has a ruby1.8.6p256 now though that *seems* to work with rails |
| 02:18:04 | ryanlowe enters the room. | |
| 02:18:05 | ezmobius | but im still skeptical |
| 02:18:13 | ryanlowe enters the room. | |
| 02:18:18 | ezmobius | p114 is pretty much the last release i trust |
| 02:18:28 | ryanlowe | sorry, accidentally closed the window |
| 02:18:34 | ryanlowe | yeah I was thinking the same thing |
| 02:18:45 | ryanlowe | about p114 |
| 02:18:50 | jicksta leaves the room. | |
| 02:19:33 | jicksta enters the room. | |
| 02:20:06 | tarcieri | ugh |
| 02:20:32 | tarcieri | well our stuff seems to be working on 1.8.7p22, except for all the Enumerator changes :/ |
| 02:21:12 | ryanlowe | changing the API on a point release seems like a bad idea |
| 02:21:29 | jicksta leaves the room. | |
| 02:21:58 | jicksta enters the room. | |
| 02:23:08 | jicksta leaves the room. | |
| 02:24:29 | jicksta enters the room. | |
| 02:24:33 | VVSiz_ enters the room. | |
| 02:24:40 | ezmobius leaves the room. | |
| 02:25:22 | rubuildius_ppc leaves the room. | |
| 02:25:39 | jicksta leaves the room. | |
| 02:26:59 | jicksta enters the room. | |
| 02:27:20 | benburkert enters the room. | |
| 02:28:56 | jicksta leaves the room. | |
| 02:31:23 | anteaya leaves the room. | |
| 02:31:42 | rubuildius_ppc enters the room. | |
| 02:31:51 | VVSiz leaves the room. | |
| 02:34:37 | ijcd leaves the room. | |
| 02:36:21 | anteaya enters the room. | |
| 02:36:53 | jicksta enters the room. | |
| 02:38:36 | jicksta leaves the room. | |
| 02:41:51 | boyscout | 2 commits by Brian Ford |
| 02:41:52 | boyscout | * Added patterns for finding tag files.; 4e74972 |
| 02:41:53 | boyscout | * Updated MSpec source to 1c801cd6.; a66a4a1 |
| 02:44:18 | brixen | fyi, bin/mspec ci spec/ruby will work the same as bin/mspec ci spec/frozen |
| 02:45:02 | brixen | in that mspec ci with map the tags to either |
| 02:45:22 | rubuildius_ppc | Brian Ford: 4e749728c; 2534 files, 8410 examples, 28040 expectations, 0 failures, 0 errors |
| 02:49:37 | cored leaves the room. | |
| 02:52:20 | rubuildius_ey64 | Brian Ford: 4e749728c; 2534 files, 8411 examples, 28018 expectations, 0 failures, 0 errors |
| 02:52:32 | wyhaines leaves the room. | |
| 03:08:27 | pauldix leaves the room. | |
| 03:09:04 | xmlhacker enters the room. | |
| 03:09:27 | rue leaves the room. | |
| 03:15:35 | rue enters the room. | |
| 03:15:38 | rubuildius_amd64 | Brian Ford: 4e749728c; 2534 files, 8411 examples, 28020 expectations, 0 failures, 0 errors |
| 03:18:10 | dfg59 enters the room. | |
| 03:18:33 | dfg59 leaves the room. | |
| 03:18:39 | dfg59 enters the room. | |
| 03:21:36 | twbray enters the room. | |
| 03:29:01 | tarcieri | headgib @ 1.8.7 changelog |
| 03:35:48 | benburkert leaves the room. | |
| 03:35:57 | jackdempsey enters the room. | |
| 03:37:02 | wycats | pasted http://pastie.textmate.org/private/wb0ud5r1spi8vwkqkggmlq |
| 03:37:08 | wycats | what's the reason for that behavior? |
| 03:37:53 | wycats | Defiler: I feel like I need to be drunk to understand this |
| 03:37:58 | jackdempsey | lol |
| 03:38:03 | jackdempsey | it doesn't help |
| 03:39:30 | jackdempsey | yeah wtf is up with wtf there |
| 03:39:34 | wycats | it looks like the whaaa? function is somehow getting defined on nil |
| 03:39:40 | jackdempsey | lol yep |
| 03:39:46 | wycats | pasted http://pastie.textmate.org/private/0pm5gw9krkmetlirtce2q |
| 03:40:34 | jackdempsey | http://pastie.textmate.org/225282 |
| 03:40:35 | jackdempsey | heh |
| 03:40:58 | wycats | rbx has the same behavior ;) |
| 03:41:21 | benburkert enters the room. | |
| 03:41:23 | trythil_ enters the room. | |
| 03:41:37 | wycats | def foo() def bar() 1 end end; foo; nil.bar #=> 1 |
| 03:41:48 | wycats | that is seriously some weird shit |
| 03:42:14 | trythil leaves the room. | |
| 03:42:22 | wycats | oh snap |
| 03:42:30 | wycats | it's because functions defined top-level are defined on nil |
| 03:42:30 | jackdempsey | lol |
| 03:42:39 | wycats | def baz() 1 end; nil.baz #=> 1 |
| 03:42:40 | wycats | o.O |
| 03:42:45 | jackdempsey | whoa |
| 03:42:50 | jackdempsey | yea iw as just playing with this |
| 03:42:50 | wycats | wtf kind of crazytown behavior is THAT |
| 03:43:00 | jackdempsey | http://pastie.textmate.org/225283 |
| 03:43:01 | jackdempsey | lol |
| 03:43:39 | jackdempsey | huh |
| 03:43:46 | jackdempsey | i thought maybe it was a weird irb'ism or something |
| 03:43:46 | tarcieri | wycats: that's some retarded shit |
| 03:44:00 | wycats | tarcieri: yeah |
| 03:44:01 | wycats | it is |
| 03:44:05 | jackdempsey | hahaha |
| 03:44:07 | wycats | top-level functions get defined on nil |
| 03:44:08 | wycats | o.O |
| 03:44:12 | jackdempsey | so NilClass is just another class... |
| 03:44:17 | jackdempsey | and if there's no self set its nil right |
| 03:44:19 | wycats | jackdempsey: we already knew that |
| 03:44:22 | jackdempsey | and um nils just an object so.... |
| 03:44:23 | jackdempsey | heheh |
| 03:44:25 | wycats | jackdempsey: nah |
| 03:44:30 | wycats | self is main |
| 03:44:40 | jackdempsey | yep |
| 03:44:42 | wycats | and main is != nil |
| 03:44:59 | jackdempsey | hmm |
| 03:46:25 | wycats | ooh... it gets creepier |
| 03:46:31 | wycats | def self.boo doesn't work |
| 03:46:31 | jackdempsey | lol uhoh |
| 03:46:59 | wycats | nah |
| 03:47:01 | wycats | that's fine |
| 03:47:14 | wycats | ok... so it actually makes sense |
| 03:47:21 | wycats | heh |
| 03:47:22 | wycats | :P |
| 03:47:28 | jackdempsey | hehe |
| 03:47:30 | tarcieri | main == Object??? |
| 03:47:33 | wycats | it's just kind of retarded |
| 03:47:34 | wycats | right |
| 03:47:35 | wycats | exactly |
| 03:47:38 | tarcieri | durrr |
| 03:47:45 | tarcieri | I'm confused |
| 03:47:49 | wycats | self.is_a? Object |
| 03:47:58 | wycats | self.instance_of? Object |
| 03:48:01 | tarcieri | self.class == Object |
| 03:48:07 | wycats | right |
| 03:48:09 | jackdempsey | yea |
| 03:48:15 | tarcieri | urgh |
| 03:48:24 | jackdempsey | so the defining on nil makes sense tho? |
| 03:48:27 | wycats | but you're inside of nil |
| 03:48:34 | tarcieri | I thought main was distinct from Object |
| 03:48:43 | wycats | it is |
| 03:48:48 | wycats | it's an instance of Object |
| 03:48:49 | jbarnette enters the room. | |
| 03:48:51 | tarcieri | oh |
| 03:48:53 | tarcieri | I see |
| 03:48:55 | wycats | hey jbarnette |
| 03:49:05 | wycats | I've been prattling on about nothing |
| 03:49:06 | wycats | :P |
| 03:49:06 | tarcieri | so it's an instance of Object with some weird instance-specific behavior? |
| 03:49:22 | wycats | it's just that you're not inside any context |
| 03:49:24 | jbarnette | ahoy! |
| 03:49:24 | wycats | for the def |
| 03:49:26 | jbarnette | wycats: shocking! :p |
| 03:49:32 | jackdempsey | hehe |
| 03:49:33 | wycats | tarcieri: so it defines it on nil |
| 03:49:43 | jackdempsey | thats still kinda weird/cool |
| 03:49:49 | wycats | and when you call a top-level function it looks inside nil |
| 03:49:58 | wycats | jbarnette: ;) |
| 03:50:04 | jackdempsey | ah i didn't realize that last part |
| 03:50:21 | jackdempsey | the other was what i was poorly attempting to say with 'and if there's no self set its nil right' that :-) |
| 03:50:25 | wycats | it's pretty retarded frankly, but makes sense |
| 03:50:29 | jackdempsey | lol |
| 03:50:40 | tarcieri | remind me to give the toplevel scope its own class in my language |
| 03:50:53 | wycats | jackdempsey: it has a self |
| 03:50:55 | wycats | but self is not where functions defined in a scope go |
| 03:51:14 | wycats | think about class Foo; def hello() "hello" end end |
| 03:51:15 | jackdempsey | yea i get that self's around |
| 03:51:17 | wycats | self in there in Foo |
| 03:51:21 | jackdempsey | yeah |
| 03:51:22 | jackdempsey | oh |
| 03:51:24 | jackdempsey | ok gotcha |
| 03:51:27 | wycats | but it's not the same as def Foo.hello |
| 03:51:28 | jackdempsey | not going to Foo.hello |
| 03:51:29 | jackdempsey | yea |
| 03:51:37 | jackdempsey | so why to nil, cuz nothing's left? |
| 03:51:43 | wycats | right |
| 03:51:46 | jackdempsey | heh |
| 03:51:58 | wycats | it's like class << nil :P |
| 03:52:01 | jackdempsey | lol |
| 03:52:02 | jackdempsey | yep |
| 03:52:33 | wycats | or not :P |
| 03:52:37 | wycats | because that doesn't work |
| 03:52:46 | wycats | o.O |
| 03:52:51 | jackdempsey | no? |
| 03:52:51 | jackdempsey | hmm |
| 03:53:08 | wycats | wait |
| 03:53:10 | wycats | was I wrong? |
| 03:53:11 | wycats | :P |
| 03:53:18 | wycats | yeah |
| 03:53:20 | wycats | christ |
| 03:53:25 | wycats | open IRB sessions ftl |
| 03:53:30 | tarcieri | the metaclass is like... #<Class:#<Object:0x389a0>> |
| 03:53:44 | jackdempsey | lol |
| 03:54:14 | wycats | whoa... |
| 03:54:22 | jackdempsey | of what now |
| 03:54:23 | jackdempsey | who's on first |
| 03:54:24 | jackdempsey | heh |
| 03:54:24 | wycats | if you just do def foo top-level |
| 03:54:26 | wycats | it's private |
| 03:54:28 | wycats | lemme show you |
| 03:54:30 | tarcieri | yeah |
| 03:54:32 | jackdempsey | yeah |
| 03:54:33 | tarcieri | I noticed that |
| 03:54:36 | tarcieri | but not in irb for some reason |
| 03:55:02 | tarcieri | does the toplevel object have any other instance-specific behavior besides returning "main" for inspect? |
| 03:55:20 | wycats | pasted http://pastie.textmate.org/private/ojk7xohqjdld94qcslgw |
| 03:55:44 | wycats | I wonder what its method_missing looks like |
| 03:55:58 | tarcieri | what's so weird is that's fine in irb |
| 03:56:04 | jackdempsey | huh |
| 03:56:07 | tarcieri | >> def wtf?() 1; end |
| 03:56:07 | tarcieri | => nil |
| 03:56:07 | tarcieri | >> wtf? |
| 03:56:07 | tarcieri | => 1 |
| 03:56:16 | tarcieri | in !irb it's private |
| 03:56:29 | jackdempsey | so yea that makes sense |
| 03:56:31 | wycats | pasted http://pastie.textmate.org/private/npjone6bidygc5vc6l2ebq |
| 03:56:43 | jackdempsey | so back to what you were saying about scope |
| 03:56:51 | twbray leaves the room. | |
| 03:56:53 | jackdempsey | when you jsut def foo; end at the top level your'e fine |
| 03:57:00 | jackdempsey | but inside foo if you def another method it goes to nil |
| 03:57:06 | wycats | jackdempsey: nah |
| 03:57:11 | jackdempsey | lol nice |
| 03:57:12 | wycats | this is weirder than I thought |
| 03:57:48 | wycats | Oooh I found a bug in rbx ;) |
| 03:57:51 | wycats | in rbx it's not privat |
| 03:57:53 | wycats | private |
| 03:58:01 | jackdempsey | heh |
| 03:58:14 | wycats | pasted http://pastie.textmate.org/private/tjj5p9yondqdjypkb2itfa |
| 03:58:47 | jackdempsey | but wait shouldn't wtf? not be defined on nil? |
| 03:58:53 | jackdempsey | blows out eyeballs |
| 03:59:08 | obvio171 enters the room. | |
| 03:59:23 | jackdempsey | and is that call to wtf! necessary? |
| 04:03:17 | wycats | lol |
| 04:03:28 | jackdempsey | or did it just feel right |
| 04:03:29 | jackdempsey | hehe |
| 04:06:16 | trythil | hmm |
| 04:06:17 | trythil | http://pastie.textmate.org/private/ddsdiqhvbnjfsekfmd5q |
| 04:06:29 | trythil | I'm not sure if that clarifies anything |
| 04:06:34 | trythil | (it doesn't for me :P) |
| 04:07:21 | trythil | i'm not quite sure why the top-level binding acts differently from a method binding |
| 04:08:41 | gramos leaves the room. | |
| 04:09:26 | rue leaves the room. | |
| 04:09:33 | jackdempsey | heh |
| 04:10:05 | rue enters the room. | |
| 04:13:05 | qrush leaves the room. | |
| 04:17:49 | twbray enters the room. | |
| 04:30:27 | crafterm leaves the room. | |
| 04:33:08 | RyanTM leaves the room. | |
| 04:42:46 | mass leaves the room. | |
| 04:44:43 | binary42_ enters the room. | |
| 04:44:59 | binary42 leaves the room. | |
| 04:46:23 | mass enters the room. | |
| 04:46:33 | ezmobius enters the room. | |
| 04:53:17 | Jzalae leaves the room. | |
| 05:06:15 | shame enters the room. | |
| 05:06:31 | lchin enters the room. | |
| 05:07:25 | ijcd enters the room. | |
| 05:07:48 | twbray leaves the room. | |
| 05:09:12 | rue leaves the room. | |
| 05:09:45 | wyhaines enters the room. | |
| 05:10:08 | ijcd_ enters the room. | |
| 05:10:35 | rue enters the room. | |
| 05:12:19 | ezmobius_ enters the room. | |
| 05:13:14 | crafterm enters the room. | |
| 05:18:49 | wycats | evan: ~ Worker Thread Crashed with Exception: No method 'sleep' on an instance of Mutex. - (NoMethodError) |
| 05:18:50 | wycats | ? |
| 05:19:56 | ijcd_ leaves the room. | |
| 05:21:01 | crafterm leaves the room. | |
| 05:21:33 | ijcd leaves the room. | |
| 05:24:58 | ezmob_ enters the room. | |
| 05:26:56 | ezmobius leaves the room. | |
| 05:29:06 | kentaur enters the room. | |
| 05:29:12 | wyhaines leaves the room. | |
| 05:30:25 | ijcd enters the room. | |
| 05:35:28 | Reason enters the room. | |
| 05:36:50 | ijcd leaves the room. | |
| 05:40:39 | dfg59 leaves the room. | |
| 05:42:59 | ijcd enters the room. | |
| 05:43:17 | gnufied leaves the room. | |
| 05:46:09 | twbray enters the room. | |
| 05:48:56 | kentaur leaves the room. | |
| 05:49:43 | jbarnette leaves the room. | |
| 05:51:58 | ezmob- enters the room. | |
| 06:08:19 | wycats_ enters the room. | |
| 06:09:08 | rue leaves the room. | |
| 06:09:47 | anteaya leaves the room. | |
| 06:10:06 | rue enters the room. | |
| 06:17:03 | obvio171 leaves the room. | |
| 06:19:33 | blakewatters leaves the room. | |
| 06:25:06 | wycats leaves the room. | |
| 06:29:50 | thehcdreamer enters the room. | |
| 06:37:10 | tarcieri | *boggle* http://morepypy.blogspot.com/2008/06/hi-all-some-news-from-jit-front.html |
| 06:39:00 | tarcieri | We're going for a self-hosted Python implementation, so we wrote a JIT in Prolog... durr |
| 06:39:36 | ezmobius | heh |
| 06:40:31 | twbray leaves the room. | |
| 06:42:03 | jackdempsey | heh |
| 06:43:04 | larrytheliquid leaves the room. | |
| 06:49:21 | lchin leaves the room. | |
| 06:50:44 | thehcdreamer leaves the room. | |
| 06:55:08 | ryanlowe leaves the room. | |
| 06:55:26 | mutle leaves the room. | |
| 06:56:18 | mutle enters the room. | |
| 07:00:32 | ezmobius leaves the room. | |
| 07:00:33 | ezmobius_ leaves the room. | |
| 07:00:33 | ezmob_ leaves the room. | |
| 07:04:01 | wycats_ leaves the room. | |
| 07:04:31 | jackdempsey leaves the room. | |
| 07:07:52 | twbray enters the room. | |
| 07:08:32 | dary leaves the room. | |
| 07:22:20 | lchin enters the room. | |
| 07:23:45 | wycats enters the room. | |
| 07:26:09 | Fullmoon enters the room. | |
| 07:28:30 | jtoy leaves the room. | |
| 07:38:53 | inspired enters the room. | |
| 07:39:21 | loincloth enters the room. | |
| 07:39:43 | Maledictus enters the room. | |
| 07:48:31 | lstoll enters the room. | |
| 07:52:21 | Fullmoon leaves the room. | |
| 07:54:46 | antares_ enters the room. | |
| 08:10:35 | tim_w enters the room. | |
| 08:14:08 | tim_w leaves the room. | |
| 08:14:50 | tim_w enters the room. | |
| 08:15:24 | tim_w leaves the room. | |
| 08:16:43 | antares_ leaves the room. | |
| 08:20:46 | thehcdreamer enters the room. | |
| 08:25:34 | stepheneb leaves the room. | |
| 08:28:27 | neelance enters the room. | |
| 08:29:11 | Arjen_ enters the room. | |
| 08:38:02 | mutle leaves the room. | |
| 08:38:02 | Reason leaves the room. | |
| 08:38:02 | jp_tix leaves the room. | |
| 08:38:02 | dbussink leaves the room. | |
| 08:38:02 | zenspider leaves the room. | |
| 08:38:02 | anonuser leaves the room. | |
| 08:38:57 | mutle enters the room. | |
| 08:38:57 | Reason enters the room. | |
| 08:38:57 | jp_tix enters the room. | |
| 08:38:57 | anonuser enters the room. | |
| 08:38:57 | dbussink enters the room. | |
| 08:38:57 | zenspider enters the room. | |
| 08:43:06 | jzj enters the room. | |
| 08:43:38 | Yurik leaves the room. | |
| 08:47:13 | neelance leaves the room. | |
| 08:50:31 | antares_ enters the room. | |
| 08:58:58 | twbray leaves the room. | |
| 09:03:23 | octopod enters the room. | |
| 09:03:39 | twbray enters the room. | |
| 09:04:11 | twbray leaves the room. | |
| 09:04:38 | Yurik enters the room. | |
| 09:08:47 | rue leaves the room. | |
| 09:14:37 | rue enters the room. | |
| 09:15:47 | jzj leaves the room. | |
| 09:16:28 | qwert666 enters the room. | |
| 09:19:16 | wyhaines enters the room. | |
| 09:20:59 | Reason leaves the room. | |
| 09:30:46 | naeu enters the room. | |
| 09:32:07 | loincloth leaves the room. | |
| 09:35:24 | Fullmoon enters the room. | |
| 09:37:15 | Fullmoon leaves the room. | |
| 09:37:48 | Fullmoon enters the room. | |
| 09:48:57 | gnufied enters the room. | |
| 09:49:20 | jtoy enters the room. | |
| 09:51:19 | nicksieger leaves the room. | |
| 09:56:25 | lstoll leaves the room. | |
| 10:02:28 | benny leaves the room. | |
| 10:05:48 | edwardam leaves the room. | |
| 10:20:17 | michalw enters the room. | |
| 10:28:02 | rue leaves the room. | |
| 10:30:15 | wyhaines leaves the room. | |
| 10:40:28 | rue enters the room. | |
| 10:48:00 | yasuhito enters the room. | |
| 10:52:09 | qwert666_ enters the room. | |
| 10:57:54 | imajes_office leaves the room. | |
| 10:58:58 | yasuhito leaves the room. | |
| 11:05:48 | qwert666 leaves the room. | |
| 11:08:31 | rue leaves the room. | |
| 11:09:58 | rue enters the room. | |
| 11:17:21 | imajes enters the room. | |
| 11:37:46 | imajes leaves the room. | |
| 11:43:33 | jtoy leaves the room. | |
| 11:54:16 | imajes enters the room. | |
| 11:56:11 | acm enters the room. | |
| 12:08:20 | rue leaves the room. | |
| 12:09:28 | rue enters the room. | |
| 12:09:58 | chris2 enters the room. | |
| 12:13:17 | qrush enters the room. | |
| 12:21:20 | qrush leaves the room. | |
| 12:22:22 | radarek enters the room. | |
| 12:29:11 | hemulen leaves the room. | |
| 12:30:11 | atmos leaves the room. | |
| 12:32:48 | larrytheliquid enters the room. | |
| 12:35:17 | NoKarma enters the room. | |
| 12:49:07 | gramos enters the room. | |
| 12:49:08 | yasuhito enters the room. | |
| 12:50:58 | ijcd_ enters the room. | |
| 12:50:58 | ijcd leaves the room. | |
| 12:51:16 | ijcd_ leaves the room. | |
| 12:53:36 | RyanTM enters the room. | |
| 13:08:12 | rue leaves the room. | |
| 13:14:02 | rue enters the room. | |
| 13:29:24 | qwert666 leaves the room. | |
| 13:29:35 | headius enters the room. | |
| 13:29:37 | binary42_ leaves the room. | |
| 13:44:47 | cremes enters the room. | |
| 13:55:13 | inspired leaves the room. | |
| 13:55:50 | acm leaves the room. | |
| 14:02:29 | qwert666 enters the room. | |
| 14:02:31 | blakewatters enters the room. | |
| 14:08:16 | rue leaves the room. | |
| 14:09:33 | rue enters the room. | |
| 14:09:58 | qwert666 leaves the room. | |
| 14:12:57 | qwert666 enters the room. | |
| 14:17:19 | AndrewO enters the room. | |
| 14:17:24 | lchin leaves the room. | |
| 14:26:56 | binary42 enters the room. | |
| 14:27:25 | lchin enters the room. | |
| 14:30:52 | lchin leaves the room. | |
| 14:32:35 | pauldix enters the room. | |
| 14:33:26 | moofbong enters the room. | |
| 14:41:13 | qwert666_ enters the room. | |
| 14:59:52 | qwert666 leaves the room. | |
| 15:00:23 | wmoxam enters the room. | |
| 15:01:23 | macournoyer enters the room. | |
| 15:02:24 | Fullmoon leaves the room. | |
| 15:07:57 | rue leaves the room. | |
| 15:09:26 | antares_ leaves the room. | |
| 15:10:08 | JimMc enters the room. | |
| 15:12:07 | JimMc leaves the room. | |
| 15:13:34 | wyhaines enters the room. | |
| 15:14:06 | rue enters the room. | |
| 15:16:10 | stepheneb enters the room. | |
| 15:16:34 | dbussink | Defiler: having fun in amsterdam? |
| 15:24:08 | stouset enters the room. | |
| 15:29:20 | binary42 leaves the room. | |
| 15:51:08 | benburkert enters the room. | |
| 16:03:08 | Fullmoon enters the room. | |
| 16:03:08 | heycarsten enters the room. | |
| 16:07:46 | dary enters the room. | |
| 16:07:46 | rue leaves the room. | |
| 16:13:37 | rue enters the room. | |
| 16:19:26 | twbray enters the room. | |
| 16:19:51 | qwert666 enters the room. | |
| 16:24:53 | hemulen enters the room. | |
| 16:25:14 | twbray leaves the room. | |
| 16:27:14 | foysavas leaves the room. | |
| 16:29:35 | nicksieger enters the room. | |
| 16:31:34 | qwert666__ enters the room. | |
| 16:31:50 | foysavas enters the room. | |
| 16:37:04 | qwert666_ leaves the room. | |
| 16:37:51 | lopex_2725 enters the room. | |
| 16:46:54 | naeu leaves the room. | |
| 16:49:04 | binary42 enters the room. | |
| 16:49:26 | qwert666 leaves the room. | |
| 16:50:31 | Fullmoon leaves the room. | |
| 16:53:08 | dfg59 enters the room. | |
| 16:54:52 | Packet_Monkey enters the room. | |
| 17:00:15 | rue | Mooblis |
| 17:00:29 | twbray enters the room. | |
| 17:07:40 | rue leaves the room. | |
| 17:10:02 | twbray leaves the room. | |
| 17:13:16 | jbarnette enters the room. | |
| 17:14:09 | rue enters the room. | |
| 17:16:44 | neelance enters the room. | |
| 17:24:25 | yasuhito leaves the room. | |
| 17:25:08 | Packet_Monkey leaves the room. | |
| 17:25:36 | stouset leaves the room. | |
| 17:25:48 | NoKarma | brixen: I noticed that String#to_sym is like the slowness on Rubinius, compared to Ruby/JRuby |
| 17:26:47 | headius | at least it isn't actually the slowness, it's juse *like* the slowness |
| 17:27:01 | NoKarma | yes :) |
| 17:27:20 | NoKarma | it's fast for small Strings and gets slower the longer the String is |
| 17:27:23 | dfg59 leaves the room. | |
| 17:28:26 | brixen | NoKarma: I will put it on my list |
| 17:28:35 | NoKarma | brixen: where is evan, btw? |
| 17:28:39 | brixen | it's related to the Hash stuff |
| 17:28:43 | brixen | he's here |
| 17:28:46 | brixen | ping 'im |
| 17:29:31 | NoKarma | well, as long as you know why it's slow + how to fix it, I propably don't have to bug him about that :) |
| 17:30:03 | gnufied leaves the room. | |
| 17:30:09 | brixen | I don't know yet, but I'll be looking at it in this ticket: http://rubinius.lighthouseapp.com/projects/5089/tickets/415-cleanup-hash-c-code |
| 17:33:32 | anteaya enters the room. | |
| 17:35:02 | thehcdreamer leaves the room. | |
| 17:36:48 | dfg59 enters the room. | |
| 17:44:24 | twbray enters the room. | |
| 17:44:41 | headius leaves the room. | |
| 17:45:16 | jayWHY enters the room. | |
| 17:47:16 | twbray leaves the room. | |
| 17:50:04 | tim_w enters the room. | |
| 17:58:35 | dary leaves the room. | |
| 17:59:38 | dary enters the room. | |
| 17:59:57 | dary leaves the room. | |
| 18:00:00 | anteaya leaves the room. | |
| 18:02:33 | jayWHY leaves the room. | |
| 18:03:50 | anteaya enters the room. | |
| 18:03:58 | octopod leaves the room. | |
| 18:06:34 | benburkert_ enters the room. | |
| 18:06:39 | tim_w leaves the room. | |
| 18:07:30 | rue leaves the room. | |
| 18:10:57 | Rich_Morin | One of the (few) things I miss about Perl is that fact that it does a much better job than MRI about identifying unmatched quotes, etc. Are improved error diagnostics on the wish list for rbx? |
| 18:11:52 | jp_tix | Rich_Morin: how does that work in perl? |
| 18:12:26 | jp_tix | from a user's POV |
| 18:13:03 | jp_tix | is curious |
| 18:13:17 | Rich_Morin | Well, I just had a typo: logger.error(msg") |
| 18:13:40 | rue enters the room. | |
| 18:13:48 | Rich_Morin | In perl, I would have gotten a message like "possible unmatched quote in line 1234". |
| 18:14:11 | Rich_Morin | In Ruby, I get a bunch of syntax errors nowhere near the typo. |
| 18:15:29 | rue | Just so |
| 18:17:40 | Rich_Morin | rue: meaning? |
| 18:18:27 | c0sin enters the room. | |
| 18:19:25 | c0sin leaves the room. | |
| 18:20:23 | wycats leaves the room. | |
| 18:20:45 | Packet_Monkey enters the room. | |
| 18:21:23 | stouset enters the room. | |
| 18:22:52 | benburkert leaves the room. | |
| 18:23:05 | benburkert_ leaves the room. | |
| 18:23:41 | atmos enters the room. | |
| 18:25:25 | rue | Rich_Morin: Ruby error messages tend to suck |
| 18:25:33 | benburkert enters the room. | |
| 18:27:09 | Defiler | dbussink: To answer your earlier question, this is an amazing city. So unique. |
| 18:27:19 | Rich_Morin | So, is improving them on the wish list, even long term? |
| 18:31:12 | wycats enters the room. | |
| 18:31:35 | ijcd enters the room. | |
| 18:36:56 | lopex leaves the room. | |
| 18:37:52 | edwardam enters the room. | |
| 18:38:00 | rue | Rich_Morin: I do not see how it would hurt |
| 18:38:32 | rue | It would be handy to have the line |
| 18:41:27 | jbarnette leaves the room. | |
| 18:41:27 | RyanTM leaves the room. | |
| 18:41:27 | gramos leaves the room. | |
| 18:41:38 | ijcd leaves the room. | |
| 18:44:16 | jbarnette enters the room. | |
| 18:44:16 | RyanTM enters the room. | |
| 18:44:16 | gramos enters the room. | |
| 18:46:48 | benburkert_ enters the room. | |
| 18:48:45 | ryanlowe enters the room. | |
| 18:59:32 | ryanlowe enters the room. | |
| 18:59:33 | benburkert leaves the room. | |
| 18:59:47 | ryanlowe enters the room. | |
| 19:04:59 | luislavena enters the room. | |
| 19:05:02 | wycats leaves the room. | |
| 19:06:19 | wycats enters the room. | |
| 19:09:49 | ijcd enters the room. | |
| 19:11:04 | wycats leaves the room. | |
| 19:26:09 | wycats enters the room. | |
| 19:34:18 | gnufied enters the room. | |
| 19:37:28 | wycats_ enters the room. | |
| 19:47:47 | edwardam leaves the room. | |
| 19:47:54 | wycats leaves the room. | |
| 19:49:13 | anteaya leaves the room. | |
| 19:49:14 | octopod enters the room. | |
| 19:51:18 | anteaya enters the room. | |
| 20:02:57 | headius_ enters the room. | |
| 20:06:33 | gnufied | headius, i have hit on a memory bug with Queue class of Ruby and I think Jruby carries it too. |
| 20:06:47 | dbussink | Defiler: ah, did you go anywhere? |
| 20:07:16 | dbussink | to be honest, i haven't been to a lot of touristy things in amsterdam myself, although i've been there often enough :) |
| 20:07:29 | rue leaves the room. | |
| 20:07:49 | stouset_ enters the room. | |
| 20:08:10 | rue enters the room. | |
| 20:08:32 | brainopia enters the room. | |
| 20:11:02 | Defiler | dbussink: Saw the Rijksmuseum today, which was awesome |
| 20:11:17 | Defiler | and spent four hours or so walking through the city. Awesome |
| 20:11:21 | dbussink | Defiler: i've never been there, quite shameful |
| 20:11:28 | Defiler | You are a bad person |
| 20:11:37 | headius | gnufied: oh? |
| 20:11:43 | dbussink | we should leave something for saturday then :P |
| 20:11:52 | Defiler | They have some incredible pieces of art there. I can't wait to see it again when the full museum is open |
| 20:12:04 | gnufied | headius, http://pastie.org/225712 |
| 20:12:06 | headius | Defiler: get to the van gogh museum yet? |
| 20:12:10 | Defiler | They just have the 'masterpiece' wing open right now while they renovate |
| 20:12:25 | Defiler | doing the maritime and van gogh museums tomorrow, I think |
| 20:12:45 | headius | you could go to rembrandtplein and see night watch in 3D too |
| 20:12:51 | headius | 5 minutes stop, but it's interesting |
| 20:13:05 | Defiler | Definitely doing that too, since it looks like they are going to remove the statues this year |
| 20:13:23 | Defiler | The city government says they were just for the anniversary |
| 20:13:32 | Defiler | The people are not happy about it, so it may not happen |
| 20:13:40 | gnufied | headius, well, that code is reproducible part of some large codebase. and items pushed inside queued never get freed. |
| 20:13:43 | headius | gnufied: oh yeah, this thing |
| 20:13:57 | headius | I ran it the other day |
| 20:14:04 | gnufied | what happened? |
| 20:14:09 | headius | wasn't clear how to measure it |
| 20:14:13 | headius | gimme the instructions again |
| 20:14:13 | Defiler | headius: Do you have an opinion about my 'caller' post on ruby-core? |
| 20:14:28 | headius | Defiler: hadn't seen it, will look |
| 20:14:50 | Defiler | It was from a week or two ago, bt I just bumped it |
| 20:15:17 | gnufied | headius, run the code, see the memory size grow. send USR1 signal to process couple of times and see the process size grow some more. even when queue is empty, it will take the same memory, process size never reduces. |
| 20:16:26 | gnufied | headius, in ruby1.9, virtual memory size of process balloons like hell, 100 mb, res mem size, virt mem size, 800mb |
| 20:16:44 | gnufied | but anyways, i am not bothered with 1.9, i ran code against all implementations |
| 20:16:48 | headius | Defiler: does that caller output match the backtrace? |
| 20:16:51 | gnufied | except rubinius |
| 20:16:54 | headius | they keep doing weird things with the backtrace |
| 20:17:16 | headius | I'll try to send USR1...I think JVM hooks that for other things |
| 20:17:50 | headius | Defiler: why and how closely to do want it to match |
| 20:17:55 | headius | er |
| 20:18:06 | headius | in english this time: why and how closely do you want it to match? |
| 20:18:17 | dbussink | Defiler: you know that they actually forgot the anniversary? |
| 20:18:26 | gnufied | headius, if you can confirm, memory not getting freed with 1.8, i will appreciate that too, since i am hoping i am wrong. |
| 20:19:31 | headius | for me queue length went as high as 41k and then back down |
| 20:19:38 | headius | now it's spraying "All tasks has been executed" at me |
| 20:19:42 | headius | on JRuby |
| 20:19:59 | headius | I presume this is never going to stop? |
| 20:19:59 | gnufied | and memory usuage went back? |
| 20:20:00 | stouset leaves the room. | |
| 20:20:06 | gnufied | headius, no |
| 20:20:18 | gnufied | its part of a reactor loop |
| 20:20:29 | gnufied | something like eventmachine |
| 20:20:33 | headius | well JVM never shrinks memory footprint, so this might not be a good measurement for JRuby |
| 20:21:45 | gnufied | hmm, so if i add some more task using USR1 signal, its going to go on and on? |
| 20:21:46 | headius | total process memory appears to have gone to 367.46MB, now holding dead even |
| 20:21:50 | headius | well no |
| 20:21:53 | headius | it's heap memory |
| 20:22:03 | headius | so it will now use up to that again, and only grow more if it exceeds |
| 20:22:06 | headius | I can fire it again and see |
| 20:22:28 | headius | running now |
| 20:22:44 | headius | never went up |
| 20:23:04 | gnufied | try with ruby1.8, i will really appreciate this. |
| 20:23:08 | headius | well, went up a little, probably something jitted |
| 20:23:12 | hemulen leaves the room. | |
| 20:23:15 | headius | ok, one more with jruby then I'll try MRI |
| 20:23:35 | Packet_Monkey leaves the room. | |
| 20:23:47 | hemulen enters the room. | |
| 20:23:48 | headius | queue length never gets as high, I presume that means the consumer is speeding up and processing faster |
| 20:24:06 | hemulen leaves the room. | |
| 20:24:10 | headius | yeah, after one USR1 it went to 367MB...after two more up to 380 |
| 20:24:24 | headius | extra 13MB is probably within the bounds of JRuby and hotspot JIT |
| 20:24:56 | headius | some of that 380 may go up and down, it's just the heap that stays the same size |
| 20:25:00 | headius | I could check actual heap size if you like |
| 20:25:04 | naeu enters the room. | |
| 20:25:41 | headius | jruby --manage lets you connect to it with jconsole btw, if you ever want to try that |
| 20:25:44 | gnufied | and once all objects tasks are out of queue, it will stay at same level, since jvm never shrinks memory. hmm, thats not what i would expect. |
| 20:26:15 | headius | one of JVM's achilles heels |
| 20:26:16 | naeu leaves the room. | |
| 20:26:39 | headius | I've asked about it and just got a lot of hand-wavy jabber about the complexity of shrinking the heap without impacting execution |
| 20:26:48 | gnufied | in my real app, i am getting around 50K AR objects and processing them using 20 threads, i expect memory usage to go down, once all tasks are executed. |
| 20:27:20 | headius | I can confirm that it at least doesn't grow for subsequent runs, so it's not leaking much if any |
| 20:27:24 | gnufied | and i think, ruby garbage collector, doesn't shrink/free either and hence the niceties. |
| 20:28:11 | gnufied | yeah, it won't grow if you don't add more than allocated queue size. |
| 20:28:54 | gnufied | headius, thanks, i didn't about that jvm behaviour, i will try to workaround. |
| 20:29:38 | headius | you could try to choke it down and force it to use less, but it will blow up if it actually needs more |
| 20:29:49 | headius | I think we have the max heap size at 512MB by default |
| 20:30:57 | gnufied | Perhaps a SizedQueue and checking on queued task size is the solution. |
| 20:31:17 | gnufied | since, i have a reactor loop, i can always check if queue can accept more tasks or is full |
| 20:31:48 | headius | yeah |
| 20:32:34 | gnufied | no, i am still storing tasks in an array hence is kinda useless. damn. do not worry, i need to think it through. |
| 20:33:44 | Defiler | headius: I haven't decided how closely it should match yet. I haven't been able to make the call, because I do not know if MRI's output is a bug or a feature |
| 20:33:58 | Defiler | headius: If it is a feature, then I don't want it to match, because that is retarded |
| 20:34:58 | stepheneb_ enters the room. | |
| 20:34:59 | gnufied | headius, once last thing. i appreciate jvm limitation. but is MRI behaviour expected? shouldn't gc free the memory? |
| 20:37:46 | gnufied | headius, where can i read about the jvm gc behaviour? couple of docs i read, seem to indicate jvm *does* shrink memory size. |
| 20:37:52 | headius | gnufied: I'm not sure about MRI |
| 20:38:09 | headius | gnufied: I'm referring to hotspot (sun's JVM) at least, so it's possible others do shrink |
| 20:38:30 | headius | google "hotspot gc" or "hotspot heap" or something...there's quite a few good articles |
| 20:38:44 | headius | Defiler: I haven't paid much attention to caller output in JRuby |
| 20:39:58 | drbrain | gnufied: note that with ruby's GC it can be difficult to decrease RSIZE |
| 20:40:01 | hemulen enters the room. | |
| 20:40:02 | drbrain | err, no, VSIZE |
| 20:40:06 | Defiler | I'll see how it compares |
| 20:40:24 | Defiler | Actually, seeing the 'compliance level' in JRuby will probably help me figure out exactly what RSpec wants |
| 20:40:45 | drbrain | RSS should shrink, but VSIZE may be kept large due to a referenced object sitting far away from a bunch of unused pages |
| 20:41:27 | headius | drbrain: yeah, good point |
| 20:41:45 | headius | lack of compacting means one far-flung object can keep the heap big |
| 20:41:46 | cremes leaves the room. | |
| 20:41:49 | loincloth enters the room. | |
| 20:42:03 | headius | so not seeing it shrink probably isn't unusual |
| 20:42:19 | drbrain | even though intervening pages have been reclaimed by the OS |
| 20:42:22 | headius | especially since this processing probably creates some long-lived objects toward the end of the run that are near the end of the heap |
| 20:45:26 | benburkert enters the room. | |
| 20:48:07 | Fullmoon enters the room. | |
| 20:48:25 | c0sin enters the room. | |
| 20:50:59 | stepheneb leaves the room. | |
| 20:51:12 | headius | Defiler: checking JRuby for that example now |
| 20:52:08 | headius | hmm, we cut it off at the eval |
| 20:52:28 | headius | I just get ["(eval):1:in `caller_in_eval'"] |
| 20:53:03 | twbray enters the room. | |
| 20:54:58 | Defiler | That seems wrong to me |
| 20:55:13 | headius | I think we're just doing what backtraces do |
| 20:55:13 | Defiler | Surely the caller info should include the method that called eval |
| 20:55:19 | mutle_ enters the room. | |
| 20:55:28 | dbussink | Defiler: you just want headius to experience your pain too ;) |
| 20:55:35 | Defiler | Interesting that RSpec runs with that output, though |
| 20:55:45 | headius | yeah, backtrace is the same |
| 20:55:49 | Defiler | Do all the rspec tests pass under jruby? Time to find out I guess |
| 20:55:53 | headius | could be a bug that we don't fill in the rest |
| 20:56:00 | headius | yes, or at least they did last time I tried |
| 20:56:08 | Defiler | That is badass |
| 20:56:10 | headius | we got them all passing before we shipped |
| 20:56:13 | gnufied | drbrain, well, i am not worried about VSIZE, which is large only in 1.9, in 1.8 its the RSS thats not shrinking. but anyways. |
| 20:56:21 | Defiler | Some of them are a nightmare |
| 20:56:23 | headius | not sure if our CI has been keeping up or not |
| 20:57:29 | headius | yeah, looks like we may have turned that CI run off |
| 20:57:50 | dfg59 leaves the room. | |
| 21:00:40 | yipstar leaves the room. | |
| 21:02:30 | benburkert_ leaves the room. | |
| 21:04:21 | larrytheliquid leaves the room. | |
| 21:05:57 | mutle leaves the room. | |
| 21:07:19 | rue leaves the room. | |
| 21:08:41 | rue enters the room. | |
| 21:11:47 | benburkert leaves the room. | |
| 21:13:34 | ezmobius enters the room. | |
| 21:13:34 | ezmobius leaves the room. | |
| 21:13:35 | benburkert enters the room. | |
| 21:13:50 | ezmobius_ enters the room. | |
| 21:14:04 | anteaya leaves the room. | |
| 21:14:04 | maharg leaves the room. | |
| 21:14:04 | Rich_Morin__ leaves the room. | |
| 21:15:41 | anteaya enters the room. | |
| 21:15:41 | Rich_Morin__ enters the room. | |
| 21:15:41 | maharg enters the room. | |
| 21:17:34 | anteaya_ enters the room. | |
| 21:22:31 | gnufied leaves the room. | |
| 21:27:38 | anteaya leaves the room. | |
| 21:29:59 | mutle_ enters the room. | |
| 21:40:20 | mutle leaves the room. | |
| 21:49:14 | neelance leaves the room. | |
| 21:52:26 | blakewatters leaves the room. | |
| 21:52:28 | neelance enters the room. | |
| 21:53:55 | edwardam enters the room. | |
| 21:58:06 | luislaven1 enters the room. | |
| 21:59:20 | zenspider | I think I got the new CI system working... on the client side that is |
| 21:59:21 | anteaya_ leaves the room. | |
| 21:59:37 | zenspider | we're still handwavy on the trigger/server side, but I think john and I worked it out last night |
| 22:02:16 | Defiler | Nice. Did you figure out how to force git to obey? |
| 22:03:25 | zenspider | Defiler: I spent two hours stuck on that bullshit and later that evening it just worked |
| 22:03:41 | zenspider | so I suffered Schwartz for no fucking reason whatsoever |
| 22:04:27 | Defiler | haha flawless |
| 22:04:42 | ezmobius leaves the room. | |
| 22:07:10 | rue leaves the room. | |
| 22:07:20 | twbray leaves the room. | |
| 22:11:39 | twbray enters the room. | |
| 22:13:13 | rue enters the room. | |
| 22:13:58 | neelance leaves the room. | |
| 22:15:15 | yipstar enters the room. | |
| 22:15:23 | Maledictus leaves the room. | |
| 22:16:24 | luislavena leaves the room. | |
| 22:16:55 | hemulen_ enters the room. | |
| 22:23:31 | chopmo enters the room. | |
| 22:24:09 | mutle enters the room. | |
| 22:24:56 | chopmo enters the room. | |
| 22:26:41 | hemulen leaves the room. | |
| 22:26:41 | heycarsten leaves the room. | |
| 22:26:41 | wmoxam leaves the room. | |
| 22:26:41 | michalw leaves the room. | |
| 22:26:41 | mass leaves the room. | |
| 22:26:41 | jacen_ leaves the room. | |
| 22:26:41 | corundum leaves the room. | |
| 22:26:41 | vincentlu leaves the room. | |
| 22:26:41 | nexcastellan leaves the room. | |
| 22:26:41 | tarcieri leaves the room. | |
| 22:26:41 | dmpk2k leaves the room. | |
| 22:26:41 | explody leaves the room. | |
| 22:26:41 | tmm1 leaves the room. | |
| 22:27:14 | hemulen enters the room. | |
| 22:27:14 | heycarsten enters the room. | |
| 22:27:14 | wmoxam enters the room. | |
| 22:27:14 | michalw enters the room. | |
| 22:27:14 | mass enters the room. | |
| 22:27:14 | jacen_ enters the room. | |
| 22:27:14 | corundum enters the room. | |
| 22:27:14 | explody enters the room. | |
| 22:27:14 | dmpk2k enters the room. | |
| 22:27:14 | tmm1 enters the room. | |
| 22:27:14 | nexcastellan enters the room. | |
| 22:27:14 | vincentlu enters the room. | |
| 22:27:14 | tarcieri enters the room. | |
| 22:27:57 | hemulen__ enters the room. | |
| 22:28:18 | hemulen__ leaves the room. | |
| 22:28:34 | hemulen__ enters the room. | |
| 22:29:35 | hemulen__ leaves the room. | |
| 22:30:52 | ezmobius enters the room. | |
| 22:31:36 | chopmo enters the room. | |
| 22:31:55 | hemulen leaves the room. | |
| 22:32:40 | radarek leaves the room. | |
| 22:33:35 | moofbong leaves the room. | |
| 22:33:37 | hemulen_ leaves the room. | |
| 22:33:46 | twbray leaves the room. | |
| 22:34:48 | mutle_ leaves the room. | |
| 22:35:00 | hemulen enters the room. | |
| 22:36:36 | Fullmoon leaves the room. | |
| 22:36:54 | Fullmoon enters the room. | |
| 22:39:48 | twbray enters the room. | |
| 22:39:59 | twbray leaves the room. | |
| 22:42:00 | mutle_ enters the room. | |
| 22:43:23 | headius | Defiler: if you can get any sort of answer about what's proper for caller, let me know (doubtful, of course) |
| 22:43:35 | headius | I think I might file a bug against caller for us, because it seems that cutting it off like backtraces isn't correct at any rate |
| 22:48:32 | pauldix leaves the room. | |
| 22:50:54 | mutle leaves the room. | |
| 22:51:54 | AndrewO leaves the room. | |
| 22:54:16 | brainopia leaves the room. | |
| 22:54:38 | neelance enters the room. | |
| 22:54:39 | Fullmoon leaves the room. | |
| 22:54:45 | Fullmoon enters the room. | |
| 22:54:48 | hemulen leaves the room. | |
| 22:56:22 | luislaven1 leaves the room. | |
| 22:56:34 | thehcdreamer enters the room. | |
| 22:59:38 | stouset_ leaves the room. | |
| 23:06:08 | yipstar leaves the room. | |
| 23:08:02 | rue leaves the room. | |
| 23:08:43 | rue enters the room. | |
| 23:14:48 | thehcdreamer leaves the room. | |
| 23:15:05 | twbray enters the room. | |
| 23:16:02 | twbray leaves the room. | |
| 23:17:58 | edwardam_ enters the room. | |
| 23:17:58 | edwardam leaves the room. | |
| 23:21:05 | headius | evan: can't you take a train up there or something? |
| 23:22:37 | octopod leaves the room. | |
| 23:24:14 | Arjen_ leaves the room. | |
| 23:24:45 | Arjen_ enters the room. | |
| 23:31:53 | chopmo leaves the room. | |
| 23:34:34 | chris2 leaves the room. | |
| 23:37:41 | heycarsten leaves the room. | |
| 23:42:30 | Arjen_ leaves the room. | |
| 23:52:33 | brainopia enters the room. | |
| 23:53:56 | anonuser leaves the room. | |
| 23:54:10 | lopex enters the room. |