[Scons-users] Having issue with scanner in Command()

Mats Wichmann mats at wichmann.us
Tue May 15 08:58:47 EDT 2018


On 05/14/2018 03:21 PM, Bill Deegan wrote:
> Yup..
> 
> Something like this.. (patch below won't apply.. just edit the file..)
> 
> +++ b/src/engine/SCons/Node/__init__.py
> @@ -1149,7 +1149,9 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
>          binfo.bdepends = self.depends
>          binfo.bdependsigs = [d.get_ninfo() for d in self.depends if d not
> in ignore_set]
> 
> +        # TODO: If anything matches the ignore_set: bimplicit and
> bimplicitsigs will have different lengths and potentially the items in each
> list
> will not represent the same file. (any item but the last one matches any
> item in ignore_set)
>          binfo.bimplicit = self.implicit or []
> +        binfo.bimplicit = [i for i in binfo.bimplicit if i not in
> ignore_set]
>          binfo.bimplicitsigs = [i.get_ninfo() for i in binfo.bimplicit if i
> not in ignore_set]
> 
> 
> On Mon, May 14, 2018 at 5:00 PM, Jason Kenny <dragon512 at live.com> wrote:
> 
>> No.. did not know about this utility.
>>
>> I ran it the first round and it dumps a ton of info..
>> I ran scons again, then ran the utility again and it dumps this...
>>
>> LICENSE: cae6da10f4ffd9703214776d2aabce32 1525462589 6128
>>         _vcs/openssl/LICENSE: cae6da10f4ffd9703214776d2aabce32 1525462589
>> 6128
>>         55b40265a26683fbced32365cba594b5 [<lambda>(target, source, env)]
>> Makefile: 1d7b4a1b320ff883d02f50dbf26cbfb4 1526331304 498401
>> Traceback (most recent call last):
>>   File "/home/jkenny/code/dev/buildenv/bin/sconsign", line 547, in
>> <module>
>>     Do_SConsignDB(Map_Module.get(dbm_name, dbm_name), dbm)(a)
>>   File "/home/jkenny/code/dev/buildenv/bin/sconsign", line 427, in
>> __call__
>>     self.printentries(dir, db[dir])
>>   File "/home/jkenny/code/dev/buildenv/bin/sconsign", line 431, in
>> printentries
>>     printentries(pickle.loads(val), dir)
>>   File "/home/jkenny/code/dev/buildenv/bin/sconsign", line 370, in
>> printentries
>>     printfield(name, entry.binfo)
>>   File "/home/jkenny/code/dev/buildenv/bin/sconsign", line 334, in
>> printfield
>>     outlist = field("implicit", entry, 0)
>>   File "/home/jkenny/code/dev/buildenv/bin/sconsign", line 297, in field
>>     val = mapper(entry, name)
>>   File "/home/jkenny/code/dev/buildenv/bin/sconsign", line 277, in
>> map_bkids
>>     result.append(nodeinfo_string(bkids[i], bkidsigs[i], "        "))
>> IndexError: list index out of range
>>
>>
>> Does this look like the issue you had mentioned?
>>
>> Jason
>>

Just for grins I ran sconsign here and it dumps with the same type of error:
...
  File "/usr/bin/sconsign", line 277, in map_bkids
    result.append(nodeinfo_string(bkids[i], bkidsigs[i], "        "))
IndexError: list index out of range



More information about the Scons-users mailing list