Skip to content
William Deegan edited this page Jan 14, 2016 · 2 revisions
17:18:19  *      stevenknight (n=stevenkn@nat/google/x-ff6fd1a26f0686e6) has joined #scons 
17:25:16  *      Jason_ (n=[Jason@bementil-116.illinois.prairieinet.net](mailto:Jason@bementil-116.illinois.prairieinet.net)) has joined #scons 
17:29:26  *      garyo-home (n=[chatzill@209.6.158.38](mailto:chatzill@209.6.158.38)) has joined #scons 
17:31:26  *      [GregoryNoel](GregoryNoel) is here 
17:31:38  <[GregoryNoel](GregoryNoel)>  Hi, guys, are we ready? 
17:31:51  <garyo-home>   Hi Greg.  Ready as I'll be. :-/ 
17:32:23  <[GregoryNoel](GregoryNoel)>  I only see limited comments in the spreadsheet; it's gonna be a slow night. 
17:32:53  <garyo-home>   yes, sorry.  Just doing some now. 
17:33:02  <stevenknight> hey 
17:33:07  <stevenknight> me too 
17:34:15  <[GregoryNoel](GregoryNoel)>  1945? 
17:34:42  <garyo-home>   steven to research & pick one option. 
17:34:47  <garyo-home>   w/ Ludwig. 
17:34:57  <garyo-home>   IMHO. 
17:35:25  <[GregoryNoel](GregoryNoel)>  I'll go with that, at least for now.  We need to come up with something better in the long run. 
17:36:17  <garyo-home>   Not sure about your comment re: rewriting implicit dependency logic, but won't go there now. 
17:36:44  <stevenknight> agree w/what you guys are saying 
17:37:17  <[GregoryNoel](GregoryNoel)>  I think we can do more than what we are now by caching negatives, but it's not the time to redesign it. 
17:37:36  <garyo-home>   right. 
17:38:00  <[GregoryNoel](GregoryNoel)>  so research, Steven + Ludwig? 
17:38:11  <garyo-home>   good. 
17:38:19  <[GregoryNoel](GregoryNoel)>  And once the decision is reached, Ludwig to implement? 
17:38:28  <stevenknight> done 
17:38:31  <[GregoryNoel](GregoryNoel)>  done 
17:38:35  <[GregoryNoel](GregoryNoel)>  2258 
17:38:36  <garyo-home>   2258: stevenknight to add a hook to get help text, 2.x p4? 
17:39:07  <[GregoryNoel](GregoryNoel)>  Hmmmm..... 
17:40:06  <[GregoryNoel](GregoryNoel)>  Yeah, something like that.  His suggestion is awkward, but it should be possible to work out something. 
17:40:38  <[GregoryNoel](GregoryNoel)>  And for 2.x p4, we don't need to volunteer anyone. 
17:40:41  <[GregoryNoel](GregoryNoel)>  yet 
17:40:48  <garyo-home>   agree. 
17:40:52  <stevenknight> okay, i'm back from the spreadsheet 
17:41:04  <stevenknight> 2258:  done 
17:41:09  <stevenknight> 2.x p4, future draft pick 
17:41:10  <[GregoryNoel](GregoryNoel)>  2261 
17:41:38  <stevenknight> it's a google guy, so i'd like a crack at it 
17:41:58  <[GregoryNoel](GregoryNoel)>  We have another issue looking at this already; one should be closed. 
17:42:00  <garyo-home>   Shouldn't he be using the target filename as the target?  (And not rm/mkdir either) 
17:41:59  <stevenknight> if i can't come up with a real case, i'll mark it invalid 
17:42:35  <garyo-home>   ok, that's good enough for me.  Steven to find testcase or mark invalid. 
17:43:05  <[GregoryNoel](GregoryNoel)>  or dup to the other one 
17:43:16  <stevenknight> yeah, i guess i view it similar to unpacking a .tar.gz into a directory 
17:43:22  <stevenknight> i think you should be able to specify the directory 
17:43:30  <stevenknight> and have it do the right thing w.r.t. changes to the source(s) 
17:43:41  <stevenknight> but i'll mark it invalid if I'm just dreaming 
17:43:47  <[GregoryNoel](GregoryNoel)>  done 
17:44:00  <[GregoryNoel](GregoryNoel)>  2262 
17:44:12  <stevenknight> i think it should be trivial 
17:45:26  <[GregoryNoel](GregoryNoel)>  If you think it's trivial, I'll let you have it. 
17:45:20  <stevenknight> 2262:  anytime, anyone 
17:45:29  <[GregoryNoel](GregoryNoel)>  anytime is fine 
17:45:39  <garyo-home>   The OP says he'd like "not .py" but I think .py makes the most sense. 
17:45:41  <stevenknight> okay, 2262 anytime stevenknight 
17:46:15  <Jason_>       I like the .scons ,myself 
17:46:17  <stevenknight> while we're at it, i'd go for both .py and .scons 
17:46:36  <stevenknight> and draw the line there 
17:46:38  <[GregoryNoel](GregoryNoel)>  I've also seen .sc used. 
17:46:45  <garyo-home>   ok, why not.  Just pick an order, seems fine to me. 
17:47:04  <garyo-home>   Greg: I think .sc is too short. 
17:47:17  <[GregoryNoel](GregoryNoel)>  Sigh.  Seems too complex; I'd still wontfix it as I indicated. 
17:47:02  <stevenknight> isn't .sc for [SuperCalc](SuperCalc) files...? 
17:47:05  *      stevenknight shows his age... 
17:47:12  <garyo-home>   [SuperCalc](SuperCalc)?!! 
17:47:38  <[GregoryNoel](GregoryNoel)>  Yeah, I remember it, too. 
17:47:46  *      [GregoryNoel](GregoryNoel) _really_ shows his age. 
17:47:47  <stevenknight> 2262:  anytime, stevenknight 
17:47:52  <[GregoryNoel](GregoryNoel)>  done 
17:48:03  <[GregoryNoel](GregoryNoel)>  2264 
17:48:27  <garyo-home>   Greg, you looked at this most -- is the order reversal the only thing going on here? 
17:48:28  <stevenknight> 2.x p2 gregnoel? 
17:49:16  <[GregoryNoel](GregoryNoel)>  No, the dependencies aren't reversed, reversing the order of the names on the command line produces different trees. 
17:49:43  <garyo-home>   ok, I believe you :-) 
17:49:47  <[GregoryNoel](GregoryNoel)>  No matter which way you list the names on the command line, it should show the same dependencies. 
17:49:57  <garyo-home>   do you mind taking it? 
17:50:45  <[GregoryNoel](GregoryNoel)>  I know almost nothing about that part of the code, so I'd rather not, but if you push, I'll consider it. 
17:51:04  <stevenknight> 2.x p2 can be future draft pick 
17:51:16  <stevenknight> or else put my name on it 
17:51:16  <[GregoryNoel](GregoryNoel)>  I'll go with that 
17:51:27  <stevenknight> okay, 2.x p2 future draft pick 
17:51:28  <stevenknight> done 
17:51:40  <[GregoryNoel](GregoryNoel)>  2265 
17:51:50  <garyo-home>   ah, yes. 
17:51:56  <Jason_>       just so it is known this is not new 
17:52:15  <stevenknight> 2265:  1.2 p1 stevenknight 
17:52:16  <garyo-home>   Jason_, you mean 2265? 
17:52:23  <Jason_>       Yes 
17:52:27  <stevenknight> like I said, I'm just in Taskmaster lately 
17:52:28  <Jason_>       I filed it 
17:52:30  <garyo-home>   thanks, Steven. 
17:52:47  <garyo-home>   Ah, you're *that* Jason -- welcome! 
17:52:55  <Jason_>       Thanks 
17:53:13  <[GregoryNoel](GregoryNoel)>  stevenknight, done 
17:53:19  <[GregoryNoel](GregoryNoel)>  and thanks 
17:53:18  <stevenknight> Jason_:  glad to have you here 
17:53:24  <Jason_>       hope we can talk latter :-) 
17:53:38  <stevenknight> yep 
17:53:46  <stevenknight> i have a few non-issue topics i'd like to discuss as well 
17:53:54  <garyo-home>   ok 
17:54:12  <[GregoryNoel](GregoryNoel)>  2266: I'll let you guys fight it out 
17:54:17  <stevenknight> 2266:  1.x p3 stevenknight 
17:54:36  <Jason_>       we have seen this .. it depends on the python used 
17:54:43  <garyo-home>   2266: not sure why this doesn't work for him.  I do this all the time.  What python is he using? 
17:54:58  <garyo-home>   Do NOT use cygwin python. 
17:55:15  <Jason_>       That follows what we see here as well 
17:55:29  <Jason_>       cygwin python will mess up a windows based build 
17:55:37  <garyo-home>   2266: let me take it and suggest that to him. 
17:55:43  <[GregoryNoel](GregoryNoel)>  done 
17:55:54  <[GregoryNoel](GregoryNoel)>  2267 
17:56:47  <stevenknight> either 1.2 and defer if investigation shows we can live with it 
17:56:56  <[GregoryNoel](GregoryNoel)>  This is the new Action.py code I put in, but I can't see how it's not initialized. 
17:56:57  <stevenknight> or resesarch with the option of making it a 1.2 blocker 
17:58:19  <[GregoryNoel](GregoryNoel)>  Seeing no hands, I'll research it.  It's a bad week for that, but I'll try to make time. 
17:58:22  <garyo-home>   Greg: possible exception issue? 
17:58:27  <[GregoryNoel](GregoryNoel)>  garyo-home, huh? 
17:58:35  <garyo-home>   never mind. 
17:59:15  <[GregoryNoel](GregoryNoel)>  so 2267 research me? 
17:59:20  <stevenknight> done 
17:59:47  <stevenknight> [GregoryNoel](GregoryNoel):  let me know if I can help, I've had to debug things like this many times 
17:59:53  <[GregoryNoel](GregoryNoel)>  thanks 
18:00:05  <[GregoryNoel](GregoryNoel)>  Before we go on, can I insert a topic? 
18:00:17  <garyo-home>   sure 
18:00:34  <stevenknight> sure, let's do GN's first, then Jason_, then me 
18:00:30  <[GregoryNoel](GregoryNoel)>  I'd like to change the agenda slightly.  I'd like to add a permanent item to discuss the current status of the release schedule and how we're doing on it. 
18:00:30  <[GregoryNoel](GregoryNoel)>  Discussion points would be what's expected in the next release(s) (whether checkpoint, candidate, or public), adjustments to the schedule, whether we should do any retriage for current or future releases, things like that. 
18:00:30  <[GregoryNoel](GregoryNoel)>  I'd put it between the current issues and the backlog.  (Aside: we're almost to the home stretch for finishing off the backlog (hopefully we'll kill off 2005 this time or next time); after that, the time now spent on backlog will be taken up by bickering about retriage of issues, so we should discuss the release schedule strategy before the tactics.  This positioning puts it in the right place for the future.) 
18:01:13  <stevenknight> +1 to discussing release schedule regularly 
18:01:24  <garyo-home>   greg: +1 to your agenda change.  I always review the schedule before the meeting anyway. 
18:02:16  <[GregoryNoel](GregoryNoel)>  OK, I'll do it.  Since the slot would be now, should we discuss the schedule now? 
18:02:21  <stevenknight> yes 
18:02:23  <garyo-home>   yes. 
18:02:31  <[GregoryNoel](GregoryNoel)>  Schedule:  1.2 was due out 24 November.  Needless to say, we didn't make it.  And issues 2265 and 2267 could be a blockers; we may need to slip 1.2 until that's resolved. 
18:02:31  <[GregoryNoel](GregoryNoel)>  We were supposed to have a checkpoint out 1 December.  We didn't make that, either. 
18:02:31  <[GregoryNoel](GregoryNoel)>  Assuming we get the release out this week, we have some decisions to make.  Should we slide the rest of the schedule by a week, so the next checkpoint is 8 December?  Cancel the 1 December checkpoint and keep the current schedule, with the next checkpoint 15 December?  Or something else? 
18:02:31  <[GregoryNoel](GregoryNoel)>  I lean toward dropping the 1 December checkpoint, but I could be easily persuaded differently. 
18:02:59  <stevenknight> i put out a release candidate 11/25? 
18:03:33  <[GregoryNoel](GregoryNoel)>  I think that's about right 
18:03:28  <garyo-home>   I have three 1.2 tickets on my plate.  None serious except maybe #2048 which I'm working on but fails in weird ways 
18:04:42  <stevenknight> oh, wait, I see--the release schedule is 12/1 checkpoint that was supposed to be *after* 1.2 was out 
18:04:45  <stevenknight> and i'm late with 1.2 
18:04:51  <stevenknight> right? 
18:05:10  <garyo-home>   I think so.  I'd like to get 1.2 out soon then put vs_revamp in for next checkpoint after that. 
18:05:40  <[GregoryNoel](GregoryNoel)>  stevenknight, yes 
18:05:37  <stevenknight> right, and I actually have batched Visual C/C++ compilation working on a private branch that I'd like to go in 
18:05:56  <garyo-home>   wow! 
18:05:57  <Jason_>       I would like to add stuff to the revamp 
18:06:12  <garyo-home>   Jason: good.  You have an intelc.py version of it too I think. 
18:06:12  <stevenknight> okay, so let's review 1.2 issues and push anything that's not a potential/likely blocker in 1.3 
18:06:18  <Jason_>       We have some work not finished that will improve it and make it faster 
18:06:38  <garyo-home>   OK.  Let's get it into the trunk, then review & apply your changes 
18:06:46  <Jason_>       yep... still working on that part 
18:06:48  <garyo-home>   ok? 
18:07:02  <Jason_>       plus we have early support for vs 2010 and intel 11 
18:07:02  <stevenknight> garyo_home:  "it" into the trunk:  "it" == vs_revamp? 
18:07:14  <stevenknight> Jason_:  sweet 
18:07:31  <garyo-home>   steven: yes, it==vs_revamp. 
18:07:36  <Jason_>       I have "people" that know "people" 
18:07:38  <stevenknight> okay, agreed 
18:08:01  <Jason_>       Well my fixes to the revamp.. are a bit different from the work David did 
18:08:02  <garyo-home>   There are 40 open 1.2 issues. 
18:08:05  <[GregoryNoel](GregoryNoel)>  Almost 40 issues scheduled for 1.2 still 
18:08:13  <[GregoryNoel](GregoryNoel)>  garyo-home, jinx 
18:08:47  <garyo-home>   Jason_: send a summary of your ideas & differences to the list, we'll discuss it there. 
18:08:55  <Jason_>       ok 
18:09:13  <garyo-home>   It's a bigger forum, David will be present, etc. 
18:09:16  <stevenknight> a lot of the 40 issues are readily rollable to 1.3 
18:09:19  <stevenknight> doc issues, e.g. 
18:09:57  <[GregoryNoel](GregoryNoel)>  Mine are all doc and testing (I haven't figured out how to test Action._subproc yet) 
18:10:05  <garyo-home>   15 P2s, the rest P3 & P4. 
18:10:49  <stevenknight> oh, and 40 doesn't count the two potential blockers we discussed tonight 
18:11:15  <stevenknight> quick, quick glance suggests all P3 & P4 are automatically deferrable 
18:12:07  <garyo-home>   agreed. 
18:12:09  <stevenknight> and I think the cournape P2 issues are because we once thought vs_revamp was going to make it into 1.2 
18:12:54  <garyo-home>   Is Benoit around?  Any likelihood of his 4 issues getting done? 
18:13:06  <stevenknight> slim, he's been AWOL for a while 
18:13:21  <garyo-home>   thought so. 
18:13:31  <stevenknight> worth considering reassigning his issues so they don't languish 
18:14:04  <garyo-home>   Yes.  I suggest moving to 1.3 for now, then reassigning. 
18:15:02  <[GregoryNoel](GregoryNoel)>  garyo-home, agree 
18:15:13  <stevenknight> okay, so it sounds like the only two issues that don't go to 1.3 are the two new potential blockers 
18:15:32  <[GregoryNoel](GregoryNoel)>  I can do that with a mass move. 
18:15:41  <stevenknight> [GregoryNoel](GregoryNoel):  thanks 
18:15:33  <stevenknight> we get patches for those (or research suggests deferring to 1.3) and then I cut another 1.2 candidate 
18:16:02  <garyo-home>   What's up w/ 2249 though? 
18:16:44  <stevenknight> dunno... 
18:16:47  <garyo-home>   (Not that it should be in 1.2 anyway, but how'd it get there?) 
18:17:07  <stevenknight> vs_revamp, we thought it would be in 1.2 
18:17:08  <garyo-home>   It can move to 1.3 too since it's vs_revamp related. 
18:17:59  <garyo-home>   ok, so given all that, what's the proposed 1.2 release date? 
18:18:10  <[GregoryNoel](GregoryNoel)>  ASAP? 
18:18:13  <stevenknight> stake in the ground:  12 December, a week from Friday 
18:18:20  <stevenknight> candidate 5 December, two days 
18:18:32  <stevenknight> for the two potential blockers 
18:18:41  <[GregoryNoel](GregoryNoel)>  works; I'll update the roadmap 
18:18:44  <garyo-home>   ok, so I have some time to sneak in some little things before the candidate, then we freeze, right? 
18:19:00  <stevenknight> yep 
18:19:04  <garyo-home>   good. 
18:19:20  <stevenknight> okay, shall we move on to Jason_'s topic? 
18:19:37  <garyo-home>   yes. 
18:19:57  <garyo-home>   I looked a little at the doc for Parts; it is quite serious! 
18:20:22  <Jason_>       Well we have some new tool coming out... it has to be a bit serious 
18:20:41  <garyo-home>   Jason, I wonder if some of it couldn't be done with SCons Tools instead, but basically it looks useful. 
18:20:49  <garyo-home>   What's the new Intel tool coming out? 
18:21:05  <Jason_>       well I have a lot to say on all of this 
18:21:21  <Jason_>       Idea the doc i sent is about extending Scons... 
18:21:31  <garyo-home>   The basic idea is a way to make a scalable composition of libs etc., right? 
18:21:32  <Jason_>       here i think tools needs many improvements 
18:22:05  <Jason_>       well yes... but also about making large project sain to deal with 
18:22:33  <garyo-home>   Right, by imposing certain conventions that make it subdividable nicely. 
18:22:36  <Jason_>       having a unified build system is very important 
18:22:55  <Jason_>       but also trying to be flexible 
18:23:07  <stevenknight> sorry, I haven't had time to look before now 
18:23:09  <Jason_>       it is a hard balance... 
18:23:12  <garyo-home>   Of course; lots of people have large unified build systems with SCons.  Your way is one way of formalizing a structure. 
18:23:18  <stevenknight> is the doc the .7z file you attached? 
18:23:29  <garyo-home>   Steven: yes, it's in there. 
18:23:37  <Jason_>       yes.. the problem with the team i work with is that we are all over the place 
18:23:48  <Jason_>       having a "make system" does not work well 
18:23:56  <Jason_>       yes 
18:24:16  <stevenknight> agh, i don't have 7zip on this system 
18:24:24  <Jason_>       it is in word 2007 format.. I can give you an update in something else like html 
18:25:25  <Jason_>       so the first question for me is how can we best stare this code 
18:25:54  <Jason_>       My boss would like this to be part of SCons instead of it own project... 
18:26:27  <Jason_>       however it might be best to have it as a seperate project with heavy SCons involment 
18:27:11  <garyo-home>   I've long thought it would be good for SCons to have a contrib/ subtree, so that might be one way to go.  The downside is you're tied to SCons release schedule and other stuff though.  Separate is probably easier. 
18:27:36  <Jason_>       well we have our own svn branch here at Intel 
18:27:48  <Jason_>       ideally we would try to move to a public one 
18:28:15  <Jason_>       but we have some stuff in a subdir call "pieces" that i cannot ship 
18:28:33  <garyo-home>   Not sure what the best way to host a project like that is, but there are many places to look. 
18:28:44  <Jason_>       as it is internal add on that have knowleage of internal Intel networks 
18:28:59  <garyo-home>   You'll have to make it work "out of the box" from the public repo, of course. 
18:29:10  <Jason_>       yep that is the idea 
18:29:22  <Jason_>       the sample in the code i gave you should work out of the box 
18:29:33  <garyo-home>   I think everyone will be happier if it is separate from scons but closely related, at least for now. 
18:29:37  <Jason_>       the full sample will need svn to be installed :-) 
18:30:09  <garyo-home>   But we should spend some time at least reading the doc to get an idea of the scope and goals of the project. 
18:30:17  <Jason_>       If this agreed, I will start the process to make a tigris Parts project 
18:30:39  <garyo-home>   How about calling it SConsParts or something to show its relation to SCons? 
18:30:58  <Jason_>       that is fine with me 
18:31:12  <Jason_>       any other votes? 
18:31:58  <garyo-home>   Let's talk about the tech details and direction more at the next bug party meeting in 2 weeks. 
18:32:11  <stevenknight> sorry, still trying to open things up 
18:32:28  <stevenknight> got the .7z open, but i don't have Office on the system I switched to... 
18:32:28  <Jason_>       in 2 week I will be in florida *not* working 
18:32:31  <garyo-home>   btw, is this going to appear in a public tool from Intel? 
18:32:35  <Jason_>       so after that is fine 
18:33:01  <garyo-home>   Jason: ok, whenever you are around.  But give us a week or so to look it over. 
18:33:10  <Jason_>       sure 
18:33:14  <garyo-home>   Esp. given 1.2 release schedule :-) 
18:33:29  <stevenknight> Jason_:  there's an early effort here at Google to do something that sounds similar to Parts 
18:33:38  <stevenknight> but it looks like you're much farther along 
18:33:46  <stevenknight> when I look, I 
18:33:47  <Jason_>       so the parts stuff will be public.. MIT under Intel with the intent to be move as much as possible to SCons 
18:34:02  <Jason_>       you work at Google 
18:34:14  <stevenknight> I'm going to look for areas of possible cooperation 
18:34:27  <stevenknight> yes, almost 11 months now 
18:34:38  <Jason_>       oh .. I thought it was VMware 
18:34:45  <stevenknight> that was before, and on contract 
18:34:56  <Jason_>       well you should contact me... INtel and google have a lot going on 
18:35:18  <stevenknight> the problem you're addressing is what we're running into too 
18:35:46  <Jason_>       so are many projects at Intel .... 
18:35:56  <stevenknight> right, SCons is pretty good low-level plumbing 
18:36:08  <Jason_>       very powerful stuff however 
18:36:15  <stevenknight> but there's no consistency for higher layer plug-and-play between components 
18:36:35  <stevenknight> esp. in the open source world it all depends on how the person wrote the SCons config 
18:36:37  <Jason_>       I think as i under scons better and you parts.. I think there is a lot of value here to improve on 
18:36:47  <stevenknight> agreed 
18:37:10  <Jason_>       the plug and play in very important 
18:37:30  <stevenknight> right, it's the real value add of Autotools (IMHO) 
18:37:31  <Jason_>       when I was at a start up before intel.. one person controled the make scripts 
18:37:58  <stevenknight> being able to approach any package and know how to at least build it consistently 
18:38:12  <Jason_>       in there larger cross geo.. developer fight over details and perfection 
18:38:14  <stevenknight> sounds like Parts goes even further though 
18:38:23  <Jason_>       so everything breaks . 
18:38:26  <stevenknight> right 
18:38:32  <stevenknight> so following up on what Gary said 
18:38:42  <Jason_>       cross geo poltics i have found can make it hard to get simple stuff done 
18:38:56  <stevenknight> I'm going to take a closer look after 1.2 is out 
18:39:03  <Jason_>       ok 
18:39:24  <stevenknight> and perhaps touch base with you off line to compare first impressions 
18:39:26  <Jason_>       I will send out friday an update to the code and document ( small tweaks and fixes) 
18:39:33  <stevenknight> thanks 
18:39:41  <Jason_>       so FYI 
18:39:41  <stevenknight> if you can convert doc to some non-Word format that'd help me 
18:39:51  <garyo-home>   same here 
18:39:49  <Jason_>       WW 51 i am out of town 
18:40:05  <garyo-home>   What is "WW 51"? 
18:40:08  <Jason_>        I will be around other wise and will keep track of the e-mails 
18:40:23  <Jason_>       week of Dec 15 
18:40:34  <garyo-home>   ah yes. 
18:40:43  <stevenknight> okay, i'll look for your update and we'll go from there 
18:40:50  <Jason_>       ok 
18:40:57  <Jason_>       thank you for your time 
18:41:12  <garyo-home>   ok, Steven I think it's your turn now! 
18:41:17  <stevenknight> ok 
18:41:21  <garyo-home>   Jason_: yr welcome. 
18:41:40  <stevenknight> one is the Visual C/C++ batch builder change I mentioned 
18:41:58  <stevenknight> took a while, but it's close to solid 
18:42:09  <stevenknight> some unit tests need attention 
18:42:27  <garyo-home>   Impressive, can't wait to try it.  We have a lot of vc++ compiled into a few big libs. 
18:42:54  <stevenknight> i'm going to try to get it in right away after 1.2 is out so it gets soak time 
18:43:16  <stevenknight> it has some changes to the Taskmaster that aren't terribly extensive 
18:43:23  <stevenknight> but may have unintended side effects 
18:43:31  <[GregoryNoel](GregoryNoel)>  (BRB.  My wife just arrived with food and I've got to eat it while it's hot.) 
18:43:56  <garyo-home>   Do users have to do anything or does it just work? 
18:43:59  <stevenknight> darn, bad timing, I was going to ask Greg something about Taskmaster NG 
18:44:03  <Jason_>       If you need someone to help test the taskmaster on a large project we are happy to help 
18:44:24  <stevenknight> it's controlled by setting MSVC_BATCH=True (or 1 or whatever) 
18:44:59  <garyo-home>   sounds great.  Does it generalize to other batch-buildable things? 
18:45:06  <stevenknight> yes 
18:45:10  <[GregoryNoel](GregoryNoel)>  (I'm still reading, but I have to put down the burger to type.) 
18:45:18  <stevenknight> okay, cool 
18:45:21  <Jason_>       if you can give me the detail of what to do i will give it a run on a few new i7 systems 
18:45:41  <stevenknight> the Taskmaster issues is that this suggests the Taskmaster is handling the wrong granularity of input 
18:45:45  <stevenknight> it's looking at individual Nodes 
18:45:55  <stevenknight> and I'm beginning to think it should be looking at Executors 
18:46:13  <stevenknight> [GregoryNoel](GregoryNoel), just chew on that a little and let me know if it sounds crazy 
18:46:16  <stevenknight> based on your TNG work 
18:46:37  <stevenknight> you can do your own batch builder at the Action() level 
18:46:51  <stevenknight> simplest case is Action('$FOOCOM', batch_key=True) 
18:47:02  <[GregoryNoel](GregoryNoel)>  That's what TNG does: the transverse graph is in (a wrapper around) the Executor. 
18:47:14  <stevenknight> sweet, so I'm not entirely crazy, at least 
18:47:21  <stevenknight> maybe this helps move us toward TNG 
18:47:52  <stevenknight> batch_key=True will separate all calls to the given Builder using that action 
18:48:59  <stevenknight> into grouped batches for the four-tuple (Action, env) 
18:49:05  <stevenknight> excuse me, two-tuple 
18:49:22  <stevenknight> batch_key can also be a function that takes (action, env, target, source) 
18:49:39  <stevenknight> and returns the key to be used for separating batches 
18:50:37  <stevenknight> so the MSVC_BATCH support uses the four-tuple (action, env, target.dir, source.dir) as the key 
18:50:56  <garyo-home>   That's very clever. 
18:51:05  <stevenknight> with the upshot that you get batched compilation of all object files in a given directory 
18:51:26  <stevenknight> because $CPPPPATH can affect your #includes based on the directory 
18:51:36  <garyo-home>   ... and the same compiler options etc. 
18:51:49  <stevenknight> right, out of the same env 
18:52:14  <garyo-home>   Is it a lot faster? 
18:52:31  <stevenknight> for our config (Google Chrome) only about 10%-15% 
18:52:41  <stevenknight> which is nothing to sneeze at, but still, we were hoping for more 
18:52:50  <garyo-home>   That's nothing to sneeze at (jinx) 
18:53:04  <stevenknight> on the other hand, i haven't gone in and profiled and optimizd it yet 
18:53:17  <stevenknight> i'll probably upload to a subversion branch so people can try it out early 
18:53:20  <garyo-home>   For us, we use -O3 with the Intel compiler so all the time goes into the link step, but I'm sure this will help us even in that case. 
18:53:21  <stevenknight> and send out email+doc 
18:53:50  <stevenknight> (i've been doing this work experimenting with mercurial as a front end private branch development) 
18:54:07  <stevenknight> okay, enough of that 
18:54:24  <garyo-home>   what else? 
18:54:34  <stevenknight> next:  Google contributors to SCons 
18:54:41  <Jason_>       so i have a question 
18:54:49  <stevenknight> yes? 
18:55:03  <Jason_>       is there any plans to improve the depend checker for C/C++ 
18:55:16  <Jason_>       there is a bit of an issue with BOOST headers for use 
18:55:21  <stevenknight> i.e. make it like a real C preprocessor? 
18:55:34  <Jason_>       We have a work around... but it seem to cause more trouble than it solves 
18:55:39  <stevenknight> there's an experimental module that will do that 
18:56:08  <Jason_>       well one that is smart enought to get the #include FOOBAR stuff 
18:56:16  <stevenknight> yes 
18:56:27  <stevenknight> take a look at (IIRC) Scanner/C.py 
18:56:31  <Jason_>       how can we try it out 
18:56:59  <Jason_>       branch in SCons? 
18:57:01  <stevenknight> there's some commented out code that uses a cpp.py module to do enough "real" CPP stuff to handle boost 
18:57:05  <Jason_>       or in the main code 
18:57:09  <stevenknight> no, it's checked in trunk 
18:57:33  <stevenknight> just hasn't been productized by giving it the right user-configurable hook 
18:57:43  <stevenknight> if you want to finish that piece and contribute it back, it'd be very welcome 
18:58:04  <stevenknight> next:  google contributors 
18:58:30  <stevenknight> i have more people here starting to look at SCons internals 
18:58:39  <stevenknight> especially w.r.t. performance 
18:59:08  <stevenknight> which is good 
18:59:23  <stevenknight> but we're finding that a lot of the flexibility we prize in SCons 
18:59:53  <stevenknight> is antithetical to the kind of caching we'd need to do to really speed up things 
19:00:08  <stevenknight> i'm wrestling with how best to channel this interest and energy 
19:00:21  <garyo-home>   that's hard. 
19:00:34  <stevenknight> in ways that help SCons overall as well as Google's own purposes 
19:00:50  <stevenknight> a Google fork of SCons is unattractive 
19:00:58  <garyo-home>   Right, certainly. 
19:01:12  <garyo-home>   Some kind of "mode"? 
19:01:17  <stevenknight> but taking some of this work back into main line runs serious risk of breaking backwards compatibility 
19:02:05  <garyo-home>   and also making some existing idioms just plain not work, possibly. 
19:02:12  <stevenknight> right 
19:02:31  <garyo-home>   How invasive is it? 
19:02:57  <stevenknight> well, we're in early stages 
19:03:07  <stevenknight> so more hypthetical than not 
19:03:12  <garyo-home>   ok. 
19:03:27  <stevenknight> one patch i have queued tries to avoid starving child worker threads 
19:03:39  <stevenknight> (actually doesn't try, it does avoid it) 
19:03:57  <stevenknight> by just feeding as many ready Tasks as possible into the queue 
19:04:00  <stevenknight> that doesn't break compatibility 
19:04:20  <garyo-home>   That seems great.  In general, I think if it's really valuable, breaking simple back compat is ok (i.e. people have to do some simple recoding), but forcing larger changes is problematic. 
19:04:23  <stevenknight> but it's in that pesky Taskmaster area where unintended affects abound 
19:04:25  <[GregoryNoel](GregoryNoel)>  Sounds like TNG 
19:05:00  <stevenknight> mm, maybe I should send this patch to you to see what you think 
19:05:36  <stevenknight> we were able to do some visualization (using Incredibuild) to see the starvation at work without the patch, and no starvation with it 
19:06:32  <[GregoryNoel](GregoryNoel)>  Sure, I can take a look.  You should also look at TNG. 
19:06:33  <stevenknight> tradeoff is more CPU cycles in the master thread searching the whole DAG for work more frequently 
19:06:55  <[GregoryNoel](GregoryNoel)>  TNG avoids that. 
19:07:09  <stevenknight> okay, let's swap code and see how close we are 
19:07:33  <stevenknight> are there issues holding up TNG? 
19:08:02  <[GregoryNoel](GregoryNoel)>  No, not really.  Just lack of time. 
19:08:08  <stevenknight> okay 
19:08:12  <stevenknight> i'll send you the patch from here 
19:08:37  <stevenknight> so now that I'm articulating this 
19:08:38  <[GregoryNoel](GregoryNoel)>  (here?) 
19:08:43  <stevenknight> Google 
19:09:30  <stevenknight> the meta issue is that this could bring a lot more impactive changes quickly into SCons 
19:09:42  <stevenknight> with attendant possibility for destabilizing things 
19:10:04  <stevenknight> in order to not hold up stuff, I'm going to have to spend (more) work time actually, oh, integrating patches 
19:10:07  <[GregoryNoel](GregoryNoel)>  (my fingers are still sticky, but I'm otherwise back.) 
19:10:08  <stevenknight> in general, not just from Google 
19:10:34  <stevenknight> and to do that I'm having to draft people here to cover some of the front-line work i've been trying to do on the Google Chrome build 
19:11:12  <stevenknight> one other possibility I considered was to have a "google branch" in our SVN repository 
19:11:29  <stevenknight> and pluck changes from that into trunk 
19:11:32  <[GregoryNoel](GregoryNoel)>  opposed: branches by features, not source 
19:11:49  <stevenknight> yeah, that makes sense 
19:12:23  <stevenknight> okay, so i just need to become johnny-on-the-spot with integration 
19:12:33  <stevenknight> and maybe recruit additional committers / integrators 
19:12:40  <stevenknight> from Google or elsewhere 
19:12:50  <garyo-home>   can you do that from Google?  Would be useful. 
19:13:05  <garyo-home>   We haven't had much luck from the users list to date. 
19:13:20  <stevenknight> can I do...?  get more people from here working on SCons-the-project? 
19:13:57  <garyo-home>   Yes. 
19:14:18  <stevenknight> there's certainly no institutional barrier 
19:14:57  <garyo-home>   Maybe get another googler or two on the dev list, tag along to a bug party... 
19:15:01  <stevenknight> client-side projects here are getting behind SCons pretty heavily 
19:15:09  <[GregoryNoel](GregoryNoel)>  Doesn't Google have a rule that you can spend up to 20% of your time "doing good"?  Recruit in that space. 
19:15:43  <stevenknight> that still ends up being driven by whether people have an itch to scratch 
19:15:51  <stevenknight> that they want to spend their 20% on 
19:16:07  <garyo-home>   but SCons is *sooo* *coool*! 
19:16:07  <[GregoryNoel](GregoryNoel)>  Of course.  But fixing their build system to support themselves better is a strong itch. 
19:16:08  <stevenknight> the potential itch here is speeding up builds for their projects 
19:16:31  <garyo-home>   That makes sense. 
19:16:53  <Jason_>       you need faster startup times? 
19:17:01  <stevenknight> faster null build times 
19:17:14  <garyo-home>   steven: agreed, same here. 
19:17:18  <[GregoryNoel](GregoryNoel)>  ditto 
19:17:24  <garyo-home>   hence your caching ideas. 
19:17:28  <Jason_>       ya... big issue here.. I have a work around... but it a hack 
19:17:37  <stevenknight> Jason_:  what's your workaround? 
19:17:48  <Jason_>       we have a DB file we make 
19:18:03  <Jason_>       we use this to figure out if we need to define soemthing to SCons 
19:18:13  <Jason_>       this speeds up builds a great deal 
19:18:26  <Jason_>       we woudl have NULL build of 8-10 minutes 
19:18:39  <stevenknight> so you only conditionally load parts of the configuration based on this DB? 
19:18:47  <Jason_>       got it down to 13-63 
19:18:53  <Jason_>       depending on the target 
19:19:06  <Jason_>       13-63 secs 
19:19:22  <Jason_>       yes... but we have to have one good run 
19:19:33  <stevenknight> right, to prep the DB with legitimate info 
19:19:35  <stevenknight> that makes sense 
19:19:39  <Jason_>       else we don't know what is defined 
19:20:01  <stevenknight> kind of related to this is making the DAG in SCons a real DAG 
19:20:08  <stevenknight> (something I know Greg is very much in favor of) 
19:20:18  <stevenknight> with separate tuples representing the edges 
19:20:19  <Jason_>       Same here 
19:20:35  <[GregoryNoel](GregoryNoel)>  Er, I thing you mean making the .sconsign a real DAG, but yes, I do. 
19:20:42  <Jason_>       then you can throw some well known task processing code at it 
19:20:53  <Jason_>       such as stuff used by a compiler 
19:20:59  <stevenknight> right 
19:20:59  <garyo-home>   That scares me a little unless you explicitly allow runtime modification of the DAG 
19:21:16  <[GregoryNoel](GregoryNoel)>  white papers on request. 
19:21:27  <stevenknight> and be able to infer what to build from known changed files 
19:21:43  <garyo-home>   ... but maybe users have to explicitly identify when they're modifying the DAG at runtime to invalidate and/or rescan 
19:21:48  <stevenknight> instead of always having to walk from targets down, searching for what might have changed 
19:21:57  <stevenknight> [GregoryNoel](GregoryNoel):  request, send white papers 
19:22:19  <stevenknight> garyo-home:  you have a use case in mind? 
19:22:31  <garyo-home>   Dynamic source generators. 
19:22:42  <Jason_>       Agreeded 
19:22:46  <garyo-home>   Where you don't know all the generated source names up front. 
19:22:48  <Jason_>       we have that as well 
19:22:51  <stevenknight> that should still be possible 
19:23:05  <garyo-home>   Good, I rely heavily on that. 
19:23:21  <stevenknight> i think the nodes would still have .sources, .implicit, .explicit etc. 
19:23:23  <Jason_>       a simple example if a Doxygen builder 
19:23:31  <[GregoryNoel](GregoryNoel)>  In point of fact, I'd like to optimize the null case first, when the SConscripts haven't been changed, and work from there. 
19:23:33  <stevenknight> but instead of pointing directly to ohter Nodes 
19:23:40  <Jason_>       it can't really know what it will build up front 
19:23:41  <stevenknight> they'd be lists of DAG edges 
19:24:00  <stevenknight> [GregoryNoel](GregoryNoel):  agree in general 
19:24:03  <garyo-home>   Jason_: a very good use case there. 
19:24:18  <stevenknight> but how do we know when the null case is optimized "enough" ? 
19:24:30  <garyo-home>   Steven: I have to think about that before I understand you. 
19:24:34  <[GregoryNoel](GregoryNoel)>  Zero time in parsing. 
19:24:50  <stevenknight> wow, configurations are so different 
19:25:00  <stevenknight> parsing is a really small part of our null build time 
19:25:32  <[GregoryNoel](GregoryNoel)>  I wonder... 
19:26:02  <stevenknight> profiling shows we're heavily dominated by string (re-)expansion 
19:26:46  <[GregoryNoel](GregoryNoel)>  True, and working the bug list yesterday I found a case where a string was expanded *six* times to the same effect. 
19:26:35  <Jason_>       idea... you might want to look at the parts mapper.py file 
19:26:59  <Jason_>       we sort of replace expantions.. to get around the time issue here 
19:27:07  <stevenknight> Jason_;  aha 
19:27:27  <stevenknight> I'll look at what you did as a source of ideas 
19:27:40  <stevenknight> one of my big problems is I've spent so much time focusing on making corner cases work 
19:27:44  <Jason_>       part of this is me hacking a wrapper around the scanner object to force a few expansions 
19:27:59  <stevenknight> that I'm prone to ignore effective solutions that really help the common case(s) 
19:28:03  <Jason_>       5-10% difference in speed 
19:28:32  <stevenknight> we got a pretty good improvement just running big long CPPPATH lists through env.subst() when assigning them 
19:28:58  <Jason_>       the problem was i did not see it when you added it :-( 
19:29:13  <stevenknight> ?  not in SCons itself, in our configuration 
19:29:32  <Jason_>       oh... never was able to use them 
19:30:29  <stevenknight> anyone else about ready to turn into a pumpkin too? 
19:30:36  <stevenknight> I should head for home... 
19:30:39  <garyo-home>   yes, time for me to go. 
19:30:41  <[GregoryNoel](GregoryNoel)>  Long past time for me 
19:30:48  <stevenknight> okay, many thanks guys 
19:30:52  <garyo-home>   Thanks a lot as usual, guys! 
19:30:54  <[GregoryNoel](GregoryNoel)>  two weeks? 
19:30:59  <garyo-home>   ok for me. 
19:31:00  <stevenknight> hopefully we'll see some increased activity coming up 
19:31:06  <stevenknight> two weeks is good for me 
19:31:07  <Jason_>       latter! 
19:31:12  <[GregoryNoel](GregoryNoel)>  Next meeting 17 Dec then?  1.2 should be out, as well as the first checkpoint toward 1.3.  Agreed? 
19:31:12  <[GregoryNoel](GregoryNoel)>  Next meeting 17 Dec then?  1.2 should be out, as well as the first checkpoint toward 1.3.  Agreed? 
19:31:12  <[GregoryNoel](GregoryNoel)>  Next meeting 17 Dec then?  1.2 should be out, as well as the first checkpoint toward 1.3.  Agreed? 
19:31:13  <stevenknight> should have 1.2 out by then... 
19:31:27  <[GregoryNoel](GregoryNoel)>  oops... 
19:31:26  <stevenknight> what I tell you three times is true... 
19:31:29  <garyo-home>   greg: yes, yes, yes. 
19:32:04  <stevenknight> for the snark *was* a boojum, you see... 
19:32:08  <garyo-home>   :-) 
19:32:17  <[GregoryNoel](GregoryNoel)>  snicker-snack 
19:32:17  <garyo-home>   ok, g'night all. 
19:32:22  *      Jason_ has quit ("Leaving") 
19:32:25  <[GregoryNoel](GregoryNoel)>  cul 
19:32:29  <stevenknight> later 
19:32:39  *      garyo-home has quit ("[ChatZilla](ChatZilla) 0.9.84 [Firefox 3.0.4/2008102920]") 
19:47:01  *      stevenknight has quit ("Leaving") 

Clone this wiki locally