The goal would be to add such into a test in the regression suite so it won't get broken once it's fixed. (In addition to making it easier to track down the issue and fix it) Clearly this is not covered by the current tests..
Thanks, Bill On Tue, Jun 13, 2017 at 11:33 AM, Bill Deegan <[email protected]> wrote: > Can you provide a standalone SConstruct which reproduces? > The included is not standalone.. > > > On Tue, Jun 13, 2017 at 11:07 AM, Neal Becker <[email protected]> wrote: > >> Problem seems to be >> RPATH = [Literal(':'.join([ORIGIN + x for x in >> ':'.join([MKLPATH]).split(':')]))] >> print ("RPATH:", RPATH) >> libs3 = [MKLLIB, 'm'] >> Default (env.SharedObject (target='mkl'+OBJ_SUFFIX, >> source='mkl.cc', >> SHLIBPREFIX='', LIBS=libs3)) >> Default (env.SharedLibrary (target='mkl'+EXT_SUFFIX, >> source='mkl'+OBJ_SUFFIX, SHLIBPREFIX='', LIBS=libs3, RPATH=RPATH)) >> >> That last line seems to trigger a call to hash(RPATH), which fails - it >> seems RPATH is list and not hashable. >> >> The older version of scons on which my port is based doesn't seem to do >> this. If I call hash(RPATH) my version will fail also, but if I don't >> intentionally write "hash(RPATH)", the code succeeds. >> >> But it would seem then that Literal is broken. >> >> Bill Deegan wrote: >> >> > 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 >> > <[email protected]> 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 >> >> > <[email protected]> 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 >> >> >> [email protected] >> >> >> 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 >> >> [email protected] >> >> https://pairlist2.pair.net/mailman/listinfo/scons-dev >> >> >> >> >> _______________________________________________ >> Scons-dev mailing list >> [email protected] >> https://pairlist2.pair.net/mailman/listinfo/scons-dev >> > >
_______________________________________________ Scons-dev mailing list [email protected] https://pairlist2.pair.net/mailman/listinfo/scons-dev
