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

Jason Kenny dragon512 at live.com
Thu Oct 25 11:52:28 EDT 2018


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)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20181025/d47a3ebc/attachment.html>


More information about the Scons-dev mailing list