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
mwhudson has quit [Remote host closed the connection]
todda7 has quit [Ping timeout: 256 seconds]
mwhudson has joined #pypy
mwhudson has quit [Changing host]
mwhudson has joined #pypy
lritter has quit [Quit: Leaving]
andi- has quit [Ping timeout: 260 seconds]
andi- has joined #pypy
mwhudson has quit [Ping timeout: 272 seconds]
mwhudson has joined #pypy
mwhudson has joined #pypy
mwhudson has quit [Changing host]
_cipher has joined #pypy
camelCaser has quit [Ping timeout: 265 seconds]
ccamel has joined #pypy
_cipher has quit [Quit: Leaving]
_cipher has joined #pypy
_cipher has quit [Quit: Leaving]
_cipher has joined #pypy
oberstet has joined #pypy
thrnciar has joined #pypy
_cipher has quit [Quit: Leaving]
todda7 has joined #pypy
_cipher has joined #pypy
_cipher has quit [Quit: Leaving]
jvesely has quit [Ping timeout: 240 seconds]
jvesely has joined #pypy
* arigo fixes #3251
* arigo still trying to figure out why cpyext tests fail on his machine and not on the buildslaves
<arigo> ...turns out to be because of a different gcc version
<arigo> it seems that very recent gcc's make the cpyext tests fail
<arigo> we define by mistake a few global variables in two .c files
<arigo> I have no clue what older versions of gcc do with that
todda7 has quit [Ping timeout: 246 seconds]
dddddd has quit [Ping timeout: 258 seconds]
<mattip> arigo: +1
<arigo> fixed
todda7 has joined #pypy
BPL has joined #pypy
<arigo> (to clarify, it seems it's a problem of the linker: the exact behavior of defining several times the same variable in undefined, and older versions of ld would just make a union. Newer versions seem to have changed that)
_cipher has joined #pypy
_cipher has quit [Quit: Leaving]
xcm has quit [Read error: Connection reset by peer]
xcm has joined #pypy
xcm has quit [Killed (card.freenode.net (Nickname regained by services))]
xcm has joined #pypy
thrnciar has quit [Remote host closed the connection]
thrnciar has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8207 [mattip: force build, py3.7]
<bbot2> Started: http://buildbot.pypy.org/builders/own-win-x86-32/builds/2354 [mattip: force build, py3.7]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/5339 [mattip: force build, py3.7]
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
todda7 has quit [Ping timeout: 272 seconds]
lritter has joined #pypy
dddddd has joined #pypy
<antocuni> arigo: I think that commit 338b6c45ed55 is buggy: if the GC runs in the middle of "for wr in self.data.values", the size of the dictionary changes during the for loop
<antocuni> I can easily trigger the bug by forcing PYPY_GC_NURSERY=1k: http://paste.openstack.org/show/795256/
YannickJadoul has joined #pypy
<antocuni> I think we have two solutions: 1) simply use list(self.data.values())
<antocuni> 2) use gc.disable()/gc.enable() around the for loop
<antocuni> do you (or anyone else) have opinions?
<antocuni> also: do we have any existing testing machinery which could help to reproduce this bug?
<antocuni> (i.e., something which we can use to spawn an external pypy process and setting env variables)
<antocuni> mattip: what is the status of the py3.6/py3.7 branches? Should I commit the fix to py3.6 or py3.7, or both? Do we regularly merge one into the other?
<antocuni> also, I wonder whether we should maybe have a branch called "3.x" instead of one for each minor version (or maybe whether we should call it "default" :))
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8207 [mattip: force build, py3.7]
<mattip> we merge from py3.6 into py3.7, so commit to py3.6
<mattip> someday we will stop with py3.6 and start py3.8 off py3.7
<antocuni> are we going to develop py3.7 and py3.8 in parallel?
<mattip> our development cycles are so long we have to: we cannot stop bug-fixing 3.7 until we have a viable 3.8
<antocuni> right, good point
<mattip> that macOS translation failure is strange: there is no socket.SO_PROTOCOL on macOS?
<antocuni> mattip: are we going to do a new release soon?
<mattip> I think so
<mattip> I would like to do a py3.7 alpha, which is why I kicked the buildbots
<antocuni> is there any chance to include the weakref fix I am working on right now, or it's too late?
<mattip> no, definitely not too late. I will send a mail out when I start freezing
<antocuni> cool :)
<mattip> maybe we can get the 3.7 re refactoring in as well
todda7 has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/own-win-x86-32/builds/2354 [mattip: force build, py3.7]
dddddd_ has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/5339 [mattip: force build, py3.7]
dddddd__ has joined #pypy
dddddd has quit [Ping timeout: 260 seconds]
dddddd__ is now known as dddddd
dddddd_ has quit [Ping timeout: 246 seconds]
<antocuni> ok, I pushed my fix :)
<YannickJadoul> Does it make sense to implement `-X dev` in PyPy?
<YannickJadoul> It's related to some CPython tests failing, but `-X
<YannickJadoul> ... is documented as "Reserved for various implementation-specific options."
dddddd has quit [Ping timeout: 256 seconds]
<mattip> so it is equivalent to "PYTHONMALLOC=debug python3 -W default -X faulthandler"
<mattip> I don't think PYTHONMALLOC=debug actually does anything on PyPy, but the other two might be useful, especially if people are using -X dev
dddddd has joined #pypy
<mattip> so my vote would be "if it's not to hard, we should do it"
<YannickJadoul> Alright, then I'll try to get as close as possible
<YannickJadoul> These kinds of things are just in app_main.py? I tend to get a bit confused by the amount of "main"-related files in PyPy
<cfbolz> YannickJadoul: yeah, app_main should be the place
<YannickJadoul> Thanks!
<YannickJadoul> And what about pyinteractive? That seems to have its own cmdline options?
<cfbolz> YannickJadoul: we don't care about that, imo
<YannickJadoul> OK. I had just found that you can run some of the CPython tests through that. But maybe it's not the correct way :D
<mattip> that is for running PyPy over CPython2 in an untranslated mode. You really have to struggle to get it to work, and it usually is not worth the effort
thrnciar has quit [Remote host closed the connection]
thrnciar has joined #pypy
<mattip> numpy seems to work (with d76bda509e9d) on py3.7
<mattip> the only change is to block installing the pickle5 backport https://github.com/pitrou/pickle5-backport
<mattip> since it seems to abuse the C-API with internals
<mattip> I guess we need to create our own PEP 574 compatible pickle5 code, then we can backport it too
<mattip> there are some test failures around catching warnings in tests, but nothing seriously wrong
thrnciar_ has joined #pypy
thrnciar has quit [Read error: Connection reset by peer]
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
<antocuni> mattip: about pickle5: if I understand it correctly, we will need to implement it anyway for py3.8, right? Then probably the easiest way is to implement it for py3.7 already (or even py3.6, maybe), so the "backport" can be as easy as "import pickle"
thrnciar_ has quit [Ping timeout: 256 seconds]
Dejan has joined #pypy
Dejan has joined #pypy
Dejan has quit [Changing host]
jcea has joined #pypy
todda7 has quit [Ping timeout: 258 seconds]
_cipher has joined #pypy
todda7 has joined #pypy
oberstet has quit [Remote host closed the connection]
todda7 has quit [Ping timeout: 260 seconds]
asmeurer has joined #pypy
YannickJadoul has quit [Ping timeout: 240 seconds]
YannickJadoul has joined #pypy
<arigo> antocuni: thanks for the fix. I guess I'm still not used to "dict.values()" returning an iterator that explodes if the dictionary changes
<arigo> antocuni: actually I suspect your fix is not 100% crash-proof: the gc could run between self.data.values() and list()
<arigo> ah no, maybe it's still fine: .values() returns an iterable, and only list() turns it into an iterator and immediately exhausts it
<arigo> ...aaand no, it's not, because list() has internally its own jitdriver
<arigo> ...maybe it's still fine, because even if the GC runs randomly, calling back to app-level code should be delayed until the next python bytecode boundary
<arigo> I think that should still be the case even if the JIT comes along and compiles stuff
<antocuni> arigo: ah indeed, I didn't think about the GC running during the list() call. I think it's fine because as you say the weakref callbacks will be called later, although it's a bit fragile
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
<arigo> not really more than calling the Python 2 ".values()" method (which doesn't exist but let's assume it did)
<antocuni> indeed
<arigo> because even during a call to the python 2 .values(), the GC runs randomly to grow the resulting list
<arigo> also, remember that unless I'm wrong, the original Python code was buggy on CPython too (it works only most of the time)
<antocuni> I think that for now I am happy to just fix the error I saw in the real world :)
asmeurer has quit [Quit: asmeurer]
thrnciar_ has joined #pypy
lritter has quit [Quit: Leaving]
thrnciar_ has quit [Ping timeout: 256 seconds]
thrnciar_ has joined #pypy
_cipher has left #pypy ["Leaving"]
jacob22_ has quit [Read error: Connection reset by peer]
jacob22_ has joined #pypy
thrnciar_ has quit [Ping timeout: 265 seconds]
alexge50_ has quit [Ping timeout: 240 seconds]
_cipher has joined #pypy
_cipher has quit [Quit: Leaving]
_cipher has joined #pypy
BPL has quit [Quit: Leaving]
YannickJadoul has joined #pypy
yajadoul has joined #pypy
xcm has quit [Remote host closed the connection]
YannickJadoul has quit [Ping timeout: 246 seconds]
xcm has joined #pypy
yajadoul has quit [Quit: Leaving]
YannickJadoul has joined #pypy
_cipher has quit [Quit: Leaving]
_cipher has joined #pypy
otisolsen70__ has joined #pypy
otisolsen70_ has quit [Ping timeout: 240 seconds]
_cipher has quit [Read error: Connection reset by peer]
_cipher has joined #pypy