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
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
tsaka__ has joined #pypy
dddddd has quit [Remote host closed the connection]
tsaka__ has quit [Ping timeout: 265 seconds]
jcea has quit [Ping timeout: 244 seconds]
jcea has joined #pypy
jcea has quit [Quit: jcea]
xcm is now known as Guest19431
Guest19431 has quit [Killed (tolkien.freenode.net (Nickname regained by services))]
xcm has joined #pypy
zmt00 has joined #pypy
zmt01 has quit [Ping timeout: 240 seconds]
jvesely has quit [Ping timeout: 260 seconds]
jvesely has joined #pypy
KindOne has quit [Quit: K-Lined]
KindOne has joined #pypy
shodan45 has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
oberstet has joined #pypy
tsaka__ has joined #pypy
BPL has joined #pypy
BPL has quit [Client Quit]
tsaka__ has quit [Ping timeout: 246 seconds]
<arigo> antocuni: wheels for cffi: they are built with azure pipelines, yes
infernix has quit [Ping timeout: 272 seconds]
infernix has joined #pypy
infernix has quit [Changing host]
infernix has joined #pypy
<arigo> antocuni: I'm not too surprized you don't get a speed-up by putting "return -1" in case of exception for functions returning pointers
<arigo> because I think many functions don't return pointers
<arigo> to get a better idea you might want to add the next easy hack, for functions that officially return void
<cfbolz> arigo: for things returning ints, we could still use -1 as a special value that means "check the global exception holder"
<arigo> doing that starts to have very unclear benefits, but maybe
<cfbolz> because you need two checks
<arigo> and a branch, and more code than before
<cfbolz> right
<arigo> it might be easy to play again with the "r15" hack (there is a branch name with "r15" in the name), this time to reserve the register r15 to replace exc_data.value
<cfbolz> instead of? the top-of-nursery pointer?
<arigo> if this register contains normally always zero, on the normal path we just need to check "r15!=0" instead of "exc_data.value!=0"
<arigo> the previous branch is trying to use r15 for shadowstack pointers, but that's not what I'm talking about here
<cfbolz> ah, right
<cfbolz> (was just trying to remember what the previous branch did)
<bbot2> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/313 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8143 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/7085 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/5843 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Started: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/323 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6958 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<fijal> arigo: so very offtopic, but we got a new regulation that we are allowed to exercise between 6 and 9am, within 5km of our house
<fijal> now tell me this has anything to do with the virus
<arigo> so everybody will be out of their house during the same 3 hours
<arigo> just trying to see if that makes any sense, and failing
<arigo> it may be an attempt at badly copying some european rules that also add some times, but for "better" reasons
<arigo> (or not)
<fijal> I think it's blind leading the blind by this stage
<fijal> so likely we will relax the rules more or less as europeans do, regardless of actual infection and shit
<antocuni> arigo: maybe, but the hack for functions returning void is probably harder to do 😤
<arigo> not necessarily: make all functions return "int" instead of "void", and ignore the C compiler warnings
<arigo> it should get you far enough to translate and run examples that, say, don't really do external C function calls
<antocuni> uhm, maybe
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-32/builds/7085 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8143 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
the_drow[m] has quit [Quit: killed]
agates[m] has quit [Quit: killed]
salotz[m] has quit [Quit: killed]
slavfox has quit [Quit: killed]
agates[m] has joined #pypy
<bbot2> Success: http://buildbot.pypy.org/builders/rpython-linux-x86-32/builds/313 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/5843 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Failure: http://buildbot.pypy.org/builders/rpython-linux-x86-64/builds/323 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6958 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
salotz[m] has joined #pypy
slavfox has joined #pypy
the_drow[m] has joined #pypy
lritter has joined #pypy
dddddd has joined #pypy
jcea has joined #pypy
jcea has quit [Remote host closed the connection]
jcea has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
<rjarry> is there a list of projects using CFFI somewhere? even if not exhaustive.
<lazka> rjarry, maybe this helps: https://libraries.io/pypi/cffi/dependents
<rjarry> lazka: awesome, thanks
<lazka> I guess there are many more not published to pypi (apps not libraries)
<lazka> so there is a bias there
<fijal> of course most recent pytest simply changed everything and does not load even
lritter has quit [Quit: Leaving]
lritter has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/5844 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
lritter_ has joined #pypy
lritter has quit [Ping timeout: 260 seconds]
ronan has quit [Ping timeout: 265 seconds]
ronan has joined #pypy
jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/5844 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
BPL has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/5845 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
i9zO5AP has joined #pypy
Ai9zO5AP has quit [Ping timeout: 240 seconds]
igitoor has quit [Ping timeout: 265 seconds]
igitoor has joined #pypy
rubdos has quit [Ping timeout: 246 seconds]
Taggnostr has quit [Quit: Switching to single player mode.]
Taggnostr has joined #pypy
igitoor has joined #pypy
igitoor has quit [Changing host]
rubdos has joined #pypy
xcm is now known as Guest80417
Guest80417 has quit [Killed (tolkien.freenode.net (Nickname regained by services))]
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/5845 [Carl Friedrich Bolz-Tereick: force build, intbound-improvements-2]
xcm has joined #pypy
igitoor has quit [Ping timeout: 240 seconds]
igitoor has joined #pypy
igitoor has joined #pypy
igitoor has quit [Changing host]
igitoor has quit [Ping timeout: 246 seconds]
xcm has quit [Remote host closed the connection]
alexge50_ has joined #pypy
xcm has joined #pypy
alexge50 has quit [Ping timeout: 256 seconds]
igitoor has joined #pypy
igitoor has joined #pypy
igitoor has quit [Changing host]
igitoor has quit [Ping timeout: 240 seconds]
igitoor has joined #pypy
igitoor has quit [Changing host]
igitoor has joined #pypy
tos9 has quit [Quit: Bye]
danilonc has quit [Quit: WeeChat 1.9.1]
tos9 has joined #pypy
danilonc has joined #pypy
jacob22 has quit [Read error: Connection reset by peer]
jacob22 has joined #pypy
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8144 [ronan: force build, py3-posix-fixes]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6959 [ronan: force build, py3-posix-fixes]
shodan45 has joined #pypy
dddddd_ has joined #pypy
dddddd has quit [Ping timeout: 246 seconds]
dddddd__ has joined #pypy
dddddd_ has quit [Ping timeout: 264 seconds]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/8144 [ronan: force build, py3-posix-fixes]
dddddd__ is now known as dddddd
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6959 [ronan: force build, py3-posix-fixes]
alexge50_ has quit [Quit: ZNC 1.7.5 - https://znc.in]
alexge50 has joined #pypy
YannickJadoul has joined #pypy
oberstet has quit [Ping timeout: 264 seconds]
KindOne has quit [Ping timeout: 256 seconds]
KindOne has joined #pypy
wleslie has joined #pypy
inhahe has quit [*.net *.split]
mgedmin has quit [*.net *.split]
bogner has quit [*.net *.split]
whitewolf has quit [*.net *.split]
rjarry has quit [*.net *.split]
jneen has quit [*.net *.split]
Lightsword has quit [*.net *.split]
bogner has joined #pypy
jneen has joined #pypy
inhahe has joined #pypy
mgedmin has joined #pypy
Lightsword has joined #pypy
whitewolf has joined #pypy
rjarry has joined #pypy
lritter_ has quit [Quit: Leaving]
<mattip> tumbleweed: do you know why stock python on Ubuntu has "-g" in the value of sysconfig.get_config_vars('CFLAGS')?
<mattip> (which queries the Makefile used to build python)
<tumbleweed> generally speaking things in Debian/Ubuntu are built with debug symbols enabled, and then they are stripped out into a separate binary package
<tumbleweed> (so they're available if you want to run gdb, later)
<tumbleweed> so, that'll by why it's there
<mattip> thanks, makes sense
<tumbleweed> urgh, that's the migration to the current implementation
<tumbleweed> but basically, the standard packaging tooling does almost all of the work to generate these separate packages
<tumbleweed> and they go into a separate archive, because they're huge
<mattip> so if people naively build a c-extension module and use the sysconfig.get_config_vars('CFLAGS') values, they should strip before shipping
<mattip> YannickJadoul: ^^^ do you do this in cibuildwheel?
<YannickJadoul> mattip: No, never encountered that
<YannickJadoul> But we use the manylinux images, and not Ubuntu
<YannickJadoul> Let me check if I find debug symbols in my wheels
<tumbleweed> I know fedora has debuginfo packages too, but I don't know the mechanism they build them with
<tumbleweed> one would assume they have to be buliding with -g, unless all packages were perfectly reproduceable, or they wouldn't get useful debug symbols
<mattip> multibuild tries to append "-Wl,-strip-all" to wheel building, but numpy was overriding that by mistake
<YannickJadoul> Yup, manylinux2010_x86_64's CPython 3.8 says `['-Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall']`
<mattip> pypy's is '-DNDEBUG -O2'
<YannickJadoul> So any idea what's the suggested thing to upload to PyPI?
<YannickJadoul> Because PyPI doesn't have separate debug symbol packages, ofc
<tumbleweed> makes sense to build without -g for pypi
<YannickJadoul> Right. I'll open an issue on cibuildwheel. Thanks for notifying! :-)
<tumbleweed> does the wheel linter check if binaries are stripped?
<mattip> or to strip before shipping, to make the developer experience nicer when rebuilding locally
<mattip> apparently not, numpy right now ships debug info
<mattip> (about the linter)
jacob22 has quit [Read error: Connection reset by peer]
<mattip> tumbleweed: here is the numpy issue/discussion
<mattip> somehow the desire to mangle sysconfig.get_config_var('CFLAGS') to pull out "-g" feels like the wrong hack
jacob22 has joined #pypy
<tumbleweed> dstufft: ^^ does PyPI have an opinion on debug symbols in wheels?
<dstufft> not really
<dstufft> maybe we should
<dstufft> but we dont currently
<tumbleweed> I guess not your bandwith :P
YannickJadoul has quit [Quit: Leaving]
<mattip> PEP 425 does mention that the ABI tag can add "d" for a debug version of python, but then your entire python stack must be built that way
<tumbleweed> that's a different thing
YannickJadoul has joined #pypy
<tumbleweed> it's --pydebug
<mattip> right
<tumbleweed> although in debian, we call it python-dbg (and it's unstripped), so that confuses everyone
<mattip> ahh, so if I do "python37-dbg --pip install numpy" it will look for the cp37d ABI tag?
<tumbleweed> it should, yes
<mattip> and will expect the --pydebug headers. Hmm, that indeed won't help here
<tumbleweed> also, 3.8 did away with this d flag: 810:Include/pydebug.h \
<mattip> so theoretically in a 3.8+ world, we could co-opt ABI tag 'd' to mean '-O0 -g" build with debug symbols'
<tumbleweed> maybe, yeah
YannickJadoul has quit [Quit: Leaving]
andi- has quit [Ping timeout: 240 seconds]
andi- has joined #pypy
dddddd has quit [Quit: dddddd]
<antocuni> OTOH, people have downloaded/installed numpy wheels with debug symbol without noticing and/or complaining about the code size until now, so why remove them?
<antocuni> they are useful e.g. in gdb and with vmprof
<antocuni> I have always been surprised to see numpy function names inside vmprof profiles (on CPython) because I always assumed that wheels were shipped without, but I never investigated the "issue"
<antocuni> now I understand why :)
i9zO5AP has quit [Ping timeout: 240 seconds]
BPL has quit [Quit: Leaving]
i9zO5AP has joined #pypy
jcea has quit [Remote host closed the connection]
jcea has joined #pypy