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
lritter has quit [Quit: Leaving]
jcea has quit [Quit: jcea]
rubdos has quit [Ping timeout: 244 seconds]
rubdos has joined #pypy
<arigato> can someone with a mac try to "pip install cffi==1.14.3"? Please check that you're really downloading
<arigato> ``cffi-1.14.3-2-*.whl`` (note the ``-2-``)
<arigato> experimenting with an actual feature of pypi to add "build numbers" inside release numbers, which as far as I can tell is the solution to many problems I have encountered and seen others encounter, but is somehow kept quiet about
<mattip> seems to work as advertised, even on python2 in my macos vm. I can't copy/paste out the actual output, but it picked up the 1.14.3-2 wheel
<arigato> thank you!
marky1991 has joined #pypy
<mattip> I wonder how long I should wait after rc2 before releasing
<mattip> it's been ~24 hours with no comments
<dstufft> arigato: you might be the first person to actually use build numbers
<mgorny> mattip: i'm still testing
<mgorny> it's not that easy
<mattip> mgorny: is there something from our end that would make it easier?
<mattip> (and thanks for testing)
<mgorny> mattip: XFAIL on tests known to fail? ;-)
<mattip> hmm. I wonder if we could do that in our strange RegrTest class in lib-python/conftest.py,
<mattip> but somehow convince the buildbot summary page to show the tests are xfailed
<mattip> ahh, no it would need to be in the test files for it to help you
<mattip> does unittest support that?
<mgorny> yes
<mgorny> but it would mean we have to keep diff against original tests
<mgorny> hmm, unless CPython upstream would accept conditional xfails for pypy ;-)
<mgorny> but right now i want to test some random python software
<mgorny> + found ugly bug in my recent packages that i need to fix
jacob22 has joined #pypy
<mattip> thanks
jcea has joined #pypy
<mgorny> i'm going to try to test against pypy3.7 all packages that are installed to my system and were tested with pypy3.6 before
lritter has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
<arigato> dstufft: I'm still confused because it seems to be a feature that is there and that is the answer to various problems, but it's never mentioned. Is that out of some sense of "you shouldn't do that, it was a bad idea for pypi to introduce build numbers"?
<arigato> e.g. it would have avoided literally weeks of delay for the aarch wheels for cffi
<arigato> plus a failure of several hours to pip install cffi on macosx
<dstufft> arigato: I think the answer is nobody has ever used them, and so nobody is really sure if they actually work, or remembers they exist lol
jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
<arigato> dstufft: I hope you don't mind if I go around stackoverflow and add a new answer to a few of the questions asking precisely that
<dstufft> arigato: of course not, I'm stoked it actually works
<arigato> :-)
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
<arigato> it seems to work even if you just rename the file before "twine upload", ignoring the fact that the wheel's internal metadata doesn't actually contain the corresponding "Build: NN" entry. But as far as I can tell, this "Build:" is never used anywhere
<dstufft> like any feature it can probably be abused in ways that we'd prefer people didn't do, but at the end of the day, projects are generally free to manage themselves how they like
<arigato> yes, I added a footer to my answer saying that. I think it's a very reasonable answer to "oops, one of the wheels was badly built, let's delete it and re-upload just that wheel"
<arigato> particularly in the cffi's original case which was "cool, let's add a wheel for a new platform, but oops, it's broken and we need to delete it but we can't upload a fixed one then"
<dstufft> yea those are ideal cases for it
marky1991 has quit [Ping timeout: 272 seconds]
<mgorny> mattip: have you ever seen anything like that: https://dpaste.com/GX7JQ37D8#line-65 ?
<mgorny> it happened just once, on next attempt the package built fine
<arigato> mgorny: that's obscure, indeed
<arigato> this code is theoretically fragile, the same error could occur very rarely (also on CPython) I think
<mgorny> if i understand correctly, it means socket.__dict__ changed
<arigato> yes
<arigato> unsure what, but maybe there is a __del__ that wrote to socket.__dict__?
<mgorny> even if, i don't see how that could've happened in middle of _convert() method
<mgorny> unless i'm mistaken, it should be evaluated immediately
<arigato> no, that's possible (but hard) in CPython, and less rare in PyPy
<arigato> __del__ methods run at random times
ccamel has quit [Ping timeout: 256 seconds]
<arigato> (always with pypy, and with CPython only if the object is referenced from a gc cycle)
<mgorny> hrm
<arigato> (but isn't itself part of this gc cycle)
<mgorny> would a possible solution be to block gc while modules are being imported?
<mgorny> well, workaround
<arigato> well, no, the same problem can occur at any time. here it happens to occur while modules are imported
<arigato> an immediate fix would be to change enum.py to use something safe, like "for name in list(source)"
<arigato> (note that Python 2.7 was saner, by the fact that .keys() returned a list, which avoids this kind of issues and others)
<mgorny> still ,it seems somewhat crazy that socket.__dict__ would randomly change like that
<arigato> I agree
<arigato> I guess we can try to run "pypy3 -c 'import socket'" in a loop until it hits the same crash
<arigato> maybe by varying internal parameters like "--jit threshold=NUMBER"
<mgorny> i'll file a bug about it once i finish testing
camelCaser has joined #pypy
<arigato> thank you
lritter has quit [Quit: Leaving]
<mgorny> so far 20 failed packages
<mgorny> but gotta check if they weren't broken before
omneh has joined #pypy
omneh has quit [Changing host]
omneh has joined #pypy
omnipotententity has quit [Ping timeout: 240 seconds]
jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
omneh has quit [Remote host closed the connection]
lritter has joined #pypy
epony has quit [Quit: reconfigure nwo!]
epony has joined #pypy