Nuitka: Infinite Looping on "mustNotHaveValue"

Let’s consider sample program and nuitka call for compilation: https://github.com/belonesox/nuitka-looping-mustNotHaveValue

  • pipenv-based setup-demo.bat
  • on demo_cycling.bat we got infinite loop
File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 560, in mustNotHaveValue
    if not previous.mustNotHaveValue():
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 383, in mustNotHaveValue
    return self.previous.mustNotHaveValue()
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 560, in mustNotHaveValue
    if not previous.mustNotHaveValue():
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 383, in mustNotHaveValue
    return self.previous.mustNotHaveValue()
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 560, in mustNotHaveValue
    if not previous.mustNotHaveValue():
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 383, in mustNotHaveValue
    return self.previous.mustNotHaveValue()
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 560, in mustNotHaveValue
    if not previous.mustNotHaveValue():
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 383, in mustNotHaveValue
    return self.previous.mustNotHaveValue()
  File "C:\ta-buildroot\python-x86-3.7.9\lib\site-packages\nuitka\optimizations\ValueTraces.py", line 560, in mustNotHaveValue
    if not previous.mustNotHaveValue():

image

I reproduce it on Windows with python-x86-3.7.9 and nuitka = "0.6.18.3", but I will try it on Linux and other versions of Nuitka. Also I will try to simplify testcase

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 29 (29 by maintainers)

Most upvoted comments

It finished for me in definitely less than one hour, I am using --enable-plugin=anti-bloat --noinclude-default-mode=error, I think you never got my anti-bloat references, but it reduces the compilation by a lot. It took me max 30 minutes, I didn’t check closely.

I am suspecting you are reaching a low memory situation which can make things slow. Still with anti-bloat, 2k modules are compiled, which is borderline, but there is a lot that anti-bloat doesn’t do yet.

I have had to find and fix a regression in the generated C code for a string operation, therefore I don’t know if it runs at all, but I think it ought to. But with these large compilations I am waiting for more anti-bloat work to happen over time.