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

pypy support? #13

Closed
cfbolz opened this issue May 25, 2022 · 3 comments
Closed

pypy support? #13

cfbolz opened this issue May 25, 2022 · 3 comments

Comments

@cfbolz
Copy link
Contributor

cfbolz commented May 25, 2022

hi @jaltmayerpizzorno!

Great project, this is a fun approach! I was wondering whether you would be interested in adding PyPy support? I briefly looked, and there seems not a lot missing: The C extension seems to just work, the only problem is some detail around the way PyPy does builtin functions. If there is interest, I would be happy to open up a pull request to deal with the latter! (if not, feel free to just close the issue)

@jaltmayerpizzorno
Copy link
Collaborator

Hi @cfbolz, thank you! I haven't explored adding pypy support yet. Assuming it doesn't get in the way of research too much, it would be great to have!

@cfbolz
Copy link
Contributor Author

cfbolz commented May 29, 2022

fair enough! I've opened the above PR, the only fundamental change, which makes slipcover work. will open another one to add it to CI (only pypy3.8 supported by the setup-python action though).

performance isn't as good as CPython for a bunch of reasons (pypy is much faster in the first place, C extensions are worse on pypy). I briefly tried with a pure Python tracker, which helped and could probably improved with more careful thinking about the locking needed.

@jaltmayerpizzorno
Copy link
Collaborator

Hi, sorry for the delay... have been hard at work adding CPython 3.11 support. I've merged your PR now.

Slipcover's locking does need some rework.

I'd love to see the benchmarks with pypy if you cared to run them... they're in benchmarks/run_benchmarks.py.

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