<mattip>
which added "static trampoline support for Linux on x86_64 and ARM64"
<mattip>
is "static trampoline support" a common term? I think it has to do with creating trampoline support inside libffi itself rather than in an external /tmp file
<mattip>
but I am probably wrong
<mattip>
my real question is whether this should be something the JIT should be doing (if it doesn't already)
_0az3 has quit [Quit: afk]
_0az3 has joined #pypy
fotis has joined #pypy
otisolsen70 has joined #pypy
otisolsen70_ has joined #pypy
otisolsen70_ has quit [Remote host closed the connection]
otisolsen70 has quit [Ping timeout: 258 seconds]
fotis has quit [Ping timeout: 260 seconds]
fotis has joined #pypy
<cfbolz>
mattip: it's not like we are missing features from libffi
<cfbolz>
tumbleweed: thanks for all your packaging work!
fotis has quit [Ping timeout: 264 seconds]
fotis has joined #pypy
phlebas has quit [Ping timeout: 245 seconds]
phlebas has joined #pypy
fotis has quit [Ping timeout: 258 seconds]
fotis has joined #pypy
daubers has joined #pypy
fotis has quit [Ping timeout: 260 seconds]
fotis has joined #pypy
Olliemath has joined #pypy
fotis has quit [Ping timeout: 245 seconds]
fotis has joined #pypy
fotis has quit [Ping timeout: 258 seconds]
otisolsen70 has joined #pypy
ceridwen has quit [Ping timeout: 264 seconds]
Olliemath has quit [Ping timeout: 256 seconds]
<arigato>
mattip: can you find anything more detailed than this short "static trampoline support" sentence?
<arigato>
I think it's some kind of way to workaround the restrictive permissions on some platforms for making callbacks, but obviously I'd love to have anything concrete to look at
arigato has left #pypy [Leaving]
arigato has joined #pypy
<arigato>
it seems to be enabled by default with no new API
<arigato>
I hope that this time it's done in a way that doesn't trigger the obvious security bug in case of fork(), as per https://cffi.readthedocs.io/en/latest/using.html#callbacks-old-style, but it's out of my hands because it's not a feature you can enable or disable at runtime
<cfbolz>
this makes me basically wonder whether it's strictly a good idea to promote every variable that gets passed as a green into a recursive portal call
<arigato>
what are the results printed if you swap the two timing sections in the source?
<cfbolz>
arigato: stays basically the same
<arigato>
i.e.?
<cfbolz>
arigato: ie the times are swapped too
<arigato>
OK
<cfbolz>
that means the loop where we see tons of patterns is slow. but if we repeat the same pattern many times before going on to the next one we are ok
<arigato>
unsure why
<cfbolz>
arigato: my theory is: we get a chain of bridges in the inner loop in the slow version
<cfbolz>
but we get the chain in the outer loop in the fast one
<arigato>
why to we get the chain in the outer loop in the fast version?
<arigato>
ah, is that because of loop unrolling?
<cfbolz>
yes, I think so
* cfbolz
needs to look
<cfbolz>
no, more complicated
<cfbolz>
anyway, it's definitely chain of guards
<cfbolz>
arigato: what I don't completely understand is the difference between the two versions
<arigato>
in the 2nd version the guards that promote "p" is lifted out of the loop, I guess?
<arigato>
so the whole inner loop is compiled 100 times but every version is specialized for a 'p'
<cfbolz>
arigato: no, the bridges for the fast version still all jump to the same label
<cfbolz>
I don't understand the difference
fotis has quit [Ping timeout: 260 seconds]
<cfbolz>
arigato: no, even in the fast version things become slower and slower the more patterns are added. it remains a linear search
<cfbolz>
with a constant speedup of 2x compared to the slow one
<cfbolz>
(it's also interesting that we remain faster than CPython for quite long, eg a linear lookup of 70 patterns is fine)
fotis has joined #pypy
fotis has quit [Ping timeout: 264 seconds]
fotis has joined #pypy
<arigato>
maybe we should just finish the long-ago branch that makes such branches a logarithmic search instead of linear
lritter has quit [Ping timeout: 258 seconds]
Dejan_ has joined #pypy
Dejan_ has quit [Remote host closed the connection]
<Dejan>
[PyPy 7.3.7-alpha0 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)] -- does this mean 7.3.6 has been released? :)
fotis has quit [Ping timeout: 260 seconds]
otisolsen70 has quit [Ping timeout: 245 seconds]
<Olliemath>
Hey all, is there a linter setup you use with the pypy codebase? I usually use flake8, but it's very unhappy with me here.
<Olliemath>
I can probably make a config that works, just wondering if there's a common one already in use
Julian has joined #pypy
<cfbolz>
olliemath: not really, no
<cfbolz>
We have quite a few idiosyncrasies :-/
fotis has joined #pypy
<mattip>
Dejan: where would the release have caught your eye? We announced it here, on the blog, twitter, and in reddit r/python
<Dejan>
mattip, maybe it is my browser playing tricks on me
<cfbolz>
I am not aware of anything that changed along those lines
<cfbolz>
olliemath: nice! Pull request?
<Olliemath>
mattip thanks - I'll try and open one up later today
<cfbolz>
Cool :-)
<cfbolz>
olliemath: do you plan to hack on PyPy in general?
Julian has quit [Quit: leaving]
Olliemath has quit [Quit: Client closed]
<mattip>
heh, using PYPY_GC_MAX_DELTA=400MB made the build succeed, and didn't perceptibly slow it down from 7.3.5
fotis has quit [Ping timeout: 260 seconds]
Olliemath has joined #pypy
<Olliemath>
I got disconnected there - so in case these didn't send: The short answer is yes :)
<Olliemath>
The longer answer is that I'm unable to make firm time commitments.
<Olliemath>
My work allows 20% of time on personal development or OSS that we use - but that 20% sometimes gets spread pretty thin / interrupted by fire-fighting etc.
fotis has joined #pypy
fotis has quit [Ping timeout: 245 seconds]
<cfbolz>
olliemath: cool!
<cfbolz>
olliemath: welcome to the project! If you want to discuss or ask stuff, just let us know