Show enters and exits. Hide enters and exits.
| 00:31:51 | slava | evan: wtf |
| 00:31:57 | slava | evan: fewer peeps in here than in #concatenative? |
| 00:32:15 | slava | I thought rubinius was like, shiny and cool and stuff |
| 00:32:16 | evan | *shrug* |
| 00:32:22 | slava | :P |
| 00:32:32 | headius | it's so cool it doesn't need IRC peeps |
| 00:38:06 | boyscout | Add accessor specialization for internal types - eaa8061 - Evan Phoenix |
| 00:38:06 | boyscout | Add specializations for accessors on table ivars - 24fa5e4 - Evan Phoenix |
| 00:38:06 | boyscout | Add push_my_offset, a fast (but unsafe) version of push_my_field - 0252c23 - Evan Phoenix |
| 00:38:27 | slava | evan: you're changing how ivars work? |
| 00:38:34 | boyscout | CI: Build 0252c23 failed. http://ci.rubini.us/rubinius/builds/0252c2380480ddfd5e3015966d3bb0935247a5c5 |
| 00:39:58 | evan | a little. |
| 00:40:06 | evan | mainly better ways of accessing certain ones |
| 00:40:21 | evan | oops |
| 00:40:22 | evan | forgot a file. |
| 00:41:19 | boyscout | Add missed file - 97675a2 - Evan Phoenix |
| 00:41:34 | evan | the accessor method logic was really generic |
| 00:41:43 | evan | so it now basically back patches itself |
| 00:42:00 | evan | to use a specific version after the first access |
| 00:42:27 | slava | ah, cool |
| 00:42:35 | slava | performance improvement? |
| 00:42:54 | evan | hot benchmarks show an improvement, yes. |
| 00:43:01 | evan | specs runs, not really |
| 00:44:30 | evan | there is an instruction now that allows for direct memory access of an object's body |
| 00:44:44 | evan | which means I probably need to add some kind of verifier soon |
| 00:45:08 | slava | you want to keep your bytecode memory-safe? |
| 00:45:15 | slava | you can probably push all kinds of checks to veirfy-time |
| 00:45:27 | evan | right |
| 00:47:21 | evan | mainly need to be sure those instructions are verified or, in some cases, not allowed to exist at all |
| 00:47:24 | evan | in imported streams |
| 00:47:28 | evan | and only generated internally by the VM |
| 00:47:42 | slava | do your stack ops have runtime checks? |
| 00:48:06 | evan | like stack size checks? |
| 00:48:07 | evan | no |
| 00:49:05 | slava | what happens if invalid bytecode has a stack underflow? |
| 00:49:09 | slava | or overflow for that matter |
| 00:49:17 | evan | atm? crash. |
| 00:49:21 | evan | or weird behavior |
| 00:49:24 | slava | ah |
| 00:49:36 | evan | there's really no such thing as an invalid bytecode |
| 00:49:39 | slava | so why do you need a verifier for the ivar instruction? :) |
| 00:50:09 | evan | so that push_my_offset can not be used directly in a .rbc |
| 00:50:18 | evan | and only generated by the specializer |
| 00:50:37 | slava | unless you also make stack ops safe I don't see much of a gain |
| 00:51:03 | evan | i don't follow. |
| 00:51:41 | boyscout | CI: 97675a2 success. .................................................................................................... .................................................................................................... .................................................................................................... ............................................................................... |
| 00:51:46 | evan | arg. |
| 00:51:54 | slava | well, what do you hope to gain from a verifier? sandboxing of some kind later on? |
| 00:52:14 | evan | not loading bad .rbc files |
| 00:52:18 | evan | that might blow up the VM |
| 00:52:42 | slava | what about running bad .rbc files that might blow up the VM? |
| 00:52:54 | evan | well, the stack size is in the .rbc file |
| 00:53:00 | evan | so if someone screw something up |
| 00:53:22 | evan | and they have a bytecode sequence that uses more stack than needed |
| 00:53:24 | evan | for instance |
| 01:02:18 | slava | I wonder if it would violate twitter's ToS to have a CI system tweet notifications |
| 01:06:37 | jptix | i'm sure you that would get you a lot of followers :) |
| 01:06:59 | slava | I like it how you guys have an IRC bot, nice and lightweight |
| 01:07:11 | slava | I have a mailing list and if I screw something up I get spammed by 14 machines |
| 01:07:25 | slava | so I'm thinking of hooking up some kind of web or twitter interface instaed |
| 01:11:31 | rue | A feed? |
| 01:12:47 | headius | slava: there are some projects that do that |
| 01:12:57 | headius | and it's extremely annoying if you have searches running |
| 01:13:10 | slava | twitter searches? |
| 01:13:11 | headius | like my search for "ironruby" picks up their commits and CI |
| 01:13:13 | headius | yes |
| 01:13:14 | slava | haha |
| 01:13:22 | slava | yeah, that's a good point |
| 01:13:32 | slava | commits on twitter seems excessive |
| 01:13:35 | headius | yes |
| 01:13:45 | slava | that's like, on the same level as tweeting about clipping your toenails |
| 01:13:50 | headius | I'm still waiting for someone to draft up an IP-over-Twitter RFC though |
| 01:13:56 | slava | haha |
| 01:14:18 | headius | maybe for multicast video or something :) |
| 01:47:56 | ddub | headius: we need some sort of punycode IP<->account name translation, so probably two specs |
| 01:48:20 | headius | true |
| 01:48:59 | ddub | I see @nick to specify a to, from being omitted based on the sender, port and sequence information, a CRC, then approximately 5 bytes worth of information |
| 01:49:57 | ddub | ponders a binary <-> unicode text transform as well |
| 01:53:34 | ddub | wonders, if he was going to put one sticker or emblem on his car, what would it be? |
| 01:53:38 | ddub | perhaps this? http://www.rof.com/product_p/2290-pq.htm |
| 17:09:28 | evan | morning. |
| 17:09:39 | brixen | morning |
| 17:09:49 | brixen | so, I was really out of it last night |
| 17:09:58 | brixen | profiler = ... .new |
| 17:10:02 | brixen | profiler.start |
| 17:10:04 | brixen | blah |
| 17:10:09 | brixen | profiler.stop |
| 17:10:12 | brixen | profiler.show |
| 17:10:17 | brixen | but there's a better way |
| 17:10:28 | brixen | profiler.profile do ... end |
| 17:10:59 | evan | yeah |
| 17:11:01 | evan | i was doing that |
| 17:11:03 | evan | and getting no results |
| 17:11:18 | brixen | well, the gist just had .new and .show |
| 17:11:32 | evan | there were .start and .stop at one point... |
| 17:11:38 | evan | i changed it to use .profile do |
| 17:11:47 | evan | i'll try again. |
| 17:11:53 | brixen | ohh, I see now |
| 17:11:56 | brixen | hrm |
| 17:12:36 | brixen | I'll try this with something other than rack |
| 17:12:41 | brixen | I can't load rack/router |
| 17:12:52 | evan | you have to get it from git |
| 17:13:16 | evan | git://github.com/carllerche/rack-router.git |
| 17:13:33 | rue | Disabling Rack::ShowExceptions is a good idea until the dynamic locals are sorted out |
| 17:13:51 | evan | rue: for this, we don't care. |
| 17:16:50 | brixen | if I put the profiler.profile inside x.report, I get sensible results |
| 17:17:32 | evan | huh? |
| 17:17:37 | evan | really?! |
| 17:17:39 | brixen | yeah |
| 17:17:47 | brixen | I must have a leave() messed up |
| 17:17:51 | rue | Well, it fucks up the stack pretty nicely so it might have other opinions on the matter |
| 17:17:53 | brixen | did you check my commit? |
| 17:18:04 | evan | rue: sounds like a nasty bug |
| 17:18:07 | evan | do you have any details? |
| 17:18:14 | evan | sounds like something that needs to be fixed asap |
| 17:18:47 | evan | brixen: no |
| 17:19:12 | evan | wait |
| 17:19:13 | evan | which commit? |
| 17:19:41 | rue | evan: ShowExceptions completely eats it when it runs Erb to construct the output from its template |
| 17:19:59 | evan | whats the repro code? |
| 17:20:09 | evan | eats it == crash? |
| 17:20:50 | evan | brixen: weird |
| 17:20:51 | evan | ok |
| 17:21:00 | evan | i'm getting results if i put profile {} inside report now |
| 17:21:26 | rue | It completely implodes, yes. The repro I was working with was running Mongrel with Lint on (SERVER_NAME was not being set caused it to trigger) |
| 17:21:45 | evan | whats Lint? |
| 17:21:48 | evan | how do I do this here? |
| 17:21:51 | rue | Rack::Lint |
| 17:22:16 | evan | ok.. |
| 17:22:18 | evan | how do I run this? |
| 17:23:30 | evan | brixen: http://gist.github.com/95268 |
| 17:23:44 | evan | why does #toplevel report 10k calls? |
| 17:23:52 | evan | the times loop? |
| 17:23:55 | evan | oh oh |
| 17:24:03 | evan | it's the block passed to times |
| 17:24:20 | rue | http://gist.github.com/87260 |
| 17:24:59 | evan | rue: does this work with the rack gem? |
| 17:25:17 | rue | evan: Yes, all installed with vm/vm gem |
| 17:25:49 | rue | For sanity check, if you comment out `use Rack::Lint` you should get output |
| 17:25:58 | evan | ok. |
| 17:28:28 | evan | rue: ok, yep. no Lint, works |
| 17:29:32 | evan | rue: with 'use Rack::Lint' it seems to work for me |
| 17:30:31 | rue | Ohh, hm. Lemme try.. should probably rebuild Mongrel in case |
| 17:30:44 | evan | yeah, I had to rebuild mongrel |
| 17:30:49 | evan | it needed some old capi symbols |
| 17:31:24 | brixen | evan: back |
| 17:31:41 | rue | evan: Actually--you mean works with Lint as in you see the same output? |
| 17:31:42 | brixen | evan: did you check that I have the leave() calls right in the profiler commit? |
| 17:31:57 | evan | rue: I ran your script |
| 17:32:00 | evan | rue: and it ran fine |
| 17:32:02 | evan | thats all I did |
| 17:32:11 | brixen | evan: the specs for simple method calls and a single block seem to pass |
| 17:32:17 | evan | brixen: oh, i don't think so... |
| 17:32:27 | brixen | but I didn't do specs for a block inside of a block |
| 17:32:42 | brixen | didn't think of it |
| 17:33:08 | brixen | 10M calls to Array#[] |
| 17:33:10 | brixen | wowsers |
| 17:33:32 | evan | yeah |
| 17:33:45 | evan | so, we should allow this to be sorted in different ways |
| 17:33:59 | evan | because, in this case, sorting by 'self seconds' is what we want |
| 17:34:03 | evan | check out String#count_table |
| 17:34:06 | rue | evan: So the problem with ShowExceptions might still exist if you are just seeing the working output page. Then probably need to invoke the outputter directly |
| 17:34:12 | evan | 4s inside count_table |
| 17:34:32 | brixen | yeah |
| 17:34:33 | evan | rue: ok, just let me know how to repro the problem |
| 17:35:05 | evan | this is the version drbrain pulled into ruby land, yes? |
| 17:35:06 | brixen | evan: want an option arg to #profile or something? |
| 17:35:11 | brixen | evan: yeah |
| 17:35:15 | evan | brixen: sure, that would be rad |
| 17:35:19 | brixen | k |
| 17:35:49 | evan | self-seconds and self-ms/call would be great |
| 17:35:55 | brixen | k |
| 17:36:13 | evan | self-ms/call is 0.00 A LOT |
| 17:36:15 | evan | but when it's not |
| 17:36:19 | evan | thats when you really want to know |
| 17:36:25 | brixen | sure |
| 17:36:45 | evan | you know what would be rad |
| 17:36:50 | evan | as a fun sprint sometime |
| 17:37:00 | evan | we should have profile pop up a cocoa window |
| 17:37:03 | brixen | :sort => [:self_seconds, :self_ms, ...] |
| 17:37:04 | evan | with the results in a real table |
| 17:37:09 | brixen | something like that ^^ |
| 17:37:10 | evan | so you can click on the headers and have them sorted for ya |
| 17:37:15 | brixen | heh |
| 17:37:21 | brixen | yeah, that'd be cool |
| 17:37:27 | evan | yeah, that sort is fine |
| 17:37:31 | evan | i'll probably usually do one value |
| 17:37:34 | evan | :sort => :self_ms |
| 17:37:40 | brixen | sure |
| 17:37:57 | evan | oh oh |
| 17:38:00 | evan | if we do the cocoa window |
| 17:38:06 | evan | then we could have 'tips' by certain lines |
| 17:38:11 | evan | like a tip on #count_table |
| 17:38:21 | evan | that says "this is a big, hot method!" |
| 17:38:30 | brixen | yep |
| 17:38:56 | brixen | btw, this is the commit 7d16cc5 |
| 17:39:03 | brixen | for count_table |
| 17:39:03 | evan | ok |
| 17:39:23 | brixen | and this 12bcc9f |
| 17:39:43 | brixen | late start, grabbing some food |
| 17:39:45 | brixen | bbiab.. |
| 17:40:17 | evan | k |
| 17:40:59 | evan | ug. |
| 17:41:04 | evan | 4s in squeeze |
| 17:41:09 | evan | and ya know the code that uses it? |
| 17:41:18 | evan | "/#{path}".squeeze("/") |
| 17:41:26 | evan | thats it. |
| 18:17:15 | boyscout | Added bigdecimal extension. - 0eb8c0f - Brian Ford |
| 18:17:15 | boyscout | Updates to capi to support bigdecimal extension. - c1bed93 - Brian Ford |
| 18:17:15 | boyscout | Added arity checking to NativeMethod calls. - 5c26025 - Brian Ford |
| 18:17:15 | boyscout | Fix sprintf type to satisfy gcc on linux. - b6730de - Brian Ford |
| 18:17:15 | boyscout | Added rb_bug, rb_warn, rb_fatal. - d180968 - Brian Ford |
| 18:17:15 | boyscout | Fill in backtrace in rb_raise. - 89c8096 - Brian Ford |
| 18:17:17 | boyscout | Fixed capi constant test. - 19f15f9 - Brian Ford |
| 18:17:19 | boyscout | Updated CI tags for bigdecimal. - 6a28414 - Brian Ford |
| 18:17:38 | brixen | still have some work to do on bigdecimal |
| 18:17:51 | evan | nice |
| 18:17:55 | brixen | but first this profiler stuff |
| 18:18:01 | evan | i'm poking the count_table stuff |
| 18:18:05 | brixen | k |
| 18:18:08 | evan | i think i'm going to just revert drbrain's change |
| 18:18:14 | evan | it revert pretty cleanly |
| 18:18:19 | evan | reverts |
| 18:18:24 | brixen | there's probably another primitive that would be good there |
| 18:18:33 | brixen | I tried to limit the prims when I did that work |
| 18:18:38 | evan | right |
| 18:18:44 | evan | i think that count_table should probably be a primitive |
| 18:18:50 | evan | on it's own |
| 18:18:53 | brixen | yeah |
| 18:19:43 | brixen | I'll be happy to rewrite all that in ruby when we have the compiler/jit to support it |
| 18:19:51 | brixen | till then, it's too time critical |
| 18:19:51 | evan | yeah |
| 18:22:45 | boyscout | CI: 6a28414 success. 1502 files, 7234 examples, 23646 expectations, 0 failures, 0 errors |
| 18:24:13 | brixen | boyscout: botsnack |
| 18:25:09 | evan | wtf |
| 18:25:18 | evan | my computer is being really weird. |
| 18:26:10 | evan | brb. |
| 18:36:55 | brixen | evan: you know why you didn't get profiler output? |
| 18:37:04 | evan | why? |
| 18:37:15 | brixen | x.report just puts the block in a list |
| 18:37:21 | brixen | bmbm runs it |
| 18:37:25 | evan | doh! |
| 18:37:29 | brixen | :) |
| 18:37:35 | evan | le sigh. |
| 18:37:39 | brixen | heh |
| 18:45:04 | evan | a great way to grind OS X to halt |
| 18:45:13 | evan | let spotlight index your USB backup drive |
| 19:13:17 | evan | arg. |
| 19:13:19 | evan | specs wont run. |
| 19:13:25 | evan | i'm getting |
| 19:13:32 | evan | Runtime exception: field access denied |
| 19:13:35 | evan | suddenly |
| 19:23:32 | brixen | after pulling my commits? |
| 19:24:20 | evan | yeah |
| 19:24:24 | evan | i did a clean |
| 19:24:26 | evan | seems ok now |
| 19:24:33 | brixen | ok |
| 19:56:45 | boyscout | Cruft prune - b8d062d - Evan Phoenix |
| 19:56:46 | boyscout | Revert "Replace String#count_table with a primitiveless version, and remove the primitive" - d6646f3 - Evan Phoenix |
| 20:03:34 | boyscout | CI: d6646f3 success. 1502 files, 7234 examples, 23646 expectations, 0 failures, 0 errors |
| 21:11:51 | headius | yay, I have a working rbx build on the new machine |
| 21:13:33 | rue | Hurray! |
| 21:14:18 | rue | Aww! GPL: http://www.libnui.net/ |
| 22:34:27 | evan | welp, apple store doesn't know whats up with my laptop |
| 22:34:37 | evan | so i can get the logic board replaced if I pay for it |
| 22:40:41 | rue | If that is what is wrong with it? |
| 22:55:26 | evan | rue: well, the did all the other tests |
| 22:55:37 | evan | so even if they saw what I was seeing |
| 22:55:40 | evan | the outcome would be the same |
| 22:55:42 | evan | new logic board |
| 23:13:54 | rue | Or you could get one of the 32" screens, a MacPro and a porter with a backpack |
| 23:14:20 | slava | I got another 8gb of ram for my mac pro |
| 23:14:22 | slava | going to install it in a bit |
| 23:25:09 | evan | slava: will ya have 16G then? |
| 23:31:05 | slava | evan: jeah |