<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
<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>
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 :)
<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."