Index

Show enters and exits. Hide enters and exits.

00:31:51slavaevan: wtf
00:31:57slavaevan: fewer peeps in here than in #concatenative?
00:32:15slavaI thought rubinius was like, shiny and cool and stuff
00:32:16evan*shrug*
00:32:22slava:P
00:32:32headiusit's so cool it doesn't need IRC peeps
00:38:06boyscoutAdd accessor specialization for internal types - eaa8061 - Evan Phoenix
00:38:06boyscoutAdd specializations for accessors on table ivars - 24fa5e4 - Evan Phoenix
00:38:06boyscoutAdd push_my_offset, a fast (but unsafe) version of push_my_field - 0252c23 - Evan Phoenix
00:38:27slavaevan: you're changing how ivars work?
00:38:34boyscoutCI: Build 0252c23 failed. http://ci.rubini.us/rubinius/builds/0252c2380480ddfd5e3015966d3bb0935247a5c5
00:39:58evana little.
00:40:06evanmainly better ways of accessing certain ones
00:40:21evanoops
00:40:22evanforgot a file.
00:41:19boyscoutAdd missed file - 97675a2 - Evan Phoenix
00:41:34evanthe accessor method logic was really generic
00:41:43evanso it now basically back patches itself
00:42:00evanto use a specific version after the first access
00:42:27slavaah, cool
00:42:35slavaperformance improvement?
00:42:54evanhot benchmarks show an improvement, yes.
00:43:01evanspecs runs, not really
00:44:30evanthere is an instruction now that allows for direct memory access of an object's body
00:44:44evanwhich means I probably need to add some kind of verifier soon
00:45:08slavayou want to keep your bytecode memory-safe?
00:45:15slavayou can probably push all kinds of checks to veirfy-time
00:45:27evanright
00:47:21evanmainly need to be sure those instructions are verified or, in some cases, not allowed to exist at all
00:47:24evanin imported streams
00:47:28evanand only generated internally by the VM
00:47:42slavado your stack ops have runtime checks?
00:48:06evanlike stack size checks?
00:48:07evanno
00:49:05slavawhat happens if invalid bytecode has a stack underflow?
00:49:09slavaor overflow for that matter
00:49:17evanatm? crash.
00:49:21evanor weird behavior
00:49:24slavaah
00:49:36evanthere's really no such thing as an invalid bytecode
00:49:39slavaso why do you need a verifier for the ivar instruction? :)
00:50:09evanso that push_my_offset can not be used directly in a .rbc
00:50:18evanand only generated by the specializer
00:50:37slavaunless you also make stack ops safe I don't see much of a gain
00:51:03evani don't follow.
00:51:41boyscoutCI: 97675a2 success. .................................................................................................... .................................................................................................... .................................................................................................... ...............................................................................
00:51:46evanarg.
00:51:54slavawell, what do you hope to gain from a verifier? sandboxing of some kind later on?
00:52:14evannot loading bad .rbc files
00:52:18evanthat might blow up the VM
00:52:42slavawhat about running bad .rbc files that might blow up the VM?
00:52:54evanwell, the stack size is in the .rbc file
00:53:00evanso if someone screw something up
00:53:22evanand they have a bytecode sequence that uses more stack than needed
00:53:24evanfor instance
01:02:18slavaI wonder if it would violate twitter's ToS to have a CI system tweet notifications
01:06:37jptixi'm sure you that would get you a lot of followers :)
01:06:59slavaI like it how you guys have an IRC bot, nice and lightweight
01:07:11slavaI have a mailing list and if I screw something up I get spammed by 14 machines
01:07:25slavaso I'm thinking of hooking up some kind of web or twitter interface instaed
01:11:31rueA feed?
01:12:47headiusslava: there are some projects that do that
01:12:57headiusand it's extremely annoying if you have searches running
01:13:10slavatwitter searches?
01:13:11headiuslike my search for "ironruby" picks up their commits and CI
01:13:13headiusyes
01:13:14slavahaha
01:13:22slavayeah, that's a good point
01:13:32slavacommits on twitter seems excessive
01:13:35headiusyes
01:13:45slavathat's like, on the same level as tweeting about clipping your toenails
01:13:50headiusI'm still waiting for someone to draft up an IP-over-Twitter RFC though
01:13:56slavahaha
01:14:18headiusmaybe for multicast video or something :)
01:47:56ddubheadius: we need some sort of punycode IP<->account name translation, so probably two specs
01:48:20headiustrue
01:48:59ddubI 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:57ddubponders a binary <-> unicode text transform as well
01:53:34ddubwonders, if he was going to put one sticker or emblem on his car, what would it be?
01:53:38ddubperhaps this? http://www.rof.com/product_p/2290-pq.htm
17:09:28evanmorning.
17:09:39brixenmorning
17:09:49brixenso, I was really out of it last night
17:09:58brixenprofiler = ... .new
17:10:02brixenprofiler.start
17:10:04brixenblah
17:10:09brixenprofiler.stop
17:10:12brixenprofiler.show
17:10:17brixenbut there's a better way
17:10:28brixenprofiler.profile do ... end
17:10:59evanyeah
17:11:01evani was doing that
17:11:03evanand getting no results
17:11:18brixenwell, the gist just had .new and .show
17:11:32evanthere were .start and .stop at one point...
17:11:38evani changed it to use .profile do
17:11:47evani'll try again.
17:11:53brixenohh, I see now
17:11:56brixenhrm
17:12:36brixenI'll try this with something other than rack
17:12:41brixenI can't load rack/router
17:12:52evanyou have to get it from git
17:13:16evangit://github.com/carllerche/rack-router.git
17:13:33rueDisabling Rack::ShowExceptions is a good idea until the dynamic locals are sorted out
17:13:51evanrue: for this, we don't care.
17:16:50brixenif I put the profiler.profile inside x.report, I get sensible results
17:17:32evanhuh?
17:17:37evanreally?!
17:17:39brixenyeah
17:17:47brixenI must have a leave() messed up
17:17:51rueWell, it fucks up the stack pretty nicely so it might have other opinions on the matter
17:17:53brixendid you check my commit?
17:18:04evanrue: sounds like a nasty bug
17:18:07evando you have any details?
17:18:14evansounds like something that needs to be fixed asap
17:18:47evanbrixen: no
17:19:12evanwait
17:19:13evanwhich commit?
17:19:41rueevan: ShowExceptions completely eats it when it runs Erb to construct the output from its template
17:19:59evanwhats the repro code?
17:20:09evaneats it == crash?
17:20:50evanbrixen: weird
17:20:51evanok
17:21:00evani'm getting results if i put profile {} inside report now
17:21:26rueIt 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:45evanwhats Lint?
17:21:48evanhow do I do this here?
17:21:51rueRack::Lint
17:22:16evanok..
17:22:18evanhow do I run this?
17:23:30evanbrixen: http://gist.github.com/95268
17:23:44evanwhy does #toplevel report 10k calls?
17:23:52evanthe times loop?
17:23:55evanoh oh
17:24:03evanit's the block passed to times
17:24:20ruehttp://gist.github.com/87260
17:24:59evanrue: does this work with the rack gem?
17:25:17rueevan: Yes, all installed with vm/vm gem
17:25:49rueFor sanity check, if you comment out `use Rack::Lint` you should get output
17:25:58evanok.
17:28:28evanrue: ok, yep. no Lint, works
17:29:32evanrue: with 'use Rack::Lint' it seems to work for me
17:30:31rueOhh, hm. Lemme try.. should probably rebuild Mongrel in case
17:30:44evanyeah, I had to rebuild mongrel
17:30:49evanit needed some old capi symbols
17:31:24brixenevan: back
17:31:41rueevan: Actually--you mean works with Lint as in you see the same output?
17:31:42brixenevan: did you check that I have the leave() calls right in the profiler commit?
17:31:57evanrue: I ran your script
17:32:00evanrue: and it ran fine
17:32:02evanthats all I did
17:32:11brixenevan: the specs for simple method calls and a single block seem to pass
17:32:17evanbrixen: oh, i don't think so...
17:32:27brixenbut I didn't do specs for a block inside of a block
17:32:42brixendidn't think of it
17:33:08brixen10M calls to Array#[]
17:33:10brixenwowsers
17:33:32evanyeah
17:33:45evanso, we should allow this to be sorted in different ways
17:33:59evanbecause, in this case, sorting by 'self seconds' is what we want
17:34:03evancheck out String#count_table
17:34:06rueevan: 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:12evan4s inside count_table
17:34:32brixenyeah
17:34:33evanrue: ok, just let me know how to repro the problem
17:35:05evanthis is the version drbrain pulled into ruby land, yes?
17:35:06brixenevan: want an option arg to #profile or something?
17:35:11brixenevan: yeah
17:35:15evanbrixen: sure, that would be rad
17:35:19brixenk
17:35:49evanself-seconds and self-ms/call would be great
17:35:55brixenk
17:36:13evanself-ms/call is 0.00 A LOT
17:36:15evanbut when it's not
17:36:19evanthats when you really want to know
17:36:25brixensure
17:36:45evanyou know what would be rad
17:36:50evanas a fun sprint sometime
17:37:00evanwe should have profile pop up a cocoa window
17:37:03brixen:sort => [:self_seconds, :self_ms, ...]
17:37:04evanwith the results in a real table
17:37:09brixensomething like that ^^
17:37:10evanso you can click on the headers and have them sorted for ya
17:37:15brixenheh
17:37:21brixenyeah, that'd be cool
17:37:27evanyeah, that sort is fine
17:37:31evani'll probably usually do one value
17:37:34evan:sort => :self_ms
17:37:40brixensure
17:37:57evanoh oh
17:38:00evanif we do the cocoa window
17:38:06evanthen we could have 'tips' by certain lines
17:38:11evanlike a tip on #count_table
17:38:21evanthat says "this is a big, hot method!"
17:38:30brixenyep
17:38:56brixenbtw, this is the commit 7d16cc5
17:39:03brixenfor count_table
17:39:03evanok
17:39:23brixenand this 12bcc9f
17:39:43brixenlate start, grabbing some food
17:39:45brixenbbiab..
17:40:17evank
17:40:59evanug.
17:41:04evan4s in squeeze
17:41:09evanand ya know the code that uses it?
17:41:18evan"/#{path}".squeeze("/")
17:41:26evanthats it.
18:17:15boyscoutAdded bigdecimal extension. - 0eb8c0f - Brian Ford
18:17:15boyscoutUpdates to capi to support bigdecimal extension. - c1bed93 - Brian Ford
18:17:15boyscoutAdded arity checking to NativeMethod calls. - 5c26025 - Brian Ford
18:17:15boyscoutFix sprintf type to satisfy gcc on linux. - b6730de - Brian Ford
18:17:15boyscoutAdded rb_bug, rb_warn, rb_fatal. - d180968 - Brian Ford
18:17:15boyscoutFill in backtrace in rb_raise. - 89c8096 - Brian Ford
18:17:17boyscoutFixed capi constant test. - 19f15f9 - Brian Ford
18:17:19boyscoutUpdated CI tags for bigdecimal. - 6a28414 - Brian Ford
18:17:38brixenstill have some work to do on bigdecimal
18:17:51evannice
18:17:55brixenbut first this profiler stuff
18:18:01evani'm poking the count_table stuff
18:18:05brixenk
18:18:08evani think i'm going to just revert drbrain's change
18:18:14evanit revert pretty cleanly
18:18:19evanreverts
18:18:24brixenthere's probably another primitive that would be good there
18:18:33brixenI tried to limit the prims when I did that work
18:18:38evanright
18:18:44evani think that count_table should probably be a primitive
18:18:50evanon it's own
18:18:53brixenyeah
18:19:43brixenI'll be happy to rewrite all that in ruby when we have the compiler/jit to support it
18:19:51brixentill then, it's too time critical
18:19:51evanyeah
18:22:45boyscoutCI: 6a28414 success. 1502 files, 7234 examples, 23646 expectations, 0 failures, 0 errors
18:24:13brixenboyscout: botsnack
18:25:09evanwtf
18:25:18evanmy computer is being really weird.
18:26:10evanbrb.
18:36:55brixenevan: you know why you didn't get profiler output?
18:37:04evanwhy?
18:37:15brixenx.report just puts the block in a list
18:37:21brixenbmbm runs it
18:37:25evandoh!
18:37:29brixen:)
18:37:35evanle sigh.
18:37:39brixenheh
18:45:04evana great way to grind OS X to halt
18:45:13evanlet spotlight index your USB backup drive
19:13:17evanarg.
19:13:19evanspecs wont run.
19:13:25evani'm getting
19:13:32evanRuntime exception: field access denied
19:13:35evansuddenly
19:23:32brixenafter pulling my commits?
19:24:20evanyeah
19:24:24evani did a clean
19:24:26evanseems ok now
19:24:33brixenok
19:56:45boyscoutCruft prune - b8d062d - Evan Phoenix
19:56:46boyscoutRevert "Replace String#count_table with a primitiveless version, and remove the primitive" - d6646f3 - Evan Phoenix
20:03:34boyscoutCI: d6646f3 success. 1502 files, 7234 examples, 23646 expectations, 0 failures, 0 errors
21:11:51headiusyay, I have a working rbx build on the new machine
21:13:33rueHurray!
21:14:18rueAww! GPL: http://www.libnui.net/
22:34:27evanwelp, apple store doesn't know whats up with my laptop
22:34:37evanso i can get the logic board replaced if I pay for it
22:40:41rueIf that is what is wrong with it?
22:55:26evanrue: well, the did all the other tests
22:55:37evanso even if they saw what I was seeing
22:55:40evanthe outcome would be the same
22:55:42evannew logic board
23:13:54rueOr you could get one of the 32" screens, a MacPro and a porter with a backpack
23:14:20slavaI got another 8gb of ram for my mac pro
23:14:22slavagoing to install it in a bit
23:25:09evanslava: will ya have 16G then?
23:31:05slavaevan: jeah