[Scons-dev] code fails on scons master with python3

Neal Becker ndbecker2 at gmail.com
Tue Jun 13 10:25:11 EDT 2017


Bill Deegan wrote:

> Can you run with --debug=stacktrace and post the output?
> 
> Thanks,
> -Bill
> 
> On Tue, Jun 13, 2017 at 8:20 AM, Neal Becker
> <ndbecker2 at gmail.com> wrote:
> 
>> This code is failing:
>>         RPATH = [Literal(':'.join([ORIGIN + x for x in
>> ':'.join([MKLPATH]).split(':')]))]
>>
>> with error:
>> scons: *** [mkl.cpython-35m-x86_64-linux-gnu.so] TypeError `unhashable
>> type:
>> 'Literal'' trying to evaluate `${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX,
>> __env__)}'
>>
>> But this code succeeds on my own (old) port of scons to python3
>>
>> _______________________________________________
>> Scons-dev mailing list
>> Scons-dev at scons.org
>> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>>
scons: *** [mkl.cpython-35m-x86_64-linux-gnu.so] TypeError `unhashable type: 
'Literal'' trying to evaluate `${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, 
__env__)}'
scons: internal stack trace:
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Job.py", line 
199, in start
    task.prepare()
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Script/Main.py", 
line 175, in prepare
    return SCons.Taskmaster.OutOfDateTask.prepare(self)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Taskmaster.py", 
line 176, in prepare
    self.exception_raise()
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Taskmaster.py", 
line 551, in _exception_raise
    exec("raise exc_value.with_traceback(exc_traceback)")
  File "<string>", line 1, in <module>
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Taskmaster.py", 
line 971, in next_task
    task.make_ready()
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Script/Main.py", 
line 309, in make_ready
    SCons.Taskmaster.OutOfDateTask.make_ready(self)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Taskmaster.py", 
line 406, in make_ready_current
    t.disambiguate().make_ready()
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Node/FS.py", line 
3024, in make_ready
    self.get_binfo()
  File "/home/nbecker/scons-
dev/bootstrap/src/engine/SCons/Node/__init__.py", line 1136, in get_binfo
    binfo.bactsig = SCons.Util.MD5signature(executor.get_contents())
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Executor.py", 
line 467, in get_contents
    for action in action_list])
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Executor.py", 
line 467, in <listcomp>
    for action in action_list])
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Action.py", line 
477, in get_contents
    result = self.get_presig(target, source, env)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Action.py", line 
1213, in get_presig
    return b"".join([bytes(x.get_contents(target, source, env)) for x in 
self.list])
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Action.py", line 
1213, in <listcomp>
    return b"".join([bytes(x.get_contents(target, source, env)) for x in 
self.list])
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Action.py", line 
477, in get_contents
    result = self.get_presig(target, source, env)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Action.py", line 
1054, in get_presig
    return c.get_presig(self, target, source, env)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Action.py", line 
906, in get_presig
    return env.subst_target_source(cmd, SUBST_SIG, target, source)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Environment.py", 
line 514, in subst
    return SCons.Subst.scons_subst(string, self, raw, target, source, gvars, 
lvars, conv)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
558, in scons_subst
    result = ss.substitute(strSubst, lvars)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
512, in substitute
    result = _dollar_exps.sub(sub_match, args)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
511, in sub_match
    return self.conv(self.expand(match.group(1), lvars))
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
477, in expand
    return self.substitute(s, lv)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
512, in substitute
    result = _dollar_exps.sub(sub_match, args)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
511, in sub_match
    return self.conv(self.expand(match.group(1), lvars))
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
477, in expand
    return self.substitute(s, lv)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
512, in substitute
    result = _dollar_exps.sub(sub_match, args)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
511, in sub_match
    return self.conv(self.expand(match.group(1), lvars))
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
477, in expand
    return self.substitute(s, lv)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
512, in substitute
    result = _dollar_exps.sub(sub_match, args)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
511, in sub_match
    return self.conv(self.expand(match.group(1), lvars))
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
451, in expand
    raise_exception(e, lvars['TARGETS'], s)
  File "/home/nbecker/scons-dev/bootstrap/src/engine/SCons/Subst.py", line 
55, in raise_exception
    raise SCons.Errors.BuildError(target[0], msg)



More information about the Scons-dev mailing list