cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | the secret reason for us trying to get PyPy users: to test the JIT well enough that we're somewhat confident about it
JStoker has quit [Ping timeout: 255 seconds]
JStoker has joined #pypy
oberstet has quit [Ping timeout: 245 seconds]
oberstet has joined #pypy
marr has quit [Ping timeout: 245 seconds]
mattip has quit [Ping timeout: 260 seconds]
<simpson> What's the official word on cffi and C++? Is there a possible road ahead if funding were to happen?
oberstet has quit [Ping timeout: 245 seconds]
jamesaxl has quit [Quit: WeeChat 2.1]
raynold has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
dfee has quit [Ping timeout: 245 seconds]
energizer has quit [Remote host closed the connection]
energizer has joined #pypy
inhahe_ has joined #pypy
inhahe has quit [Ping timeout: 240 seconds]
inhahe__ has quit [Ping timeout: 240 seconds]
inhahe__ has joined #pypy
dfee has joined #pypy
dfee has quit [Ping timeout: 245 seconds]
dddddd has quit [Remote host closed the connection]
mattip has joined #pypy
mcyprian has joined #pypy
mcyprian has quit [Client Quit]
mattip has quit [Remote host closed the connection]
dfee has joined #pypy
tsutsumi2 has joined #pypy
tsutsumi2 has quit [Quit: WeeChat 2.1]
tsutsumi2 has joined #pypy
tsutsumi2 has quit [Client Quit]
tsutsumi2 has joined #pypy
tsutsumi2 has quit [Client Quit]
tayfun26 has joined #pypy
marself has joined #pypy
lritter has joined #pypy
oberstet has joined #pypy
marr has joined #pypy
energizer has quit [Ping timeout: 260 seconds]
<leshaste> simpson, I know nothing about it but https://gist.github.com/tonyseek/7821993 seems to suggest it should work.. maybe?
<leshaste> simpson, is C++ not officially supported?
<leshaste> it is also mentioned at http://cffi.readthedocs.io/en/latest/embedding.html
* leshaste feels he must be missing something important
antocuni has joined #pypy
tayfun27 has joined #pypy
tayfun26 has quit [Ping timeout: 268 seconds]
tayfun27 is now known as tayfun26
antocuni has quit [Ping timeout: 245 seconds]
dfee has quit [Ping timeout: 245 seconds]
jamesaxl has joined #pypy
R3d_Sky has joined #pypy
jcea has joined #pypy
R3d_Sky has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
dddddd has joined #pypy
raynold has quit [Quit: Connection closed for inactivity]
demonimin has quit [Remote host closed the connection]
antocuni has joined #pypy
dfee has joined #pypy
R3d_Sky has joined #pypy
dfee has quit [Ping timeout: 245 seconds]
R3d_Sky has quit [Client Quit]
Rhy0lite has joined #pypy
antocuni has quit [Ping timeout: 252 seconds]
oberstet has quit [Ping timeout: 264 seconds]
<arigato> simpson: C++ support is not going to happen in cffi. the official story is to first wrap your C++ code in a C API (or use something else than cffi)
<simpson> arigato: Okay, thanks.
<Alex_Gaynor> arigato: Have you seen rust's bindgen, which uses libclang to generate bindings for C and C++?
<arigato> no
<arigato> I'm not going to go for C++ in cffi anyway
<arigato> but look at cppyy
dfee has joined #pypy
dfee has quit [Ping timeout: 240 seconds]
<kenaan> arigo cffi/cffi 93d9ae775fb2 /doc/source/goals.rst: Mention cppyy
marky1991 has joined #pypy
<kenaan> arigo reverse-debugger dd287c100ac7 /: hg merge default
oberstet has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/87 [arigo: testing, reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5495 [arigo: testing, reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6772 [arigo: testing, reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/70 [arigo: testing, reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/5879 [arigo: testing, reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/4645 [arigo: testing, reverse-debugger]
R3d_Sky has joined #pypy
tayfun26 has quit [Quit: tayfun26]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6772 [arigo: testing, reverse-debugger]
<arigato> child.expect(r'\((\d+)\)\$ ')
* arigato ^^ using pexpect to test reverse-debugger
<arigato> it requires some particularly obscure regexps
tsutsumi2 has joined #pypy
<kenaan> arigo reverse-debugger c2f8c612bd01 /pypy/interpreter/app_main.py: fix for test_app_main.py
antocuni has joined #pypy
<arigato> "cool", bitbucket updated its UI to something which asks "would you like some spam" and doesn't close when we click "no"
* arigato clicks "no" in Chromium and goes back to firefox---works
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/5879 [arigo: testing, reverse-debugger]
marself has quit [Ping timeout: 245 seconds]
<bbot2> Success: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/87 [arigo: testing, reverse-debugger]
raynold has joined #pypy
tsutsumi2 has quit [Ping timeout: 265 seconds]
<bbot2> Success: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/4645 [arigo: testing, reverse-debugger]
oberstet has quit [Ping timeout: 260 seconds]
dfee has joined #pypy
dfee has quit [Ping timeout: 245 seconds]
oberstet has joined #pypy
mattip has joined #pypy
<bbot2> Success: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5495 [arigo: testing, reverse-debugger]
lritter has quit [Quit: Leaving]
energizer has joined #pypy
ssbr` has joined #pypy
lazka has joined #pypy
ssbr has quit [Remote host closed the connection]
ssbr` has quit [Remote host closed the connection]
ssbr has joined #pypy
R3d_Sky has quit [Quit: Textual IRC Client: www.textualapp.com]
marky1991 has quit [Ping timeout: 260 seconds]
tbodt has joined #pypy
dfee has joined #pypy
antocuni has quit [Ping timeout: 260 seconds]
marky1991 has joined #pypy
<bbot2> Success: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/70 [arigo: testing, reverse-debugger]
<arigato> what's the mess in the py3.5 branch with pypy/interpreter/pyparser/gendfa.py?
<arigato> it was changed from default, but then we have two versions of the dfa
<arigato> in the py3.5 branch
<arigato> at the moment, the two versions are different
<arigato> ...ah, right, one is a stub that includes the other and adds stuff
<kenaan> arigo reverse-debugger 40fff8a8e2e0 /pypy/interpreter/app_main.py: Explain and tweak
<kenaan> arigo py3.5-reverse-debugger 5b31e0272c45 /: merge branch
<kenaan> arigo py3.5-reverse-debugger 3d3ad98443d6 /: merge the two branches
<kenaan> arigo py3.5 33ccfe808125 /pypy/objspace/std/test/test_dictmultiobject.py: Fix test
<kenaan> arigo py3.5-reverse-debugger 6e57c08457f6 /pypy/objspace/std/test/test_dictmultiobject.py: merge py3.5 again
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
tbodt has joined #pypy
tbodt has quit [Client Quit]
marky1991 has quit [Ping timeout: 268 seconds]
marky1991 has joined #pypy
marky1991 has quit [Ping timeout: 245 seconds]
michaelgreene has joined #pypy
Rhy0lite has quit [Quit: Leaving]
<cfbolz> arigato: can we backport some of that to default?
<arigato> gendfa.py? I guess
<arigato> but it shouldn't be often that we need to change default's DFA
<cfbolz> arigato: sure
<kenaan> arigo py3.5-reverse-debugger 216549ff7482 /pypy/interpreter/reverse_debugging.py: manual 2to3
<kenaan> arigo reverse-debugger f2c1d407e8d7 /rpython/rlib/rsiphash.py: Disable rsiphash if we're using the --revdb option
<kenaan> arigo py3.5-reverse-debugger 9239ac7f5456 /pypy/interpreter/reverse_debugging.py: add comment
<kenaan> arigo py3.5-reverse-debugger 9e3c05dbb3fd /: hg merge reverse-debugger
<kenaan> arigo reverse-debugger 0242387b5ccf /pypy/interpreter/reverse_debugging.py: oops
<kenaan> arigo py3.5-reverse-debugger f05df0d75e88 /pypy/interpreter/reverse_debugging.py: hg merge reverse-debugger
<kenaan> arigo default 61041045408c /pypy/interpreter/pyparser/: Back-port from py3.5: this makes it easier to regenerate the DFA. See comments in dfa_generated.py
<kenaan> arigo py3.5 cfbe109033a4 /pypy/interpreter/pyparser/: hg merge default
lazka has quit [Quit: Leaving]
<arigato> yay, pypy3-c with revdb seems to work now, at least in its basic version
<cfbolz> yay!
<arigato> I'll merge to default and py3.5 after buildbot confirms it doesn't create new problems
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5496 [arigo: testing for merge, py3.5-reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6773 [arigo: testing for merge, py3.5-reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/5880 [arigo: testing for merge, py3.5-reverse-debugger]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/4646 [arigo: testing for merge, py3.5-reverse-debugger]
<arigato> cfbolz: note that we'll have to tweak a little bit more in py3.6, to account for the bytecode format change
<arigato> (not much)
<cfbolz> arigato: right
tsutsumi46 has joined #pypy
tsutsumi46 has quit [Client Quit]
<arigato> possibly not at all, if the format of co_lnotab didn't change and still measures amounts in bytes---but I guess it now measures them in 2-byte units, right?
<arigato> or maybe not, to avoid complications and compatibility issues?
<arigato> indeed, seems not
<arigato> so I guess chances are that it works out of the box
Taggnostr has quit [Quit: No Ping reply in 180 seconds.]
Taggnostr has joined #pypy
<cfbolz> arigato: 'cool'
<cfbolz> arigato: I wonder a bit how much I should follow all the bytecode micro optimizations that CPython 3.6 introduced
tsutsumi19 has joined #pypy
tsutsumi19 has quit [Client Quit]
tsutsumi19 has joined #pypy
tbodt has joined #pypy
dfee has quit [Ping timeout: 245 seconds]
<arigato> if you ask me, I wouldn't worry about that
<cfbolz> arigato: agreed. I ported the one that was an actual optimization
<cfbolz> MAKE_CONST_KEY_DICT
<cfbolz> (actually it would need some rpython support to be really efficient, because in theory we don't even need to hash the keys every time, but just copy an existing dict and change the values in the copy)
<arigato> you convinced yourself (or checked) that it makes a virtual dict, with the jit?
<arigato> i.e. isn't worse than the old way
<arigato> interesting idea btw, might also help jitted code when it is forcing a virtual dict
<cfbolz> right
<cfbolz> arigato: the other place where it could be used is in the json decoder, where we decode dicts with exactly the same structure quite often
<arigato> the two places inside pypy might benefit from an alternative dict implementation, instead
<cfbolz> arigato: yes, of course
<cfbolz> good point :-)
<cfbolz> arigato: but that can't be used when forcing dicts in the jit ;-)
<arigato> yes
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/4646 [arigo: testing for merge, py3.5-reverse-debugger]
<arigato> I mean, "right"
<cfbolz> :-)
<arigato> (and, of course, CPython could use the same, but doesn't)
<cfbolz> arigato: have dict implementations?
<cfbolz> ah, no
<cfbolz> copy over a dict template
<arigato> no, I mean just optimize the construction of dicts with a known set of keys
<arigato> yes
<cfbolz> right
<cfbolz> wouldn't even be hard
<arigato> ah, they even have split-table dictionaries nowadays
<cfbolz> arigato: yes, so that's even easier
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/5496 [arigo: testing for merge, py3.5-reverse-debugger]
<cfbolz> arigato: maybe I should do my first CPython patch :-)
<arigato> be ready for it to wait at least some years on the patch :-)
<arigato> ...on the issue tracker
<cfbolz> no, I just won't bother
<arigato> although, I didn't try recently, so maybe pure micro-optimizations go quicker in than corner-case bug fixes
<cfbolz> :-(
<cfbolz> arigato: I think using a dict strategy isn't a good idea anyway, because when you actually mutate the dict, the first thing you have to do is then make a copy of the template and insert the keys
<cfbolz> so you might as well do it right away
<cfbolz> *insert the values
<arigato> yes, agreed, and also a dict strategy might be slower for lookups
<arigato> even if it's not modified
<cfbolz> maybe wouldn't be so bad, just one more indirection
<cfbolz> but still
<arigato> yes, fill-the-template seems mostly better
<arigato> I'm not even sure you could do a dict strategy with just one indirection instead of 2 or 3
<cfbolz> a bit unclear, yes
<cfbolz> a lot of extra pointer chasing for sure
marky1991 has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/6773 [arigo: testing for merge, py3.5-reverse-debugger]
marky1991 has quit [Read error: Connection reset by peer]
<kenaan> arigo reverse-debugger cc66db75546c /: Close branch, ready to merge, finally!
<kenaan> arigo default c67b31661f36 /: hg merge reverse-debugger
<kenaan> arigo py3.5-reverse-debugger 3e1574fb1516 /: Close branch, ready to merge
<kenaan> arigo py3.5 f984fd051c58 /: hg merge py3.5-reverse-debugger
<kenaan> arigo py3.5 9f6f5b98888f /pypy/doc/whatsnew-pypy3-head.rst: document merge
<kenaan> arigo py3.5 8e91ac1e6132 /: hg merge default
oberstet has quit [Read error: Connection reset by peer]
<arigato> ok no clue why:
<kenaan> arigo default 6a1df86a6f7a /pypy/module/: uh revert this
<arigato> ah, that's because the release-pypy2.7-6.x branch contains changesets that turn the version from 6.1.0-alpha to 6.0.0, and I have merged release-pypy2.7-6.x into reverse-debugger at some point
<kenaan> arigo py3.5 7920e2af5244 /pypy/module/: hg merge default
<arigato> zzz
oberstet has joined #pypy
marself has joined #pypy
oberstet has quit [Ping timeout: 245 seconds]
oberstet has joined #pypy
antocuni has joined #pypy
oberstet has quit [Ping timeout: 252 seconds]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/5880 [arigo: testing for merge, py3.5-reverse-debugger]
wleslie has joined #pypy
antocuni has quit [Ping timeout: 260 seconds]
wleslie has quit [Quit: ~~~ Crash in JIT!]
tsutsumi2 has joined #pypy