cfbolz changed the topic of #pypy to: #pypy PyPy, the flexible snake https://pypy.org | IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end and https://libera.irclog.whitequark.org/pypy | the pypy angle is to shrug and copy the implementation of CPython as closely as possible, and staying out of design decisions
glyph has quit [Quit: End of line.]
glyph has joined #pypy
jcea has quit [Ping timeout: 240 seconds]
derpydoo has joined #pypy
shodan45 has quit [Server closed connection]
shodan45 has joined #pypy
luckydonald has quit [Server closed connection]
luckydonald has joined #pypy
lehmrob has joined #pypy
otisolsen70 has joined #pypy
derpydoo has quit [Read error: Connection reset by peer]
tazle has quit [Server closed connection]
tazle has joined #pypy
<arigato> cfbolz: found a way to remove the crash https://github.com/python/cpython/pull/19474
<cfbolz> arigato: very cool
<cfbolz> arigato: of course once they start merging the nogil stuff everything will become way more complicated :-(
<arigato> ah. I think I'm not going to look at all
<cfbolz> :-)
<cfbolz> arigato: probably sensible
<cfbolz> arigato: I have an incredibly random question: do you remember whether we had to do anything special to make gdb understand the JIT's stack frames to make gdb commands like "backtrace" and "up" work? or is our function prologue/epilogue close enough to what a C compiler produces that the gdb pattern can deal with it?
<cfbolz> (if you don't remember that's fine)
<arigato> as far as I remember, gdb out of the box used to understand the frames
<cfbolz> ok, makes sense
<arigato> it might have been accidental, though
<arigato> instead of carefully designed
<cfbolz> yeah, that's kind of what I'm suspecting too
<arigato> (except on Power64, where I remember I needed to make the frames be fully "official" because otherwise some other OS things were not happy)
<cfbolz> interesting
<cfbolz> apparently there's a bunch of different mechanisms for this, eg gdb will to abstract interpretation to find the frame pointer on some CPUs
<arigato> ah, cool
<cfbolz> there seems to be a bug in the subtraction implementation: https://github.com/bminor/binutils-gdb/blob/master/gdb/prologue-value.c#L114
<cfbolz> the constant_last (&a, &b); call will swap the arguments, which is incorrect because subtract isn't commutative
<cfbolz> I haven't decided whether I want to send a patch (by mail) yet though :-)
<arigato> :-)
<arigato> "constant - nonconstant" should always be pvk_unknown
<arigato> how on earth did you find this bug?
<cfbolz> arigato: just randomly looked at the code :-)
<arigato> right, it has abstract interpretation in the description after all :-)
<cfbolz> the long story is: was chatting with some cpython devs that have a JIT prototype, and for the gdb didn't manage to understand the frames
<cfbolz> so I got curious how it works
<cfbolz> (the abstract interpretation is not used on x86 though, but arm 64 and some others)
<arigato> cool
<cfbolz> it seems to be a mess though, eg linux perf doesn't do anything like this, and you need to emit dwarf frame descriptions at runtime if you want to sample the full stack
<fijal> hi!
<fijal> are you sure that (Py_ssize_t)refcount < 0 cannot be optimized away by C compiler?
<sam_> the gdb people are rather nice and might be worth asking them in #gdbt oo
<sam_> *#gdb too
<cfbolz> sam_: thanks :-)
derpydoo has joined #pypy
<cfbolz> arigato: the nogil work is 77 pull requests 😆
<cfbolz> they merged 9
<Alex_Gaynor> cfbolz: how did you find all 77, I'm failing to find with search
<cfbolz> Alex_Gaynor: "private communication"
<Alex_Gaynor> 👍
jcea has joined #pypy
lehmrob has quit [Ping timeout: 255 seconds]
lehmrob has joined #pypy
lehmrob has quit [Ping timeout: 264 seconds]
Dejan has joined #pypy
Dejan has quit [Quit: Leaving]
lazka0 has joined #pypy
pjenvey_ has joined #pypy
Alex_Gaynor_ has joined #pypy
mgornyz has joined #pypy
pjenvey has quit [Ping timeout: 246 seconds]
marvin has quit [Ping timeout: 246 seconds]
Alex_Gaynor has quit [Ping timeout: 246 seconds]
lazka has quit [Ping timeout: 246 seconds]
mgorny has quit [Ping timeout: 246 seconds]
pjenvey_ is now known as pjenvey
Alex_Gaynor_ is now known as Alex_Gaynor
lazka0 is now known as lazka
marvin has joined #pypy
otisolsen70 has quit [Quit: Leaving]
derpydoo has quit [Read error: Connection reset by peer]
derpydoo has joined #pypy
mcc has joined #pypy
mcc has left #pypy [#pypy]