Skip to content
William Deegan edited this page Jan 14, 2016 · 2 revisions
17:00:52  <[GregoryNoel](GregoryNoel)>  It's time.  Who's where for the bug party? 
17:01:24  *      garyo-home (n=[chatzill@209-6-158-38.c3-0.smr-ubr3.sbo-smr.ma.cable.rcn.com](mailto:chatzill@209-6-158-38.c3-0.smr-ubr3.sbo-smr.ma.cable.rcn.com)) has joined #scons 
17:01:47  <garyo-home>   Hi folks. 
17:01:57  <[GregoryNoel](GregoryNoel)>  Folk, singular. 
17:02:17  <garyo-home>   Hi, Greg. 
17:02:39  <[GregoryNoel](GregoryNoel)>  Hi...  Nobody here but me and thee. 
17:02:52  <garyo-home>   ok, let's wait a bit then. 
17:03:05  <[GregoryNoel](GregoryNoel)>  yup 
17:03:28  <[GregoryNoel](GregoryNoel)>  I notice you haven't marked up the current issues.  Nothing to say? 
17:03:43  <garyo-home>   I assume Steven's on his way, he did the spreadsheet etc. 
17:04:20  <garyo-home>   re: current issues: no, I missed them :-(, did all the old ones. 
17:04:46  <[GregoryNoel](GregoryNoel)>  yes, he did, but basically only he and I marked them up. 
17:05:15  <garyo-home>   I did a bunch of old ones actually. 
17:05:20  *      [GregoryNoel](GregoryNoel) overrun by puppy, hang on 
17:05:34  <garyo-home>   Grr, current spreadsheet isn't letting me in yet... 
17:06:14  *      garyo-home has quit (Client Quit) 
17:07:10  *      garyo-home (n=[chatzill@209-6-158-38.c3-0.smr-ubr3.sbo-smr.ma.cable.rcn.com](mailto:chatzill@209-6-158-38.c3-0.smr-ubr3.sbo-smr.ma.cable.rcn.com)) has joined #scons 
17:07:13  *      david<ins> (n=[david@mail.ar.media.kyoto-u.ac.jp](mailto:david@mail.ar.media.kyoto-u.ac.jp)) has joined #scons 
17:07:37  <[GregoryNoel](GregoryNoel)>  Ho, David; welcome back, Gary 
17:07:44  <garyo-home>   Hi again guys. 
17:08:00  <garyo-home>   I still can't write the current issue spreadsheet but I guess it's too late anyway :-( 
17:08:10  <david</ins>>      hello everyone 
17:08:34  <[GregoryNoel](GregoryNoel)>  It worked fine for me; why do you keep having problems? 
17:08:19  <david<ins>>      Am i late ? 
17:08:39  <garyo-home>   no, we're waiting to see who else shows up, hopefully Steven. 
17:08:55  <garyo-home>   Greg: bad behavior in previous life perhaps? 
17:09:13  <[GregoryNoel](GregoryNoel)>  Must be.  Or maybe you're overthinking it. 
17:09:10  <garyo-home>   Maybe Firefox issue? 
17:09:30  <[GregoryNoel](GregoryNoel)>  Not Firefox; works for me. 
17:09:33  <garyo-home>   Some of them work no prob, others dont. 
17:09:44  <garyo-home>   Individual invites have always worked. 
17:10:02  <david</ins>>      does anyone else have slowness problems with spreadsheet ? They are not usable for me, keeps taking 100 %. I have to use another computer for it :) 
17:10:19  <garyo-home>   No, they're usually fine foe me. 
17:10:19  <[GregoryNoel](GregoryNoel)>  They're not fast, but one copes. 
17:10:53  <[GregoryNoel](GregoryNoel)>  david<ins>, do you use Firefox? 
17:10:58  <david</ins>>      Yes 
17:11:13  <[GregoryNoel](GregoryNoel)>  2.0.0.whatever? 
17:11:23  <david<ins>>      firefox 2. something. Other people had problems with it on ubuntu 
17:11:34  <david</ins>>      With spreadsheet, I mean.  
17:11:53  <[GregoryNoel](GregoryNoel)>  Hmmm...  Works fine on my Mac. 
17:12:14  <garyo-home>   I'm using ffox 2.0 on win xp.  I'll try Ubuntu sometime. 
17:12:16  <[GregoryNoel](GregoryNoel)>  Maybe you should get yourself a new computer {;-} 
17:12:28  <[GregoryNoel](GregoryNoel)>  Both of you... 
17:12:30  <david<ins>>      It's a bi-cpu, pentium 4 
17:12:32  <garyo-home>   ... or a new OS 
17:12:54  <garyo-home>   my hw is fine, fast core 2 duo, 2gb etc. 
17:13:01  <david</ins>>      While p4 are not great, they should make possible to read spreadsheet which look simpler than the ones on excel 95 
17:13:41  <garyo-home>   david<ins>, you're right. 
17:13:46  <[GregoryNoel](GregoryNoel)>  Humpf.  PPC 1Ghz rules. 
17:13:43  <david</ins>>      I think there is a bad interaction between ubuntu themes, my hardware and firefox. 
17:14:30  <david<ins>>      So how does this work ? I've just commented on the things I thought I knew something about in the current issues spreadsheet 
17:15:16  <[GregoryNoel](GregoryNoel)>  We work through the issues and decide where they should go (which milestone and priority) 
17:15:54  <david</ins>>      Which spreadsheets are used, besides the current issues one ? 
17:16:10  <[GregoryNoel](GregoryNoel)>  The next one not ticked off 
17:16:12  <garyo-home>   HA - I can open the spreadsheet just fine (r/w) on Ubuntu Hardy in a VM. 
17:16:26  <[GregoryNoel](GregoryNoel)>  with luck, the one after that 
17:16:36  <[GregoryNoel](GregoryNoel)>  and maybe the one after that. 
17:16:59  <garyo-home>   OK, maybe Steven's not coming? 
17:17:01  <david<ins>>      @gary: yes, that's the strange thing, it works better in vm on my another computer 
17:17:22  <garyo-home>   Should we just start and see what we can do? 
17:17:30  <[GregoryNoel](GregoryNoel)>  I'm ready 
17:17:43  <[GregoryNoel](GregoryNoel)>  1643? 
17:17:58  <[GregoryNoel](GregoryNoel)>  Has anyone been in contact with Brandon? 
17:18:03  <garyo-home>   not me. 
17:18:27  <garyo-home>   pass back to OP for more info? 
17:18:45  <[GregoryNoel](GregoryNoel)>  I'm really hesitant to pass over this again, but I don't see any other course. 
17:18:58  <[GregoryNoel](GregoryNoel)>  I don't think the OP has any more info. 
17:19:11  <garyo-home>   How about ask him for the config log. 
17:19:51  <[GregoryNoel](GregoryNoel)>  huh.  Somebody named "sharing" just opened the spreadsheet.  Is that you, David? 
17:19:57  <garyo-home>   Or whether it's all in the same run or separate runs.  And to please post the SConstruct. 
17:20:30  <[GregoryNoel](GregoryNoel)>  OK, but not me, I'm on holiday.  Can you take it? 
17:20:38  <garyo-home>   Sure. 
17:20:51  <[GregoryNoel](GregoryNoel)>  garyo, research, done 
17:21:01  <[GregoryNoel](GregoryNoel)>  1675? 
17:21:05  <david</ins>>      I don't know if sharing is me. Maybe it is, I can't connect to gmail, so I am read only... 
17:21:38  <garyo-home>   1675: wine bug, close. 
17:21:52  <[GregoryNoel](GregoryNoel)>  done 
17:22:01  <[GregoryNoel](GregoryNoel)>  2089 
17:22:39  <[GregoryNoel](GregoryNoel)>  I think the two-variable solution is the right course, but when? 
17:22:48  <garyo-home>   enhancement req: 2.x p3 
17:22:59  <[GregoryNoel](GregoryNoel)>  Hmmm....  OK 
17:23:13  <[GregoryNoel](GregoryNoel)>  wait, 2.x?  Not 1.x? 
17:23:20  <garyo-home>   I could go with that. 
17:23:41  <garyo-home>   It's supposed to be really simple, right?  Just pass the flag to compiler? 
17:23:44  <[GregoryNoel](GregoryNoel)>  I think it needs to be sooner rather than later, and it doesn't look that complex. 
17:23:49  <garyo-home>   ok, 1.x. 
17:23:54  <[GregoryNoel](GregoryNoel)>  Two flags, yeah. 
17:24:09  <[GregoryNoel](GregoryNoel)>  p3? 
17:24:30  <garyo-home>   that's my default 
17:24:39  <[GregoryNoel](GregoryNoel)>  OK, for Steven? 
17:24:49  <garyo-home>   yes 
17:24:54  <[GregoryNoel](GregoryNoel)>  1.x, p3, steven, done 
17:25:01  <[GregoryNoel](GregoryNoel)>  2095? 
17:25:43  <[GregoryNoel](GregoryNoel)>  1.x+symlink, p4, me 
17:25:57  <garyo-home>   Right, I think your ssheet comment is good. 
17:26:20  <[GregoryNoel](GregoryNoel)>  It's how I'd expect it to work {;-} 
17:27:01  <[GregoryNoel](GregoryNoel)>  no other comments?  Done then? 
17:27:18  <david<ins>>      I don't understand the issue, never use symlinks in builds :) 
17:27:20  <garyo-home>   ok. 
17:27:31  <[GregoryNoel](GregoryNoel)>  done 
17:27:36  <[GregoryNoel](GregoryNoel)>  2096? 
17:27:40  <garyo-home>   david</ins>: not sure we'll ever handle them 100% perfectly, but we can do better. 
17:27:54  <garyo-home>   2096: research. 
17:28:06  <[GregoryNoel](GregoryNoel)>  I'm game 
17:28:08  <david<ins>>      Is it something scons is supposed to support or not ? 
17:28:19  <[GregoryNoel](GregoryNoel)>  Good question. 
17:28:27  <[GregoryNoel](GregoryNoel)>  It should support it, but how? 
17:28:50  <[GregoryNoel](GregoryNoel)>  Should all configuration be global?  Or should all configuration be local? 
17:28:34  <garyo-home>   Each one independently, yes.  Together: probably should, just haven't thought it through. 
17:28:57  <[GregoryNoel](GregoryNoel)>  Or some combination of both? 
17:29:04  <[GregoryNoel](GregoryNoel)>  It's not obvious. 
17:29:06  <david</ins>>      gary: maybe [VariantDir](VariantDir) is not the right way, but I think scons should support the notion of a self contained build directory for everything scons ever spits out 
17:29:08  <garyo-home>   Actually now that you mention it, I use both, and expect the sconf files to be under root, not in the build dir.  But I do all my sconf from the SConstruct. 
17:29:42  <[GregoryNoel](GregoryNoel)>  That's why I posed the question 
17:29:40  <garyo-home>   david<ins>: you can use --srcdir for that.  mkdir build; cd build; scons --srcdir .. 
17:30:13  <garyo-home>   anyway, we shouldn't design it here & now. 
17:30:19  <garyo-home>   research, steven. 
17:30:26  <[GregoryNoel](GregoryNoel)>  True...  agree 
17:30:41  <david</ins>>      ok. 
17:30:39  <[GregoryNoel](GregoryNoel)>  2097? 
17:30:59  <david<ins>>      The problem of 2097 is different than 2096, I believe 
17:31:06  <david</ins>>      but if we don't support 2096, then... 
17:31:13  <[GregoryNoel](GregoryNoel)>  Question here is whether this ends up the same issue as 2096 
17:31:20  <david<ins>>      The problem is in [TryRun](TryRun) 
17:31:45  <david</ins>>      Building and linking works fine, but the run the target is not aware of [BuildDir](BuildDir) 
17:31:53  <[GregoryNoel](GregoryNoel)>  But [TryRun](TryRun) is part of SConf, and it should figure out where things should go. 
17:32:03  <garyo-home>   2097 doesn't say anything about [TryRun](TryRun) ?? 
17:32:32  <[GregoryNoel](GregoryNoel)>  In the description, I think 
17:33:02  <david<ins>>      Argh, you're right gary, sorry, I mixed up things 
17:33:02  <[GregoryNoel](GregoryNoel)>  Both are about where the build tests are made and where the results go 
17:33:13  <garyo-home>   huh?  2097 = scons is confused when configuration checks are put into build dir set by [VariantDir](VariantDir)  ? 
17:33:28  <david</ins>>      The problem of 2097 is with the sconsign file 
17:33:35  <garyo-home>   david<ins>: right. 
17:33:40  <david</ins>>      when sconsign is put into the build-dir 
17:34:04  <garyo-home>   david<ins>: actually, when it's *not* in the build dir things can get confused. 
17:34:35  <david</ins>>      Well, in that case, when build dir is not used, it works as expected ? What do you mean ? 
17:34:43  <garyo-home>   but I agree it should check that the files still exist before thinking the file is uptodate. 
17:35:14  <garyo-home>   no, I mean I usually put the .sconsign file into the build dir.  Then removing the build dir removes the .sconsign file and I don't have this problem. 
17:35:31  <david<ins>>      ah 
17:35:48  <garyo-home>   Anyway, it is a bug I think; scons should not think a nonexistent file is up to date! 
17:35:53  <david</ins>>      yes 
17:36:14  <[GregoryNoel](GregoryNoel)>  so, research, steven? 
17:36:15  <garyo-home>   1.x p3 IMHO; who should get configure things? 
17:36:23  <garyo-home>   steven I guess 
17:36:49  <[GregoryNoel](GregoryNoel)>  I think these two should be kept as a pair and assigned the same place 
17:36:52  <david<ins>>      how do you decide between 1.x and 2.x ? 
17:37:01  <[GregoryNoel](GregoryNoel)>  WAG 
17:37:10  <garyo-home>   :-) 
17:37:18  <david</ins>>      WAG meaning ? 
17:37:32  <[GregoryNoel](GregoryNoel)>  Oh, sorry, that's an anagram of "wild-ass guess" 
17:37:33  <garyo-home>   1.0: severe bug.  1.x: should be fixed soon, or hi pri enh req.  2.x: everything else. 
17:37:45  <garyo-home>   how's that? 
17:37:48  <david<ins>>      ok, one new acronym for me 
17:38:01  <[GregoryNoel](GregoryNoel)>  yes, acronym 
17:38:17  <garyo-home>   I don't think 2096 and 2097 are the same; they can be assigned differently. 
17:38:28  <[GregoryNoel](GregoryNoel)>  You forgot 1.0.x and future. 
17:39:11  <garyo-home>   I don't know what to say about 1.0.x; future is so we don't lose track of cool ideas that are not currently practical. 
17:39:29  <david</ins>>      I think 2097 is more sever than 2096, no ? 
17:39:40  <david<ins>>      2096 just does not work. But 2097 is quite surprising 
17:39:44  <garyo-home>   david</ins>: and probably easier to fix. 
17:39:55  <garyo-home>   (2097 easier than 2096) 
17:40:05  <david<ins>>      yes 
17:40:05  <[GregoryNoel](GregoryNoel)>  Both have to do with location of files 
17:40:20  <[GregoryNoel](GregoryNoel)>  I'll bet if you fix one, the other is 90% done 
17:40:41  <garyo-home>   If you fix 2096, 2097 might go away, but not the other way round. 
17:40:55  <garyo-home>   anyway, how about a note in each one referring to the other. 
17:41:00  <[GregoryNoel](GregoryNoel)>  works 
17:41:20  <david</ins>>      I don't understand the implications enough, so nothing to say 
17:41:26  <[GregoryNoel](GregoryNoel)>  so you wanted 1.x p3: I'll go for that 
17:41:33  <david<ins>>      sorry, I meant for issues 2096-2097 
17:41:56  <garyo-home>   Greg: 2097 1.x p3? yes. 
17:42:04  <[GregoryNoel](GregoryNoel)>  done 
17:41:18  <garyo-home>   2098: has patch, good! 
17:42:23  <[GregoryNoel](GregoryNoel)>  2098, I'm not sure the patch will fly as is 
17:42:40  <garyo-home>   haven't looked at it. 
17:42:57  <[GregoryNoel](GregoryNoel)>  It's too simple; special case for python and java, nothing else 
17:43:19  <[GregoryNoel](GregoryNoel)>  so if you had -python -tcl as parameters, it would fail. 
17:43:33  <garyo-home>   I see.  OK, so pass back to OP with comments? 
17:43:40  <[GregoryNoel](GregoryNoel)>  I mean SCons would fail, since it wouldn't get the output right. 
17:43:56  <garyo-home>   Right, understood. 
17:43:58  <[GregoryNoel](GregoryNoel)>  Hmmm...  Sure, we can try that; review next week? 
17:44:05  <garyo-home>   Ask OP to improve patch and resubmit. 
17:44:10  <[GregoryNoel](GregoryNoel)>  done 
17:44:14  <garyo-home>   I'll do it. 
17:44:43  <[GregoryNoel](GregoryNoel)>  somebody will have to do most of them; I won't be around 
17:45:15  <garyo-home>   OK, if you email me the irc log I'll do the data entry. 
17:45:41  <[GregoryNoel](GregoryNoel)>  I can set up the IRC page; I have the tools, but that will be pretty much it. 
17:46:24  <garyo-home>   ok, that's fine.  I'll look there. 
17:46:31  <[GregoryNoel](GregoryNoel)>  2100? 
17:46:37  <garyo-home>   I may have logging enabled here too.  OK, 2100... 
17:47:18  <garyo-home>   Saw this on the ML.  Steven understands it.  I think should be fixed soon; it's a regression. 
17:47:29  <[GregoryNoel](GregoryNoel)>  I don't agree. 
17:47:37  <garyo-home>   ok? 
17:47:37  <david</ins>>      How supporting # in LIBS makes linking more platform independant ? 
17:47:55  <[GregoryNoel](GregoryNoel)>  Not a platform-dependent issue. 
17:47:57  <garyo-home>   umm.  never mind, I was looking at 2099.  Sorry. 
17:48:16  <[GregoryNoel](GregoryNoel)>  Ah, we skipped one... 
17:48:21  <[GregoryNoel](GregoryNoel)>  2099! 
17:48:34  <david<ins>>      The comment of 2100 says it would make it easier to support platform independant linking, so I guess I am missing something 
17:48:56  <garyo-home>   ok, 2099 I say 1.0 or 1.0.x, p2.  Regression. 
17:49:04  <[GregoryNoel](GregoryNoel)>  Let's finish 2100 and then go back 
17:49:10  <garyo-home>   ok 
17:49:26  *      stevenknight (n=stevenkn@nat/google/x-bf5612cd2f2152ca) has joined #scons 
17:49:34  <stevenknight> hey, anyone still here? 
17:49:38  <garyo-home>   Hi, Steven! 
17:49:42  <[GregoryNoel](GregoryNoel)>  No, we've all left 
17:49:58  <[GregoryNoel](GregoryNoel)>  We're arguing over 2100 
17:50:15  <stevenknight> sorry about that, got pulled into one of those urgent impromptu meetings 
17:50:15  <garyo-home>   2100: if it's a pathname, why not use ./#foo.so if the libname is foo and you don't want it turned into top-relative? 
17:50:35  <garyo-home>   steven: we just gave you all the bugs, p1, 1.0. 
17:50:39  <[GregoryNoel](GregoryNoel)>  It's _not_ a pathname! 
17:50:42  <stevenknight> excellent 
17:50:44  <garyo-home>   ;-) 
17:50:54  <[GregoryNoel](GregoryNoel)>  It's a library name. 
17:51:04  <garyo-home>   He says path name. 
17:51:15  <stevenknight> historically, it's been a library name 
17:51:27  <[GregoryNoel](GregoryNoel)>  If you put a bare string in LIBS, it gets wrapped. 
17:51:28  <stevenknight> my question is:  is there a reason why it can't also refer to an actual *library*? 
17:51:33  <stevenknight> either as a node or a path name? 
17:51:52  <[GregoryNoel](GregoryNoel)>  How can you tell?  Library names can be anything, including 'm' 
17:52:03  <garyo-home>   I use Nodes, but I think abs pathnames work too.  Maybe # is turning it *into* a pathname? 
17:52:20  <garyo-home>   Greg: begins with / or is a Node. 
17:52:33  <stevenknight> garyo-home:  Nodes in LIBS, or Nodes in the SOURCES list? 
17:52:38  <[GregoryNoel](GregoryNoel)>  I can't check quickly, but I'm not sure I believe it. 
17:52:40  <garyo-home>   LIBS. 
17:52:56  <garyo-home>   I know Nodes work, not sure about abs paths. 
17:53:01  <[GregoryNoel](GregoryNoel)>  And what if it begins C: ? 
17:53:09  <stevenknight> I don't think abs paths work 
17:53:18  <[GregoryNoel](GregoryNoel)>  I don't either 
17:53:19  <stevenknight> I think strings all just get a -l prepended (on Linux) 
17:53:20  <garyo-home>   ok, I defer to you. 
17:53:36  <garyo-home>   In which case what's the bug? 
17:53:44  <[GregoryNoel](GregoryNoel)>  invalid 
17:54:04  <stevenknight> You can say env.Program('#foo.c', LIBS=['#bar.lib']) 
17:54:16  <stevenknight> and the target gets interpreted into a Node 
17:54:18  <stevenknight> and the LIBS doesn't 
17:54:23  <[GregoryNoel](GregoryNoel)>  and the first is a file and the second is the name of a lib 
17:54:26  <stevenknight> and that looks inconsistent to users 
17:54:40  <garyo-home>   Steven: but File('#bar.lib') does.  I think it's correct as is. 
17:54:42  <stevenknight> if it's only for the name of a lib then why can you use a Node therE? 
17:55:09  <garyo-home>   sorry, you have to know the path to use File(...) so it's not as easy as I said above. 
17:55:19  <stevenknight> exactly 
17:55:23  <garyo-home>   So you have a point. 
17:55:38  <[GregoryNoel](GregoryNoel)>  Why doesn't File(#name) work? 
17:55:52  <stevenknight> it does 
17:55:53  <garyo-home>   Greg: because typically name is in LIBPATH, not here. 
17:56:02  <stevenknight> but why do you have to specify File() for the target and not the LIBS? 
17:56:19  <[GregoryNoel](GregoryNoel)>  because it's a library name 
17:56:29  <stevenknight> then why does a Node work there? 
17:56:45  <garyo-home>   special dispensation, escape hatch. 
17:56:47  <stevenknight> okay, ta,e this out of LIBS 
17:56:51  <[GregoryNoel](GregoryNoel)>  There's a programing language with sharp in the name; I can believe a library name that starts with a sharp 
17:57:19  <stevenknight> should this behave the same as CPPPATH? 
17:57:34  <garyo-home>   Does it? 
17:57:43  <stevenknight> i'm not sure, actually  :-) 
17:58:01  <[GregoryNoel](GregoryNoel)>  if it ends in PATH, it's a list of file locations; they have Node() applied automatically 
17:58:15  <garyo-home>   It's *slightly* different because libs typically have pre and suffixes, and you specify them without those. 
17:58:21  <stevenknight> we do have a test for absolute paths w/CPPPATH, so it looks like that works 
17:59:04  <stevenknight> and we have tests for '#' as well, so that works 
17:59:17  <stevenknight> true re: prefixes and suffixes 
18:00:07  <garyo-home>   hm, does sound like it's inconsistent though.  What's your recommendation?  Make abs paths and # paths get turned into nodes by looking on LIBPATH? 
18:00:22  <garyo-home>   (sorry, not by looking on any path) 
18:00:20  <stevenknight> let me be real concrete:  the use case I'm running into here is someone who not only put '#foo.lib' in LIBS, but also put just 'bar.lib' without the # 
18:00:42  <stevenknight> well, now I'm going to play devil's advocate and argue with myself 
18:01:02  <stevenknight> because that does open up the can of worms about where on the slippery slope we draw the line 
18:01:13  <stevenknight> which I think might be underlying Greg's concern about this 
18:02:17  <[GregoryNoel](GregoryNoel)>  YES 
18:01:54  <garyo-home>   I'd be comfortable with abs paths; no existing lib could have such a name. 
18:02:12  <stevenknight> yeah, abs paths, and '#' 
18:02:34  <stevenknight> i'm kind of bugged by the fact that LIBS=['foo.lib'] gets turned into '-lfoo.lib' 
18:02:44  <garyo-home>   The suffix problem 
18:02:48  <stevenknight> but I don't know how to avoid that without getting really hairy about suffixes 
18:02:49  <stevenknight> yes 
18:03:08  <garyo-home>   right, what if they really wanted foo.lib.lib 
18:03:26  <garyo-home>   or whatever 
18:03:26  <[GregoryNoel](GregoryNoel)>  You begin to see the issue 
18:03:27  <stevenknight> exactly 
18:03:42  <stevenknight> so I'm not unsympathetic to both sides 
18:03:51  <garyo-home>   but that's a different issue, right?  We're only talking about / and # and maybe C:/ 
18:04:24  <[GregoryNoel](GregoryNoel)>  I say stick to your guns, keep it simple 
18:04:36  <garyo-home>   You kind of want the reverse of what Node does: something to say pass this exactly as is.  But Greg's right, one thing at a time. 
18:04:43  <[GregoryNoel](GregoryNoel)>  and don't start down the slippery slope 
18:04:58  <[GregoryNoel](GregoryNoel)>  not with /, not with #, and not with C: 
18:05:56  <garyo-home>   Greg: be specific please? 
18:06:15  <[GregoryNoel](GregoryNoel)>  Huh?  I think the issue is INVALID 
18:06:27  <[GregoryNoel](GregoryNoel)>  it works exactly as it's supposed to work 
18:06:48  <[GregoryNoel](GregoryNoel)>  and we shouldn't be in the business of being too smart 
18:07:07  <[GregoryNoel](GregoryNoel)>  about what the user (luser?) is "trying" to do 
18:07:15  <david</ins>>      Definitely 
18:07:29  <stevenknight> even when not being smart means we end up confusing the user? 
18:07:38  <david<ins>>      Many tools in python around build/distribition try to be smart, and fail miserably 
18:07:50  <[GregoryNoel](GregoryNoel)>  That's what the FAQ is for, and the mailing lists 
18:08:05  <[GregoryNoel](GregoryNoel)>  If there's really an issue, put it in the documentation 
18:08:07  <garyo-home>   ... and the workaround is always use Node() in those cases?  I think it's pretty clear what someone means if they put a / first. 
18:08:37  <[GregoryNoel](GregoryNoel)>  Pretty clear to whom? 
18:08:44  <garyo-home>   the user. 
18:08:55  <garyo-home>   They don't want -l/foo/bar/baz.lib. 
18:09:21  <[GregoryNoel](GregoryNoel)>  I think you're likely to be correct, but somebody just might. 
18:10:13  <david</ins>>      It is easier to find the workaround than understanding why it does not work in some cases because of 'magic' 
18:10:38  <[GregoryNoel](GregoryNoel)>  Instead of INVALID, how about changing the documentation to be clear about it?  With an example? 
18:10:17  <garyo-home>   I'd be (just barely) OK with documenting it in LIBS.  Use Node() if you want to pass a filename. 
18:10:52  <[GregoryNoel](GregoryNoel)>  File() in this case... 
18:11:06  <david<ins>>      That sounds like the most reasonable thing to do to me 
18:11:11  <garyo-home>   OK. 
18:11:13  <stevenknight> okay, hang on re: File() 
18:11:36  *      [GregoryNoel](GregoryNoel) is hanging.... 
18:11:37  <stevenknight> if you're going to use File() then you have to spell out everything 
18:11:43  <stevenknight> which means you end up with things like: 
18:11:51  <garyo-home>   But you already are in these cases. 
18:12:12  <stevenknight> LIBS = ['$LIBRARY_DIR/foo/${LIBPREFIX}bar{$LIBSUFFIX}') 
18:12:34  <[GregoryNoel](GregoryNoel)>  Huh?  Who ever said that? 
18:12:38  <stevenknight> sorry, LIBS=[File(_)] 
18:12:46  <stevenknight> that's the real-world use case I'm working with right now 
18:12:56  <garyo-home>   right, you need the pre/suffixes for OS independence. 
18:13:29  <garyo-home>   But you were planning on passing a full pathname anyway, right? 
18:14:07  <[GregoryNoel](GregoryNoel)>  I see; File() doesn't interpolate the variables?  What about env.File()? 
18:14:07  <[GregoryNoel](GregoryNoel)>  hello? 
18:14:25  <stevenknight> yes, env.File() 
18:14:40  <stevenknight> sorry, I'm translating between a verbal argument and an IRC argument about this real time... :-) 
18:15:02  <[GregoryNoel](GregoryNoel)>  (I'm seeing some real long latencies between when I send and when it shows up; if I seem out of sync, forgive me) 
18:15:09  <stevenknight> np 
18:15:16  <garyo-home>   ok. 
18:15:23  <stevenknight> fair point about needing to specify the file name 
18:15:41  <david</ins>>      If File does not interpolate, should it be done in File or a Lib subclass ? 
18:15:56  <stevenknight> no, you use env.File(), which does interpolate 
18:15:58  <[GregoryNoel](GregoryNoel)>  In theory, env.File() should interpolate.  Doesn't it? 
18:15:59  <garyo-home>   I think having scons do pre/suffix processing on an abs or # pathname would be gross.  Steven, you're not suggesting that? 
18:15:59  <stevenknight> i mistyped the first example 
18:16:07  <stevenknight> no, i'm not 
18:16:29  <garyo-home>   greg: yes. 
18:16:38  <stevenknight> okay, how about if we table this 
18:16:43  <stevenknight> give it to me to research 
18:16:55  <[GregoryNoel](GregoryNoel)>  I'll agree 
18:16:59  <garyo-home>   ok. 
18:16:58  <stevenknight> I'll kick around ideas here with the real-world sufferers 
18:17:17  <garyo-home>   :-) 
18:17:21  <stevenknight> and we don't discuss it again until (or if) there's a tangible proposal for changing the behavior 
18:17:30  <stevenknight> whew! 
18:18:16  <[GregoryNoel](GregoryNoel)>  Back to 2099?  (which we accidentally skipped?) 
18:18:48  <[GregoryNoel](GregoryNoel)>  Hello? 
18:19:07  <garyo-home>   Saw this on the ML. Steven understands it. I think should be fixed soon; it's a regression. 
18:19:10  <garyo-home>   1.0.x, p2. 
18:19:30  <[GregoryNoel](GregoryNoel)>  works for me 
18:19:31  <stevenknight> done 
18:19:43  <[GregoryNoel](GregoryNoel)>  2101: Consider a Solaris system with the Sun C compiler installed but without GCC installed. 
18:19:43  <[GregoryNoel](GregoryNoel)>  There are three Tools specified for the C compiler: ['aixcc', 'gcc', 'cc'] 
18:19:43  <[GregoryNoel](GregoryNoel)>  Reading that list, one assumes that the AIX is chosen in preference to GCC, which in turn is chosen in preference to a random compiler named 'cc' (which is what the documentation says), but that's not what actually happens. 
18:19:43  <[GregoryNoel](GregoryNoel)>  All three Tools recognize 'cc' as a possible name for their compiler, so all three of them detect the 'cc' command, all three return true from exists(), and all three are generated. 
18:19:43  <[GregoryNoel](GregoryNoel)>  In other words, although the _last_ Tool "wins," any setup done by the earlier tools (and not overwritten by later tools) is still around. 
18:19:43  <[GregoryNoel](GregoryNoel)>  In this case, the latter Tools don't change anything set up by the earlier tools (more accurately, they overwrite with the same values), so the configuration "works" and users can compile. 
18:19:43  <[GregoryNoel](GregoryNoel)>  Fixing this would require that each Tool detect that its tool type (C compiler in this case) had already been configured and return 'False' from exists(). 
18:19:43  <[GregoryNoel](GregoryNoel)>  Not only would this be faster, probably by a lot (only one Tool generated), it wouldn't depend on blind luck that the options are compatible. 
18:19:43  <[GregoryNoel](GregoryNoel)>  The problem is that this isn't backward compatible.  I believe it's what the semantics were supposed to be, but it's not what is implemented currently. 
18:19:43  <[GregoryNoel](GregoryNoel)>  In particular, our most common example "tools=['default','mingw']" no longer would work and would have to be changed to "tools=['mingw','default']" to get the effect intended. 
18:19:43  <[GregoryNoel](GregoryNoel)>  (Or to "tools=['mingw','default','mingw'] so it works either way.) 
18:19:43  <[GregoryNoel](GregoryNoel)>  So the real question before us in this issue is which semantics should be supported in the short term (first "wins" or last "wins"). 
18:19:43  <[GregoryNoel](GregoryNoel)>  In the longer term, the toolchain rework will make the winner the first one, so right now we can choose to match the documentation (and be incompatible) or match the implemented semantics (and change the documentation). 
18:19:43  <[GregoryNoel](GregoryNoel)>  I'm torn.  I feel the documented semantics are the right choice, but it would be a _big_ disruption. 
18:20:21  <stevenknight> damn, Greg, your typing sure got fast all of a sudden! 
18:20:32  <stevenknight> :-) 
18:20:35  <garyo-home>   rofl 
18:20:59  <[GregoryNoel](GregoryNoel)>  I practiced all week {;-} 
18:21:51  <david<ins>>      Concerning tools, my impression is that people who need some control just do it manually, no ? 
18:22:00  <stevenknight> ah, I didn't realize we're incompatible with our own doc 
18:22:39  <[GregoryNoel](GregoryNoel)>  Yes, we seem to be able to apply two different models simultaneously 
18:23:04  <david</ins>>      What is the documented semantics ? 
18:23:12  <david<ins>>      What are, sorry 
18:23:26  <david</ins>>      The one in scons man, or in the code ? 
18:23:37  <stevenknight> my gut is that since there's a good short-term workaround--namely, don't call the tool twice--that it makes more sense to defer this until the toolchain work really does it right 
18:24:06  <stevenknight> ("Doc, it hurts when I do this."  "Well, don't do that.") 
18:24:06  <[GregoryNoel](GregoryNoel)>  The man page says that the first-listed applies.  The code says that _all_ are applied. 
18:24:33  <stevenknight> whoa, wait, I think you're looking at two different lists...? 
18:24:55  <[GregoryNoel](GregoryNoel)>  (In fact, I don't know why it fails.  It should just be generated twice.) 
18:25:25  <garyo-home>   From the stacktrace, the generate doesn't fail, it fails while compiling cause something gets busted. 
18:25:28  <[GregoryNoel](GregoryNoel)>  What two different lists? 
18:25:46  <stevenknight> oh, wait, I'm sorry, I thought you were thinking of the preferences in Tool/<ins>init</ins>.py 
18:26:13  <garyo-home>   I'm trying to find the man page doc for this & failing.  Greg? 
18:26:29  <stevenknight> where does it say only the first is applied? 
18:26:30  <[GregoryNoel](GregoryNoel)>  That may be another bug, not related 
18:26:52  <david<ins>>      I don't remember having seen this either ? I thought scons manual said the last one is applied ? 
18:27:14  <stevenknight> oh, shoot, I hate to be late to the party *and* leave early 
18:27:16  <[GregoryNoel](GregoryNoel)>  Hmmm...  Doesn't it say that local compilers are chosen over FOSS toolchains? 
18:27:17  <garyo-home>   I don't see anything about lists of tools there. 
18:27:19  <stevenknight> but I'm still at work and taking the late shuttle 
18:27:26  <stevenknight> so I have to leave and get over to the stop 
18:27:34  <garyo-home>   Yes, but nothing about lists. 
18:27:55  <stevenknight> I'll connect again once I'm there in case anyone's still going 
18:28:00  <stevenknight> but don't feel obligated on my account 
18:28:02  <garyo-home>   Closest is the MingW section. 
18:28:05  <stevenknight> later 
18:28:09  <garyo-home>   bye 
18:28:09  *      stevenknight has quit ("Leaving") 
18:29:01  <garyo-home>   I don't think we can do anything about this actual bug now in any case.  You have to allow tools to be reapplied in general. 
18:29:43  <[GregoryNoel](GregoryNoel)>  I'm not finding any obvious keywords, but then I'm a terrible searcher. 
18:30:16  <[GregoryNoel](GregoryNoel)>  Wait, it says "On posix and cygwin platforms the GNU tools (e.g. gcc) are preferred by SCons, on Windows the Microsoft tools (e.g. msvc) followed by MinGW are preferred by SCons, and in OS/2 the IBM tools (e.g. icc) are preferred by SCons." 
18:30:36  <[GregoryNoel](GregoryNoel)>  That's not what's reflected in the code. 
18:30:41  <garyo-home>   I don't see a good short term fix for this bug, unless the mingw tool itself is creating a broken env the 2nd time.  I say it should wait for toolchain redo. 
18:30:51  <[GregoryNoel](GregoryNoel)>  works for me 
18:31:26  <[GregoryNoel](GregoryNoel)>  let Steven research whether there's a different bug in play that's tickled by re-applying mingw 
18:31:42  <garyo-home>   good. 
18:32:25  <[GregoryNoel](GregoryNoel)>  2102, stevenknight, [VisualStudio](VisualStudio)? 
18:32:28  <garyo-home>   2102, more Visual Studio, lump in w/ the others.  Could apply his patch but parsing vsvars.bat will be so much better. 
18:32:37  <garyo-home>   agreed. 
18:32:37  <[GregoryNoel](GregoryNoel)>  concur 
18:32:43  <david</ins>>      Argh, I should have asked Steven 
18:32:48  <david<ins>>      I have the code for this 
18:33:07  <david</ins>>      parsing vsvarsall.bat also makes possible cross compilation to x64, in theory 
18:33:41  <[GregoryNoel](GregoryNoel)>  He has the code, yes? 
18:33:41  <garyo-home>   david<ins>: yes.  Please post your code on the dev list if you can.  And you're right, it also solves issue 2013. 
18:33:43  <david</ins>>      I am not sure I understand 2103, but I don't see why parsing .bat would not work in his case 
18:34:07  <garyo-home>   sorry, yes 2103 not 2013 
18:34:07  <david<ins>>      @gary: the only reason why I did not post the code publicly is because of licensing 
18:34:16  <david</ins>>      But that may be red-herring 
18:34:34  <david<ins>>      I don't understand the difference between python license and scons (MIT) license 
18:34:40  <garyo-home>   ok.  See what you can do then.  Do you have a good way to decide which bat file to run? 
18:34:41  <[GregoryNoel](GregoryNoel)>  If there could be a licensing issue, we can't look at it. 
18:35:22  <[GregoryNoel](GregoryNoel)>  MIT license is more liberal, has fewer restrictions. 
18:35:37  <[GregoryNoel](GregoryNoel)>  IANAL, but I believe they're compatible. 
18:35:34  <david</ins>>      @Greg: my code is inspired by distutils. But the code is a rewrite. What shall I do ? 
18:35:59  <david<ins>>      (I did not get answer from the original commiter in distutils) 
18:35:59  <garyo-home>   If it's a rewrite I think we are safe enough. 
18:36:05  <david</ins>>      It is 
18:36:12  <[GregoryNoel](GregoryNoel)>  If you wrote it, pretty much from scratch, it's yours to assign as you choose 
18:36:14  <david<ins>>      Variable are different, functions are different 
18:36:36  <david</ins>>      Parsing is different, too 
18:36:51  <garyo-home>   That seems pretty clear that it's your work, not derived. 
18:36:53  <[GregoryNoel](GregoryNoel)>  Probably (IANAL) good enough 
18:37:04  <garyo-home>   Just inspired.  But IANAL either... 
18:37:19  <david<ins>>      Inspired and derivative can only be decided in court, right ? 
18:37:26  <garyo-home>   :-/ 
18:37:34  <[GregoryNoel](GregoryNoel)>  unfortunately 
18:37:46  <david</ins>>      I don't see python developer assigning me to court, though 
18:37:56  <garyo-home>   No I think you're right. 
18:38:12  <[GregoryNoel](GregoryNoel)>  Since they'd have to bring action in France or Japan, I doubt it 
18:38:35  <david<ins>>      To answer the question about vsvars.bat: I use the same technique as distutils here. I first look at the registry 
18:38:52  <david</ins>>      and if the .bat is not found, I read the VS*COMMON fenv variable 
18:39:03  <david<ins>>      Since I can check for the existence of a file 
18:39:11  <david</ins>>      even stalled registry keys do not break things 
18:39:17  <garyo-home>   OK, makes sense.  For issue 2013, might have to look in the 32-bit registry instead.  I can help w/ that. 
18:39:32  <david<ins>>      I am not a windows programmer 
18:39:37  <garyo-home>   I am. 
18:39:42  <david</ins>>      good 
18:39:53  <david<ins>>      So shall I consider the code to be safe to put in scons svn ? 
18:40:03  <david</ins>>      Shall I wait for Steven answer, maybe ? 
18:40:13  <[GregoryNoel](GregoryNoel)>  Nag him 
18:40:19  <david<ins>>      Ok 
18:40:20  <garyo-home>   Let's try you & me & Steven to make a test version of this in the next few weeks.  Yes, wait for Steven to concur. 
18:40:48  <[GregoryNoel](GregoryNoel)>  Does that get us to 2104? 
18:40:54  <garyo-home>   I think so. 
18:41:10  <david</ins>>      The easy fix is easy :) 
18:41:31  <garyo-home>   Is there any risk?  Does it change the user command line? 
18:41:33  <david<ins>>      But this can be done in a common module between msvc and posix C compilers ? 
18:41:45  <[GregoryNoel](GregoryNoel)>  I suspect it's a real defect from the fix for CCFLAGS, et.al. 
18:42:09  <david</ins>>      @Gary: anyway, it means that behavior of msvc is not consistent with all others, which sounds like a bug to me 
18:42:47  <garyo-home>   @david: maybe not, but we shouldn't change it before 1.0.  Would have to be after if it's going to change behavior. 
18:43:04  <garyo-home>   Of course (devil's advocate) if it's going to cause recompiles, maybe better now than later. 
18:43:25  <[GregoryNoel](GregoryNoel)>  Steven says 1.0.x, I say 1.0; either way, immediately 
18:44:02  <garyo-home>   OK, fine w/ me. p3 or p4. 
18:44:15  <[GregoryNoel](GregoryNoel)>  which?  I'll go with 1.0.x 
18:44:30  <david<ins>>      I don't understand why we should not change buggy behavior, which is also not consistent with documentation ? 
18:45:02  <[GregoryNoel](GregoryNoel)>  We should, but we don't want to take chances with disrupting what's working now 
18:45:01  <garyo-home>   1.0 is very nearly ready; we should not destabilize it in any way.  1.0.x is the first possible place. 
18:45:20  <[GregoryNoel](GregoryNoel)>  so 1.0.x p3? 
18:45:25  <garyo-home>   ok. 
18:45:28  <[GregoryNoel](GregoryNoel)>  done 
18:45:34  <[GregoryNoel](GregoryNoel)>  When shall we all meet again? 
18:45:34  <[GregoryNoel](GregoryNoel)>  In thunder, lightning, or in rain? 
18:45:34  <[GregoryNoel](GregoryNoel)>  Where the place? ... 
18:45:34  <[GregoryNoel](GregoryNoel)>  I'll be on holiday next week, but I believe it's Internet-connected, so I should be able to attend remotely, either Monday or Tuesday, so it's up to you guys.  I still don't know if mail will work. 
18:45:58  <david</ins>>      @Gary: understood. 
18:46:05  *      stevenknight (n=[stevenkn@69.36.227.130](mailto:stevenkn@69.36.227.130)) has joined #scons 
18:46:16  <garyo-home>   My family is getting a little grumpy about me doing this every week.  But I'll be around both Monday and Tuesday. 
18:46:23  <stevenknight> hey there, anyone still around from the bug party? 
18:46:26  <stevenknight> oh, there you go 
18:46:28  <garyo-home>   Hi Steven, we're talking about schedule for next wk. 
18:46:37  <david<ins>>      For me, this time is fine 
18:46:48  <david</ins>>      sooner is ... too soon 
18:47:10  <garyo-home>   Time's good w/ me.  Monday is the usual day; that OK? 
18:47:10  <stevenknight> garyo-home:  a different time would help? 
18:47:23  <stevenknight> Monday's fine with me 
18:47:48  <garyo-home>   @steven: if it were to start around now it might help me.  But I know that's tough for some. 
18:47:49  <david<ins>>      same time ? 
18:48:20  <garyo-home>   Let's plan on same time as usual.  I'll try to do my homework properly next time.  Too bad we didn't get to any of the tickets I commented on :-/ 
18:48:44  <david</ins>>      Same time as now would be fine for me 
18:48:52  <david<ins>>      if it is more convenient for you 
18:48:54  <stevenknight> okay, same time Monday next week 
18:48:58  <[GregoryNoel](GregoryNoel)>  Now == noon? 
18:49:08  <david</ins>>      For me, now is 10:30 a.m 
18:49:30  <[GregoryNoel](GregoryNoel)>  (doing arithmetic in head) Ah, yes 
18:49:34  <david<ins>>      There is 14 hours difference with West Coast if I remember right 
18:49:52  <[GregoryNoel](GregoryNoel)>  you're UTC+9 
18:50:03  <david</ins>>      Yes 
18:50:03  <stevenknight> where? 
18:50:08  <garyo-home>   I don't want to cause trouble but starting at 9:30 or 10 my time would be easier for me, I'm GMT+4 (EDT) 
18:50:10  <[GregoryNoel](GregoryNoel)>  Japan 
18:50:21  <stevenknight> ah 
18:50:22  <[GregoryNoel](GregoryNoel)>  Er, Nippon 
18:50:24  <garyo-home>   i.e. start around now 
18:50:36  <garyo-home>   Steven, what about you? 
18:50:36  <david<ins>>      now is fine by me 
18:51:03  <stevenknight> this time works well, but i'm pretty flexible 
18:51:14  <[GregoryNoel](GregoryNoel)>  it's 18h30 or 19 o'clock for us; it would work for me 
18:51:16  <stevenknight> now is fine too 
18:51:26  <david</ins>>      I am a student, so I am the most flexible one I guess :) 
18:51:35  <stevenknight> actually, the shuttle usually drops me at 18h30 and i have a 15 min walk 
18:51:40  <stevenknight> 18h45? 
18:51:51  <[GregoryNoel](GregoryNoel)>  19 o'clock? 
18:52:00  <stevenknight> 19h00 is okay with me 
18:52:04  <stevenknight> gary, does that work for you? 
18:52:21  <stevenknight> that's 22h00 for you, after kids are in bed but maybe getting late...? 
18:52:22  <[GregoryNoel](GregoryNoel)>  Monday or Tuesday? 
18:52:22  <garyo-home>   Yes, fine.  That's 2200 for me, or 1600GMT? 
18:52:27  <stevenknight> yes 
18:52:28  <garyo-home>   Monday ok? 
18:52:43  <garyo-home>   Steven: no problem, I stay up late sometimes anyway 
18:52:51  <[GregoryNoel](GregoryNoel)>  No, 0200 UTC, I think 
18:53:05  <garyo-home>   greg: sorry, you're right of course 
18:53:13  <[GregoryNoel](GregoryNoel)>  (Always!) 
18:53:51  <stevenknight> :-) 
18:53:58  <david<ins>>      monday in the US is fine for me 
18:54:03  <[GregoryNoel](GregoryNoel)>  OK, I'll update the bug party page before I go for Monday at 19 o'clock PDT 
18:54:07  <garyo-home>   ok, great.  So I will do the data entry into tigris, from the irc log.  I'll also follow up with a couple of posters. 
18:54:13  <stevenknight> great, thanks 
18:54:42  <[GregoryNoel](GregoryNoel)>  I guess that's it, and dinner calls.  Later. 
18:54:47  <stevenknight> i'll prep next week's spreadsheet(s) and send out announcements 
18:54:50  <garyo-home>   greg: have fun on vacation! 
18:54:57  <[GregoryNoel](GregoryNoel)>  wilco 
18:54:57  <stevenknight> have a good time 
18:55:05  <david</ins>>      Steven: we were discussing visual studio revamp, and I was wondering what you think about license issues ? 
18:55:23  <stevenknight> license for...? 
18:55:25  <stevenknight> SCons code? 
18:55:33  <david<ins>>      Did you see the email I sent you last WE ? 
18:55:38  <garyo-home>   he's talking about reading vsvars.bat 
18:55:43  <garyo-home>   he has some good code 
18:55:48  <stevenknight> it's probably buried -- hang on, i can check 
18:55:52  <david</ins>>      well, I don't know if it is good 
18:56:01  <david<ins>>      but it is a start at least 
18:56:21  <david</ins>>      @steven: basically, the code started as a derivative of some code in distutils 
18:56:27  <david<ins>>      but it is a rewrite now 
18:56:40  <stevenknight> oh, right, now i remember 
18:56:47  <david</ins>>      I did not get an answer from the original comiter in python svn 
18:57:22  <david<ins>>      It is pretty trivial code, but that does not prevent potentil problems. I would think that since both projects are open sources, under similar licenses, it is not a real problem ? 
18:57:33  <stevenknight> i think in practice it's okay 
18:57:34  <david</ins>>      but I don't want to cause any trouble 
18:57:49  <stevenknight> i definitely appreciate that 
18:57:59  <stevenknight> I'd say go ahead with it 
18:58:05  <stevenknight> especialy since it's largely a rewrite now 
18:58:09  <david<ins>>      ok, I will start a branch, then 
18:58:24  <stevenknight> as you say, since the origin is open source, it's pretty unlikely to cause trouble 
18:58:29  <david</ins>>      Yes: different variables, different function names and code in functions (I support older versions of VS) 
18:58:38  <stevenknight> and if it does they can sue us for the $200 or so in the SCons bank account... :-) 
18:58:57  <david<ins>>      Shall I say in the comments it is inspired by distutils ? 
18:59:19  <stevenknight> I think it's courteous to do so 
18:59:28  <david</ins>>      I think so too 
18:59:35  <garyo-home>   yes me too. 
18:59:35  <david<ins>>      Ok, will commit to a new branch, then 
18:59:55  <garyo-home>   I am psyched to try this out! 
19:00:04  <david</ins>>      Well, there is really nothing fancy 
19:00:19  <garyo-home>   That's extremely good.  The current version is way too fancy! 
19:00:21  <david<ins>>      but this method, I understand. The original one with registry, I don't 
19:00:38  <stevenknight> david</ins>:  are you using bzr or some other interface to svn? 
19:00:44  <garyo-home>   nobody does anymore, it evolved from a nice simple idea into a Microsoft-inspired mush. 
19:00:57  <david<ins>>      Gary, since you are familiar with windows, do you know what happens if VS is installed in a different directory ? 
19:01:09  <david</ins>>      I would guess the registry key is changed accordingly 
19:01:21  <david<ins>>      but the registry is such a POS that I never know what to expect 
19:01:37  <david</ins>>      @steven: not for scons, but yes, I sometimes do. Why ? 
19:02:00  <stevenknight> just curious 
19:02:15  <garyo-home>   Yes, some registry will be different. 
19:02:39  <stevenknight> i like that you do your work on the branches 
19:02:45  <david<ins>>      I don't like it very much, though. It is too smart for its own good. What I do for scons is importing it with git, export to bzr, and prepare my patch like this 
19:02:58  <david</ins>>      Thanks, gary 
19:03:06  <stevenknight> knowing that bzr and other DVCs make branching and merging easy, I thought perhaps you were using one as a frontend 
19:03:24  <david<ins>>      Well, I never understood svn. bzr is the first source control system that made sense to me 
19:03:46  <stevenknight> i'm very interested in moving us to bzr 
19:04:05  <stevenknight> we were talking about moving hosting to launchpad for that, but it's not really mature enough 
19:04:07  <david</ins>>      The problem with bzr is launchpad 
19:04:12  <david<ins>>      There are some good things 
19:04:17  <david</ins>>      but way too complicated 
19:04:32  <david<ins>>      and there is no good developer documentation 
19:04:51  <stevenknight> yeah, seemed like too much is really opaque 
19:04:56  <david</ins>>      I would really like to be able to do most of the tasks from the command line. 
19:05:08  <stevenknight> command line++ 
19:05:12  <david<ins>>      For example, submitting/commenting bugs 
19:05:31  <david</ins>>      But also control release, series, upload of tarballs 
19:05:44  <stevenknight> agreed 
19:05:47  <david<ins>>      For bugs, there is a xmlrpc thing 
19:05:58  <david</ins>>      bug I don't know anything about those technologies 
19:06:12  <stevenknight> right now i'm thinking about code.google.com 
19:06:34  <garyo-home>   cool idea! 
19:06:36  <stevenknight> which is svn, but maybe use bzr as the standard frontend 
19:06:45  <stevenknight> yeah, at first I thought it didn't have what we want 
19:06:54  <stevenknight> but it's actually got a pretty good bug tracker, and a wiki built in 
19:07:13  <garyo-home>   I just used google data 1st time last night, very smooth & easy.. Do these use the same APIs? 
19:07:14  <david<ins>>      @steven: I am not sure I would recommend it (bzr as a frontend with svn backend) 
19:07:31  <stevenknight> not quite all the features we need in the bug tracker, though -- no date-range searches 
19:07:59  <garyo-home>   I know Greg doesn't like Trac, but we use it here and it is *very* nice.  Not sure about bzr integration though. 
19:08:17  <stevenknight> i'm not 100% sure about google data + code. 
19:08:24  <garyo-home>   Integrated wiki, milestones, tickets, log browser, source browser. 
19:08:41  <stevenknight> but there's pretty good integration in a lot of the google stuff 
19:08:49  <david</ins>>      I don't like trac either 
19:08:54  <stevenknight> so it'll probably happen some day if it's not already available 
19:09:03  <david<ins>>      trac+bzr is not a good idea 
19:09:03  <garyo-home>   And google's behind it which is important! 
19:09:13  <stevenknight> yep! 
19:09:21  <david</ins>>      if bzr is chosen, then launchpad is pretty much the only choice ATM 
19:09:24  <garyo-home>   david: I've heard the same from others.  Not ready for prime time yet. 
19:09:37  <garyo-home>   What about other dvcses? 
19:09:39  <stevenknight> david<ins>:  what problems have you had/heard about with bzr+svn? 
19:09:51  <david</ins>>      Well, first, it is difficult to install 
19:10:05  <david<ins>>      Because python wrappers around svn are buggy 
19:10:11  <stevenknight> i have to disconnect and switch buses, will reconnect right away 
19:10:14  <garyo-home>   ... and being a plugin it's a 2nd class citizen. 
19:10:32  <david</ins>>      @gary: I have some limited experience with mercurial and git 
19:10:42  <david<ins>>      I am not aware of any bug tracking system with mercurial 
19:10:51  <david</ins>>      git is without any question the most powerful 
19:10:56  <david<ins>>      it is pretty amazing 
19:11:01  <david</ins>>      but can be complicated 
19:11:15  <garyo-home>   what's complicated?  Simple things, or complicated things? 
19:11:18  <david<ins>>      and I don't know its status on windows  
19:11:26  <david</ins>>      The nature of the tool is complicated 
19:11:30  <garyo-home>   i see. 
19:11:45  <david<ins>>      For example, if you do git add and git commit, it will not add anything 
19:11:58  <david</ins>>      also, git (and mercurial) do have multi branch in a tree 
19:12:05  <garyo-home>   Was there some talk of wrappers to simplify it? 
19:12:06  <david<ins>>      Which is arguably more powerful sometimes 
19:12:12  <david</ins>>      bzr, with one branch is one directory 
19:12:17  <david<ins>>      is definitely simpler 
19:12:30  <garyo-home>   yes, less mental bookkeeping 
19:12:36  <david</ins>>      Another key difference between bzr and git/mercurial is the mainline concept 
19:12:47  <david<ins>>      in bzr, when you merge a branch into another one 
19:12:56  <david</ins>>      the history is not flat 
19:13:09  <david<ins>>      which bugs git/mercurial users 
19:13:30  <david</ins>>      But has a great advantage: you can guarantee that every commit of the mainline is correct (pass test, etc...) 
19:13:48  <david<ins>>      I feel that bzr fits more the way scons development works 
19:13:58  <david</ins>>      but I am not that familiar with scons development yet 
19:14:03  <stevenknight> hey, looks like i went from bus to bus without having to drop the irc connection... 
19:14:07  <stevenknight> cool 
19:14:09  <garyo-home>   makes sense.  Maybe we just keep thinking about it for a while. 
19:14:37  <garyo-home>   Maybe launchpad will get better, or code.google.com will support bzr as a front end. 
19:14:48  <david<ins>>      I think the choice really is DVCS+tracker 
19:14:56  <david</ins>>      you could choose independently 
19:15:01  <david<ins>>      but in practice, you can't 
19:15:11  <garyo-home>   I think you're right. 
19:15:22  <david</ins>>      Well, you can't if you want free hosting, at least 
19:15:51  <david<ins>>      I will try github.com, too. Which is open source 
19:16:11  <david</ins>>      gitorious, sorry. Github is commercial, the one user by RoR 
19:16:37  <stevenknight> well, if we do go with code.google.com, the silver lining would not having to change the underlying SCM 
19:16:55  <garyo-home>   Steven: with google, would it have to be "Google SCons"? :-) 
19:17:03  <david<ins>>      What are the advantages of google code ? 
19:17:04  <stevenknight> LOL 
19:17:17  <david</ins>>      You are at google, right, steven ? 
19:17:28  <stevenknight> there sems to be a path where things start out being named "google X" and then eventually get shortened 
19:17:32  <stevenknight> yes, i'm at google now 
19:17:50  <stevenknight> that's one reason to look more closely at code.google.com, but not the most important one 
19:18:09  <stevenknight> i'm more interested in making sure we get a good development process, regardless of where it's hosted 
19:18:11  <david<ins>>      Personally, I am more interested in changing the source control system than the ticket system 
19:18:25  <garyo-home>   +1 
19:19:01  <david</ins>>      But I guess I am special: I don't understand a single argument about why svn could be better than git or bzr (except for huge binary files, which is no concern for us) 
19:19:37  <garyo-home>   for us (non open source, proprietary code), a centralized vcs makes much more sense and keeps things simple. 
19:19:39  <stevenknight> i didn't realize people were still arguing that svn is better than the DVCSs out there 
19:19:59  <garyo-home>   For a distributed project, nobody could argue in favor of svn! 
19:20:08  <stevenknight> right 
19:20:38  <david<ins>>      @Gary: but git and bzr can have a centralized VCS 
19:20:53  <stevenknight> garyo:  have you seen Linus Torvald's talk at Google where he trashes svn? 
19:21:06  <garyo-home>   yes, but for us it wouldn't gain us much.  Steven: yes, the famous talk. 
19:21:07  <david</ins>>      But anway, I did not want to argue about DVCS against centralized. I just don't see any advantage of svn in my cases 
19:21:40  <garyo-home>   you're both right, and I'll migrate [GenArts](GenArts) (my company) to a dvcs probably in 18 months - 2 years. 
19:21:43  <stevenknight> actually, i took away from that talk one very important thing about SCons (by analogy) 
19:22:12  <stevenknight> i really like his point that by making branching O(1), svn was optimizing the wrong thing 
19:22:22  <stevenknight> because that's done so much less than merging 
19:22:44  <david<ins>>      yes. Nobody does merging with svn. It does not work 
19:22:44  <garyo-home>   so true! 
19:22:49  <stevenknight> I think you can make exactly the same point about SCons w.r.t. having emphasized full-tree builds over incremental builds 
19:23:02  <garyo-home>   We have a workflow that does work, but it is highly restricted. 
19:23:27  <garyo-home>   steven: I see what you're getting at.  Incremental builds are done 100x/day, full builds rarely. 
19:23:36  <stevenknight> right 
19:23:55  <stevenknight> and it's not that corretness isn't important, but if the full build takes a little more time, it's lost in the noise 
19:24:02  <stevenknight> but everyone notices the incremental slowdown 
19:24:20  <garyo-home>   True.  Subdir builds can help some. 
19:24:30  <david</ins>>      What are the plans for 1.0 and after ? 
19:24:43  <david<ins>>      I mean, what's missing for 1.0 ? 
19:24:49  <stevenknight> nothing 
19:25:05  <stevenknight> we're just letting 0.98.5 cook a little more while we write doc 
19:25:15  <stevenknight> it'll become 1.0 
19:25:27  <stevenknight> and then we argue about how soon to branch for 2.0  :-) 
19:25:38  <stevenknight> i'm actually with Bill Deegan, I want to move on to 2.0 quickly 
19:25:39  <garyo-home>   hey guys, have to go.  See you next Monday. 
19:25:45  <stevenknight> 2.0 drops compatibility with 1.5.2 
19:25:52  <stevenknight> thanks gary -- catch you later 
19:25:58  <stevenknight> Python 1.5.2, that is 
19:26:00  <david</ins>>      (I just measured the size of scons core: in bzr, the full branch takes 45 Mb, vs 37 Mb for a svn checkout) 
19:26:07  <david<ins>>      see you 
19:26:26  <stevenknight> So SCons 2.0 will be written to work on Python 2.2 and later 
19:26:32  <david</ins>>      great 
19:26:47  <david<ins>>      to me, that's one of the main showstopper 
19:26:44  <stevenknight> that lets us git rid of all sorts of map() and filter() calls in favor of list comprehensions 
19:26:51  <stevenknight> which should speed up a lot of stuff 
19:26:58  <david</ins>>      Getting rid of eval is more important IMO 
19:26:58  <stevenknight> understood 
19:27:19  <david<ins>>      Because it makes the code difficult to profile 
19:27:23  <david</ins>>      and to understand 
19:27:25  <stevenknight> so it can be run with psyco? 
19:27:31  <stevenknight> ah 
19:27:34  <david<ins>>      This, I don't know 
19:27:40  <david</ins>>      But I know scons is difficult to profile 
19:28:06  <stevenknight> hmm, i didn't think eval() was that much of an issue for profiling 
19:28:16  <stevenknight> where is it getting in the way for you? 
19:28:18  <david<ins>>      You don't know what's executed ? 
19:28:47  <stevenknight> but we're not doing that much eval'ing, except in string substituion when ${} is used 
19:28:48  <david</ins>>      With cProfile, at least (python profile is useless for big projects) 
19:28:50  <stevenknight> is that what you're referring to? 
19:28:53  <david<ins>>      no 
19:28:59  <david</ins>>      let me check 
19:29:44  <stevenknight> BTW re: cProfile: how do its results compare with python profile? 
19:29:54  <david<ins>>      It is much faster 
19:29:57  <stevenknight> does it give exactly the same, or are you comparing apples-and-oranges 
19:30:03  <stevenknight> that's it's execution speed 
19:30:16  <stevenknight> what about the code it's measuring? 
19:30:22  <david</ins>>      The problem with profile is that for example a noop build is like 10 times slower 
19:30:30  <david<ins>>      so it is basically useless 
19:30:59  <david</ins>>      so much overhead that it is measuring a totally different thing that what you run normally 
19:31:21  <david<ins>>      For example, I build lapack with scons. Lapack is an old fortran library: one function per file, 2000 files 
19:31:37  <david</ins>>      a No op build is taking 10 seconds. But with python profile, it is taking 2 minutes IIRC 
19:31:54  <david<ins>>      So you are not really measuring the same thing. 
19:32:10  <stevenknight> let me make this more concrete:  i have a lot of timig data that I've generated with python profile over the last 1000 or so checkins 
19:32:46  <stevenknight> is the code execution they're measuring determinstic such that I can meaningfully compare python profile results with cProfile results? 
19:32:58  <david</ins>>      I am not sure 
19:33:09  <stevenknight> or if we switch to cProfile to I have to go back and re-generate 1000 change sets worth of timing data? 
19:33:25  <stevenknight> right, that's my dilemma 
19:34:01  <stevenknight> i haven't found anything that answers whether or not the time units *being measured* are deterministic between the two implementations 
19:34:07  <david<ins>>      [http://docs.python.org/lib/node794.html](http://docs.python.org/lib/node794.html) 
19:34:34  <david</ins>>      They say they are interchangeable, but they only talk about the API 
19:34:42  <stevenknight> right 
19:35:12  <david<ins>>      One problem kind of specific to scons 
19:35:19  <david</ins>>      is that it is using a lot of functions 
19:35:32  <david<ins>>      which is extremely slow with python; and python profile makes it much slower 
19:35:52  <david</ins>>      I guess this is the main problem with python profile 
19:36:02  <stevenknight> yes 
19:36:32  <stevenknight> in addition to updating the baseline Python release we support, I'm going to put some serious effort into optimizing incremental builds 
19:36:49  <stevenknight> right now one of the big killers is the scanning of directories like CPPPATH 
19:36:59  <stevenknight> directory paths, i should say 
19:37:18  <stevenknight> there's basically a O(n^2) algorithm in there that explodes the function call counts 
19:37:32  <david<ins>>      T. Nagy also said that "compiling" actions strings to functions speeds things a lot 
19:37:36  <stevenknight> i think we can make the path search O(1) 
19:37:47  <stevenknight> that makes sense 
19:37:50  <david</ins>>      Is this something doable ? 
19:38:01  <stevenknight> yes, i think so 
19:38:04  <david<ins>>      There are some things which are much faster in waf, and I don't see why scons is slower 
19:38:13  <david</ins>>      for configuration checks, for example 
19:38:29  <stevenknight> i have a half-finished re-implementation of Subst.py that separates the string parse from the expansion 
19:38:34  <stevenknight> right now we do both every time 
19:38:38  <stevenknight> that might be in the same direction 
19:39:03  <stevenknight> more and more i'm finding that our slowness is dumb implementatiions 
19:39:07  <stevenknight> not so much incorrect ideas 
19:39:12  <david<ins>>      Would having scons as a python library possible at all ? 
19:39:15  <david</ins>>      Well, that's good. 
19:39:19  <stevenknight> things that grew over time in ways not originally envisioned 
19:39:23  <david<ins>>      It means if is fixable 
19:39:29  <david</ins>>      it is fixable, sorry 
19:39:35  <stevenknight> so far i haven't found anything that doesn't look fixable 
19:39:49  <stevenknight> do you mean scons as a standard python library? 
19:40:17  <david<ins>>      yes 
19:40:28  <david</ins>>      I am afraid this would be extremely complicated 
19:40:36  <stevenknight> probably 
19:40:41  <david<ins>>      but this would be a killer. 
19:40:56  <stevenknight> the topic came up very briefly at a SCons BOF with Guido and Alex several years ago 
19:40:57  <david</ins>>      Ok, I was wrong, as I expected: I was talking about apply, not eval 
19:41:21  <stevenknight> Guido sounded skeptical, i think because SCons seems too application-specific 
19:41:23  <david<ins>>      People in numpy/scipy were also a bit afraid of that, when I started using it to build numpy/scipy 
19:41:36  <stevenknight> it's hard to see it as a generic library that people want to re-use in different contexts 
19:41:40  <david</ins>>      I think the general ideas make a lot of sense 
19:41:47  <stevenknight> yes re: the over-use of apply() 
19:41:56  <david<ins>>      build/distribution is really a big PITA in python right now 
19:42:05  <stevenknight> yes! 
19:42:25  <stevenknight> and so-called "easy" install only complicated things for packagers, in my view... 
19:42:46  <david</ins>>      about apply: this is due to python 1.5, right ? apply is what makes profiling difficult, not eval (there are not many eval in scons) 
19:42:58  <david<ins>>      Don't get me started with setuptools :) 
19:43:20  <stevenknight> right, I've been adopting more and more functional programming idioms over time 
19:43:26  <stevenknight> and apply() is how you do that in 1.5 
19:43:42  <stevenknight> so all of those can get turned into list comprehensions once we get 1.0 out the door 
19:43:58  <stevenknight> or, heck, should just be turned into loops if that's more efficient 
19:44:21  <david</ins>>      I don't know if it is slow, but knowing you have a lot of apply is not helpful when profiling 
19:44:29  <david<ins>>      it is like lambda 
19:44:42  <david</ins>>      maybe dtrace can be smart about that, never tried. 
19:45:36  <david<ins>>      Ok, I am starting the vs_revamp branch 
19:46:09  <stevenknight> cool 
19:46:39  <stevenknight> does there seem to be much (if any) work going into bzr-svn to make it more viable? 
19:47:00  <david</ins>>      If you don't care about branches 
19:47:04  <david<ins>>      then it is usable 
19:47:08  <david</ins>>      but slow 
19:47:21  <david<ins>>      which should not matter much for scons, though 
19:47:52  <stevenknight> hmm, not caring about branches seems to lose one of the big advantages of a DVCS... 
19:48:17  <david</ins>>      the problem is the svn backend 
19:48:28  <david<ins>>      git-svn does not deal that well either 
19:48:35  <stevenknight> ah 
19:48:37  <david</ins>>      you can do bzr branch on svn repositories 
19:48:47  <david<ins>>      but honestly... 
19:48:57  <david</ins>>      I don't do it 
19:49:04  <david<ins>>      For numpy/scipy, I create the branches by hand 
19:49:08  <david</ins>>      with svn 
19:50:23  <stevenknight> makes sense 
19:50:27  <david<ins>>      Would it make sense to use google code with something else for code repository ? 
19:50:47  <stevenknight> possibly 
19:51:00  <stevenknight> i certainly don't think they care if you only use parts of the hosting service 
19:51:31  <stevenknight> my bus stop is coming up soon 
19:51:34  <david</ins>>      I meant from a practical POV 
19:51:48  <stevenknight> not sure how well that would work in practice 
19:52:01  <stevenknight> curious:  have you been in Japan long? 
19:52:23  <david<ins>>      Since I will try git hosting, would you like me to write something on the wiki/ML about it, how it compares to launchpad ? 
19:52:26  <david</ins>>      4 years 
19:52:36  <david<ins>>      2 years working, 2 years of PhD so far 
19:52:39  <stevenknight> re: git hosting, that would be fine 
19:52:55  <stevenknight> my brother was in Tokyo for many years; his wife is Japanese 
19:53:08  <david</ins>>      Oh 
19:53:14  <david<ins>>      Never lived in Tokyo 
19:53:33  <stevenknight> have to leave the bus now -- good chating w/you 
19:53:39  <david</ins>>      If going into academia does not go as I want, I am thinking about trying working at Google in Tokyo :) 
19:53:39  *      stevenknight has quit ("Leaving") 
20:19:31  *      david<ins> has quit ("Leaving") 
20:28:56  *      garyo-home has quit (Read error: 104 (Connection reset by peer)) 

Clone this wiki locally