[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