cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end ) | use cffi for calling C | if a pep adds a mere 25-30 [C-API] functions or so, it's a drop in the ocean (cough) - Armin
<Frogging101> www.pypy.org is now fixed, thanks to the kind people in #python-infra
bitbit has quit [Quit: Leaving]
ronan has quit [Ping timeout: 272 seconds]
kipras has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 255 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
jcea has quit [Remote host closed the connection]
adamholmberg has joined #pypy
jcea has joined #pypy
adamholmberg has quit [Remote host closed the connection]
kipras has quit [Ping timeout: 265 seconds]
jcea has quit [Quit: jcea]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 265 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 240 seconds]
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
oberstet has joined #pypy
adamholmberg has quit [Ping timeout: 256 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 265 seconds]
_whitelogger has joined #pypy
glyph has quit [Quit: End of line.]
glyph has joined #pypy
_whitelogger has joined #pypy
tsaka__ has quit [Ping timeout: 272 seconds]
_whitelogger has joined #pypy
_whitelogger has joined #pypy
_aegis_ has quit [Ping timeout: 268 seconds]
Ai9zO5AP has quit [Ping timeout: 255 seconds]
Ai9zO5AP has joined #pypy
gracinet has quit [Quit: Leaving.]
_whitelogger has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
jacob22 has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
gracinet has joined #pypy
xcm has quit [Read error: Connection reset by peer]
xcm has joined #pypy
lritter has joined #pypy
kipras has joined #pypy
kipras has quit [Ping timeout: 258 seconds]
<cfbolz> arigato: ok, fixed (and it seems I had botched the merge to py3.6 and there was nothing to fix there :-( )
lesshaste has quit [Ping timeout: 258 seconds]
oberstet has quit [Remote host closed the connection]
tsaka__ has joined #pypy
gracinet has quit [Quit: Leaving.]
<arigato> cfbolz: ah, I just committed the very same checkin as you (I wrote it yesterday but was running tests)
<arigato> I didn't notice, because the merge was happy
<cfbolz> eh, sorry :-(
<arigato> no, I'm the one that should say sorry
<arigato> doesn't matter in this case :-)
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 258 seconds]
_whitelogger has joined #pypy
<arigato> cfbolz: fwiw, pypy.module.pypyjit.test_pypy_c.test_generators is now failing (instead of test_ffi)
<cfbolz> :-/
xcm has quit [Read error: Connection reset by peer]
bitbit has joined #pypy
bitbit has quit [Max SendQ exceeded]
xcm has joined #pypy
bitbit has joined #pypy
<simpson> I'm trying to debug slowness in my JIT. I notice that I have some classes being filled out with fields that are never read, and I think that the objects being filled out are ultimately not used. Apparently these objects aren't being virtualized. What are my options for removing the writes to the fields?
<simpson> e.g. I have a field `fqn` for the fully-qualified name of objects. How could I avoid this field being written? I'm currently imagining that if I had a *method* instead, then I could defer building that name until I need it, even if the name is a compile-time constant.
<cfbolz> simpson: should they be virtualized?
<cfbolz> you should check the traces and see where they escape
<simpson> cfbolz: Right now I'm looking at ejectors, which wrap continuations. They escape any time they're non-trivially used. (Someday I will do the mid-level work to improve this.)
<simpson> Each ejector is labeled with where it's invoked, but the label's only read during debugging, and the label is chosen at compile time for all-but-one call sites.
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
<simpson> So I'm thinking maybe subclass more, and have each call site have its own subclass with its own labeling and naming methods.
<cfbolz> no, but in the traces you can really see what causes the allocated object to escape
<cfbolz> they don't randomly escape
adamholmberg has joined #pypy
<simpson> I mean, they kind of do. That's what they're designed to do. But I hear what you're saying. I'm seeing most of the important objects virtualizing. The other thing that doesn't virtualize is list iterators, and that also kind of makes sense because they're built outside the JIT's trace.
<simpson> ...Oh. Maybe I could get list iterators to be traced a bit better.
adamholmberg has quit [Ping timeout: 265 seconds]
dddddd has joined #pypy
<simpson> cfbolz: https://github.com/monte-language/typhon/blob/master/typhon/objects/iteration.py#L57-L97 is what I'm looking at right now. I'm seeing a few things that I want to change.
<cfbolz> I don't have time to look in detail, sorry
<cfbolz> but the tip is: study the traces, not the code
<simpson> I think that displayName, which is the FQN and locates an object in its code, could be removed. I think we only care about the method, which is the code object.
<simpson> Oh, no worries.
<cfbolz> not just the code
<arigato> well, this displayName variable is unused in this function, no?
<simpson> Yeah. I have literally no idea why it's green. I know it was me that did it, but no clue why.
<arigato> ...ah, it's used indirectly via the greencode
xcm has quit [Remote host closed the connection]
<simpson> I'm wondering if there's some way to give a prelude/prologue to the JIT merge point. I want to indicate that the iterator and ejector won't survive past the loop.
adamholmberg has joined #pypy
<arigato> they both survive past the loop in the RPython code, so I'm not sure what you mean
xcm has joined #pypy
<arigato> re displayName, I would try to move the encode('utf-8') inside getLocation()
adamholmberg has quit [Remote host closed the connection]
<simpson> Hm. Can I somehow more explicitly kill them? I have a language-level guarantee that they're effectively dead objects. The ejector, even, is disabled explicitly.
<simpson> Yeah, good catch.
adamholmberg has joined #pypy
<arigato> actually "displayName" is a green that is a dynamically-created string object, so it will never be equal to the previous one and loops won't be reused
<simpson> Oh my. That's fascinating and hilarious.
<arigato> if consumer.getDisplayName() returns exactly the same unicode string objects, then it should work
<arigato> the green key logic doesn't do things like string comparison
<simpson> Yeah, it does. And further they *should* be immutable. I'm trying just that change to see what happens.
adamholmberg has quit [Ping timeout: 240 seconds]
_aegis_ has joined #pypy
<simpson> Maybe that helped. More testing required. Thanks for the advice.
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
xcm has quit [Ping timeout: 256 seconds]
xcm has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 265 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
kipras has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 258 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
<simpson> How would I see what a ConstPtr points to? The pointer itself is missing, but it has a dictionary attached, and I'm trying to find where the dictionary comes from.
adamholmberg has quit [Remote host closed the connection]
<simpson> ...Never mind, I may have found it. Silly me.
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 255 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 256 seconds]
ronan has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
adamholmberg has quit [Ping timeout: 256 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 256 seconds]
bitbit has quit [Remote host closed the connection]
kipras has quit [Ping timeout: 265 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
Taggnostr has quit [Quit: Switching to single player mode.]
Taggnostr has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 256 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 240 seconds]
adamholmberg has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
xcm has quit [Ping timeout: 240 seconds]
xcm has joined #pypy
adamholmberg has quit [Ping timeout: 258 seconds]
bitbit has joined #pypy
jcea has joined #pypy
Frogging101 has left #pypy ["El Psy Kongroo!"]
lritter has quit [Ping timeout: 256 seconds]
andi- has quit [Ping timeout: 272 seconds]