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

Bill Deegan bill at baddogconsulting.com
Tue Jun 13 10:43:46 EDT 2017


Neal,

Could you create a small SConstruct which demonstrates the issue?
Or even.. a pull request with a fix.. ;)

-Bill

On Tue, Jun 13, 2017 at 10:25 AM, Neal Becker <ndbecker2 at gmail.com> wrote:

> 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)
>
> _______________________________________________
> 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/20170613/93a1706b/attachment-0001.html>


More information about the Scons-dev mailing list