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
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
dustinm has quit [Ping timeout: 260 seconds]
adamholmberg has quit [Remote host closed the connection]
dustinm has joined #pypy
<marmoute> mattip: silly question… where does all your buildbots run ?
<cfbolz> marmoute: our own servers
<marmoute> cfbolz: okay, so in theory it is "easy" to plug them to https://foss.heptapod.net/ if you want to (and can be restricted to pypy related projet if you prefer)
<cfbolz> marmoute: in theory. I don't know about the practice
<marmoute> From a technical point of view. It just need a functional docker (and the self contained gitlab-runner binary).
<cfbolz> marmoute: ah not clear we even want to integrate with gitlab-runner at this point
<cfbolz> Our own CI is still completely buildbot based
<marmoute> Yep, I don't expect you to switch overnight if you ever switch.
<cfbolz> The most important immediate thing is to get it to the current state again
<marmoute> "to get it to the current state again" ?
<cfbolz> marmoute: to get it to work at the level of how it works for bitbucket.org
<marmoute> Ha yep. That should be just about updating the URL once the repo migrated, right ?
<marmoute> bbot2: yes, we are talking about you.
<cfbolz> marmoute: nice theory
lritter has quit [Quit: Leaving]
<marmoute> cfbolz: :-)
jcea has quit [Remote host closed the connection]
<kenaan> arigo cffi/cffi 459f86e1d944 /doc/source/ref.rst: The point of this example is that it doesn't work with a variable, only with a constant number. So don't use `n`.
<kenaan> rlamy StringIO-perf b53569f5531d /pypy/module/_io/interp_stringio.py: Store UnicodeIO data as a list of unichars instead of GC strings
dddddd has quit [Remote host closed the connection]
oberstet has joined #pypy
<mattip> marmoute: it should just be updating the url used by some of the build commands
<mattip> no extra functionality is needed at this stage from heptapod anyway
_whitelogger_ has joined #pypy
jvesely has quit [Quit: jvesely]
_whitelogger has joined #pypy
<antocuni> cfbolz, marmoute: one thing that I'd like to try eventually is to use azure pipelines to run pypy tests: their servers seem very powerful and fast, and we could probably aim to run tests at every push
alexge50_ has quit [Read error: Connection reset by peer]
<antocuni> (on hpy, when I do "git push && py.test", the azure tests finish earlier than on my machine :))
alexge50 has joined #pypy
<mattip> antocuni: we should have triggers for that: code changes in pypy/pypy would run own tests,
<mattip> code changes in lib_pyyp, lib-python would download a nightly and run lib-python tests + extra_tests
<antocuni> true, but I'd be happy to just run rpython and own tests to start with
<mattip> we already have a mechanism to only run rpython tests on rpython code changes
<mattip> sorry, inverse: to not run rpython tests unless there are rpython changes
<antocuni> yes I know, not sure how easy it is to integrate into azure. The hardest part is probably to trigger a build when there is a push to heptapod and to tell azure to clone the repo from there
<mattip> we could mirror heptapod/pypy/pypy at github.com/pypy/pypy and add the CI checks there
tsaka__ has joined #pypy
<mattip> and set that repo with no issues or prs
<antocuni> yes, that's a solution. Ideally I'd like it to be fully integrated as it is on github: e.g., if I open a PR I see the build status directly inside the PR page. Not sure how easy it is or if it is possible at all
andi- has quit [Ping timeout: 272 seconds]
andi- has joined #pypy
<cfbolz> mattip: right, I see the difference
<cfbolz> mattip: pypy3 has a cffi-based new implementation of _decimal in lib_pypy, pypy2 uses the pure python version
<cfbolz> apparently the latter is faster
lesshaste has quit [Remote host closed the connection]
<cfbolz> (maybe the former is more correct and we need it anyway)
<mattip> cpython's c implementation is even faster :(
dddddd has joined #pypy
<cfbolz> it's hard to beat C with python ;-)
<mattip> I wonder if the cffi implementation is a faithful rewrite of the cpython3 C module, or if it based itself off the python2 pure-python version
<cfbolz> the c implementation uses an existing library
<cfbolz> as does cffi
<cfbolz> telco is a great cffi benchmark now, on pypy3 ;-)
<cfbolz> seems traces that call malloc are really terrible (surprise?)
<cfbolz> arigato: eg any clue why _ll_2_gc_add_memory_pressure is a call_may_force?
<mattip> one difference is the _CatchConversions class is a context manager used to wrap calls to the C library
<mattip> The C implementation uses a "ret = callc(); if (ret == ERROR) ..." pattern instead
<cfbolz> if it's not faster I wonder what we really win with the cffi implementation
<mattip> heh
<mattip> it's not a fair comparison if the transpiled code is different
<mattip> for some definition of fair and different
<cfbolz> mattip: sure, just saying we can get an immediate 10x speedup by throwing away the cffi code
<mattip> and using cpyext?
<cfbolz> no, just the pure python version
<cfbolz> the stdlib has a conditional import of _decimal, when it doesn't exist it has a fully functional fallback
<mattip> ah
<cfbolz> that is what pypy2 uses
<mattip> I think it is still slower than cpython3
<mattip> can't check right now
<ronan> cfbolz: the cffi version is faster in some cases
<cfbolz> ronan: do we have a benchmark for that?
<ronan> cfbolz: not sure, but at high enough precisions, using the lib beats the pure python impl, IIRC
<cfbolz> right
<cfbolz> yes, the python implementation is in many ways really ridiculous
<cfbolz> anyway, not sure what to do. another pov is that it's a good excuse to make cffi faster
<ronan> cfbolz: see https://bitbucket.org/pypy/pypy/issues/3024 for some benchmarks
<ronan> yes, that's what I was thinking. The issue is mostly with cffi overhead
<cfbolz> or, from the microbenchmarks there, make mul and div faster
senyai_ has quit [Ping timeout: 240 seconds]
senyai has joined #pypy
<kenaan> cfbolz default b6af70ef2dfb /pypy/objspace/std/: argh, fix bug in locale-specific string formatting: the thousands separator was always '.' :-(
<kenaan> cfbolz py3.6 0115587c02f4 /pypy/objspace/std/: merge default
<kenaan> cfbolz py3.7 c5c4cd76ef44 /pypy/objspace/std/: merge py3.6
<kenaan> cfbolz py3.7 66293dfd6fd3 /pypy/: make get/set_coroutine_wrapper emit a DeprecationWarning
<kenaan> cfbolz py3.7 30f0db9aea2b /pypy/interpreter/astcompiler/: only async *generator* expressions should work, not other comprehensions!
<kenaan> cfbolz default d22a7659ed80 /pypy/module/mmap/: issue #3065 strikes again! fix segfault in mmap
<kenaan> cfbolz py3.6 f0843db5a3a6 /pypy/module/mmap/: merge default
<kenaan> cfbolz py3.7 d024eab5de59 /pypy/module/mmap/: merge py3.6
<kenaan> cfbolz default 39bcfae01bee /pypy/: merge heads
jvesely has joined #pypy
Rhy0lite has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
Smigwell has joined #pypy
andi- has quit [Ping timeout: 272 seconds]
<kenaan> cfbolz py3.7 cac6a157cae7 /pypy/interpreter/: generator_stop is not the default
<kenaan> cfbolz py3.7 784f171f4094 /pypy/interpreter/generator.py: kill dead attributes
andi- has joined #pypy
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
speeder39_ has joined #pypy
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
<mattip> I'm cleaing up test_posix2.py: trying to minimize the difference between py3.6 and default and make tests work on win32
jacob22 has quit [Ping timeout: 240 seconds]
<mattip> is there a reason not to move the test_popen* and test_have_functions* tests to extra_tests?
<mattip> they test the lib-python/os.py module, not the interp_posix one
andi- has quit [Ping timeout: 265 seconds]
lritter has joined #pypy
andi- has joined #pypy
tsaka__ has quit [Ping timeout: 246 seconds]
marky1991 has quit [Ping timeout: 265 seconds]
<ronan> mattip: +1 to move them
dddddd has quit [Remote host closed the connection]
jacob22 has joined #pypy
marky1991 has joined #pypy
tsaka__ has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
tsaka__ has quit [Quit: Konversation terminated!]
marky1991 has quit [Ping timeout: 268 seconds]
marky1991 has joined #pypy
xcm has quit [Read error: Connection reset by peer]
xcm has joined #pypy
oberstet has quit [Remote host closed the connection]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6759 [ronan: force build, StringIO-perf]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7980 [ronan: force build, StringIO-perf]
speeder39_ has quit [Quit: Connection closed for inactivity]
jacob22 has quit [Ping timeout: 265 seconds]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7980 [ronan: force build, StringIO-perf]
jcea has joined #pypy
marky1991 has quit [Read error: Connection reset by peer]
marky1991 has joined #pypy
<ronan> nice, b53569f5531d seems to improve spitfire_cstringio2 by a lot
<ronan> and there's probably another 4-5x to be gained by implementing tricks similar to CPython's
<cfbolz> cool!
<kenaan> cfbolz py3.7 5c1dc1c61dcc /pypy/: implement coroutine origin tracking
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6759 [ronan: force build, StringIO-perf]
hodge has left #pypy [#pypy]
Hodgestar has joined #pypy
Rhy0lite has quit [Quit: Leaving]
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
dddddd has joined #pypy
panni_ has quit [Ping timeout: 248 seconds]
adamholmberg has joined #pypy
Smigwell has quit [Ping timeout: 260 seconds]
kenaan has quit [Read error: Connection reset by peer]
jvesely has quit [Quit: jvesely]
kenaan has joined #pypy
<kenaan> cfbolz py3.7 cd4e6f012629 /lib-python/3/test/test_types.py: skip an implementation detail
<kenaan> cfbolz py3.7 7a0cdcf24b94 /pypy/: gah! turning StopIteration to RuntimeError in generators broke the applevel implementation of iter with sentinel!
<arigato> cfbolz: pdb.set_trace() in this latest checkin
<cfbolz> oops
<cfbolz> thanks
<cfbolz> this 3.7 stuff never ends :-(
<arigato> yes, not too surprising
<arigato> remember that the 3.3 -> 3.5 transition was a ton of work for 4 people
<cfbolz> yes
<cfbolz> arigato: I remember that supporting 2.4 was a total pain too :P
marky1991 has quit [Read error: Connection reset by peer]
<kenaan> cfbolz py3.7 89255ed57e9f /pypy/module/posix/interp_posix.py: make putenv complain about bad names (test already existed)
jcea has quit [Quit: jcea]
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 265 seconds]
Ai9zO5AP has quit [Quit: WeeChat 2.5]