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 | Matti: I made a bit of progress, the tests now only segfault towards the end
Guest96 has joined #pypy
<mattip> CPython is discussing a lazy import option
<mattip> I seem to remember this causing problems with some of our lib_pypy modules, but I don't see the issue now
<mattip> something about mercurial lazy importing, so the pattern "try: import X; except Exception: X = None"
<mattip> would no longer work
<mattip> ahh, nvrmind, that case is explicity mentioned in the PEP and it will be excluded
Guest96 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest96 has joined #pypy
<cfbolz> seems I can make the pypy binaries 7MB smaller while speeding up the jit a tiny bit
mgorny has quit [Quit: No Ping reply in 60 seconds.]
<mattip> cool
<cfbolz> Still looking for a bug
mgorny has joined #pypy
<fijal> mattip: the lazy import is an awful strategy
<fijal> it means that any statement can have *very arbitrary* side effects
mjacob has quit [Ping timeout: 256 seconds]
mjacob has joined #pypy
slav0nic has joined #pypy
Guest96 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<antocuni> cfbolz: how?
Guest96 has joined #pypy
Guest96 has quit [Client Quit]
Guest96 has joined #pypy
Guest96 has quit [Client Quit]
lritter has joined #pypy
<cfbolz> antocuni: every jitcode has a dict mapping pc to live variables. 15k dicts are big
<cfbolz> Now I put the information directly into the metainterp bytecode
<cfbolz> Not the information, but an offset into a global string of the data
Guest96 has joined #pypy
Guest96 has quit [Client Quit]
Guest96 has joined #pypy
Guest96 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
otisolsen70 has joined #pypy
otisolsen70 has quit [Ping timeout: 248 seconds]
otisolsen70 has joined #pypy
<antocuni> cfbolz: wow, nice
<antocuni> cfbolz: but where does the speedup come from? Better cache locality?
<cfbolz> antocuni: you save the dict lookup
<antocuni> ah sure
<antocuni> nice job
<cfbolz> The data is right there in the JIT bytecode at the position where you are interpreting anyway
Guest96 has joined #pypy
Guest96 has quit [Client Quit]
Guest96 has joined #pypy
Guest96 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest96 has joined #pypy
otisolsen70 has quit [Quit: Leaving]
Guest96 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest96 has joined #pypy
alice has quit [Changing host]
alice has joined #pypy
alice has joined #pypy
alice has quit [Changing host]
reneeontheweb has joined #pypy
greedom has joined #pypy
greedom has quit [Remote host closed the connection]
Guest96 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lritter has quit [Ping timeout: 248 seconds]
slav0nic has quit [Ping timeout: 248 seconds]