-
Notifications
You must be signed in to change notification settings - Fork 150
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
WIP: Investigate using CFFI's API mode #91
base: master
Are you sure you want to change the base?
Conversation
This could give some inspiration for travis-ci and appveyor: https://github.com/pygame/pygame https://github.com/pypa/auditwheel can probably be used to handle the ALSA and JACK libraries for Linux. And of course this could streamline the whole process: https://github.com/joerick/cibuildwheel There might be some interesting stuff here: https://github.com/MacPython/numpy-wheels travis-ci could probably deploy to https://packagecloud.io/: See also https://github.com/mgeier/python-rtmixer/issues/1#issuecomment-307664621 and https://github.com/tgarc/pastream. Some PyPy-related links: |
hmm so what inspired you to change your mind? What do you really get from having a compiled soundfile module? |
I didn't change my mind. As before, I still think a compiled module is an option, and I'm still not sure if it's a good idea.
I'm not sure. I would hope for less problems with broken libraries the user has already installed. The downside would be (apart from the hassle of setting the whole thing up) that a lot of wheels would have to be created, albeit automatically. Either way, whatever I learn here, I can and will probably use for https://github.com/mgeier/python-rtmixer/, where ABI mode isn't even an option. |
Here is an example where artifacts for Windows are created (and provided for download) by appveyor: And another one using PyPy on Windows: |
If there is any interest in coming back to this, I'm happy to help work on this, especially if it means that |
I'm not sure for the And I'm actually not really sure about the advantages of switching from ABI to API mode. Ideally, I'd like to support both, but I'm not sure if that's possible without extreme contortions.
It would be great to have auto-generated wheels for https://github.com/spatialaudio/python-rtmixer! A pull request would be very welcome. And please let me know when I need to set up an Azure account or whatever for that.
I'm not sure either. But I'm open for suggestions and discussions. But why would you need a combination of both? Is there something you cannot do with |
No, |
Combining them would mean that the As for performance, I don't really know if that's true. Did you try it? Does the performance improve when using API mode?
I guess not. But either way, the |
At this point I mostly consider this a solved problem with wheels. You set up wheel builds for all standard platforms (Linux, Windows, macOS) and then you're good to go. But if there are more exotic platforms you're trying to support (Raspberry Pi?) then indeed it doesn't make sense.
Haven't tried
Fair enough! |
I don't know any numbers but according to some issues here and some questions on stackoverflow there are at least some Raspberry Pi users interested in this. I'm not explicitly supporting it (because I cannot test it myself), but I think it is nice if it does work. |
This is an experiment to find out if switching to API mode is feasible.
It probably only makes sense if all of those items are fulfilled:
manylinux
32/64-bit (travis-ci?)