[Scons-dev] unhashable type: 'Literal'' trying to evaluate

Bill Deegan bill at baddogconsulting.com
Thu Oct 25 12:45:02 EDT 2018


Have you tried the code on master?
There have been some py3 related issues similar to this resolved.
-Bill

On Thu, Oct 25, 2018 at 8:52 AM Jason Kenny <dragon512 at live.com> wrote:

> Hi,
>
> I working on getting Parts to work on py3. I think I have most of it
> working at this point, however I had an error that concerned me:
>
> scons: *** [_build/build_debug_posix-x86_64/hello/hello] TypeError
> `unhashable type: 'Literal'' trying to evaluate `${_concat(RPATHPREFIX,
> RPATH, RPATHSUFFIX, __env__)}'
>
> This happens as I tweak the RPATH value with some code like this:
>
> rlst.append(self.env.Literal('{0}$$ORIGIN/{1}{0}'.format(quote, self
> .env.Dir('$INSTALL_BIN').rel_path(
>                 self.env.Dir('$INSTALL_LIB')))))
>
> should result in a value such as:
> ["'$$ORIGIN/../lib'"]
>
> This works if I subst() directly at this point. However I am getting a
> stack ( below as it is long) like this which suggests some new behavior?
> This code should be fine and should not have broken. There is no funny
> stuff here in parts.. it a very basic value being set.
>
> Do we know of an issues with Literal() in python 3?
>
> meantime I going to start debugging this "fun" code
>
> - Jason
>
> The stack...
>
> scons: internal stack trace:
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Job.py",
> line 199, in start
>     task.prepare()
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Script/Main.py",
> line 175, in prepare
>     return SCons.Taskmaster.OutOfDateTask.prepare(self)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Taskmaster.py",
> line 179, in prepare
>     self.exception_raise()
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Taskmaster.py",
> line 554, in _exception_raise
>     exec("raise exc_value.with_traceback(exc_traceback)")
>   File "<string>", line 1, in <module>
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Taskmaster.py",
> line 973, in next_task
>     task.make_ready()
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Script/Main.py",
> line 309, in make_ready
>     SCons.Taskmaster.OutOfDateTask.make_ready(self)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Taskmaster.py",
> line 409, in make_ready_current
>     t.disambiguate().make_ready()
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Node/FS.py",
> line 3055, in make_ready
>     self.get_binfo()
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Node/__init__.py",
> line 1136, in get_binfo
>     binfo.bactsig = SCons.Util.MD5signature(executor.get_contents())
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Executor.py",
> line 467, in get_contents
>     for action in action_list])
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Executor.py",
> line 467, in <listcomp>
>     for action in action_list])
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Action.py",
> line 535, in get_contents
>     result = self.get_presig(target, source, env)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Action.py",
> line 1112, in get_presig
>     return c.get_presig(self, target, source, env)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Action.py",
> line 1049, in get_presig
>     return self._generate(target, source, env, 1,
> executor).get_presig(target, source, env)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Action.py",
> line 1271, in get_presig
>     return b"".join([bytes(x.get_contents(target, source, env)) for x in
> self.list])
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Action.py",
> line 1271, in <listcomp>
>     return b"".join([bytes(x.get_contents(target, source, env)) for x in
> self.list])
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Action.py",
> line 535, in get_contents
>     result = self.get_presig(target, source, env)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Action.py",
> line 964, in get_presig
>     return env.subst_target_source(cmd, SUBST_SIG, target, source)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Environment.py",
> line 514, in subst
>     return SCons.Subst.scons_subst(string, self, raw, target, source,
> gvars, lvars, conv)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 569, in scons_subst
>     result = ss.substitute(strSubst, lvars)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 523, in substitute
>     result = _dollar_exps.sub(sub_match, args)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 522, in sub_match
>     return self.conv(self.expand(match.group(1), lvars))
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 488, in expand
>     return self.substitute(s, lv)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 523, in substitute
>     result = _dollar_exps.sub(sub_match, args)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 522, in sub_match
>     return self.conv(self.expand(match.group(1), lvars))
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 488, in expand
>     return self.substitute(s, lv)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 523, in substitute
>     result = _dollar_exps.sub(sub_match, args)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 522, in sub_match
>     return self.conv(self.expand(match.group(1), lvars))
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/SCons/Subst.py",
> line 462, in expand
>     raise_exception(e, lvars['TARGETS'], s)
>   File
> "/home/jkenny/.local/share/virtualenvs/parts-aMB9Fa3Q/lib/python3.6/site-packages/scons-3.0.1/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/20181025/e1e68310/attachment.html>


More information about the Scons-dev mailing list