arigato 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 | mac OS and Fedora are not Windows
xcm has quit [Remote host closed the connection]
jcea has quit [Remote host closed the connection]
alexge50 has quit [Remote host closed the connection]
alexge50 has joined #pypy
jcea has joined #pypy
xcm has joined #pypy
jcea has quit [Remote host closed the connection]
jcea has joined #pypy
_whitelogger has joined #pypy
jcea has quit [Quit: jcea]
lritter has quit [Ping timeout: 245 seconds]
lritter has joined #pypy
marky1991 has quit [Remote host closed the connection]
dddddd has quit [Remote host closed the connection]
IRC-Source_36 has joined #pypy
IRC-Source_36 has quit [Remote host closed the connection]
lritter has quit [Ping timeout: 272 seconds]
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
marvin_ has quit [Remote host closed the connection]
marvin__ has joined #pypy
marvin__ has quit [Remote host closed the connection]
marvin_ has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
rindolf has joined #pypy
xcm has quit [Read error: Connection reset by peer]
xcm has joined #pypy
<kenaan> arigo sandbox-2 3d0f6980ad49 /pypy/config/pypyoption.py: Add a couple of modules to the sandbox
xcm has quit [Read error: Connection reset by peer]
xcm has joined #pypy
<kenaan> arigo sandbox-2 72768e4f4ec6 /: Mark a few functions as sandboxsafe=True, because I don't think they can cause any problem
dddddd has joined #pypy
dansan_ is now known as dansan
speeder39_ has joined #pypy
dansan has quit [Ping timeout: 248 seconds]
dansan has joined #pypy
dansan has quit [Ping timeout: 258 seconds]
<arigato> pypy2's module/imp/ is prone to getting rpython-level StreamErrors that are turned into app-level SystemError
<kenaan> mattip py3.6 f4c733706018 /pypy/module/__pypy__/test/test_signal.py: revert 29d097325970, skip this test when untranslated
<mattip> some emulation is hanging in handling signals but only on bencher4 and aarch64
<mattip> I can reproduce locally but only on those machines
<mattip> and only untranslated
<arigato> not fun to debug
<mattip> hmm, the test_thread_fork_signals test is hanging as well. The strange thing is they pass on pypy2
<mattip> did something change in moving thread -> _thread
<kenaan> arigo default 7907cb768f09 /pypy/module/imp/: Correctly wrap the I/O errors we can get when importing modules (hopefully)
<kenaan> arigo sandbox-2 3c789662afb2 /pypy/: hg merge default
<kenaan> arigo default b14e43faf847 /pypy/objspace/std/test/: merge heads
<kenaan> arigo sandbox-2 2bfca02e69de /rpython/rtyper/lltypesystem/rffi.py: More sandboxsafe's
<mattip> os_lock.py is the only one that is significantly different, perhaps something is a bit off
<kenaan> arigo default 1f0f33b64b3b /pypy/module/imp/importing.py: Wrap the I/O errors we can get when importing modules (one more place)
<kenaan> arigo sandbox-2 d26ba88cc09d /pypy/: hg merge default
dansan has joined #pypy
<kenaan> mattip py3.6 a405e4fc3800 /: allow ssl tests to run without segfault, hang
<mattip> bye for now
jcea has joined #pypy
IRC-Source_54 has joined #pypy
IRC-Source_54 has quit [Remote host closed the connection]
toad_poloer has joined #pypy
<toad_poloer> I'm seeing a bunch of failing tests on master, is that just me?
<arigato> there are a few
<arigato> or maybe something new from today
<toad_poloer> Also sorta more disturbingly I'm *not* seeing failing tests that I'm pretty sure should be failing.
<toad_poloer> datetime.replace() is actually ignoring the `fold` attribute, but there are tests for that in datetimetester.py
<arigato> so you're not talking about master but py3.6?
<toad_poloer> Ah apparently, hold on.
<arigato> there are many known failures on py3.6, but if you have tests not failing when they should it's not disturbing. which test exactly?
<arigato> ...it's *more* disturbing
<toad_poloer> arigato: Let me check if it's actually failing, how do I run the tests for the standard library?
<ronan> toad_poloer: 'python -m test' is the easiest
Arfrever has joined #pypy
<toad_poloer> Ah, there we go. Yeah, it's failing in a bunch more places that I expected it to fail.
<toad_poloer> How do you usually pull in patches from CPython?
<toad_poloer> I mean I can manually fix these things, but it seems like it would be easier to pull in the latest code from CPython.
lritter has joined #pypy
tsaka_ has quit [Quit: Konversation terminated!]
<cfbolz> toad_poloer: latest as in 3.7 or 3.8? or latest as in a later point release than 3.6?
marky1991 has joined #pypy
<toad_poloer> cfbolz: Up to y'all, but this is fixed in the latest 3.6 tag.
<cfbolz> toad_poloer: unreleased, though?
<toad_poloer> No, Cpython actually never had this bug.
<cfbolz> I am confused then, if they never had this bug how can you pull a patch from CPython to fix it?
<cfbolz> toad_poloer: in any case, the CPython stdlib of version 3.6.9 was pulled in recently
<cfbolz> (on monday, to be precise)
<toad_poloer> cfbolz: I mean, the code in here obviously came from CPython, so I assume that it and the tests are being regularly pulled in.
<kenaan> rlamy py3.6 2ab7f3bbe84f /lib-python/3/idlelib/: fix bad merge in idlelib
<cfbolz> toad_poloer: yep, absolutely
<toad_poloer> I'm not sure why this bug is there, I can only guess that it's a bad merge or something.
<toad_poloer> Probably because pypy fixed the issue where `.replace` would always return a `datetime` object, not an object of `type(self)` *before* it was fixed in CPython.
<toad_poloer> Might have caused a merge conflict and the updated CPython code was missed.
<arigato> I think you're talking about the bug of ignoring 'fold' in datetime.replace() in the stdlib of CPython
<toad_poloer> Yeah.
<arigato> if that's right, then it was a bug in CPython which was fixed by b9a40aca293
<arigato> hum no, earlier
<toad_poloer> That's where the `replace` function adds the missing functionality, it's from 3 years ago.
<toad_poloer> And it's the initial implementation of fold.
<arigato> indeed, it seems our version of datetime.py is different from all the versions of CPython
<cfbolz> we have our own changes to that file
<cfbolz> so yes, it's plausible that a merge went wrong
<arigato> looks like it
<cfbolz> :-(
<arigato> just for completeness, our own changes to that file are needed because that code behaves slightly differently than CPython's C version of datetime
<arigato> even though it shouldn't in theory
<cfbolz> no, that's not all
Arfrever has quit [Ping timeout: 245 seconds]
<cfbolz> we also have changes to help the C-API emulation
<toad_poloer> arigato: In that particular case it's just that y'all got there first.
<arigato> right, which are part of "behaves slightly differently" because C extension modules are not happy about getting the Python version of datetime
<toad_poloer> I reported the bug about the lossy subclasses in datetime in pypy and cpython, pypy got there first.
<toad_poloer> But the latest 3.6 should actually work fine now.
<kenaan> rlamy py3.6 adf1da3800af /lib-python/3/datetime.py: Don't ignore fold parameter in (date,)time.replace()
<ronan> that should fix it
<arigato> ronan: thanks!
<toad_poloer> Thanks ronan.
<ronan> toad_poloer: IIRC, what CPython does isn't a correct emulation of the C extension, which is why we still have a diff there
Arfrever has joined #pypy
<toad_poloer> ronan: Hard to say, 3.6 was a long time ago.
<arigato> I expect it will remain the same in all future 3.x
<toad_poloer> At the moment we backport any C emulation inconsistencies as far back as 3.7, which is the last 3.x version still accepting bug fixes.
<toad_poloer> arigato: Why? Any inconsistencies are bugs per PEP 399.
<arigato> like I said, C extension modules are not happy about getting the Python version of datetime
<arigato> in other words, with all the PyDateTime_Xxx() functions in C, you can know the difference between the C and the Python version of datetime
<toad_poloer> Ah yeah, that's true.
<toad_poloer> But that emulation layer in Python happens elsewhere.
<toad_poloer> Not in datetime.py, it happens in cpyext, right?
<arigato> a bit both
<arigato> I don't expect CPython to care about that, so I don't expect that we'll ever have a diff-free version of datetime.py
<arigato> but anyway, it's cool that the diff reduces over time!
timpalpant has joined #pypy
marky1991 has quit [Ping timeout: 268 seconds]
marky1991 has joined #pypy
<kenaan> rlamy py3.6 1097e21c2af6 /pypy/objspace/std/test/: Backed out changeset d6fbbd74e9d4 (breaks test_smalllongobject.py)
<ronan> sigh
<kenaan> rlamy default 3d00647f3dc5 /pypy/objspace/std/test/: Backed out changeset 5a0b5a0945e0 (breaks test_smalllongobject.py)
speeder39_ has quit [Quit: Connection closed for inactivity]
<kenaan> rlamy default 9f3e40bec8d3 /pypy/module/_lsprof/test/test_cprofile.py: kill overly complicated apptest that duplicates lib-python
speeder39_ has joined #pypy
<kenaan> rlamy default a46bede6925d /pypy/objspace/std/test/test_methodcache.py: kill flaky test
toad_poloer has quit [Ping timeout: 252 seconds]
<kenaan> rlamy py3.6 5dc520fcc4f9 /pypy/: hg merge default
timpalpant has quit [Ping timeout: 245 seconds]
edd[m] has quit [Read error: Connection reset by peer]
_whitelogger has joined #pypy
bendlas 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
timpalpant has joined #pypy
marky1991 has quit [Ping timeout: 264 seconds]
timpalpant has quit [Remote host closed the connection]
<kenaan> rlamy py3.6 060585210eea /pypy/interpreter/: fix test
<glyph> Is it possible that there's a bug in socket.setblocking() in pypy3.6?
edd[m] has joined #pypy
<ronan> glyph: The CPython tests are passing, but it's certainly possible
<glyph> ronan: I just found a test in the twisted suite where I have to call setblocking(False) twice in order to make recvfrom() not block
<glyph> getting this to happen in isolation is not possible as far as I can tell though
travis-ci has joined #pypy
<travis-ci> timpalpant/vmprof-python@master: The build is still failing. (https://travis-ci.com/timpalpant/vmprof-python/builds/122628663)
travis-ci has left #pypy [#pypy]
<kenaan> arigo sandbox-2 a781f28cb336 /pypy/module/time/interp_time.py: Be safe and always enable a check that was meant only for Windows but that makes sense in case there's an attack ...
<glyph> okay I think the bug is that asyncio on pypy3 _toggles_ the blocking flag rather than setting it to False like it's supposed to somewhere
<glyph> Mmm... no, still happens after disabling asyncio
<ronan> glyph: it's a bit unlikely to be specific to pypy3 if it only involves socket
speeder39_ has quit [Quit: Connection closed for inactivity]
<glyph> ronan: it does really seem to be
<glyph> I've also confirmed asyncio is not involved, so getting close to a diagnosis (every test run takes quite a while, so I'm doing this in the background :))
<glyph> boom
<glyph> minimal reproducer
<glyph> ronan: okay! where do I report this
<ronan> glyph: open an issue please
<glyph> ronan: took me a minute to get to the bitbucket tracker, pypy.org doesn't link it terribly prominently :)
<glyph> Definitely feels like I just solved a murder mystery here
speeder39_ has joined #pypy
<ronan> glyph: Thank you! That is weird
* ronan off though
<kenaan> arigo sandbox-2 23010c892cff /: Try to add carefully logic in the GC that disables the most advanced features, incrementality and pinning.
<kenaan> arigo sandbox-2 a8758309335d /pypy/module/sys/vm.py: sandboxing disables sys.setrecursionlimit() too
<kenaan> arigo sandbox-2 202992141e0c /: translation fix
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
travis-ci has joined #pypy
<travis-ci> timpalpant/vmprof-python@master: The build is still failing. (https://travis-ci.com/timpalpant/vmprof-python/builds/122646300)
travis-ci has left #pypy [#pypy]
marky1991 has quit [Ping timeout: 245 seconds]
Arfrever has quit [Quit: 御出で]
marky1991 has joined #pypy
inhahe_ has quit [Read error: Connection reset by peer]
inhahe has joined #pypy
kipras has joined #pypy
<tos9> glyph: fun :/
<tos9> glyph: (grep says skipkeys has no unit tests on cpython FWIW)
<glyph> tos9: but of course
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
abrown has quit [Quit: Leaving]
abrown has joined #pypy
dansan_ has joined #pypy
dansan has quit [Ping timeout: 244 seconds]
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
mjacob has quit [Ping timeout: 252 seconds]
mjacob has joined #pypy
marky1991 has quit [Remote host closed the connection]
speeder39_ has quit [Quit: Connection closed for inactivity]
speeder39_ has joined #pypy
<tos9> arigato: that patch touches a file in lib-python/2.7 but fixes/affects pypy3?
<arigato> no, I fixed the same problem in pypy2
<arigato> now I'm trying to merge that into py3.6
<tos9> oh. I thought it said it didn't affect pypy2
<tos9> ah that was the other one, my mistake
<arigato> also, not when written exactly like that, because this dictionary's two keys are really only one on pypy2 (the keys are equal)
* tos9 nods
<arigato> and anyway both strings and unicodes are accepted by json
<kenaan> arigo py3.6 9329c29caa2c /: hg merge default
dansan_ is now known as dansan
<arigato> I suppose that this is purely a CPython 2.x bug: dumps({True: 3}) => "{True: 3}" (should be true, not True)
<arigato> sorry, {"True": 3} vs. {"true": 3}
<kenaan> arigo default 44c2b8930353 /: json: bug-to-bug compatibility in a corner case
<kenaan> arigo py3.6 bbfb481934ce /extra_tests/test_json.py: hg merge default
<nimaje> why is dumps({True: 3}) not a TypeError (as True is not a string)?
<tos9> nimaje: That's what CPython decided to do
<tos9> arigato: I think the docs say it just calls str on any non-string
<tos9> so str(True) is "True"
<tos9> nimaje: (It decided to basically support non-str keys and call str on them)
<tos9> Keys in key/value pairs of JSON are always of the type str. When a dictionary is converted into JSON, all the keys of the dictionary are coerced to strings."