[Scons-dev] SCons testing
Tom Tanner (BLOOMBERG/ LONDON)
ttanner2 at bloomberg.net
Thu Sep 29 05:17:48 EDT 2016
Not a stack trace because I'm at work and I need to kick up our scons version several
But here is the code in Action.py
825 - def get_implicit_deps(self, target, source, env, executor=None):
826 icd = env.get('IMPLICIT_COMMAND_DEPENDENCIES', True)
827 if is_String(icd) and icd[:1] == '$':
828 icd = env.subst(icd)
829 if not icd or icd in ('0', 'None'):
830 return []
831 from SCons.Subst import SUBST_SIG
832 if executor:
833 cmd_list = env.subst_list(self.cmd_list, SUBST_SIG, executor=executor)
834 else:
835 cmd_list = env.subst_list(self.cmd_list, SUBST_SIG, target, source)
836 res = []
837 for cmd_line in cmd_list:
838 if cmd_line:
839 d = str(cmd_line[0])
840 m = strip_quotes.match(d)
841 if m:
842 d = m.group(1)
843 d = env.WhereIs(d)
844 if d:
845 res.append(env.fs.File(d))
846 return res
From: bill at baddogconsulting.com At: 09/28/16 16:40:24
To: Tom Tanner (BLOOMBERG/ LONDON), scons-dev at scons.org
Subject: Re: [Scons-dev] SCons testing
That's very strange.
Do you have a stack trace of that?
Curious to see the path through the code causing that.
-Bill
On Wed, Sep 28, 2016 at 10:12 AM, Tom Tanner (BLOOMBERG/ LONDON) <ttanner2 at bloomberg.net> wrote:
The general number isn't unexpected. The total number is a bit more so as WhereIs gets called once for each command more or less. If you have 5,000 compile steps that's 5,000 calls to stat the compiler path.
From: bill at baddogconsulting.com At: 09/28/16 13:20:50
To: Tom Tanner (BLOOMBERG/ LONDON), scons-dev at scons.org
Subject: Re: [Scons-dev] SCons testing
stat() likely get's called on every single source file.
That's how you get the date stamps from the file.
So that's not really unexpected.
I"ll take a look at the test vs normal usage on the docbook logic later today.
-Bill
On Wed, Sep 28, 2016 at 7:23 AM, Tom Tanner (BLOOMBERG/ LONDON) <ttanner2 at bloomberg.net> wrote:
I stuck in a pull request a day or so ago to cache the result of WhereIs as doing some tests with strace I've found that 'stat' gets called an /awful/ lot on our system (every single time we have a C++ source to compile for instance).
Whilst I was running the tests, I found that all of the docbook related tests are failing because test.where_is is using a different path (the current OS one) to that used by the test (which are just using c:\windows\system32). I'm not sure what the solution is to this.
Apologies if I sent this before, I thought I had but I can't see anything in my inbox at work which should have picked it up.
_______________________________________________
Scons-dev mailing list
Scons-dev at scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev
_______________________________________________
Scons-dev mailing list
Scons-dev at scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20160929/060cce7d/attachment-0001.html>
More information about the Scons-dev
mailing list