<cfbolz>
arigato: the stack insertion is really quite unstable, basically on 3.7 we get between ~3200 and ~3700 stack checks. I'm having a hard time deciding whether that matters
<cfbolz>
I started looking, because my optimization perturbs things a tiny bit, so the results can be a few stack checks different, but it seems to be below the variation that the algorithm already has
Julian has joined #pypy
phlebas has joined #pypy
gef has quit [Ping timeout: 264 seconds]
gef has joined #pypy
<arigato>
I'm sure in corner cases the stack checks are introduced at just the wrong place
<arigato>
but it's very hard to control
<cfbolz>
arigato: think even the control flow graph itself is not 100% the same every time
<arigato>
yes maybe things like inlining has also got a randomness component in it
<arigato>
and probably many other passes have one too
<cfbolz>
arigato: it's dict ordering
<cfbolz>
But yes
<cfbolz>
I wonder whether it would be better to sort things in a stable way, to at least get a fixed result
<arigato>
no, dict ordering should no longer have a random component since we don't use CPython for translation
<arigato>
but I don't think it's worthwhile to track every last possible source of randomness
<cfbolz>
arigato: hm, right
<cfbolz>
Ok
<arigato>
because anyway every day we'll have changed a comma in the source and the result is different anyway
<cfbolz>
Right
<cfbolz>
arigato: the very central cycle breaks are anyway by decorator, right?
<arigato>
I think so
<arigato>
but I doubt we have enough decorators to cover all possible bad cases, but probably enough for "most" cases? I don't really know
<cfbolz>
arigato: it's hard to check :-(
<arigato>
exactly
<cfbolz>
I'm not looking through 3000 places by hand
<cfbolz>
And every time I do spot checking, it's extremely obscure
<cfbolz>
arigato: is that all completely by hand in cpython?
tos9_ has joined #pypy
<arigato>
yes
<cfbolz>
Right
<cfbolz>
arigato: the speed up heuristic btw is to remove 'leaves' first
<cfbolz>
Which makes all the cycle finding and walking a lot faster
<cfbolz>
Corbin: which rpython project are you working on, out of curiosity?
gef has quit [Ping timeout: 248 seconds]
<Corbin>
cfbolz: Typhon, the reference interpreter for Monte. (I was /nick'd simpson on Freenode.)
<cfbolz>
Ah, right
<Corbin>
We have a fair amount of codegen and we ask the rtyper to approve of dozens of classes with codegen'd dispatch, so I was optimistic to hear of rtyper improvements.
<cfbolz>
Corbin: do you have a timing summary around? The little block of times that is printed at the end of translation?
<Corbin>
cfbolz: Not immediately, but I can have one in around 15min.
<cfbolz>
Corbin: then you could just try the current default and see whether it's less than 15
<Corbin>
Well, it took me 15min just to remember how to update RPython. But now I've got it pointed directly at git instead of from downloads.python.org (!?) so it'll be easier in the future.
otisolsen70_ has joined #pypy
otisolsen70_ has quit [Remote host closed the connection]
otisolsen70 has quit [Ping timeout: 264 seconds]
<cfbolz>
Corbin: 'directly at git' sounds wrong to me
<Corbin>
So fast. The fractals were gorgeous to watch. In fact, it's only while waiting for GCC that it feels slow. The ballooning from ~33k blocks to ~48k blocks was barely a problem.
<Corbin>
cfbolz: I'm using Nix for my build system, and it has a `fetchFromGitLab` helper for deterministically fetching from Heptapod. We pin each version of PyPy so that we have a reproducible build.
<cfbolz>
Corbin: cool
<cfbolz>
And this is down from 15min?!
<Corbin>
Oh yeah. Usually I start it, go stretch, watch some TV, forget what I was doing and start something else...
lritter has quit [Ping timeout: 248 seconds]
<cfbolz>
Neat
gef_ has quit [Ping timeout: 252 seconds]
gef has quit [Ping timeout: 264 seconds]
<Corbin>
Our JIT has ~126k blocks. Here's the timings: https://bpa.st/O26A It takes less time for the JIT to build than it used to take the non-JIT variant to build!
<Corbin>
...And it even runs and is building the Monte stdlib. So I think that this is an unmitigated success. Well done.
gef has joined #pypy
<cfbolz>
Corbin: very cool
<krono>
let's see how pycket is doing
gef has quit [Ping timeout: 272 seconds]
<krono>
pycket is down to 27 min on my mbp :D
<cfbolz>
krono: from?
<krono>
beats me, but I think about 40? :/
<cfbolz>
krono: feel like pasting the timing block at the bottom?
isidentical has joined #pypy
<isidentical>
hey guys! i was trying to get a build and stumbled against the getnightly.py under pypy/goal. what is it's use case?