cfbolz changed the topic of #pypy to: #pypy PyPy, the flexible snake | IRC logs: and | Matti: I made a bit of progress, the tests now only segfault towards the end
derpydoo has joined #pypy
epony has quit [Ping timeout: 252 seconds]
epony has joined #pypy
jcea has quit [Ping timeout: 268 seconds]
derpydoo has quit [Quit: derpydoo]
<fijal> ltfish: yes, it is expected pypy interpreter is slower
<phlebas> can anyone point me to how pypy is dealt with in conda package build recipes (maybe antocuni?). that is, I'm trying to understand how e.g. the numpy recipe is built for pypy. it only declares python as a dependency, but I assume there should be variants for different python versions (since numpy doesn't compile only against the stable abi), and there should be a variant for each pypy version.
<antocuni> despite my affiliation, I don't know anything about conda 😂
<antocuni> phlebas: I think that mattip knows
<phlebas> antocuni: what?? I thought you are now the "alternative python implementation champion" on the inside! :D
<antocuni> I don't do anything related to conda 😂
<mattip> there is a python_abi feedstock that allows specifying python implementations
<mattip> the "meat" is here
<mattip> then there is a pypy feedstock unfortunately named pypy36.-feedstock
<mattip> that provides the python package
<mattip> end users specify pypy oer cpython as documented here
<phlebas> thanks. what's the pypy-meta-feedstock for?
<mattip> that specifies the connection between the python_abi_feedstock specifier (pypy38_pp73) and a pypy python version 3.8.12
<phlebas> hm. that's still a bit unclear to me. I read about the python_abi thing and that you can then specify pypy or cpython versions, but the numpy-feedstock seems to only require "python", not "python_abi". is that some magic somewhere that is not expressed via dependencies?
<phlebas> ah, so the chain is something ike python -> python_abi -> pypy-meta -> pypy ?
<mattip> in this case, you can see the various packages provided by numpy: all the variations in python_abi_feedstock are rendered into CI versions here
<mattip> and each variant is a package on ready for installation
<mattip> once a new version is added to the python_abi, there is a bot that starts a migration which goes through all the recipes and starts to add the new CI variants
<mattip> you can track migrations via
<phlebas> ok, thank you, that's a good chunk of pointers! I'll have to go through that stuff to understand how it all fits together in my head 🙂
<mattip> this might live in a document somewhere, but I don't know of one
<mattip> the last step in the chain is to get the feedstock maintainer to approve the migration PR
<mattip> Of the ~1000 packages that made it through the pypy38/39 migration, most were effortless,
<mattip> I needed to gently push the successful PR through in maybe 20 cases (remind the maintainer to hit the merge button)
<mattip> and needed to fix PyPy or project incompatibilities in another 20 or so
<phlebas> mattip: cffi is provided in pypy-meta-feedstock, I guess we need to add hpy there, too, right? to be able to provide hpy packages
<mattip> right, once hpy starts becoming widely supported, we will need to add it because the version is tied tightly to pypy
<mattip> installing pypy fixes the version of cffi/hpy you can use
<cfbolz> just found a JIT optimization bug :-(
<cfbolz> a pretty theoretical one for pypy, admittedly
<cfbolz> you need to use __pypy__.intop.int_add to get it from normal python code
jcea has joined #pypy
derpydoo has joined #pypy
derpydoo has quit [Quit: derpydoo]
derpydoo has joined #pypy
greedom has joined #pypy
greedom has quit [Remote host closed the connection]
lritter has joined #pypy
Dejan has quit [Quit: Leaving]
xcm has quit [Remote host closed the connection]
lritter has quit [Ping timeout: 268 seconds]
derpydoo has quit [Quit: derpydoo]
epony has quit [Read error: Connection reset by peer]
epony has joined #pypy