Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Potentially broken cython dep #55

Open
mortonjt opened this issue Oct 20, 2023 · 4 comments
Open

Potentially broken cython dep #55

mortonjt opened this issue Oct 20, 2023 · 4 comments

Comments

@mortonjt
Copy link

We're running into issues install iow with cython=3.0.4, but can confirm that it installs with cython=0.29.36

Below is the full error message

      /usr/share/miniconda/envs/dynomics/lib/python3.8/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-5754f7ae/iow_5366f21e62044cd79a8c9be2f6701f3e/bp/GPL/_insert.pyx
        tree = Parsing.p_module(s, pxd, full_module_name)
      /usr/share/miniconda/envs/dynomics/lib/python3.8/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-5754f7ae/iow_5366f21e62044cd79a8c9be2f6701f3e/bp/_ba.pxd
        tree = Parsing.p_module(s, pxd, full_module_name)
      /usr/share/miniconda/envs/dynomics/lib/python3.8/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-5754f7ae/iow_5366f21e62044cd79a8c9be2f6701f3e/bp/_binary_tree.pxd
        tree = Parsing.p_module(s, pxd, full_module_name)
      /usr/share/miniconda/envs/dynomics/lib/python3.8/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-5754f7ae/iow_5366f21e62044cd79a8c9be2f6701f3e/bp/_bp.pxd
        tree = Parsing.p_module(s, pxd, full_module_name)
      performance hint: bp/_bp.pyx:349:29: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:362:29: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:371:29: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:376:33: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:378:33: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:387:27: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:389:31: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:402:27: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:404:31: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:450:25: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:453:31: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:468:26: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:473:40: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:473:30: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:484:26: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:487:43: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:487:32: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:489:40: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:489:30: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:517:28: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:519:41: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:519:31: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:542:27: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:544:41: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:544:31: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:567:28: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:569:42: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:569:32: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:584:26: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:600:42: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:600:28: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:602:28: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:617:36: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:617:24: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:642:25: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:644:34: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:660:25: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:662:26: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:684:25: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:686:29: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:700:40: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:700:29: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:717:26: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:719:28: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:722:39: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:722:30: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
      performance hint: bp/_bp.pyx:737:33: Exception check will always require the GIL to be acquired. Declare the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
          raise CompileError(None, pyx_file)
      Cython.Compiler.Errors.CompileError: bp/tests/test_bp_cy.pyx
      Compiling bp/_bp.pyx because it changed.
      Compiling bp/_io.pyx because it changed.
      Compiling bp/_conv.pyx because it changed.
      Compiling bp/_binary_tree.pyx because it changed.
      Compiling bp/_insert.pyx because it changed.
      Compiling bp/GPL/_insert.pyx because it changed.
      Compiling bp/tests/test_bp_cy.pyx because it changed.
      Compiling bp/_ba.pyx because it changed.
      [1/8] Cythonizing bp/GPL/_insert.pyx
      [2/8] Cythonizing bp/_ba.pyx
      [3/8] Cythonizing bp/_binary_tree.pyx
      [4/8] Cythonizing bp/_bp.pyx
      [5/8] Cythonizing bp/_conv.pyx
      [6/8] Cythonizing bp/_insert.pyx
      [7/8] Cythonizing bp/_io.pyx
      [8/8] Cythonizing bp/tests/test_bp_cy.pyx
      [end of output]
  
@wasade
Copy link
Member

wasade commented Oct 20, 2023 via email

@mortonjt
Copy link
Author

Maybe I shouldn't have pasted the full output (the key components were accidentally excluded)

Below it the relevant error

Error compiling Cython file:
      ------------------------------------------------------------
      ...
          assert exp.shape[0] == obs.mM.shape[0]
          assert exp.shape[1] == obs.mM.shape[1]
      
          for i in range(exp.shape[0]):
              for j in range(exp.shape[1]):
                  assert obs.mM[i, j] == exp[i, j]
                               ^
      ------------------------------------------------------------
      
      bp/tests/test_bp_cy.pyx:350:25: Compiler crash in AnalyseExpressionsTransform
      
      ModuleNode.body = StatListNode(test_bp_cy.pyx:1:0)
      StatListNode.stats[28] = StatListNode(test_bp_cy.pyx:329:0)
      StatListNode.stats[0] = DefNode(test_bp_cy.pyx:329:0,
          is_cyfunction = True,
          modifiers = [...]/0,
          raise CompileError(None, pyx_file)
      Cython.Compiler.Errors.CompileError: bp/tests/test_bp_cy.pyx
      Compiling bp/_bp.pyx because it changed.
      Compiling bp/_io.pyx because it changed.
      Compiling bp/_conv.pyx because it changed.
      Compiling bp/_binary_tree.pyx because it changed.
      Compiling bp/_insert.pyx because it changed.
      Compiling bp/GPL/_insert.pyx because it changed.
      Compiling bp/tests/test_bp_cy.pyx because it changed.
      Compiling bp/_ba.pyx because it changed.
      [1/8] Cythonizing bp/GPL/_insert.pyx
      [2/8] Cythonizing bp/_ba.pyx
      [3/8] Cythonizing bp/_binary_tree.pyx
      [4/8] Cythonizing bp/_bp.pyx
      [5/8] Cythonizing bp/_conv.pyx
      [6/8] Cythonizing bp/_insert.pyx
      [7/8] Cythonizing bp/_io.pyx
      [8/8] Cythonizing bp/tests/test_bp_cy.pyx
      [end of output]

@wasade
Copy link
Member

wasade commented Oct 20, 2023

Thanks, clearly something is diff with the new version of Cython...

@mortonjt
Copy link
Author

Forgot to mention, the same error gets thrown with cython=0.29.36 on github actions -- not sure what is going on there, since cython=0.29.36 works with my machine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants