cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | the secret reason for us trying to get PyPy users: to test the JIT well enough that we're somewhat confident about it
idnar_ has joined #pypy
Cheery_ has joined #pypy
gsnedder1 has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tumbleweed_ has joined #pypy
hodge has joined #pypy
dpn`- has joined #pypy
whitewlf has joined #pypy
trfl_ has joined #pypy
__pv has quit [*.net *.split]
danchr has quit [*.net *.split]
dpn` has quit [*.net *.split]
idnar has quit [*.net *.split]
ssbr has quit [*.net *.split]
whitewolf has quit [*.net *.split]
trfl has quit [*.net *.split]
dan- has quit [*.net *.split]
lastmikoi has quit [*.net *.split]
tumbleweed has quit [*.net *.split]
Hodgestar has quit [*.net *.split]
Cheery has quit [*.net *.split]
gsnedders has quit [*.net *.split]
xorAxAx has quit [*.net *.split]
rubdos has quit [*.net *.split]
inhahe has quit [*.net *.split]
ronan has quit [*.net *.split]
Taggnostr has quit [*.net *.split]
infernix has quit [*.net *.split]
_kcr has quit [*.net *.split]
rguillebert has quit [*.net *.split]
fryguybob has quit [*.net *.split]
avakdh has quit [*.net *.split]
ulope has quit [*.net *.split]
kanaka has quit [*.net *.split]
mvantellingen has quit [*.net *.split]
TheAdversary has quit [*.net *.split]
njs has quit [*.net *.split]
idnar_ is now known as idnar
Thinh has joined #pypy
blachance has joined #pypy
TheAdversary has joined #pypy
dustinm has joined #pypy
Taggnostr has joined #pypy
utek has joined #pypy
bogner has joined #pypy
sthalik has joined #pypy
njs has joined #pypy
mdash has joined #pypy
ssbr has joined #pypy
dustinm has quit [Max SendQ exceeded]
rubdos has joined #pypy
dustinm has joined #pypy
dan- has joined #pypy
tumbleweed has joined #pypy
danchr has joined #pypy
__pv has joined #pypy
gsnedder1 is now known as gsnedders
dan- has quit [Changing host]
dan- has joined #pypy
lastmikoi has joined #pypy
dash has quit [Ping timeout: 245 seconds]
yuvipanda has quit [Ping timeout: 255 seconds]
abvi[m] has quit [Ping timeout: 260 seconds]
bendlas has quit [Ping timeout: 260 seconds]
pulkitg has quit [Ping timeout: 248 seconds]
agates has quit [Ping timeout: 276 seconds]
tos9 has quit [Ping timeout: 260 seconds]
tbodt has joined #pypy
tos9 has joined #pypy
pulkitg has joined #pypy
idnar has quit [Changing host]
idnar has joined #pypy
idnar has joined #pypy
whitewlf is now known as whitewolf
drolando_ has quit [Quit: Textual IRC Client: www.textualapp.com]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
agates has joined #pypy
abvi[m] has joined #pypy
yuvipanda has joined #pypy
dash has joined #pypy
bendlas has joined #pypy
tbodt has joined #pypy
inhahe has joined #pypy
avakdh has joined #pypy
ulope has joined #pypy
kanaka has joined #pypy
mvantellingen has joined #pypy
fryguybob has joined #pypy
infernix has joined #pypy
rguillebert has joined #pypy
xorAxAx has joined #pypy
_kcr has joined #pypy
ronan has joined #pypy
abvi[m] has quit [Ping timeout: 245 seconds]
dash has quit [Ping timeout: 252 seconds]
agates has quit [Ping timeout: 256 seconds]
bendlas has quit [Ping timeout: 248 seconds]
pulkitg has quit [Ping timeout: 255 seconds]
yuvipanda has quit [Ping timeout: 256 seconds]
commandoline has quit [Ping timeout: 260 seconds]
commandoline has joined #pypy
sysfault has joined #pypy
pulkitg has joined #pypy
<sysfault> is there anything someone who's looking to work on their python skills can do to contribute? something small i can do until my knowledge is strengthened
dddddd has quit [Remote host closed the connection]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
tbodt has quit [Client Quit]
tbodt has joined #pypy
marr has quit [Ping timeout: 240 seconds]
yuvipanda has joined #pypy
dash has joined #pypy
abvi[m] has joined #pypy
bendlas has joined #pypy
agates has joined #pypy
sbauman has quit [Quit: Connection closed for inactivity]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
forgottenone has joined #pypy
tbodt has joined #pypy
tbodt has quit [Client Quit]
kipras is now known as kipras`away
AndrewBC has quit [Read error: Connection reset by peer]
AndrewBC has joined #pypy
AndrewBC has quit [Read error: Connection reset by peer]
forgottenone has quit [Quit: Konversation terminated!]
jamesaxl has joined #pypy
inhahe_ has joined #pypy
inhahe__ has quit [Ping timeout: 248 seconds]
<kenaan> cfbolz default fe40f4eff666 /pypy/module/pypyjit/: test and fix: in the on_abort hook, the descrs of guards are still None as it runs before optimization
<cfbolz> mattip (logs): David's ideas fixed the readline failures :-)
<cfbolz> sysfault: something to do is always "run your favourite python project on pypy and see whether it crashes and how its performance changes"
mattip has joined #pypy
<bbot2_> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5372 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
<bbot2_> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6651 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
<bbot2_> Started: http://buildbot.pypy.org/builders/pypy-c-lib-python-linux-x86-64/builds/54 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
<bbot2_> Started: http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/3952 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
tayfun26 has joined #pypy
<mattip> maybe found something, it seems somehow the w_obj attached to a PyObject is getting deleted then recreated
<mattip> if I call id(obj) from cython repeatedly in the loop, the failure is connected to a change in the id
<mattip> seems to happen after a call to PyObject_SetItem
<bbot2_> Success: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6651 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
jamesaxl has quit [Ping timeout: 276 seconds]
<bbot2_> Failure: http://buildbot.pypy.org/builders/pypy-c-lib-python-linux-x86-64/builds/54 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
<mattip> hmm, actually in the next line, which seems to have no connection to obj
asmeurer__ has quit [Quit: asmeurer__]
kenaan has quit [Read error: No route to host]
<bbot2_> Failure: http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/3952 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
<bbot2_> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5372 [Carl Friedrich Bolz-Tereick: force build, pyparser-improvements]
antocuni has joined #pypy
marr has joined #pypy
kenaan has joined #pypy
<kenaan> cfbolz py3.5 47bcad155e44 /: merge default
<kenaan> cfbolz pyparser-improvements dd9a56219993 /lib-python/2.7/test/test_genexps.py: adapt to new error message
illume has joined #pypy
wallet42 has joined #pypy
oberstet has joined #pypy
<antocuni> do we have any special rpython decorator to assert that a certain function CANNOT allocate anything?
<antocuni> uhm, maybe @rgc.no_collect
energizer has quit [Ping timeout: 240 seconds]
<kenaan> antocuni gc-hooks ee3944e10c6c /: start a branch in which to implement app-level hooks to signal major (and possibly minor?) collections
<kenaan> antocuni gc-hooks 7b2f669acfa4 /rpython/memory/gc/: add a hook interface to GC, which is implemented by a prebuilt object. Implement the hook for incminimark gc-minor
<kenaan> antocuni gc-hooks 5fbf8b32c70c /rpython/memory/gc/: add a hook for gc-collect-done
<kenaan> antocuni gc-hooks f16482adff0b /rpython/memory/gc/: add a hook for gc-collect-step
<kenaan> antocuni gc-hooks 9bb5a3a3e292 /rpython/: WIP: hack around until we can pass a prebuilt instance of gchooks to the GC transformer, which will then forwar...
<kenaan> antocuni gc-hooks e6a1a204ce7a /rpython/memory/gc/: make it possible to disable the gc hooks
<kenaan> antocuni gc-hooks 5cb980c10b8c /rpython/memory/: add a translated test for gc hooks
antocuni has quit [Ping timeout: 260 seconds]
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
illume has joined #pypy
marky1991 has joined #pypy
<mattip> putting a watch on __pyx_v_buf->ob_pypy_link, it gdb stops in the GC with __pyx_v_buf->ob_pypy_link ==0
<mattip> so it is collecting the w_obj even though the __pyx_v_buf->ob_refcount is REFCNT_FROM_PYPY + 5
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
iko has quit [Remote host closed the connection]
marky1991 has quit [Read error: Connection reset by peer]
marky1991 has joined #pypy
TheAdversary has quit [Disconnected by services]
Hasimir has quit [Ping timeout: 248 seconds]
Hasimir has joined #pypy
Cheery_ is now known as Cheery
TheAdversary has joined #pypy
marky1991 has quit [Read error: Connection reset by peer]
antocuni has joined #pypy
marky1991 has joined #pypy
Rhy0lite has joined #pypy
<mattip> so it seems this object is being erroneously collected
<mattip> It is allocated via a c-api c function (np.empty_like(x) ) where x is an app-level class (MaskedArray)
<mattip> the construction does not go through MaskedArray.__new__
<mattip> but through a numpy mechanism
<mattip> but is it ever correct for a w_obj with a pyobj and refcount > 0 (well, > REFCNT_FROM_PYPY) to be collected?
<antocuni> mattip: I think it's not correct
<antocuni> no idea why it is collected, but I suppose it should not
planrich has quit [Ping timeout: 256 seconds]
marky1991 has quit [Ping timeout: 240 seconds]
iko has joined #pypy
marky1991 has joined #pypy
TheAdversary has quit [Disconnected by services]
Hasimir has quit [Ping timeout: 248 seconds]
TheAdversary has joined #pypy
Hasimir has joined #pypy
dddddd has joined #pypy
wallet42 has quit [Quit: Connection closed for inactivity]
<kenaan> antocuni gc-hooks 3d2b6d04026f /rpython/memory/gc/: call the hooks through helpers which are marked as @rgc.no_collect, to ensure that we cannot allocate anything ...
<kenaan> antocuni gc-hooks 696e7ef11214 /rpython/: make it possible to define gchooks in the target, and use the new interface to print some stats inside targetgc...
forgottenone has joined #pypy
<bbot2_> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/68 [antocuni: force build, gc-hooks]
<bbot2_> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/51 [antocuni: force build, gc-hooks]
antocuni has quit [Ping timeout: 240 seconds]
jredondo__ has joined #pypy
jredondo__ has quit [Ping timeout: 256 seconds]
danieljabailey has quit [Ping timeout: 268 seconds]
sysfault has left #pypy ["Leaving"]
<bbot2_> Failure: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/68 [antocuni: force build, gc-hooks]
<bbot2_> Failure: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/51 [antocuni: force build, gc-hooks]
mattip has left #pypy ["bye"]
danieljabailey has joined #pypy
jredondo__ has joined #pypy
jredondo__ has quit [Client Quit]
jredondo__ has joined #pypy
tayfun26 has quit [Remote host closed the connection]
jredondo__ has quit [Ping timeout: 248 seconds]
antocuni has joined #pypy
energizer has joined #pypy
<arigato> mattip (logs): maybe it's Cython playing dark tricks and the object's ob_refcnt used to be really smaller at the point where the GC ran, then the GC decided to kill it, but then Cython increased the ob_refcnt again
<arigato> although, that explanation doesn't work if you have a gdb watchpoint that triggers *inside* the GC directly
<arigato> (assuming, maybe wrongly, that Cython does no crazy things like changing ob_refcnt from another thread that doesn't hold the GIL)
inhahe_ has quit [Ping timeout: 256 seconds]
<arigato> mjacob: ok, so the problem is really not the weakref?
<antocuni> arigato: as you might have seen, I'm working on a branch for implementing GC hooks at app-level
<antocuni> (so far I have done only the rpython-level part)
<antocuni> my idea is to write the rpython hooks so that they record some stats and set a flag when triggered
jamesaxl has joined #pypy
asmeurer__ has joined #pypy
<antocuni> then have a PeriodicAsyncAction which checks the flag and trigger the real app-level hook (if it's set)
<antocuni> does it sound reasonable?
<arigato> yes
<arigato> ah, not PeriodicAsyncAction
<antocuni> how often do you expect a minor collection to be triggered between one PeriodicAsyncAction and the next?
<arigato> it should instead be done e.g. like the cpyext's callback
<arigato> from the rpython lib you invoke some callback, but that callback cannot do much of anything; instead it just calls my_action.fire()
<arigato> then my_action is triggered very soon
<antocuni> where is the code for cpyext callbacks? And what is "my_action"?
<arigato> some non-periodic async action
tbodt has joined #pypy
<antocuni> ah, so a subclass of executioncontext.AsyncAction
<arigato> yes, it's PyObjDeallocAction in cpyext
<arigato> in state.py
<antocuni> yes, found it
asmeurer__ has quit [Ping timeout: 240 seconds]
<arigato> and it's self.dealloc_trigger that gets passed to the rlib.rawrefcount for callback
<antocuni> one thing which I don't understand about actions is whether they are supposed to be singleton, or I need to instantiate a new one each time
<arigato> that's singletons
<antocuni> how do you pass params then?
<arigato> well "singletons" but created with the space as argument
<arigato> so translation-time singletons
<antocuni> yes, but I see that perform takes only executioncontext and frame. Like, if I want do to "fire on_gc_collect(memory_used=1024)"
<arigato> you can probably give them attributes, and then you'd call the .fire() method only if a flag is set, for example, and check more parameters in perform()
<antocuni> ah ok
<antocuni> not very clean, but I suppose it might work
<arigato> you can do whatever you want in perform(), and a few cheap tests earlier to avoid calling fire()
<antocuni> I suppose the worst that can happen is that another gc hook overrides the parameters in case it is called before the action had a chance to be fired
<arigato> right
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<antocuni> and this brings back again my previous question: how often should I expect minor collections to be done between two performs()?
<arigato> you can't really allocate stuff before calling fire(), but you can somehow combine the values with the previously recorded values, if you want to go fancy
<arigato> unknown? usually zero I guess
<antocuni> yes, I was thinking of something like that; at least, having a counter which tells me how many events happened
<antocuni> ok good; then maybe combining the values it's not even needed; if by chance it happens, too bad and we don't care
<arigato> following a fire(), a perform() is usually called quickly. I would be a bit more careful about calling fire() for every minor collections, as this can slow things down
<antocuni> yes sure
<antocuni> my plan is to add support for it, but only calling fire() if the hook is actually enabled
<antocuni> and only if it doesn't slow down benchmarks
<arigato> ok
<arigato> I guess some people would like the hook even if it slows down a bit
<antocuni> my real need is recording gc-collect and gc-collect-step; but while I was at it, adding support for gc-minor looked easy enough :)
<arigato> (particularly if it can be enabled for 1 minute every hour, or something)
<antocuni> yes; in my real-world scenario, we have some code which periodically shows a slow down, and we don't know why. If we can record gc activity, we can at least figure out if it's gc-related or not
<antocuni> also, if someone wants to be advanced, I suppose you could use such a hook to record the traceback and then see which places allocates the most
<arigato> ah, advanced indeed
<antocuni> actually, I didn't think about it before, but now it seems like a very good idea to me :)
<arigato> starts to feel too much like Mono in Unity, where they used an old Boehm-based Mono until recently and allocating anything was to be avoided :-)
<antocuni> if you manage to write python code which does not allocate, I buy you as many beers as you want
<arigato> while True: i += 1
dddddd has quit [Remote host closed the connection]
<kenaan> antocuni gc-hooks 2492c826dee0 /rpython/memory/test/test_transformed_gc.py: reset the counters at the beginning of this test, else we count also the colletions occurred in the previous tests
<kenaan> antocuni gc-hooks 9edf064fc152 /: hg merge default
<antocuni> arigato: only if the JIT already compiled things, though :)
<antocuni> anyway, dinner time now
<antocuni> thanks
<arigato> np!
tbodt has joined #pypy
antocuni has quit [Ping timeout: 256 seconds]
asmeurer__ has joined #pypy
drolando has joined #pypy
drolando_ has joined #pypy
nuttingd_ has joined #pypy
drolando has quit [Ping timeout: 260 seconds]
nuttingd_ has quit []
drolando_ has quit [Remote host closed the connection]
drolando has joined #pypy
jcea has joined #pypy
kipras`away is now known as kipras
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
inhahe has quit []
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
antocuni has joined #pypy
Lightsword has joined #pypy
nunatak has joined #pypy
marky1991 has quit [Ping timeout: 256 seconds]
forgottenone has quit [Ping timeout: 240 seconds]
jredondo__ has joined #pypy
jredondo__ has quit [Ping timeout: 256 seconds]
antocuni has quit [Ping timeout: 256 seconds]
jcea has quit [Quit: jcea]
jamesaxl has quit [Read error: Connection reset by peer]
jamesaxl has joined #pypy
raynold has quit [Quit: Connection closed for inactivity]
nunatak has quit [Quit: Leaving]
Rhy0lite has quit [Quit: Leaving]
inhahe has joined #pypy
marr has quit [Ping timeout: 276 seconds]
cjwelborn has quit [Remote host closed the connection]
raynold has joined #pypy
jcea has joined #pypy
antocuni has joined #pypy
jcea has quit [Remote host closed the connection]
jcea has joined #pypy
cjwelborn has joined #pypy
Graypup__ is now known as Graypup_
inhahe__ has joined #pypy
<kenaan> antocuni gc-hooks ecb86e9ba2d6 /rpython/: simplify MyGcHooks: instead of using a global GC_HOOK_STATS, we store the stats as an attribute and we ensure t...