cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | "the modern world where network packets and compiler optimizations are effectively hostile"
tbodt has joined #pypy
kolko has quit [Ping timeout: 248 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
marr has quit [Ping timeout: 240 seconds]
asmeurer__ has joined #pypy
_whitelogger has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
kipras is now known as kipras`away
kipras`away is now known as kipras
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
asmeurer__ has quit [Quit: asmeurer__]
tbodt has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
asmeurer__ has joined #pypy
yuyichao has quit [Remote host closed the connection]
yuyichao has joined #pypy
ArneBab_ has joined #pypy
ArneBab has quit [Ping timeout: 255 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
exarkun has quit [Ping timeout: 255 seconds]
exarkun has joined #pypy
tbodt has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
pilne has quit [Quit: Quitting!]
Garen has joined #pypy
_whitelogger has joined #pypy
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
_whitelogger has joined #pypy
_whitelogger has joined #pypy
_whitelogger has joined #pypy
oberstet has joined #pypy
glyph has quit [Quit: End of line.]
glyph has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
asmeurer__ has quit [Read error: Connection reset by peer]
rokujyouhitoma has joined #pypy
the_drow has quit [Ping timeout: 240 seconds]
rokujyouhitoma has quit [Ping timeout: 246 seconds]
asmeurer__ has joined #pypy
Yardanico has joined #pypy
asmeurer__ has quit [Quit: asmeurer__]
Yardanico has quit [Ping timeout: 248 seconds]
_main_ has joined #pypy
_main_ has quit [Read error: Connection reset by peer]
__main__ has quit [Read error: No route to host]
_main_ has joined #pypy
_main_ has quit [Read error: Connection reset by peer]
__main__ has joined #pypy
<kenaan> cfbolz default 0d71d69924c8 /rpython/jit/backend/x86/assembler.py: remove remnants of getfield support (now done via gc_load)
the_drow has joined #pypy
<the_drow> Should I open an issue about it?
demonimin has quit [Remote host closed the connection]
rokujyouhitoma has joined #pypy
demonimin has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
<LarstiQ> the_drow: 5.8.0-beta0 looks a little old, can you reproduce that on current pypy?
exarkun has quit [Ping timeout: 240 seconds]
<LarstiQ> the_drow: if so I'd say having enough information to reproduce it (http://doc.pypy.org/en/latest/faq.html#how-should-i-report-a-bug) would be welcome
exarkun has joined #pypy
<LarstiQ> CPyListStrategy_getstorage_copy should be easy enough to verify I guess
Yardanico has joined #pypy
Yardanico has quit [Ping timeout: 255 seconds]
Yardanico has joined #pypy
<the_drow> I can check
marr has joined #pypy
<the_drow> LarstiQ, Yes this is still an issue
<cfbolz> probably a simple-ish fix
<cfbolz> the_drow: are you sure pip install gprcio works with pypy2?
<the_drow> Yes, it works with PyPy 5.8
<the_drow> It installs a wheel though
<cfbolz> ah
<cfbolz> then my pypy is too different
rokujyouhitoma has joined #pypy
<the_drow> cfbolz, grpc can be installed from source just fine
<cfbolz> yes, trying
jamesaxl has quit [Read error: Connection reset by peer]
rokujyouhitoma has quit [Ping timeout: 276 seconds]
inhahe_ has quit [Ping timeout: 248 seconds]
inhahe_ has joined #pypy
<arigato> I added a smaller test to issue 2637
<cfbolz> thx
Yardanico_ has joined #pypy
<cfbolz> arigato: I'll try to fix
<arigato> thanks!
yuyichao has quit [Remote host closed the connection]
yuyichao has joined #pypy
Yardanico_ has quit [Quit: Leaving]
jamesaxl has joined #pypy
Yardanico has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
Yardanico has joined #pypy
yuyichao has quit [Read error: Connection reset by peer]
raynold has quit [Quit: Connection closed for inactivity]
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
yuyichao has joined #pypy
yuyichao has quit [Remote host closed the connection]
yuyichao has joined #pypy
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
yuyichao has quit [Remote host closed the connection]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
<cfbolz> arigato: puh, list support in cpyext is super inefficient, a ton of copying
<arigato> :-(
<kenaan> cfbolz default 06465478f8df /pypy/module/cpyext/: issue #2637 testing: implement CPyListStrategy.getstorage_copy
the_drow has quit [Ping timeout: 240 seconds]
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
<kenaan> cfbolz default 190bc6072d6d /pypy/module/cpyext/sequence.py: a bit of cleanup, remove some copies
the_drow has joined #pypy
<the_drow> cfbolz, so grpc will be super slow when running in PyPy?
<cfbolz> not necessarily
<cfbolz> you need to measure
nimaje1 has joined #pypy
nimaje is now known as Guest58306
Guest58306 has quit [Killed (hobana.freenode.net (Nickname regained by services))]
nimaje1 is now known as nimaje
yuyichao has joined #pypy
rokujyouhitoma has joined #pypy
yuyichao_ has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
yuyichao has quit [Ping timeout: 240 seconds]
lritter has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Remote host closed the connection]
<mattip> cfbolz: hi. about "ton of copying", it is meant to only copy when switching strategy, is there a different case I missed?
<cfbolz> mattip: it switches strategies quite a bit though
<cfbolz> but I guess it's hard to avoid, without completely re-implementing things with a C array
<mattip> uhh, why? Once a sequence is CPyListStrategy, what can convert it?
<cfbolz> mattip: eg append
<cfbolz> that contains a call to switch_to_object_strategy
<mattip> right, sorry
<cfbolz> mattip: I think it's an ok trade-off. when people complain about concrete use-cases, we can implement more
<mattip> I guess I was thinking in terms of CAPI, allthough PyList_Append calls append
<cfbolz> yes
<cfbolz> but to implement append we would have to implement overallocation and everything
<mattip> yes
rokujyouhitoma has joined #pypy
lritter_ has joined #pypy
lritter has quit [Ping timeout: 246 seconds]
rokujyouhitoma has quit [Ping timeout: 255 seconds]
<kenaan> cfbolz default 0f01249125f8 /rpython/jit/backend/x86/assembler.py: make jit-backend-counts not be empty if it's the only section asked for
marr has quit [Ping timeout: 248 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
<kenaan> arigo cffi/cffi 2763112dfca7 /c/lib_obj.c: Should call GC_UnTrack before Py_DECREF()
exarkun has quit [Ping timeout: 255 seconds]
exarkun has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
pilne has joined #pypy
exarkun has quit [Ping timeout: 248 seconds]
exarkun has joined #pypy
asmeurer has joined #pypy
Taggnostr has quit [Remote host closed the connection]
Taggnostr has joined #pypy
marr has joined #pypy
rokujyouhitoma has joined #pypy
<kenaan> cfbolz default f59f82d01a6d /rpython/jit/backend/llsupport/regalloc.py: simplify the logic
rokujyouhitoma has quit [Ping timeout: 240 seconds]
<kenaan> cfbolz regalloc-playground 32c23f8fb859 /rpython/jit/backend/: a branch to try out some register allocation ideas first step: refactor lifetime storage to not be tu...
<kenaan> cfbolz regalloc-playground 39a4798dc769 /rpython/jit/backend/x86/test/test_x86vector.py: fix test
<kenaan> cfbolz regalloc-playground beea904fa30e /rpython/jit/backend/llsupport/regalloc.py: some ideas what to improve
<kenaan> cfbolz regalloc-playground b4d4200219d6 /rpython/jit/backend/: store the last_real_usage on the Lifetimes as well
<kenaan> cfbolz regalloc-playground fc6b711bad77 /rpython/jit/backend/llsupport/regalloc.py: improve comments
<kenaan> cfbolz regalloc-playground 9ee8caf969f5 /rpython/jit/backend/: collect some statitics about the register allocator
<kenaan> cfbolz regalloc-playground cc329ecab757 /rpython/jit/backend/llsupport/test/test_regalloc.py: fix tests
<kenaan> cfbolz regalloc-playground c5b3232137fe /rpython/jit/backend/llsupport/: spill variables that are no longer "really" used (ie appear only in failargs or jumps)
<kenaan> cfbolz regalloc-playground 7a89232328d8 /: merge default
<kenaan> cfbolz regalloc-playground d88eaeb16464 /rpython/jit/backend/x86/assembler.py: merge default
<kenaan> cfbolz regalloc-playground 9b96099898a8 /rpython/jit/backend/llsupport/regalloc.py: typo
<kenaan> cfbolz regalloc-playground 7f318c6a860c /rpython/jit/backend/llsupport/test/test_regalloc_integration.py: test for longevity computation
<kenaan> cfbolz regalloc-playground 385e5a5df482 /rpython/jit/backend/llsupport/regalloc.py: merge default
asmeurer has quit [Quit: asmeurer]
<cfbolz> wut
<cfbolz> this pattern is super common
the_drow_ has joined #pypy
<mattip> if x and len(x) > 0 ?
<cfbolz> maybe
<cfbolz> but the second condition should just be removed
<cfbolz> it's implied
Yardanico has quit [Remote host closed the connection]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
<cfbolz> my first hack for register allocation improvements gives 10% speedup on some benchmarks
<cfbolz> (and is neutral on the other things I measured)
<LarstiQ> what are the improvements?
tbodt has joined #pypy
<cfbolz> LarstiQ: just a small improvement in what registers are spilled
<LarstiQ> cfbolz: more of a detail tweak than different algorithm?
<arigato> cfbolz: good
bauerj has quit [Remote host closed the connection]
<arigato> cfbolz: we don't record optimization info for "int_is_true" because we can't store "!= 0" as a single range
yuyichao_ has quit [Remote host closed the connection]
rokujyouhitoma has joined #pypy
yuyichao_ has joined #pypy
<cfbolz> arigato: yes, but we could record it as a pure op
rokujyouhitoma has quit [Ping timeout: 248 seconds]
<cfbolz> Eg when we see an int_add we also remember the equivalent int_sub op
<cfbolz> We could do the same here
jamesaxl has quit [Read error: Connection reset by peer]
<arigato> er, maybe
<cfbolz> I put it on my todo
jamesaxl has joined #pypy
<arigato> ok
<cfbolz> arigato: I red register allocation papers during my location. I learnt that we are basically already doing linear scan, at least a basic version.
<cfbolz> Vacation
<cfbolz> So what's left to do is to add a few of the tweaks (some are super complex, but simple versions we can just do)
<cfbolz> Still not fully clear whether we can expect much performance improvement
<arigato> yes, I still have no clue whether improving only register allocation will give us 0% or 20% better performance
raynold has joined #pypy
nimaje is now known as Guest1869
nimaje1 has joined #pypy
nimaje1 is now known as nimaje
Guest1869 has quit [Killed (card.freenode.net (Nickname regained by services))]
<cfbolz> arigato: indeed
<cfbolz> If it's 10% I would be happy
<cfbolz> LarstiQ: yes, basically it turns out that detail tweaks are the only difference between us and 'real' JITs
<cfbolz> Tons of them, of course
<LarstiQ> cfbolz: right
<LarstiQ> and some fiddly ones from what you said above
oberstet has quit [Quit: Leaving]
<arigato> rvmprof broke again by changing its API
<arigato> this time, in Monte
<simpson> Whoo! Yeah, I haven't touched the vmprof on our side for like a year?
<simpson> Also I think we still have the really really hacky thing where we create fake frame types or something like that.
<simpson> So maybe whatever we did is just not kosher.
<arigato> possibly, but now rvmprof generates invalid C code if we use the decorator @rvmprof.vmprof_execute_code more than once
<simpson> That sounds like a problem.
<arigato> hum, and *also* if we call it zero times but we still import rvmprof
jamesaxl has quit [Quit: WeeChat 1.8]
the_drow_ has quit [Ping timeout: 248 seconds]
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
exarkun has quit [Ping timeout: 240 seconds]
exarkun has joined #pypy
Yardanico has joined #pypy
Yardanico has quit [Ping timeout: 248 seconds]
Yardanico has joined #pypy
asmeurer__ has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
lritter_ has quit [Quit: Leaving]
asmeurer__ has quit [Quit: asmeurer__]
cwillu has quit [Ping timeout: 248 seconds]
cwillu has joined #pypy
chris|_ has quit [Quit: Quit]
chris|_ has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 255 seconds]
Yardanico has quit [Read error: Connection reset by peer]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
danieljabailey has quit [Quit: ZNC 1.6.4+deb1 - http://znc.in]
danieljabailey has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 248 seconds]
<pjenvey> exarkun: that's new
<pjenvey> I think
<exarkun> yes, in the past couple days or so
asmeurer__ has joined #pypy
<exarkun> I think just since the most recent merge of default, perhaps
<exarkun> haven't really dug into it yet, just skimmed the traceback
asmeurer__ has quit [Quit: asmeurer__]