cfbolz changed the topic of #pypy to: #pypy PyPy, the flexible snake https://pypy.org | IRC logs: https://libera.irclog.whitequark.org/pypy | not the official irc channel yet | use cffi for calling C | insert pithy quote here
tos9 has joined #pypy
gef_ has joined #pypy
gef has joined #pypy
tos9 has quit [Quit: leaving]
tos9 has joined #pypy
tos9 is now known as Julian
gef_ has quit [Ping timeout: 248 seconds]
gef has quit [Ping timeout: 248 seconds]
mattip has joined #pypy
bbot2 has joined #pypy
<mattip> bbot2 is now here
Julian has quit [Quit: leaving]
Corbin has joined #pypy
gef has joined #pypy
mattip has quit [Read error: Connection reset by peer]
mattip has joined #pypy
exarkun1 has joined #pypy
exarkun has quit [Ping timeout: 264 seconds]
mattip has quit [Ping timeout: 248 seconds]
exarkun2 has joined #pypy
otisolsen70 has joined #pypy
exarkun1 has quit [Ping timeout: 264 seconds]
gef has quit [Ping timeout: 265 seconds]
exarkun2 has quit [Read error: Connection reset by peer]
exarkun2 has joined #pypy
fijal has joined #pypy
gef has joined #pypy
exarkun2 has quit [Remote host closed the connection]
exarkun2 has joined #pypy
mattip has joined #pypy
exarkun2 has quit [Read error: Connection reset by peer]
exarkun3 has joined #pypy
mattip has quit [Ping timeout: 265 seconds]
chaosite has joined #pypy
chaosite has left #pypy [#pypy]
exarkun3 has quit [Read error: Connection reset by peer]
exarkun4 has joined #pypy
exarkun4 is now known as exarkun
exarkun has joined #pypy
exarkun has quit [Changing host]
lritter has joined #pypy
tos9 has joined #pypy
tos9_ has joined #pypy
tos9_ is now known as Julian
tos9 has quit [Quit: leaving]
tos9 has joined #pypy
tos9 has quit [Client Quit]
Julian has quit [Quit: leaving]
Julian has joined #pypy
<cfbolz> arigato: around?
Julian has quit [Client Quit]
<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
<arigato> "ah"
<cfbolz> From five min to 20s
tos9_ has quit [Quit: leaving]
Julian has quit [Quit: leaving]
tos9_ has joined #pypy
tos9_ is now known as Julian
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-64/builds/262 [mattip: force build, py3.8]
<bbot2> Started: http://buildbot.pypy.org/builders/own-win-x86-64/builds/317 [mattip: force build, py3.8]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8708 [mattip: force build, py3.8]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-aarch64/builds/921 [mattip: force build, py3.8]
<arigato> FWIW, I'm trying to run my leaking service and hitting it with automatically-generated requests, in an attempt to reproduce the leak
<cfbolz> arigato: cool
<arigato> I think I just managed
<cfbolz> arigato: if it looks at all json related let me know
<arigato> yes, trying to reduce now
<cfbolz> arigato: using heap dumps, I suppose?
<arigato> no
<arigato> just "top"
<arigato> and simplifying the code of the server
<arigato> I have a version with no leak, and a version with leak
<cfbolz> Ok
exarkun has quit [Quit: WeeChat 2.4]
exarkun has joined #pypy
stkrdknmibalz has quit [Quit: WeeChat 3.0.1]
stkrdknmibalz has joined #pypy
Julian has quit [Quit: leaving]
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-64/builds/262 [mattip: force build, py3.8]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8708 [mattip: force build, py3.8]
<arigato> cfbolz: end result is unclear, but I think it's "no". it's possible that it's an unrelated issue
<cfbolz> arigato: no to json, you mean?
<arigato> I also did not manage to run it on pypy 6.1 for some obscure reasons
<cfbolz> :-(
<arigato> "no" to an issue that would be in pypy in the first place
<arigato> I've troubles running pip on pypy2 6.1
<cfbolz> Yeah, pip ages to quickly or something. I've had various issues on old versions too
<arigato> we should be able to force pip to install just the right version, but I failed
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/7694 [Carl Friedrich Bolz-Tereick: force build]
<cfbolz> ok, so that's a factor of 2 buildtime improvements this week :-)
<Corbin> Amazing work, even just from the rough numbers. How much of this will apply to other RPython projects?
<cfbolz> Corbin: pretty directly
<bbot2> Success: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/7694 [Carl Friedrich Bolz-Tereick: force build]
<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
gef has joined #pypy
gef_ has joined #pypy
<bbot2> Exception: http://buildbot.pypy.org/builders/own-win-x86-64/builds/317 [mattip: force build, py3.8]
<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> Timings, no JIT: https://bpa.st/QDUQ
<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?
<cfbolz> isidentical: it downloads the current nightly for the branch you're on
<isidentical> i tried to run it with py3.8 though it failed with missing libraries tar: */bin/libpypy-c.so*: Not found in archive
<cfbolz> yes, doesn't completely work for me either
<cfbolz> I never use it
<cfbolz> anyway, py3.8 isn't being built nightly
<isidentical> ah, ok!
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-aarch64/builds/921 [mattip: force build, py3.8]
isidentical has quit [Quit: Client closed]
Arfrever has quit [Quit: 御出で]
Arfrever has joined #pypy
Hodgestar has quit [Read error: Connection reset by peer]
Hodgestar has joined #pypy
Julian has joined #pypy
gef has joined #pypy
gef has quit [Ping timeout: 264 seconds]
Julian has quit [Quit: leaving]
gef has joined #pypy
gef_ has joined #pypy