Index

Show enters and exits. Hide enters and exits.

00:12:58BrianRice-workhm, where do I find the source for PICs and inlining strategy in general?
00:13:08evanvm/inline_cache.cpp
00:13:25slavaevan: do you fold redundant guards?
00:13:32BrianRice-workok, that's what I thought
00:13:37evanLLVM can in some cases, yes.
00:13:46evanbrixen and I were discussing that
00:13:52slavaoh that's right
00:13:57slavayou use AA to do it
00:14:02evanwe don't fold guards accessed across GC points
00:14:18evanand any method dispatch is a GC point
00:14:29evanso if there is sufficient inlined code
00:14:30slavaBrianRice-work is working on inlining with guards for slate
00:14:31evanthen it can
00:14:32BrianRice-workAA?
00:14:36slavaalias analysis
00:14:40BrianRice-workoh, right
00:14:44slavayou teach LLVM that the header field in your object is a constant
00:14:50slavaand it can propagate loads and stores
00:14:51evanyep
00:14:56evanexactly.
00:15:06evani tell it that obj->class is constant
00:15:09slavaso if its compared it against a constant once, a subsequent comparison in one branch of the conditional can fold to a constant boolean
00:15:11evanand that class->class_id is constant
01:38:39boyscoutSimplify locals in VariableScope - 6b9b7ad - Evan Phoenix
01:46:43boyscoutCI: rubinius: 6b9b7ad successful: 3024 files, 11752 examples, 35958 expectations, 0 failures, 0 errors
05:50:34fynnThe "Performance Retrospective" of the Unladen Swallow PEP is very interesting: http://svn.python.org/view/peps/trunk/pep-3146.txt?view=markup
05:51:09fynnExplaining why they failed to meet their original goal of 5x faster Python execution through LLVM JIT.
05:53:16fynnParticularly interesting:
05:53:38fynn"(Our hypothesis is that we hit these problems -- problems other projects [including Rubinius] had
05:53:38fynnavoided -- because of the complexity and thoroughness of CPython's standard
05:53:38fynnlibrary test suite.)"
08:40:19dbussinkmorning!
08:45:50dbussinkevan: any luck hunting the issue?
18:54:25seydargday sailors
18:54:43evanhey there.
18:56:17seydarhow goes development?
18:56:21seydarwhat's the current big hurdle?
18:59:07evangetting you back to work!
18:59:52seydari'm SOOOOOOOOOOOOO CLOSE to getting eagle
19:00:11seydari need to get eagle before my apps are read and rejected so i can tell all my colleges specifically about it
19:00:24seydarwow, to think i first came here as a first class scout
19:03:05evanwhere are you applying?
19:03:46seydarit's a top-heavy list, but i figure go big or go home. dartmouth, cornell, cmu, brown, princeton, stanford, pomona, macalester, u michigan, and USNA
19:04:02seydari've already gotten into the USNA, so if everything else falls through i can go there
19:04:29evanwhats your major going to be?
19:04:30evanCS?
19:04:59seydarCS or linguistics
19:05:28seydareh, who am i kidding. CS
19:05:37evanhehe
19:05:45evanCS is a lot more practical than linguistics. :)
19:06:06seydarpsh. don't talk practicality to a guy trying to learn finnish
19:06:36evanpractical helps in a down economy.
19:07:36seydartrue. for better or for worse, I plan on going into the marines after college, so in theory i have the next ten years of my life figured out
19:07:55evanare you doing ROTC in college?
19:08:23seydarmaybe. I got accepted into the NROTC program, so it's there if i want it
19:08:42seydari'll figure out if i'm doing it when I see where else I get in
19:09:52evanyou doing it for the money?
19:10:14seydaractually, no.
19:10:46evando you want a career in the military?
19:10:59seydari'm doing it because [warning: self call] i feel that I would be better at being personally responsible for someone's life than a lot of other people, so i'd like to do what I can to keep soldiers safe
19:11:23seydari would like to fly helicopters, dropping off troops, picking them up, giving supplies, and providing air support.
19:11:43evanan admiral idea.
19:11:48evanadmirable
19:12:35seydarthanks. I considered going subs since i was mildly recruited for that, but they don't do any good for saving lives
19:14:07DefilerEverybody I know that worked on subs says it is ultra boring as well
19:14:23DefilerGot some friends that studied nuclear physics in the academy and did the sub thing
19:14:27evanesp. since the cold war is over.
19:14:40evanall our enemies don't have houses
19:14:44evanlet alone subs.
19:14:50seydarlooks like i'm making the better choice
19:14:58DefilerHelicopters are badass
19:15:10DefilerThey fly like toaster ovens full of neutronium, but they are badass
19:15:31evanwho needs a sneaky sub when you can just launch scud missiles from 100 miles away off a battleship
19:15:42seydarhahaha. this guy did what i want to do (found him after i figured out i wanted to fly choppers):http://www.badassoftheweek.com/crandall.html
19:15:52Defilerseydar: This is an interesting dude you may want to follow on twitter or facebook: http://twitter.com/Michael_Yon
19:15:57seydarpsh, ain't no battleships since the 50s
19:16:46seydarDefiler: sweet! consider him followed
19:16:48DefilerAlso, I subscribe to this blog http://usacac.leavenworth.army.mil/blog/blogs/coin/default.aspx
19:17:12seydari see his posts -2 and -3 are about helicopters. are most of his tweets about helicopters?
19:17:23DefilerWider-ranging than that
19:17:30Defilerbut definitely helicopters get mentioned
19:18:47evanseydar: what do we fire scuds off?
19:18:51evanaircraft carriers?
19:19:04Defilertrucks on the ground
19:19:09seydarevan: destroyers. duh
19:19:16evaner, yes
19:19:19evandestroyers is what I meant.
19:19:46seydar:-D i made that mistake soooooooooo many times when i was younger.
19:19:58DefilerAlso, scuds are a soviet weapon, NATO doesn't use them heh
19:20:16BrianRice-workum yeah
19:20:27BrianRice-work<-- used to run nuclear reactors on aircraft carriers
19:20:53Defilerhttp://en.wikipedia.org/wiki/Raytheon#Missiles
19:20:58Defileris what you are likely to run into in NATO town
19:21:39BrianRice-workJane's defense review books often have full-page ads about being the envy of your region by having the newest ballistic missiles. it's hilarious/scary
19:23:36seydarBrianRice-work: enlisted or officer?
19:24:14BrianRice-workseydar: enlisted. I wanted to get my hands dirty
19:24:31evanDefiler: didn't we use scuds in the first iraq conflict?
19:24:37BrianRice-work(compared to applied maths)
19:24:42seydari wonder if i can finish a term in the marines, leave, and then enlist into nuclear power school
19:24:45BrianRice-workevan: no, iraq did
19:24:53evanoh, i've got it backwards.
19:24:56evanmakes sense.
19:25:16BrianRice-workevan: those missiles have bad guidance/stability systems, so an imperial country can't use them, because they're hugely bad PR
19:25:17DefilerYeah, that was scuds vs. patriots
19:25:28evanDefiler: ah yes.
19:25:34seydarBrianRice-work: my dad did reactors on sub in the 70s; he was always jealous of the enlisted guys who wouldn't let him touch their reactors
19:25:39evanBrianRice-work: makes sense.
19:26:32BrianRice-workseydar: it's a weird little club. you can say no to officers when they're wrong, you just have to know your shit.
19:26:37BrianRice-workanyway, back to work...
19:27:11seydarBrianRice-work: heh. he just wanted their job because he yearned for the hands on stuff.
19:27:25BrianRice-workah
19:27:55evanwell, we need more nuclear power scientists these days
19:30:25seydarwhat could you do with a nuclear something degree outside of the navy?
19:30:54BrianRice-workearn a lot of money in a very dull job with very slow promotion rates :(
19:31:13evando some research and get us back on the nuclear power horse!
19:31:23evanmmmmm nuclear powered horses....
19:31:24BrianRice-workor go to another country with a more liberal attitude about nuclear power (India, Brazil)
19:31:37seydarevan: ugh. there was a 124 mile march in VT to close the power plant there
19:31:44BrianRice-work(oops, and China, but seriously that's not a good idea)
19:32:08evanhelping China with nuclear power is a great way to make sure you can't get back in the US.
19:32:15seydarBrianRice-work: what do you do now?
19:33:05BrianRice-workseydar: software dev consultant (currently working full-time internally for rentrak)
19:34:26seydarhttp://www.briantrice.com ?
19:36:23BrianRice-workyeah that's me. not updated in a while, though
19:39:16evanBrianRice-work: hows slate land?
19:44:15seydari know this sounds lame, but i have to free up some ram to use Word. so goodbye IRC.
19:46:28BrianRice-workevan: still working on inlining, sans jit (we inline SSA to SSA).
19:46:46evanhow are you modeling the lexical info in the inlined method?
19:47:02evansince you probably don't want to have to build the same runtime structures you do for a normal method
19:47:09BrianRice-workyou mean tracking variables and scope?
19:47:18evanyeah
19:48:21BrianRice-workwell right now our techniques are pretty simple, working recursively to successively compose new bytecode methods from multiple ones
19:48:27BrianRice-workbottom-up
19:49:07BrianRice-workwe need to do a little more to transform register usage optimally but SSA allows us to "wire" up the data flow pretty directly
19:49:38BrianRice-workdunno if you were thinking of something more specific :)
19:50:00BrianRice-workwe do have some manually-inlined test cases which we benchmarked and then successively compare against inliner output
19:51:24BrianRice-workhere's the source for most of it, at least: http://repo.or.cz/w/cslatevm.git/blob/cae7b252a633b0790844a6c67f98b75a0476e79d:/src/vm/optimizer.c pp
19:51:38evanslate might not have as much lexical info as ruby
19:51:45evanso you don't have to worry about it as much.
19:52:06evanin ruby, you need to know (at runtime) the name of the method you're in
19:52:13evanthe Module the method came from
19:52:16BrianRice-workI suppose not. we keep an array of input/local registers and a pointer to an environment. and we avoid allocating closures as much as the compiler can determine
19:52:33evanand some constant scoping structure (which is per method)
19:53:10BrianRice-workyeah, slate methods are somewhat simpler. they don't intrinsically know their own name (like a value in a slot doesn't know the name of the slot)
19:53:29BrianRice-work"self" is just the first input argument in slate methods
19:53:30evanrighto
19:53:42evanso you "solve the problem" by not having it
19:53:45evanclever!
19:53:46evan:D
19:53:48BrianRice-work:)
19:54:01BrianRice-workyeah, we just wind up with tradeoffs in language design because of it
19:55:19BrianRice-workI still need to complete the module implementation. which design is mostly finalized - it's kind of like commonjs modules.
19:56:00BrianRice-workdesigned for being self-contained, where the caller can decide "where it goes"
19:56:21BrianRice-workand that ought to solve the compiled-files issue I ran into last month
19:56:30BrianRice-workblah blah blah, back to perl
20:01:27Defilerseydar should be like this dude: http://en.wikipedia.org/wiki/Jack_Churchill
20:04:12evanif you were really good with a longbow and in WW2, you could have been invaluable
20:04:28evanthink about putting explosives on an arrow and shooting it down the barrel of a tank
20:04:46Defilerhttp://www.cracked.com/article_17019_5-real-life-soldiers-who-make-rambo-look-like-pussy.html
20:04:49Defilerheh
20:04:53Defilerthat was one of the wiki footnotes
20:55:56dbussinkevan: evening :)
20:56:14dbussinkevan: any luck with uncovering the issue?
21:30:49evandbussink: i seem to have fixed one crash yesterday
21:30:57evandbussink: if you could, try and repro on master
21:31:18dbussinkevan: ah, cool, already was so free to try, but i still get a crash sometimes though
21:31:38evanon master you still get it sometimes?
21:33:07dbussinkevan: i think i did yeah, i'll double check with a clean build
21:33:13evank
22:06:18dbussinkevan: hmm, i've run all the specs again but i do see some failures in the specs, no crash yet though
22:10:41evanwell thats good
22:13:09dbussinkevan: problem still is that those failures don't happen in interpreted mode
22:13:44dbussinkso i can imagine that would make debugging harder, but you probably know that better than i
22:15:30dbussinkevan: ah, i now have a USZ with a dev build
22:15:36dbussinkevan: when running it again
22:15:48dbussinkah, no, sorry, not a USZ
22:17:26dbussinkevan: https://gist.github.com/a30479b88c52d2b76d98
22:17:33dbussinkshall i add this one to the issue?
22:18:01evanhm, thats a nil getting through
22:18:02evanyes, add it.
22:18:09evanadd all info to it.
22:22:02dbussinkevan: any more info you'd want me to get out of it?
22:22:43evanyeah
22:22:45evanone sec.
22:24:37evanon frame 6:
22:24:39evanp *obj
22:24:44dbussinkevan: this crash now happened for me in something like 3 from 7 attempts
22:24:52evanand on frame 7:
22:24:57evanthe line of code it's on
22:26:08dbussinkevan: what do you mean by the line of code it's on?
22:26:29evanwhen you go "frame 7"
22:26:38dbussinkthere now
22:26:44evanit will show the contenst of compiledmethod.cpp, line 275
22:26:47evani want to know what it is
22:27:06evani'm not assuming my line 275 is the same
22:27:09evanthats why I ask
22:27:42dbussinkevan: ah ok, updated the gist: https://gist.github.com/a30479b88c52d2b76d98
22:30:03evanin frame 7
22:30:06evanrun 'list'
22:30:10evanso i can see the source around it
22:31:35dbussinkevan: ok, updated the gist
22:32:12evanmmm, indirect literals
22:32:13evanyes.
22:32:41evandbussink: run 'p *obj' in frame 7
22:32:47evani wanna see the headers for the CompiledMethod
22:33:23dbussinkevan: ok, updated
22:34:49evanok, perfect.
22:34:53evani'll bet i know what happened.
22:35:04evanthis helped al ot.
22:35:05evana lot.
22:35:11evani'm almost finished with some new jit code
22:35:13evanthen i'll fix this.
22:35:27dbussinkevan: ok, cool
22:35:44dbussinkevan: sadly i'm going to head to bed, if you want me to write up more please let me know!
22:35:51evan:D
22:35:52evanwill do.
22:35:55evanthanks for the data!