jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
<nimaje>
yay for tests testing implemention details which are only optional speed-ups test.test_asyncio.test_futures.CFutureInheritanceTests.test_inherit_without_calling_super_init needs asyncio.futures._CFuture, but that is only there if _asyncio succedes to import (and I guess it is just Future written in C, so that stuff is faster on cpython)
stkrdknmibalz has quit [Ping timeout: 268 seconds]
<cfbolz>
nimaje: it's great, isn't it?
<mattip>
about issue 3536, I searched "inversion garbage collector" and came across an article from 2010, with this line
<mattip>
This principle is called inversion of control or more anecdotally the Hollywood principle
<mattip>
(“Don’t call us, we’ll call you”). Dealing with inversion of control affects not just the programming model, but also the memory model
<mattip>
The article is "Collecting Hollywood’s Garbage Avoiding Space-Leaks in Composite Events"
<cfbolz>
mattip: which issue is that?
<mattip>
about how if you set a warning filter context manager to wrap a "yield" value in a generator
<mattip>
then later on have another warning filter,
<mattip>
sometimes the order of the __exit__ call for the filters can invert
<mattip>
I don't remember hearing this called the Hollywood principle
<cfbolz>
ugh, that's complex indeed
<cfbolz>
mattip: that's a general property of with+generators, right?
<mattip>
I think so, I don't think warning is special here
<cfbolz>
might make sense to boil it down to a non-warning smaller example
<cfbolz>
mattip: anyway, note that you can usually get the same "buggy" behavior on cpython too, if you accidentally add a circular reference to things
<mattip>
makes sense, anything that breaks the refcount immediate release
<cfbolz>
yes
<cfbolz>
mattip: eg if you add a reference to self for the WarnOnDelete instance
<nimaje>
yay, most of the _CFuture testing tests in lib-python/3/test/test_asyncio/test_futures.py are correctly skipped when _CFuture doesn't exists (only CFutureInheritanceTests not?), maybe cpython should add a run of the testsuite with all those optional C modules disabled
fotis has joined #pypy
fotis has quit [Ping timeout: 245 seconds]
mattip has quit [Ping timeout: 268 seconds]
mattip has joined #pypy
<cfbolz>
nimaje: awesome
fotis has joined #pypy
fotis has quit [Ping timeout: 268 seconds]
jacob22 has quit [Ping timeout: 245 seconds]
jacob22 has joined #pypy
jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
mattil has joined #pypy
fotis has joined #pypy
jacob22 has quit [Ping timeout: 245 seconds]
fotis has quit [Ping timeout: 258 seconds]
mathieu1 has quit [Ping timeout: 245 seconds]
yuiza has left #pypy [#pypy]
gef has quit [Ping timeout: 240 seconds]
jacob22 has joined #pypy
gef_ has quit [Ping timeout: 268 seconds]
gef has joined #pypy
gef_ has joined #pypy
mattil has quit [Read error: Connection reset by peer]