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
<fijal>
ronan: maybe it makes sense to chat with them?
<fijal>
cause it seems like they are looking for solutions to stuff that we at least thought about
<cfbolz>
yes, the whole document screams "talk to us" ;-)
<ammar2>
for what its worth cpyext was one of the sources of information there
<ammar2>
it's just notes from a discussion from the core dev sprint
<ammar2>
Neil/nas the primary author of those notes would probably love to talk
<fijal>
I
<fijal>
'm pretty sure we would be keen to talk too
bluescreen has quit [Quit: This computer has gone to sleep]
nascheme has joined #pypy
jcea has joined #pypy
<ammar2>
fijal: ronan: nascheme is the primary author of those garbage collection notes ^^
<cfbolz>
nascheme: Hey!
<cfbolz>
nascheme: we were wondering whether it would make sense to have some joint pypy/cpython dev discussions about the cpython GC plans? maybe a zoom call or so?
<cfbolz>
seems nascheme can't talk in here
nascheme has left #pypy [#pypy]
nascheme has joined #pypy
nascheme has left #pypy ["Leaving"]
nascheme has joined #pypy
<nascheme>
hello hello?
bluescreen has joined #pypy
<nascheme>
yeah, I can chat
<nascheme>
cfbolz, having a chat about CPython GC would make sense, I think. I would like it if what we do will lead to better interoperability between pypy and cpython and make it easier for pypy to efficiently provide a compatible API
<cfbolz>
cool :-)
<nascheme>
I'm also eager to learn what Pypy devs have learned. They can likely keep us from mkaing some mistakes.
<cfbolz>
nascheme: I think we can definitely give some input into the currently discussed plans, we went through some parts of the design space ourselves
<nascheme>
One of the big challenges is not technical, it will be convincing other CPython core devs it is worth doing. To do an incremental + generational GC, will require pretty major changes to CPython C source code. There is a lot of pushback, even for some of the API cleanups that Victor has been doing.
<cfbolz>
yeah :-(
<cfbolz>
it's a pretty tough sell to change everything, admittedly
<nascheme>
I wrote the pitch is not very compelling if it is "well, it's not any faster but it sure is a lot more complicated"
<cfbolz>
my gut feeling is that it would have a chance to be faster. but the performance profile will definitely be different too
<nascheme>
You can't blame people for not wanting that. Based on my discussion with other devs, we think the best sell is that it will allow better concurrency (replace GIL with smaller locks). With reference counting, there is no obvious way to to it. Larry Hastings tried and didn't get nearly close in terms of performance.
<cfbolz>
should we set up a zoom? fijal, arigato, would you be up for that?
<nascheme>
Well, we decided that pitching it as a performance improvement is not the correct way. We don't know it's going to be faster even though we might hope so.
<cfbolz>
fair enough, but a concurrency story is even farther off, in terms of payoff, no?
<nascheme>
I'm not sure. Larry had his GILectomy version working, just was a lot slower. Making a concurrent GC could take a lot more work, I suppose.
<cfbolz>
judging from the war stories of the JVM devs, definitely
<cfbolz>
(ours is "only" incremental)
<LarstiQ>
and that too took quite a bit of work
<nascheme>
To me, better concurrency doesn't have to be an immediate deliverable. It is good enough if we can point at a plan to do it, even if implementation will take months or years
<nascheme>
Is it the case that Pypy essentially has a similar GIL like CPython does?
<cfbolz>
yep
<nascheme>
That makes me wonder if pitching a tracing GC as a path to removing the GIL is unrealisitic. Pypy has a tracing GC but it still has something like a GIL.
<nascheme>
I'm not a Clojure programmer but I have heard their STM is less used than their "Refs" (atomic bindings).
<cfbolz>
worked pretty different than that, if I understand things correctly. the hope was that we would get similar guarantees than what the GIL gives, but still allowing parallelism. anyway, it was a research project, and in the end, didn't get merged (I also wasn't really involved, arigato is the person to talk to)
<cfbolz>
(pretty sizeable project at that, I'd guess 3-5 person-years)
<cfbolz>
in any way, now we strayed from the original topic of GCs :-)
<nascheme>
I think it's relevant, if we have not desire or path to removing the GIL, I think there is no strong argument for moving away from referencing counting GC in CPython
<cfbolz>
ok
<cfbolz>
in the form you're contemplating it, we have never attempted to remove the GIL
<cfbolz>
we always considered it to be too hard ;-)
<nascheme>
For actually making CPython concurrent, I would think the Java approach would be the most practical path. I have heard that Instagram's VM works that way.
<cfbolz>
they have a cpython fork?
<nascheme>
they have a from scratch new VM, written in C++
<cfbolz>
interesting
<cfbolz>
still interpreted though? and I suppose they aren't going to share it?
<nascheme>
supposed to highly CPython compatible, AFAIK. No source or too many details are shared.
<cfbolz>
right :-(
<nascheme>
Not sure if they have a JIT but I'm pretty sure they use a tracing GC, not RC.
<cfbolz>
ok
<cfbolz>
would be interesting to know more
<cfbolz>
nascheme: anyway, I'd say pypy is neither a pro nor a contra argument with regards to the question of whether a tracing GC is necessary for removing the GIL, given that we never tried it
jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
<cfbolz>
nascheme: anyway, I am heading off now, let's keep in touch!
<nascheme>
what time might be a good time for Zoom/video chat? I guess most of the Pypy people are in Europe timezones? I'm UTC-8.
<nascheme>
well utc-7 for a couple more days.
<cfbolz>
nascheme: anything before 1pm your time is probably ok (for me personally noonish your time is probably best, let's wait and see whether arigato or fijal are saying something, I suspect they are offline atm but usually read the logs)
<nascheme>
ok
<cfbolz>
nascheme: any days that work particularly well for you, say, next week?
[Arfrever] has quit [Remote host closed the connection]
[Arfrever] has joined #pypy
<nascheme>
cfbolz, in the morning 8-12am PST, mon-thu would work best for me
<cfbolz>
for me too, so let's see what the other's say. I'll mail you :-)
oberstet has quit [Remote host closed the connection]
oberstet has joined #pypy
otisolsen70 has quit [Quit: Leaving]
Olorin_ has quit [Ping timeout: 260 seconds]
Olorin_ has joined #pypy
Alex_Gaynor has quit [Ping timeout: 260 seconds]
Alex_Gaynor has joined #pypy
oberstet has quit [Quit: Leaving]
bluescreen has quit [Quit: This computer has gone to sleep]
jcea has quit [Ping timeout: 268 seconds]
lritter has quit [Quit: Leaving]
<antocuni>
cfbolz, nascheme: I'd also like to participate to the chat. 8-10am PST (16-18 CEST) work better for me