cfbolz changed the topic of #pypy to: #pypy PyPy, the flexible snake https://pypy.org | IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end and https://libera.irclog.whitequark.org/pypy | insert pithy quote here
gef_ has quit [Ping timeout: 245 seconds]
gef has quit [Ping timeout: 240 seconds]
gef has joined #pypy
gef_ has joined #pypy
gef_ has quit [Ping timeout: 245 seconds]
gef has quit [Ping timeout: 248 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef has joined #pypy
gef_ has joined #pypy
gef_ has quit [Ping timeout: 240 seconds]
gef has quit [Ping timeout: 268 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 245 seconds]
gef has joined #pypy
gef_ has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef_ has quit [Ping timeout: 268 seconds]
gef has joined #pypy
gef_ has joined #pypy
gef has quit [Ping timeout: 248 seconds]
gef_ has quit [Ping timeout: 268 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef has joined #pypy
gef_ has joined #pypy
gef has quit [Ping timeout: 245 seconds]
gef_ has quit [Ping timeout: 268 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef has joined #pypy
gef_ has joined #pypy
gef has quit [Ping timeout: 245 seconds]
gef_ has quit [Ping timeout: 268 seconds]
<mattip> nimaje: can you suggest a fix?
gef has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 245 seconds]
gef has joined #pypy
gef_ has joined #pypy
ronan has quit [Remote host closed the connection]
ronan has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef_ has quit [Ping timeout: 268 seconds]
<mattip> someone on the wxpython discussion list asked about our gsoc from 2013 to use cffi for wxpython
<mattip> so I uploaded the old bitbucket code to https://github.com/pypy/wxpython-cffi
<mattip> here is the exchange
gef has joined #pypy
<mattip> py3.8 lib-python status: 274 failing and 48 erroring tests
<LarstiQ> mattip: hah, I love the "5 years later"
gef_ has joined #pypy
<mattip> test_os, test_ssl seem like the next ones to try to tackle
<mattip> (hopefully someone else will tackle test_dis and test_ast)
mathieu1 has joined #pypy
Atque has quit [Quit: ...]
<nimaje> mattip: not really as I have no idea why they use < 2 there, but changing to < 1 makes the test pass
<mattip> which test is this?
<nimaje> much of idlelib.idle_test.test_calltip.Get_argspecTest seems to be broken, because to much passes isinstance(ob_call, types.MethodType) so the .__call__ object is used instead of the function itself (and inspect.signature() returns <Signature (*args, **keywords)> for those .__call__ objects instead of the signature of the underlying
<mattip> ahh, cool
<nimaje> idle_test/test_help_about.test_printer_buttons
<mattip> so how do these pass on CPython and fail on PyPy?
<mattip> what are we doing differently?
<mattip> if you stop with a "breakpoint()" at that point in the test on both, what is the difference?
<nimaje> to the argspec test isinstance(C.m.__call__, types.MethodType) returns false on cpython, but true on pypy for fom method m in a class C, so on cpython C.m will be used for further inspection, but C.m.__call__ on pypy (and inspect.signature() returns <Signature (*args, **keywords)> for those .__call__ objects on both pypy and cpython)
<nimaje> even for a normal function f isinstance(f.__call__, types.MethodType) returns true, which breaks idlelib.calltip.get_argspec() and so every test using it
manjaro-user has joined #pypy
manjaro-user is now known as someone
someone is now known as someone2
someone2 is now known as rozarioagro
gef_ has quit [Ping timeout: 240 seconds]
gef has quit [Ping timeout: 245 seconds]
<mattip> for "def f(): pass", on CPython f.__call__ is a
<mattip> <method-wrapper '__call__' of function object at 0x7fa00a65fee0>
<mattip> on PyPy it is a
<mattip> <bound method builtin_function.__call__ of <function f at 0x00007fb70aaedc40>>
gef has joined #pypy
<mattip> I think this is a variant of the documented differences
<mattip> (point 6)
gef_ has joined #pypy
Julian has joined #pypy
<nimaje> so idlelib.idle_test.test_calltip.Get_argspecTest.* just doesn't work on pypy? and they should get marked @xfail or something similar?
otisolsen70 has joined #pypy
<LarstiQ> is it the test that doesn't work or the actual idle code?
<nimaje> the actual idle code (idlelib.calltip.get_argspec() returns '(*args, **keywords)' on pypy because of fob = ob_call if isinstance(ob_call, types.MethodType) else ob it should use ob in more situations on pypy)
lritter has joined #pypy
<mattip> it seems "more situations" is not "all situation". If I blindly change that line to "fob = ob", some tests pass but others start to fail
<nimaje> maybe use ob if it is already a function or methode and else that isinstance check, that should be correct I think, but not sure if it catches all situations where ob should be used instead of ob_call
<cfbolz> mattip: batuhan and I just started working on the "too many bridges" problem, we're going to try and meet weekly and progress on it
<mattip> cfbolz: cool
<nimaje> using ob if (isinstance(ob, type) or isinstance(ob, types.FunctionType)) seems to be a fix for get_argspec() and fixing about 20 testfailures (without checking for type first the isinstance(ob, types.FunctionType) could raise with strange metaclasses)
<mattip> there are two checks in the function
<mattip> nimaje: feel like submitting a PR?
<nimaje> against the py3.8 branch?
gef_ has quit [Ping timeout: 245 seconds]
<cfbolz> nimaje: yep
gef has quit [Ping timeout: 248 seconds]
<nimaje> https://foss.heptapod.net/pypy/pypy/-/merge_requests/834 (for some reason the webui wanted to create a MR against default -shrug)
<mattip> nimaje: if I unconditionally use "fob = ob" I get from 32 failures (on py3.8) down to 4 failures
<mattip> if I use your patch, I still have 11 failures
<nimaje> yeah, cpython seems to use ob_call sometimes to still work with broken classes/metaclasses, maybe there is a better way to detect these?
Julian has quit [Quit: leaving]
<cfbolz> aaaah, I might have found out one of the problems of test_tcl
<mattip> nimaje: anyhow 32 -> 11 is progress
<mattip> cfbolz: ???
<cfbolz> tcl uses utf-16, and that seems to get mixed up with utf-8 somehow
<cfbolz> so I end up with this weird thing: https://en.wikipedia.org/wiki/CESU-8
<cfbolz> (I used an encoding sniffer tool)
gef has joined #pypy
gef_ has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef_ has quit [Ping timeout: 258 seconds]
gef has joined #pypy
<LarstiQ> doh. So did that break when switching string storage to utf8?
gef_ has joined #pypy
<cfbolz> LarstiQ: no, I think it works for things in the BMP
<cfbolz> I don't completely understand the mechanism yet...
gef_ has quit [Ping timeout: 240 seconds]
gef has quit [Ping timeout: 248 seconds]
<cfbolz> LarstiQ: ah, was broken in 3.7 already
esj has joined #pypy
<cfbolz> riiight, cpython just implements a cesu-8 encoder in the middle of the tkinter.c file
gef has joined #pypy
gef has quit [Ping timeout: 268 seconds]
esj has quit [Quit: Client closed]
<mattip> hahah
gef has joined #pypy
gef_ has joined #pypy
gef_ has quit [Ping timeout: 240 seconds]
gef has quit [Ping timeout: 245 seconds]
gef has joined #pypy
gef_ has joined #pypy
<mattip> cfbolz: that seems to be https://github.com/python/cpython/pull/23281
<mattip> which says it is for macOS
<mattip> in the bpo issue it says "Printing astral chars in tkinter/IDLE on Windows and Linux has 'worked' (details not important) for over a year."
<mattip> so maybe more is needed for our compatibility
<cfbolz> mattip: it hasn't worked on Linux for us though
<cfbolz> mattip: the test that is failing is older than that pull request
Julian has joined #pypy
<nimaje> mattip: down to 2 failures for idlelib.idle_test.test_calltip (probably that can now be a else: fob = ob_call , but I wanted to match cpython a little bit here and only use ob_call if it is a types.MethodType)
<mattip> I see overall for lib-python3/test/test_idle.py 4 failures and 6 errors
<nimaje> (3 failures, 19 errors and 1 skipped for me)
<mattip> I'm on linux 20.04 and pypy3.8 80ce2f4a65b3,
<mattip> before the changes there were 34 failed, 6 errors
<mattip> so the branch is a win. I will merge it
<mattip> thanks nimaje
lritter has quit [Ping timeout: 258 seconds]
Julian has quit [Quit: leaving]
yuiza has joined #pypy
yuiza has quit [Remote host closed the connection]
yuiza has joined #pypy
gef_ has quit [Ping timeout: 245 seconds]
gef has quit [Ping timeout: 268 seconds]
mattil has joined #pypy
rozarioagro has quit [Read error: No route to host]
stkrdknmibalz has quit [Quit: WeeChat 3.0.1]
dmalcolm_ has quit [Remote host closed the connection]
dmalcolm has joined #pypy
gef has joined #pypy
gef_ has joined #pypy
ronan has quit [Ping timeout: 245 seconds]
gef has quit [Ping timeout: 258 seconds]
gef_ has quit [Ping timeout: 268 seconds]
ronan has joined #pypy
mathieu1 has quit [Ping timeout: 245 seconds]
gef has joined #pypy
gef_ has joined #pypy
lritter has joined #pypy
Jin^eLD has quit [Ping timeout: 268 seconds]
gef has quit [Ping timeout: 240 seconds]
gef_ has quit [Ping timeout: 258 seconds]
<yuiza> vim
<yuiza> :q
<yuiza> oh, sorry
yuiza has quit [Remote host closed the connection]
gef has joined #pypy
gef_ has joined #pypy
gef_ has quit [Ping timeout: 240 seconds]
gef has quit [Ping timeout: 268 seconds]
gef has joined #pypy
ronan__ has joined #pypy
ronan has quit [Ping timeout: 245 seconds]
gef has quit [Ping timeout: 248 seconds]
ronan__ has quit [Read error: Connection reset by peer]
gef has joined #pypy
gef_ has joined #pypy
ronan has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef_ has quit [Ping timeout: 258 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 268 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 245 seconds]
gef has joined #pypy
gef_ has joined #pypy
stkrdknmibalz has joined #pypy
gef_ has quit [Ping timeout: 268 seconds]
gef has quit [Ping timeout: 268 seconds]
gef has joined #pypy
gef_ has joined #pypy
gef has quit [Ping timeout: 240 seconds]
gef_ has quit [Ping timeout: 258 seconds]
gef has joined #pypy
lritter has quit [Remote host closed the connection]
gef has quit [Ping timeout: 248 seconds]
gef has joined #pypy
gef has quit [Ping timeout: 268 seconds]
otisolsen70 has quit [Quit: Leaving]
mattil has quit [Quit: Leaving]
gef has joined #pypy
gef_ has joined #pypy
gef_ has quit [Ping timeout: 240 seconds]
gef has quit [Ping timeout: 245 seconds]
Guest27 has joined #pypy
<Guest27> as a remark, on pypy-3.8 of july 29th, the test "hard1" takes roughly 65 seconds vs 45 seconds in pypy-7.3.5 ... is it normal ? it's pure sudoku code https://github.com/winpython/winpython_afterdoc/blob/master/docs/Solvers_Raymond_Hettinger/python/sudoku_norvig_for_comparison_of_complexity.py
<Guest27> (on a windows 10 PC, 2 cpu 4 threads)
<Guest27> is the nightly compiled in a "slow with debug options" mode ?
<mattip> there is no "slow with debug" mode. Is the comparison to pypy3.7 or pypy2.7?
<Guest27> pypy-3.7.5 python 3.7
<Guest27> Python 3.7.10 (77787b8f4c49, May 15 2021, 11:51:36)
<Guest27> [PyPy 7.3.5 with MSC v.1927 64 bit (AMD64)] on win32
<Guest27> compared to
<Guest27> Python 3.8.10 (cfd47581da0a, Jul 29 2021, 10:17:20)
<Guest27> [PyPy 7.3.6-alpha0 with MSC v.1929 64 bit (AMD64)] on win32
<Guest27> on windows, every side-effect of an anti-virus is possible, but this doesn't seem the case, so I report
<Guest27> nightly s twice quicker than PyPy 7.3.5 on an sqlite test, so I didn't expect a reverse trend on this other test
<Guest27> tests were done per launching via "run module" of IDLE, in case it can be an important detail.
Guest27 has quit [Quit: Connection closed]
gef has joined #pypy
gef_ has joined #pypy
fotis has joined #pypy