[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