Index

Show enters and exits. Hide enters and exits.

00:36:35fynnevan, brixen: did you guys see the Unladen Swallow JIT link I posted last night?
00:36:45evannope.
00:40:10fynnevan: http://www.python.org/dev/peps/pep-3146/#performance-retrospective - specifically, the part where they explain why the failed to meet their performance gain goals:
00:41:15fynn"(Our hypothesis is that we hit these problems [that prevented Unladen Swallow from reaching anything close to their original x5 performance gain goals] -- problems other projects [including Rubinius mentioned specifically in a previous paragraph] had avoided -- because of the complexity and thoroughness of CPython's standard library test suite.)"
00:42:15fynnThese are problems in the LLVM JIT tools.
00:42:48BrianRice-workhuh
00:44:38evanyeah, i work with the US guys
00:45:51BrianRice-workthe binary size changes are prohibitive
00:46:19evanthe changes in the python binary itself?
00:47:20fynnBrianRice-work: yeah, the upshot is that what US offers now is a huge cost in terms of implementation complexity (and memory usage) in exchange for very modest time-efficiency gains.
00:48:03BrianRice-workwell, darn. we have an in-progress LLVM JIT plugin for slate.
00:48:07fynnwas wondering what people here would say, given that Rubinius is probably the most similar effort going on right now.
00:48:26BrianRice-work(or bytecode at least is SSA and similar to LLVM's)
00:48:31BrianRice-works/or/our/
00:49:21BrianRice-workin that case, I'll have us keep focussing on high-level changes that don't rely on LLVM as a backend. bytecode-to-bytecode transforms might serve us well for a while.
00:50:58evanBrianRice-work: don't back off the LLVM JIT.
00:51:04evanwe're doing fine.
00:51:07evanas is MacRuby.
00:51:13BrianRice-workI see.
00:51:20BrianRice-workwell presumably US is paving our way
00:51:27evanwhy?
00:51:38evanthey've the newest user
00:51:44evanmacruby and rubinius are quite a bit older.
00:51:51BrianRice-workoh, I assume that these bugs being fixed are going into LLVM
00:51:54evanthey're the newest user, rather.
00:51:59evanthey are
00:52:09evanbut I should note that I haven't ever hit the bugs they're talking about.
00:52:22BrianRice-workok. I guess I'm reading too much into it
00:52:49BrianRice-workthanks
00:52:53fynnevan: so how come their encountering those problems, while Rubinius doesn't?
00:52:58evanno prob
00:53:03evanhappy to pull you back from the cliff
00:53:10evanfynn: *shrug*
00:53:10fynnheh
00:53:14evandifferent usage patterns
00:53:18evandifferent requirements
00:53:24evanhard to say
00:53:33evanUS has a very particular requirement
00:53:41evanthat all the interpreter features work even though it's JITd
00:53:49evanthat complicates things considerably in some cases.
00:53:54evanrubinius doesn't have that problem.
00:53:56BrianRice-workboth rubinius and slate have very simple implementations by comparison with CPython
00:54:07fynnevan: yeah, Collin also mentioned that he "envies" Rubinius for the kind of decisions you guys can make, wasn't sure what he was referring to.
00:54:16fynnevan: why does US need that why you don't?
00:55:09fynn(afaik both projects are about getting an interpreted dynamic language working with LLVM + JIT, including a legacy C API - i.e. don't see a significant difference there)
00:55:10evanbecause they want US to not break anything
00:55:22evanRubinius is my green field playground
00:55:27fynninteresting, what is Rubinius breaking?
00:55:43evanwell, Rubinius doesn't support set_trace_func at any level
00:55:47evanand if I do support it
00:55:53evanit will just turn the JIT off if you use it.
00:56:05fynnI guess you can better afford breaking C api compatibility, since C extensions are way less prominent in Ruby vs. Python.
00:56:15evanit's almost never used, so it's no biggy.
00:56:34evanfynn: actually not true at all.
00:56:41evanthere are a shitton of ruby extensions.
00:57:02evanand we've worked hard to not break their API interface
00:57:26evanthat means we startup a emulation/handler layer between our core and the extension
00:57:36evanso they can continue to do the weird things that they did under MRI
00:57:38evanand not break anything.
00:57:45fynncool, though a huge number of users out there are just using pure-Ruby web frameworks.
00:57:55evanRuby not using refcount is a big part of the ability to do that.
00:58:17fynnevan: are you planning to support a different low-level extension API?
00:58:19evanbecause that means that all extensions are written to support a basic liveliness via reachability scheme.
00:58:37evanfynn: it's been discussed, but we haven't had the time or need for such a thing.
00:58:51evanbetter that we make the MRI compat layer better and better.
00:58:57evanthat serves multiple interests.
00:59:05fynnyeah, and if the JIT really delivers, it becomes much less of a concern
00:59:11fynnand the MRI C-API is not bad.
00:59:29evanyeah, there are only a few ugly parts (most of the R* macros)
00:59:39evanwe've been able to work around most of that, save for RHASH()
00:59:43fynnanyways, I was just sort of concerned, because at this point the U-S JIT sub-project is emerging as failurish
00:59:53evanit is?
00:59:56evanthats not how I read this
01:00:05fynnwhich sort of endangers the viability of the entire project, at least for now
01:00:14evani read it as "we were overambisious, but things are still going well"
01:00:20evanglass half full!
01:00:32fynnevan: few objective observers are going to support merging U-S into Python3 based on those stats :)
01:00:37BrianRice-workI'm sure it's successful by google's investment measures
01:00:42evanoverambitious
01:00:43evanrather.
01:01:27fynnthe stats boil down to "we offer this huge overhead in complexity, memory consumption and binary size, in exchange for ~1.5x time performance gain"
01:01:59evanimho, the memory consumption is the only one to be worried about.
01:02:20evanthe complexity is hidden inside a vendored library
01:02:24BrianRice-workyeah, and it's similar to the Self-92 situation which they cite
01:02:44evanpeople will argue that python's complex grows just by using that library
01:02:45BrianRice-workalthough not entirely so
01:03:10evanand thats valid, but i guess it's a question of whether or not that matters.
01:03:22evani can't say i'm in tune with "the python way"
01:03:26evanso i don't really know.
01:04:15fynnevan: it seems like the major problem is the disappointing performance gains.
01:04:33evanthats probably true
01:04:52evansadly though, thats because they came out of the gate saying "10x speed improvement in one year! weee!"
01:04:54fynn"python way" or not, the entire community would be willing - nay, thrilled! - to merge a monstrous complexity for a 5x gain.
01:05:00evani underhype rubinius.
01:05:04evanand try to over deliver.
01:05:13fynnthat's a good approach in life!
01:05:15evankeeps everyone happy.
01:05:53fynnand yeah, claiming 5x performance increase didn't make it better for them, although a merge would be a problem anyway with those stats.
01:06:25evanI don't see why they're pushing for a merge now.
01:06:30evani guess I could ask.
01:07:13evani did and collin said they wanted to do it
01:07:27evani guess i don't get why you push it hard when you've just realized you've underdelivered.
01:07:33evanbut i suck at marketing.
01:08:02fynnmaybe just because they think they can still push it through.
01:08:51evani guess so.
02:03:09rue1.5 is nothing to scoff at
02:03:18rueUnless you were expecting 5x ;)
02:08:25evanexcatly
02:08:28evanexactly.
03:04:00Defilerhuh; http://llvm.org/bugs/show_bug.cgi?id=5201
04:09:26evanDefiler: yes, thats a fun bug.
04:09:36evani've been working with the US guys on a final solution.
08:02:33dbussinkmorning!
08:24:29slavahi dbussink
08:38:54dbussinkslava: morning for you too?
08:43:17dbussinkslava: oh wait, it was like a 12 hours diff :)
08:45:07slavaevening here
13:44:19duncanmvevan: ping
14:44:01rueMorning
16:56:29evanduncanmv: sup?
17:03:14slavahi evan
17:04:14evanhi hi
17:12:38tenderloveevan: pew pew pew
17:12:39tenderlovegood morning
17:13:21evanpew pew pew!
17:13:25evanhow are you?
17:13:53tenderloveoh, not bad
17:14:06tenderlovetrying to motivate myself to do my job
17:14:13tenderlovebut failing miserably
17:14:27tenderlovefutzing with sqlite3 bindings seems much more interesting
17:14:57tenderloveknow what I'm saying?
17:24:17rueYES
18:26:03jvoorhisevan: hi
18:32:14jvoorhisi changed the api for functions slightly and hacked in support for global variables :)
18:32:39jvoorhisstarting to approach completeness
19:13:38evanjvoorhis: cool
21:30:25lypanovis sad and searching for a new job :(
21:45:29rueAww! Where are you searching?
21:53:30evanlypanov: oh noes!
21:59:47lypanovrue: like um. cool stuff?
21:59:50lypanovevan: aye :(
22:00:16lypanovis like, totally bummed out, as he has like, a wife and a house and stuffs, and its the only income *sad sad*
22:01:02evan:( did you get laid off?
22:01:47lypanovstill got a bit to go. but mid feb i'm salaryless
22:02:22lypanovi can always sort some other random shit out... but i kinda liked my job and don't want something that sucks :(
22:40:54botanicusevan: Are you here? You still haven't merged my commits & I asked you for commit access. I have some more stuff now. And also, I still have no clue what the ideal workflow with rubyspec should be, you told me last time that you have to discuss it with others, but then I haven't got any response regarding this issue.
22:41:43evanah crap.
22:41:45evansorry about that.
22:45:05evanbotanicus: your git repo looks a bit weird.
22:45:24botanicusevan: what do you mean by 'weird'?
22:45:44evanwhy are there a whole bunch of commits with the author of brixen and you as the commiter
22:46:32botanicusevan: git pull --rebase did it ... seems weird, you're right
22:46:34botanicusHowever
22:46:45evanoh
22:46:50botanicusDon't worry about these commits, they're not mine, they already are in rubinius
22:46:53evanyou never use pull --rebase when you've pushed commits
22:47:18evanpull --rebase is only for when you have commits only locally
22:47:19evananyway
22:47:29evanyour commits are for 1.9
22:47:41botanicusI've been doing fetch && rebase before manually and I thought that pull --rebase is just a shortcut
22:47:45evanso i talked with brixen about this briefly
22:47:55botanicusI see, thx for info
22:48:10evanso we need some rubyspecs for your changes
22:48:20evanthey should be in the form of commits to the rubyspec repo
22:48:27evanwith version guards for 1.9
22:48:44evansearch for "ruby_version_is" and you'll see how the guards are used.
22:50:11botanicusevan: I see. So how should I use it locally? It seems rubinius/spec is synced from rubyspec, is it?
22:50:32evanyou should fork the rubyspec repo
22:50:35evanand make commits to it
22:50:57botanicusOK, I'll take a look, thanks
22:50:59evanthe 1.9 workflow isn't as smooth as the 1.8 for now
22:51:14botanicusIt seems I have some hiccups on the last rubinius, just updated from one_nine branch http://pastie.org/790567 ...
22:51:15evanso i'm not going to say that on the 1.9 branch spec/ruby is sync'd
22:51:42evanis that ruby ruby 1.9
22:51:46evanbecause you still need 1.8
22:53:45botanicusevan: you mean run rake with 1.8?
22:53:51evanyes
22:54:37botanicusI see
23:01:01botanicusevan: yeah, it works now, thanks
23:01:41evank
23:39:15ruelypanov: /Where/ were you searching, .nl?