cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end ) | use cffi for calling C | if a pep adds a mere 25-30 [C-API] functions or so, it's a drop in the ocean (cough) - Armin
<monkeyontheloose>
so some libs that writen in C need to recompile in order to work with pypy?
monkeyontheloose has quit [Read error: Connection reset by peer]
monkeyontheloose has joined #pypy
<mattip>
monkeyontheloose: c-extensions need to be recompiled for a new version of python, pypy is no different as far as that goes
todda7 has joined #pypy
<antocuni>
monkeyontheloose: what mattip said, plus the fact that nowadays most projects publish binary compiled wheels as soon as a new python version comes out, so from the end-user they don't need to "compile them" (because they were already compiled by someone else)
<antocuni>
however, there are very few projects publishing pypy wheels, so to pip install packages on pypy, pip often needs to do a compilation
<antocuni>
fortunately, the situation is changing and some projects are starting to publish their own wheels
<LarstiQ>
and there is an entire dependency graph of things that need to be compiled, so it's not just building 1 wheel and you're good
<mattip>
conda is doing pretty well for pypy3.6, as long as you are on linux64 or macos
todda7 has quit [Ping timeout: 256 seconds]
lritter has quit [Ping timeout: 244 seconds]
monkeyontheloose has quit [Ping timeout: 256 seconds]
monkeyontheloose has joined #pypy
Dejan has joined #pypy
Dejan has joined #pypy
Dejan has quit [Changing host]
<monkeyontheloose>
guys?
<simpson>
monkeyontheloose: You missed the answer. To sum up, yes, C extensions need to be recompiled for PyPy, and since many projects publish binary wheels, they also need to publish binaries for PyPy.
<fijal>
monkeyontheloose: you mean C with C API?
<monkeyontheloose>
oh there are 2 types of C librarys?
<monkeyontheloose>
thanks Simpson
<fijal>
yes, one is like say OpenSSL, it's a C library
<fijal>
you can call it in many ways, one of them is through cython, C API or cffi (or ctypes, although that one does nto work with OpenSSL)
<fijal>
another kind is when you have a C library that uses Python C API - that one you need to actually compile with specific python in order to use
todda7 has joined #pypy
<monkeyontheloose>
so does one version not work with pypy?
<monkeyontheloose>
i heard numpy has problems
jcea has joined #pypy
<simpson>
Numpy is problematic; its existence creates problems. A good way to think of Numpy is not as a standalone Python package, but as an augmentation added to individual Python implementations. Numpy for CPython and Numpy for PyPy both exist, but a lot of their backend code is customized for each interpreter.
cjmcdonald has joined #pypy
<mgorny>
mattip: do we have some use for test_import_magic (it's apparently meant to verify that get_magic() doesn't change once python reaches RC status) or should i mark it as cpython impl detail?
<monkeyontheloose>
is there a way i can not miss messages when i'm logged off?
<monkeyontheloose>
I still didn't understand, thank you for being patiant with me :)
<monkeyontheloose>
If you have a C lib that uses Python C API, does that also work with pypy?
<monkeyontheloose>
why do you need a special version of pypy for numpy? shouldn't work out of the box?
<simpson>
Maybe! It depends on how deeply it uses the C API. Some of the C API is very portable, but some of it is deeply connected to how CPython (and no other interpreters!) is implemented.
mgedmin has joined #pypy
<simpson>
If a C extension wants to see CPython's C data structures, but those structures simply *don't exist* on other interpreters, then what should happen?
<pmp-p>
they hope for hpy and wait :p
<mattip>
monkeyontheloose: you can set up an irc bouncer
<mattip>
I have znc working on a raspberry pi on my home network, then I connect to that with my IRC client
todda7 has quit [Ping timeout: 240 seconds]
<monkeyontheloose>
so some libs that depend on C data structures will never work?
<monkeyontheloose>
is there a list of these libs?
<monkeyontheloose>
when hpy?
todda7 has joined #pypy
<mattip>
the most popular one we have not made work yet is pywin32
<mattip>
since it uses swig to wrap some things we have not implemented yet
<mattip>
if you look at our conda forge migration, we support about 1/2 of the packages they build