New issue 2945: Build with debug info and continuation support, got
"'no_collect' function can trigger collection" error
https://bitbucket.org/pypy/pypy/issues/2945/build-with-debug-info-and-continuation
Yuxuan “fishy” Wang:
I was trying to build pypy3.5 (from tag `release-pypy3.5-v6.0.0`) with debug
info (`-O0`) and continuation support (because that's required by greenlet),
this is the command line I used for building:
```
pypy ../../rpython/bin/rpython -O0 --continuation --gc incminimark
targetpypystandalone --withmod-_continuation
```
But I got this error after 99%:
```
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[CollectAnalyzer] v3737 = malloc((GcStruct tuple4), ({'flavor': 'gc'})): True
[CollectAnalyzer] analyze_direct_call((rpython.rlib.rsiphash:206)_half_round):
True
[CollectAnalyzer]
analyze_direct_call((rpython.rlib.rsiphash:215)_double_round): True
[152ad] translation-task}
[Timer] Timings:
[Timer] annotate --- 272.0 s
[Timer] rtype_lltype --- 402.3 s
[Timer] backendopt_lltype --- 15.9 s
[Timer] stackcheckinsertion_lltype --- 128.8 s
[Timer] database_c --- 31.4 s
[Timer] ==========================================
[Timer] Total: --- 850.4 s
[translation:info] Error:
File "/home/vagrant/pypy/rpython/translator/goal/translate.py", line 318, in
main
drv.proceed(goals)
File "/home/vagrant/pypy/rpython/translator/driver.py", line 554, in proceed
result = self._execute(goals, task_skip = self._maybe_skip())
File "/home/vagrant/pypy/rpython/translator/tool/taskengine.py", line 114,
in _execute
res = self._do(goal, taskcallable, *args, **kwds)
File "/home/vagrant/pypy/rpython/translator/driver.py", line 278, in _do
res = func()
File "/home/vagrant/pypy/rpython/translator/driver.py", line 435, in
task_database_c
database = cbuilder.build_database()
File "/home/vagrant/pypy/rpython/translator/c/genc.py", line 127, in
build_database
db.complete()
File "/home/vagrant/pypy/rpython/translator/c/database.py", line 306, in
complete
add_dependencies(node.enum_dependencies(), node)
File "/home/vagrant/pypy/rpython/translator/c/database.py", line 294, in
add_dependencies
self.get(value, parent and parent._funccodegen_owner)
File "/home/vagrant/pypy/rpython/translator/c/database.py", line 224, in get
node = self.getcontainernode(container)
File "/home/vagrant/pypy/rpython/translator/c/database.py", line 158, in
getcontainernode
node = nodefactory(self, T, container, **buildkwds)
File "/home/vagrant/pypy/rpython/translator/c/node.py", line 898, in
new_funcnode
return FuncNode(db, T, obj, name)
File "/home/vagrant/pypy/rpython/translator/c/node.py", line 803, in __init__
self.funcgen = make_funcgen(obj.graph, db, exception_policy, ptrname)
File "/home/vagrant/pypy/rpython/translator/c/funcgen.py", line 28, in
make_funcgen
db.gctransformer.transform_graph(graph)
File "/home/vagrant/pypy/rpython/memory/gctransform/framework.py", line 754,
in transform_graph
" %s" % func)
[translation:ERROR] Exception: 'no_collect' function can trigger collection:
<function _siphash24 at 0x000055e479e4a548>
```
Can someone advise?
_______________________________________________
pypy-issue mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-issue