cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | the secret reason for us trying to get PyPy users: to test the JIT well enough that we're somewhat confident about it
stevenja_ has quit [Ping timeout: 260 seconds]
energizer has joined #pypy
mattip has quit [Ping timeout: 265 seconds]
oberstet has quit [Ping timeout: 240 seconds]
jamesaxl has quit [Quit: WeeChat 2.1]
mattip has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
dfee has quit [Ping timeout: 240 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
jcea has quit [Quit: jcea]
dfee has joined #pypy
dddddd has quit [Remote host closed the connection]
dfee has quit [Ping timeout: 255 seconds]
dfee has joined #pypy
R3d_Sky has joined #pypy
stevenja_ has joined #pypy
stevenja_ has quit [Ping timeout: 240 seconds]
lweber1 has quit [Ping timeout: 248 seconds]
lweber1 has joined #pypy
dfee has quit [Ping timeout: 240 seconds]
R3d_Sky has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
tsutsumi has joined #pypy
<tsutsumi> filal: ok, I'll take a look. One thing that's not clear to me: runicode.py is a part of rpython, and unicodehelper is a part of the pypy interpreter. Is the idea to remove that unicode functionality from rpython? or reduce what's required there?
<tsutsumi> fijal: ^ sorry misread the name
dustinm has quit [Quit: Leaving]
<fijal> tsutsumi: reduce what's required there to be less python specific
dustinm has joined #pypy
R3d_Sky has joined #pypy
dfee has joined #pypy
<tsutsumi> sounds good, can do
R3d_Sky has quit [Quit: Textual IRC Client: www.textualapp.com]
mvantellingen has quit [Ping timeout: 250 seconds]
lritter has joined #pypy
dfee has quit [Ping timeout: 240 seconds]
<cfbolz> tsutsumi: thanks a lot for digging into this!
marself has joined #pypy
energizer has quit [Ping timeout: 265 seconds]
dfee has joined #pypy
dfee has quit [Ping timeout: 276 seconds]
slacky has joined #pypy
shodan45 has quit [Remote host closed the connection]
shodan45 has joined #pypy
ssbr has quit [Ping timeout: 246 seconds]
ssbr has joined #pypy
marr has joined #pypy
oberstet has joined #pypy
<kenaan> cfbolz default 353420330f35 /pypy/objspace/std/: cleanup in dict implementation: don't use has_* flags, put fallback implementations into base methods instead
slacky has quit [Quit: Leaving]
ssbr has quit [Ping timeout: 260 seconds]
dfee has joined #pypy
dfee has quit [Ping timeout: 260 seconds]
antocuni_ has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/3964 [Carl Friedrich Bolz-Tereick: force build, py3.6-wordcode]
<kenaan> cfbolz py3.6-wordcode c6b57116d338 /pypy/interpreter/: fix co_firstlineno when annotations are present
dddddd has joined #pypy
marr has quit [Ping timeout: 240 seconds]
antocuni_ has quit [Ping timeout: 260 seconds]
<kenaan> cfbolz py3.6 b71f7b72b31d /lib-python/3/test/test_peepholer.py: fix test_peepholer by undoing pypy-change
<kenaan> cfbolz py3.6-wordcode 2d9f8bdb0649 /lib-python/3/test/test_peepholer.py: merge py3.6
marvin has quit [Remote host closed the connection]
marvin has joined #pypy
jcea has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/3964 [Carl Friedrich Bolz-Tereick: force build, py3.6-wordcode]
marr has joined #pypy
inhahe_ has joined #pypy
jamesaxl has joined #pypy
inhahe__ has quit [Ping timeout: 256 seconds]
dfee has joined #pypy
dfee has quit [Ping timeout: 240 seconds]
tayfun26 has joined #pypy
marky1991 has joined #pypy
lazka has joined #pypy
mvantellingen has joined #pypy
marky1991 has quit [Ping timeout: 240 seconds]
karanlyons has joined #pypy
<karanlyons> Hey all, I'm seeing some weird behavior and a possible discrepancy between SSL in asyncio loops with multiprocessing. Test case: https://dpaste.de/W0yA Output: https://dpaste.de/VwYP
<karanlyons> This error *doesn't* occur if spawn or forkserver are used, so I'm guessing there's some global coming along for the fork ride and messing things up.
lritter has quit [Read error: Connection reset by peer]
<karanlyons> I actually have no idea how I'd even go about debugging this. I'll keep poking at it, but the test case and information that it only happens when using fork (and not spawn or forkserver) may be all I've got.
<Rotonen> multiprocessing pickles the globals for you unless you use a shared memory worker
<karanlyons> Rotonen: This is actually an issue of compatibility between PyPy and CPython...I think.
<karanlyons> It isn't me sending some globals through args or otherwise in my own code.
<karanlyons> Unless there's something wrong with my test case?
<Rotonen> there was someone recently trying to do something like that, to spawn pypys from cpython or so - nocando per noncompatible in-memory data structures - but do hold on for an answer from an actual pypy dev - i just hang around here
<karanlyons> Yeah, this is PyPy forking PyPy.
<karanlyons> My guess is that it *is* a global, but one within _cffi_ssl someplace.
<fijal> pfff
<fijal> karanlyons: without looking in detail (and not even denying this is pypy bug), I would strongly recomment not using multiprocessing for anything at all ever
<karanlyons> So you'd prefer subprocess?
<karanlyons> That's still gonna fork(), no?
<fijal> yes, but the communication is "sane"
<fijal> eg it does not try to pickle and unpickle and pretend it's the same
<fijal> I would probably use execnet or some other wrapper around subprocess
<karanlyons> Oh, yeah, but again: not passing arguments that are going to have pickling problems.
<fijal> (or just pipes0
<fijal> right, so that's the problem with implicit pickling
<fijal> if you understand your communication model, it's a lot less of a problem
<karanlyons> This is—I think—specifically an issue with forked processes and something in the SSL libs.
<fijal> are you sure it has nothing to do with multiprocessing itself?
<karanlyons> Using forkserver or spawn with multiprocessing prevents the issue. So...kinda? I mean, it's possible that the issue is multiprocessing pickling some global state up weird and starting from a "clean" proc sidesteps the problem.
<karanlyons> I can try to whip up an example just using fork to see.
<fijal> would be cool
<fijal> getting multiprocessing out of the equation would make bug hunting a lot easier too :-)
<karanlyons> Though that might be kinda tricky since I'm also spawning the child process from inside of an asyncio loop.
<karanlyons> Hm, let's first see if I can get the error without asyncio at all.
<Rotonen> i might be boring here, but just use threads?
<Rotonen> (instead of asyncio)
<karanlyons> I already have a fix for *my* problem.
<karanlyons> And no, I want asyncio for this.
<karanlyons> But I'm just working now to figure out exactly what this problem is, and if it's PyPy's, a possible fix.
<karanlyons> Yup, doesn't need asyncio.
<karanlyons> So here's just multiprocessing and http.client: https://dpaste.de/FXhu
<karanlyons> Yeah, it's a PyPy issue with fork and probably something in _cffi_ssl. Here's the simplest test case: https://dpaste.de/efzu
<karanlyons> Works fine in CPython 3.5.3, fails in PyPy 6.0.0.
lazka has quit [Quit: Leaving]
<cfbolz> karanlyons: ouch
<karanlyons> Yuuuuup, I'm goin' spelunkin'!
<karanlyons> I have close to zero chance of working this out, though.
<cfbolz> karanlyons: good testcase reduction already I would say
<karanlyons> That just told me what I already knew, sadly.
<karanlyons> But it makes it easier for others to repro, at least.
<cfbolz> karanlyons: yes, definitely open an issue please
<cfbolz> Unfortunately I know absolutely nothing about ssl nor fork :-(
<karanlyons> I will in a bit. I want to see if I can offer more than just the testcase first.
R3d_Sky has joined #pypy
realitix has joined #pypy
Rhy0lite has joined #pypy
realitix has quit [Quit: realitix]
realitix has joined #pypy
marr has quit [Ping timeout: 260 seconds]
marky1991 has joined #pypy
marky1991 has quit [Ping timeout: 255 seconds]
<karanlyons> Yeah, I can't figure this out but my best current guess is that it's something to do with calls to the cffi openssl, likely that some context gets set up and copied over when it shouldn't be.
antocuni_ has joined #pypy
stevenja_ has joined #pypy
realitix has quit [Quit: realitix]
marr has joined #pypy
oberstet has quit [Ping timeout: 256 seconds]
slacky has joined #pypy
mvantellingen has quit [Ping timeout: 250 seconds]
mvantellingen has joined #pypy
realitix has joined #pypy
Taggnostr2 has joined #pypy
Taggnostr has quit [Ping timeout: 264 seconds]
mvantellingen has quit [Ping timeout: 250 seconds]
raynold has quit [Quit: Connection closed for inactivity]
dfee has joined #pypy
mvantellingen has joined #pypy
realitix has quit [Quit: realitix]
<mattip> about scipy failing to load with "undefined symbol: _PyPy_Dealloc",
<mattip> we actually export (and declare in the H file) _Py_Dealloc
dfee has quit [Ping timeout: 256 seconds]
<mattip> so why is scipy looking for _PyPy_Dealloc ?
<ronan> mattip: maybe we still have a define for _Py_Dealloc?
<mattip> after translation I scanned include and libpypy, no _PyPy_Dealloc anywhere
<mattip> ahh, maybe I did not git clean before building scipy, and moving _Py_Dealloc from capi defined in py to c changed the final name?
<ronan> yes, the real symbol name is different now
karanlyons has quit [Quit: Leaving...]
<mattip> fwiw, "nm libpypy-c.so |grep 'T .*Py_'" yields many names, the only one that is not PyPy is _Py_Dealloc
<mattip> so maybe we should fix that name
slacky has quit [Quit: Leaving]
<mattip> for instance, PyObject_Free in object.c is exported as PyPyObject_Free from libpypy
<mattip> PyObject_Free gets a define in pypy_macros.h, _Py_Dealloc does not
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
oberstet has joined #pypy
<mattip> .. and found it. Missing in SYMBOLS_C
Civilian has quit [Disconnected by services]
Civil has joined #pypy
<mattip> I wish I could remember how all these things work for more than 3 days at a time
stevenja_ has quit [Remote host closed the connection]
stevenja_ has joined #pypy
stevenja_ has quit [Remote host closed the connection]
stevenja_ has joined #pypy
stevenja_ has quit [Remote host closed the connection]
karanlyons has joined #pypy
tayfun26 has quit [Quit: tayfun26]
stevenja_ has joined #pypy
stevenja_ has quit [Remote host closed the connection]
dfee has joined #pypy
stevenja_ has joined #pypy
marky1991 has quit [Ping timeout: 268 seconds]
stevenja_ has quit [Remote host closed the connection]
stevenja_ has joined #pypy
stevenja_ has quit [Remote host closed the connection]
stevenja_ has joined #pypy
stevenja_ has quit [Remote host closed the connection]
stevenja_ has joined #pypy
stevenja_ has quit [Remote host closed the connection]
rubdos has quit [Quit: WeeChat 2.0.1]
<kenaan> mattip default a8f64c4ae1ec /pypy/module/cpyext/api.py: add _Py_Dealloc to c function list to export it as _PyPy_Dealloc
marky1991 has joined #pypy
<mattip> lesshaste: ^^^, this probably started since both you and I did not run "git clean -xfd" before "pypy runtests.py" in scipy
rubdos has joined #pypy
tbodt has joined #pypy
mattip has quit [Ping timeout: 255 seconds]
rubdos has quit [Client Quit]
rubdos has joined #pypy
jcea has quit [Quit: jcea]
R3d_Sky has quit [Quit: Textual IRC Client: www.textualapp.com]
mattip has joined #pypy
lritter has joined #pypy
energizer has joined #pypy
antocuni_ has quit [Ping timeout: 240 seconds]
user24 has joined #pypy
marky1991_2 has joined #pypy
karanlyons is now known as karanlyons|away
marky1991_2 has quit [Remote host closed the connection]
marky1991_2 has joined #pypy
jcea has joined #pypy
hotpot33 has joined #pypy
marky1991 has quit [Ping timeout: 264 seconds]
<lesshaste> mattip, I literally installed pypy by downloading the binary, made a virtualenv, pip installed scipy, run pypy and type scipy.test('full')
user24 has quit [Remote host closed the connection]
hotpot33 has quit [Read error: Connection reset by peer]
hotpot33 has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<lesshaste> I mean that's how I ran the scipy tests
antocuni_ has joined #pypy
<mattip> lesshaste: maybe you had a built wheel somewhere in your pip cache?
<mattip> anyhow, if you could do the same again tomorrow with the nightly produced after my fix, it should now run
<lesshaste> mattip, I will do that
<lesshaste> thanks
tbodt has joined #pypy
tbodt has quit [Client Quit]
tbodt has joined #pypy
marky1991_2 is now known as marky1991
marky1991 has quit [Changing host]
marky1991 has joined #pypy
user24 has joined #pypy
antocuni_ has quit [Ping timeout: 276 seconds]
Rhy0lite has quit [Quit: Leaving]
lritter has quit [Quit: Leaving]
marky1991 has quit [Ping timeout: 240 seconds]
user24 has quit [Remote host closed the connection]
hotpot33 has quit [Read error: Connection reset by peer]
hotpot33 has joined #pypy
hotpot33 has quit [Read error: Connection reset by peer]
dfee has quit [Ping timeout: 256 seconds]
dfee has joined #pypy
arigato-c has joined #pypy
arigato-c has quit [Ping timeout: 276 seconds]
jamesaxl has quit [Ping timeout: 256 seconds]
jamesaxl has joined #pypy
antocuni_ has joined #pypy
<mattip> close
mattip has left #pypy ["bye"]
antocuni_ has quit [Ping timeout: 240 seconds]
jamesaxl has quit [Quit: WeeChat 2.1]
dfee has quit [Ping timeout: 248 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
tbodt has quit [Read error: Connection reset by peer]
tbodt has joined #pypy