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

Coverage data for dual-cython modules #1118

Closed
jamadden opened this Issue Feb 23, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@jamadden
Member

jamadden commented Feb 23, 2018

Since we started compiling local.py and greenlet.py (and the new _ident.py) we're not getting test coverage reports for those (important, large) files. We don't run the whole test suite under coverage on PyPy because for us it substantially slows things down (to the point that we get timeouts).

Other projects I work on use the PURE_PYTHON environment variable to decide whether to import their C accelerators. That of course relies on the C accelerators being separate modules than the python module.

We could probably do that (compile greenlet.py to _greenlet.so and have greenlet.py end with 'from _greenlet import *') except that Cython 0.27 ignores the module names. This is fixed in Cython 0.28. The problem there is that Cython 0.28 is currently unreleased, though as far as I can tell it works well.

Perhaps I should just pin a git commit of Cython 0.28 and use that to build with?

Otherwise, we're looking at one of:

  1. doing something at setup.py time to exclude compiling the modules;
  2. deleting the compiled .so files;
  3. Renaming greenlet.py to _greenlet.py and having greenlet.py just be a shell that does the 'import *' (and ditto for the rest)

@jamadden jamadden added this to the 1.3 milestone Feb 23, 2018

jamadden added a commit that referenced this issue Feb 23, 2018

Honor PURE_PYTHON at runtime.
Fixes #1118.

Also some speed improvements for semaphores.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment