antocuni changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | "PyPy: the Gradual Reduction of Magic (tm)"
mattip has quit [Ping timeout: 240 seconds]
mattip has joined #pypy
marr has quit [Ping timeout: 265 seconds]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
antocuni has joined #pypy
tbodt has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
guilherme has joined #pypy
Hotpot33 has quit [Ping timeout: 256 seconds]
<kenaan_> rlamy py3.5 6f435c55a176 /pypy/tool/pytest/objspace.py: None of these checks make sense for pypy3
antocuni has quit [Ping timeout: 256 seconds]
<kenaan_> rlamy default 9028d55b25e0 /pypy/module/: Move test_greenlet.py to pypy/module/_continuation/
dcrosta has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<kenaan_> rlamy py3.5 4d0d6cd1346b /: hg merge default
Nizumzen has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
jcea has quit [Quit: jcea]
ArneBab has joined #pypy
ArneBab_ has quit [Ping timeout: 248 seconds]
<kenaan_> rlamy py3.5 bfa08194d964 /pypy/module/_continuation/test/: fix test_stacklet
<guilherme> Hi everyone, the ebnf parser (rpython/rlib/parsing/ebnfparse.py) is ready to use or is still under development? I'm asking because according to the docs, it is still highly experimental but I saw some projects on github using it!
<kenaan_> rlamy py3.5 88ae8a42ce83 /pypy/objspace/std/test/: Explicitly skip tests that cannot work with -A
mattip has quit [Ping timeout: 240 seconds]
gclawes has quit [Ping timeout: 240 seconds]
mattip has joined #pypy
<ronan> guilherme: that sentence dates from 2006 ;-)
gclawes has joined #pypy
mattip has quit [Ping timeout: 256 seconds]
mattip has joined #pypy
mattip has quit [Ping timeout: 256 seconds]
mattip has joined #pypy
<kenaan_> rlamy py3.5 71a2dd4b2fa2 /pypy/module/imp/test/test_import.py: fix AppTestWriteBytecode tests
abrown has joined #pypy
<abrown> Anyone online who can answer some questions re: RPython?
<simpson> I'll try.
<abrown> Let me figure out how best to phrase this...
<abrown> Roughly this: if I have a structure that, like a PyFrame, contains a list of cells, is there any way that I can access the values in those cells using constant offsets?
<abrown> (I use PyFrame and Cell here because I've been looking at them and how the virtualizable concept is used but my classes are somewhat different)
<abrown> I've looked at http://rpython.readthedocs.io/en/latest/jit/virtualizable.html for quite a while and think I need to do something like _virtualizable_ = ['cells[*]'] but... yeah, not sure if I understand all of what that means
<simpson> You can use list indexing like in normal Python. Are you worried about what the JIT will do?
<simpson> Oh, you're doing virtualizeable frames? Well, have you first double-checked that you need them? If you don't have coroutines or anything else that would require frames to be paused, you might be able to not do virtualizeables at all.
<abrown> ah, that would be good
<abrown> so if I just access the value like myobject.cells[i].myvalue... what will the JIT decide to do?
<abrown> I feel like it should be able to optimize everything down to a constant offset load but that is not what I'm seeing...
<simpson> If you declared "cells[*]" in your _immutable_fields_, and if i is constant, then the list access should be transparent to the JIT.
<simpson> Do you have a trace that you could pastebin?
<abrown> ok, give me a minute
<simpson> Sure.
<abrown> for example, line 1229: i2 = getfield_gc_i(ConstPtr(ptr1), descr=<FieldS src.meta.dynsem.Rule.inst_slots 32>)
<abrown> that seems like the best possible case, ConstPtr(ptr1) seems to be telling me that it knows an exact location to retrieve
<simpson> Not declared as an immutable list.
<abrown> ok, I could make that field immutable with a bit of rework
<simpson> Well, how often does it change normally?
<simpson> There's quasi-immutables, if it changes almost never. Each change will invalidate some JIT code.
<abrown> never after it is set... but it is set after __init__; any way to declare it immutable then
<Alex_Gaynor> Uhh, if you _never_ read the value before it's set, technically _immutable_ should be safe. But I'd write a big comment so that if you ever invalidate that property you have no one to blame but yourself, because debugging that woudl be miserable
<abrown> ha, ok
<simpson> Or you can use a quasi-immutable. Or, if this is supposed to be a code object, you could consider generally making *all* of your code objects fully immutable, as a general principle.
<abrown> yeah, that sounds smart
<abrown> how do I make things quasi-immutable?
<simpson> _immutable_fields_ = "quasi?", "always", "list[*]"
<abrown> ah, yes, ok I remember that
<simpson> I don't remember how to get quasi-immut lists but the code's in there.
<Alex_Gaynor> `list?[*]` IIRC
guilherme has quit [Remote host closed the connection]
guilherme has joined #pypy
<abrown> thanks; I think my fundamental problem is that I have trees of terms and traversing the tree involves a lot of gc_getfield_*; I was hoping that flattening the tree into an array and then telling the JIT it is immutable so I can avoid a lot of that
<abrown> *I could avoid a lot of that
guilherme has quit [Ping timeout: 240 seconds]
<abrown> I think with what you said above, simpson, I should be able to (+ some other clever stuff)
<abrown> how can I understand what gc_getfield_ and other gc functions are doing?
guilherme has joined #pypy
astronavt has joined #pypy
astronavt has quit [Remote host closed the connection]
jamesaxl has joined #pypy
guilherme has quit [Remote host closed the connection]
guilherme has joined #pypy
<kenaan_> rlamy py3.5 7597dd2c875f /pypy/module/marshal/test/test_marshal.py: Skip another test that cannot work with -A
<kenaan_> rlamy py3.5 61fa4de7d9bb /pypy/tool/pytest/test/test_appsupport.py: xfail test
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6449 [ronan: force build, py3.5]
<simpson> gc_getfield is like attribute access.
<simpson> FWIW Typhon, our Monte interpreter, is an AST interpreter. We use metaprogramming to generate the AST to ensure that it's all immutable.
<abrown> can you link to it so I can take a look?
<abrown> thanks
<abrown> and thanks for the help above as well
<simpson> No worries.
abrown has quit [Quit: Leaving]
dddddd has quit [Read error: Connection reset by peer]
guilherme has quit [Remote host closed the connection]
guilherme has joined #pypy
guilherme has quit [Remote host closed the connection]
guilherme has joined #pypy
mvantellingen has quit [Ping timeout: 240 seconds]
forgottenone has joined #pypy
mvantellingen has joined #pypy
guilherme has quit [Ping timeout: 256 seconds]
Hotpot33 has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6449 [ronan: force build, py3.5]
Hotpot33 has quit [Ping timeout: 240 seconds]
Hotpot33 has joined #pypy
guilherme has joined #pypy
guilherme has quit [Ping timeout: 265 seconds]
<arigato> I'm +1 for merging cpyext-avoid-roundtrip
<arigato> cfbolz: maybe when cpyext-faster-arg-passing is done?
amaury has joined #pypy
amaury has quit [Ping timeout: 265 seconds]
guilherme has joined #pypy
guilherme has quit [Ping timeout: 264 seconds]
amaury has joined #pypy
amaury has quit [Ping timeout: 256 seconds]
<cfbolz> arigato: yes, since fijal wants to get out a release quickly I'd say we should merge both after the release
<arigato> ok
<arigato> well
<arigato> yes, I suppose
<arigato> not that PyErr_BadInternalCall() currently throws a fatal error
<arigato> s/not/note
<arigato> should I backport this bug fix to default?
<cfbolz> arigato: Ah
<cfbolz> arigato: yes, maybe to be on the safe side
<arigato> meh, I can't reproduce
<kenaan_> arigo cpyext-avoid-roundtrip f1b821c8b0a9 /pypy/module/cpyext/test/test_tupleobject.py: Add a passing test
<kenaan_> arigo default dae84ef106dd /pypy/module/cpyext/: Half-test, and fix
<kenaan_> arigo cpyext-avoid-roundtrip 56643108f56a /pypy/module/cpyext/: Test and fix for the case where state.C.Xxx calls directly some C function which tries to call back ...
<kenaan_> arigo cpyext-avoid-roundtrip 614a92d3bfbd /pypy/module/cpyext/tupleobject.py: This should be fixed now
antocuni has joined #pypy
marr has joined #pypy
<kenaan_> arigo cpyext-avoid-roundtrip 99807e834fb9 /: hg merge default
<kenaan_> arigo default 4f856cec59aa /pypy/module/cpyext/pyerrors.py: Found out how to have a Void-returning function raise
<kenaan_> arigo cpyext-avoid-roundtrip b7431c4cc863 /pypy/module/cpyext/pyerrors.py: Found out how to have a Void-returning function raise
<mattip> +1 for merging cpyext-avoid-roundtrip now, it is IMO the only major improvement we have for py2
<arigato> that was also what I wondered
<arigato> if there is not much else, then maybe merge it now and release a beta for py2? to get feedback over whether it breaks things or not
<mattip> ok, maybe will have time later. I checked numpy and all was good,
<mattip> waht else exercizes cpyext? lxml?
<antocuni> oh, are we about to do a release?
<antocuni> there is also fix-vmprof-stacklet-switch-2, which fixes a serious problem with vmprof and greenlets
<antocuni> I mentally marked it as "done", but I realize now that it has never been merged to default
forgottenone has quit [Quit: Konversation terminated!]
<arigato> mattip: right, lxml is always a good thing to check
amaury has joined #pypy
<kenaan_> antocuni fix-vmprof-stacklet-switch-2 92e4ca3c2daa /: merge default
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5159 [antocuni: force build, fix-vmprof-stacklet-switch-2]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6450 [antocuni: force build, fix-vmprof-stacklet-switch-2]
<bbot2> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/20 [antocuni: force build, fix-vmprof-stacklet-switch-2]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/5617 [antocuni: force build, fix-vmprof-stacklet-switch-2]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/4381 [antocuni: force build, fix-vmprof-stacklet-switch-2]
<bbot2> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/29 [antocuni: force build, fix-vmprof-stacklet-switch-2]
<antocuni> arigato, mattip: I think that fix-vmprof-stacklet-switch-2 is ready to be merged, but as you see I started some builders to check
<antocuni> I won't be online today and tomorrow: if you want to proceed with the release and the buildbots pass, feel free to merge the branch by yourself
<antocuni> else, I'll do it probably on monday
<arigato> ok
<antocuni> thanks
antocuni has quit [Ping timeout: 264 seconds]
amaury has quit [Ping timeout: 240 seconds]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6450 [antocuni: force build, fix-vmprof-stacklet-switch-2]
_whitelogger has joined #pypy
amaury has joined #pypy
<cfbolz> mattip: pillow is also reasonably commonly used with pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/29 [antocuni: force build, fix-vmprof-stacklet-switch-2]
guilherme has joined #pypy
amaury has quit [Ping timeout: 248 seconds]
guilherme has quit [Ping timeout: 240 seconds]
guilherme has joined #pypy
<bbot2> Success: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5159 [antocuni: force build, fix-vmprof-stacklet-switch-2]
guilherme has quit [Remote host closed the connection]
dddddd has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/5617 [antocuni: force build, fix-vmprof-stacklet-switch-2]
guilherme has joined #pypy
guilherme has quit [Ping timeout: 265 seconds]
<bbot2> Success: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/20 [antocuni: force build, fix-vmprof-stacklet-switch-2]
zmt00 has quit [Quit: Leaving]
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/4381 [antocuni: force build, fix-vmprof-stacklet-switch-2]
Guest33446 has quit [Ping timeout: 256 seconds]
<kenaan_> mattip pypy.org[extradoc] 47fbcae75874 /: remove numpy, bug/issues from nav bar, expand contact info to mention registration
marvin has joined #pypy
marvin is now known as Guest19580
amaury has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5160 [mattip: force build, cpyext-avoid-roundtrip]
amaury has quit [Quit: Konversation terminated!]
amaury has joined #pypy
<mattip> I am not familiar with lxml, is there a standard test-suite and/or benchmark?
<mattip> I guess I could do like I did for numpy, see how long it takes to run the repo's test suite
jacob22__ has quit [Ping timeout: 256 seconds]
TheAdversary has joined #pypy
Cheery has quit [Remote host closed the connection]
Cheery has joined #pypy
amaury has quit [Ping timeout: 255 seconds]
jacob22__ has joined #pypy
<bbot2> Success: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5160 [mattip: force build, cpyext-avoid-roundtrip]
astronavt has joined #pypy
astronavt has quit [Client Quit]
astronavt has joined #pypy
astronavt has quit [Remote host closed the connection]
jamesaxl has quit [Quit: WeeChat 1.9.1]
<mattip> cpyext-avoid-roundtrip is no faster on the lxml test suite, but maybe the tests don't cross cpyext c-to-python too much
<mattip> however it fails many more tests than py2-v5.9
Taggnostr has quit [Ping timeout: 240 seconds]
Taggnostr has joined #pypy
<cfbolz> mattip: ouch
<cfbolz> So not ready to merge imo
AndrewBC_ has quit [Ping timeout: 255 seconds]
<mattip> cfbolz: I don't know whether the reason is lxml, pypy5.9 -> HEAD or the branch
mattip has left #pypy ["bye"]