<arigato>
smarr: +456 and +480 are separated by +468: guard_class. If this guard fails, it wants the store at +456 to have been done. it's a missing but involved optimization to delay random stores inside guards
<arigato>
smarr: +904: some pure operations like arraylen_gc are not removed from the trace at this point, but only later during register allocation
<arigato>
you can still see that no code was emitted for it because the following operation is also +904
<smarr>
arigato: oh, right, i forgot about the guards. thanks. hmmm. this is one of those places where a nice little interpreter optimization (inlining a loop in the bytecode instead of it being a separate method with separate activation frame) has quite severe impact on compiled performance. seems to be much harder for the compiler to understand that all of this could be a very tight loop simply incrementing a counter
<fijal>
smarr: so overall a lot of problems with that come from a fact that some decisions are decided before optimizations
<fijal>
gcc has the same problem btw
<fijal>
if you create a massive function that gets optimized away, it will negatively impact decisions
fotis has joined #pypy
ronan__ has joined #pypy
fotis has quit [Ping timeout: 276 seconds]
ronan has quit [Remote host closed the connection]
Julian has joined #pypy
dustinm- has quit [Quit: Leaving]
dustinm has joined #pypy
dustinm has quit [Quit: Leaving]
dustinm has joined #pypy
muke has joined #pypy
<muke>
cfbolz Hey, have a quick question about nested structs - I found how to get the nested fields and sizedescrs of the parent fields, but noticed that the root structs have 'rclass.OBJECT' set for their parent field which doesn't show up in '.get_all_fielddescrs()'. rclass.OBJECT itself looks like it's just a single pointer which I can always insert myself, but taking the byte size of a root struct doesn't seem to match up with that
<muke>
so the S struct defined at line 1892 in runner_test.py has a size of 40, but adding up the fields myself only gets to 36, if you assume rclass.OBJECT is just a pointer
<muke>
wondering if you knew if there was more data involved that I'm missing
<cfbolz>
muke: alignment issues?
<cfbolz>
Sorry can't look at this point
<muke>
oh I hadn't considered padding actually yea
smarr has quit [Quit: Connection closed for inactivity]
Julian has quit [Quit: leaving]
<cfbolz>
muke: cool 😊
ronan__ is now known as ronan
leshaste has joined #pypy
<leshaste>
I am looking for a pypy3 rpm centos with no luck. Does one exist?
lritter has quit [Ping timeout: 250 seconds]
<nimaje>
last time you asked mattip wanted to know why you look for one 21:56 <mattip> why do you need an RPM? We make a portable build, doesn't it work on CentOS?
jkovac1 has quit [Ping timeout: 276 seconds]
<leshaste>
nimaje, ah I missed that. The answer is my work won't install pypy3 for me unless I can provide an rpm
<leshaste>
preferably that is in a recognised repository