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
adeln has quit [Remote host closed the connection]
adeln has joined #pypy
adeln has quit [Remote host closed the connection]
adeln has joined #pypy
adeln has quit []
thrnciar has joined #pypy
oberstet has joined #pypy
Dejan has joined #pypy
Dejan has quit [Changing host]
Dejan has joined #pypy
BPL has joined #pypy
<arigo>
njs: it's not entirely clear that "daemon threads" are guaranteed to work like they do on CPython; for example, an implementation may use green threads and still GC-collect their stacks at the end of the process
dddddd has joined #pypy
<fijal>
arigo, njs: I think module globals are the place?
<fijal>
it's not fool proof (you can remove module from sys.modules), but module globals are generally immortal, if run "normally"
<mjacob>
couldn't rawrefcount be used to keep the object alive?
oberstet has quit [Remote host closed the connection]
<njs>
fijal: they are in pypy currently, but not in cpython :-) cpython tries to gc module-level globals during shutdown
<fijal>
ugh, you need it to not be collected during shutdown?
<fijal>
that's a bit bad, can't you remove __del__ somehow?
<njs>
so the actual use case is wanting trio to survive fork()
<njs>
As You Know, fork() and concurrency don't play nicely together. For example, if a program with threads calls fork(), then all the other threads basically "disappear" in the child, but their stacks etc. are still allocated, so they basically leak
<njs>
which is nasty, but the alternative is like.... "explode messily" or something, so at least it's better than that
<njs>
so I want to do similar semantics for trio tasks: in the child, all the other tasks suddenly stop where they are, and never execute again
<njs>
but the tasks are represented as a complex graph of python objects, including stuff like coroutines whose __del__ method will run arbitrary user code...
<njs>
so there aren't a lot of great options, and in particular yeah, I can't go modifying built-in coroutine objects to remove their __del__ methods or anything
<mattip>
_exit() will terminate immediately without calling atexit(). I wonder if there is a windows equivalent
<antocuni>
this means that they are basically killing pypy and all the other alternative implementations which can't follow CPython's development speed
* antocuni
finished to read the whole thread
<antocuni>
it seems that they ARE thinking about pypy, which is good. Probably the real issue here is that CPython's pace is too fast for us :(