arigato 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 | mac OS and Fedora are not Windows
danieljabailey has quit [Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in]
Zaab1t has quit [Ping timeout: 244 seconds]
themsay has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
<Alex_Gaynor> fijal, arigato: Do either of you know off hand how expensive doing an overflow check is on different CPUs?
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
jcea has quit [Quit: jcea]
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
beystef has joined #pypy
beystef has quit [Quit: beystef]
altendky has quit [Quit: Connection closed for inactivity]
danieljabailey has joined #pypy
dddddd has quit [Remote host closed the connection]
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
illume has joined #pypy
xcm has quit [Remote host closed the connection]
xcm has joined #pypy
oberstet has joined #pypy
xcm has quit [Remote host closed the connection]
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
illume has joined #pypy
xcm has joined #pypy
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
illume has joined #pypy
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
_whitelogger has joined #pypy
illume has joined #pypy
arigato has quit [Quit: ZNC - http://znc.in]
arigato has joined #pypy
arigato has quit [Remote host closed the connection]
arigo has joined #pypy
arigo is now known as arigato
<kenaan> mattip unicode-utf8 069cf9f2f5b3 /TODO: remove done items from TODO
<kenaan> mattip unicode-utf8-py3 7b314aebd25c /: merge py3.5 into branch
<kenaan> mattip unicode-utf8-py3 e08614e7b2b3 /: merge unicode-utf8 into branch
<kenaan> mattip unicode-utf8-py3 c5c905981a21 /pypy/interpreter/unicodehelper.py: fix merge
<kenaan> mattip unicode-utf8-py3 914068c8b956 /: remove most runicode from pypy, refactor FormatErrorW, add utf8 to SocketError
<kenaan> mattip unicode-utf8-py3 18628545b899 /: win32 fixes, still uses runicode for str_decode_mbcs
<cfbolz> mattip: thanks for the reminder, I'll fix the regalloc test
<cfbolz> did you get home ok?
ajlawrence has joined #pypy
<kenaan> cfbolz default 413357a1f973 /rpython/jit/backend/x86/test/test_regalloc.py: make the test not fail we could do better here, but should be part of looking at some more examples of the result...
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
illume has joined #pypy
antocuni has joined #pypy
<antocuni> hi guys
<antocuni> unless there are objections, I'll send out the release announcement soon
<mattip> +1
<arigato> +1
<mattip> I did not follow completely the build situation, all the uploads (2.7, 3.5, 3.6) are updated to the proper tags?
<fijal> Alex_Gaynor: I would say "minimal"
<fijal> Alex_Gaynor: as in, usually we are chasing pointers and arithmetic units are just bored
<fijal> but it depends on your use case, do you mean pypy or something else?
ajlawrence has quit [Ping timeout: 256 seconds]
<mattip> float or int overflow?
<antocuni> mattip: the source tarballs are in sync with the release tag, which e.g. for 2.7 points to c8805ee6d784
<mattip> antocuni: good, and win32 is up-to-date as well?
<antocuni> some of the binary builds could point to the previous commit, but it doesn't matter as c8805ee6d784 is only relevant at translation time
<fijal> I assumed int
<antocuni> mattip: yes, win32 is the latest I built
<mattip> nice, thanks
<fijal> was great to have such a busy sprint
<Ninpo> BTW the performance "regressions" I suspected over the weekend were network variance. pypy 3.5 and 3.6 v7 are at least as quick as v6
<Ninpo> (for my use case anyway)
<Ninpo> Haven't got around to memory profiling yet, hopefully that'll be today
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
themsay has quit [Ping timeout: 272 seconds]
themsay has joined #pypy
illume has joined #pypy
_stian has joined #pypy
_stian has quit [Client Quit]
<kenaan> antocuni default 7d3116e601d5 /pypy/doc/release-v7.0.0.rst: fix broken links
<hruske> awesome!
<Ninpo> woohoo! :D
<Ninpo> Thanks so much for all the hard work
<Ninpo> "PyPy 6.0 was released in April, 2018." <- is this intended in the wording near the bottom?
antocuni has quit [Ping timeout: 272 seconds]
rguillebert_ has left #pypy [#pypy]
rguillebert has joined #pypy
<Ninpo> The linked download page still shows version 6
<rguillebert> congrats :)
<mattip> Ninpo: if you have bandwidth for experimenting, try the pypy 3.5 unicode-utf8 variant
dan- has quit [Ping timeout: 246 seconds]
<Ninpo> mattip: I do
<mattip> it should be faster than 3.5 v7
<Ninpo> What's different about this? My project is actually dealing with unicode etc
<Ninpo> ooh
<mattip> internally we do not do unicode-str-unicode conversions
<Ninpo> I take it the build is ubuntu only so I'll need to follow build instructions from source?
<mattip> yes sorry.
<Ninpo> Can I get a link to the source?
<Ninpo> I'll kick a build off now :)
<mattip> best way is hg clone https://bitbucket.org/pypy/pypy; cd pypy; hg update unicode-utf8-py3
<Ninpo> ok I'll start now. Ok to ask you here if I run into anything I'm not sure of? Always used squeaky's builds before
<mattip> sure, should be around for next couple of hours
<Ninpo> Are the build instructions on the download page still accurate?
<Ninpo> (dl page still refers to v6)
* mattip rebuilding web pages now
<Ninpo> thanks for the link
dan- has joined #pypy
dan- has quit [Changing host]
dan- has joined #pypy
<kenaan> mattip pypy.org[extradoc] 4915afa633dc /: rebuild pages
squeaky_pl has joined #pypy
<Ninpo> mattip: is it ok to use py35v6 during the build step?
<Ninpo> or do I need to grab 2.7
<fijal> 2.7
<Ninpo> rog
<fijal> whatever that means :)
<Ninpo> Roger.
<squeaky_pl> fijal, it' actually better to use CPython
<Ninpo> Understood, loud and clear etc
<Ninpo> oh is it?
<fijal> ugh
<fijal> no, i would not say so, why?
<fijal> it's 2.5x slower or so?
<Ninpo> pypy ../../rpython/bin/rpython --opt=jit <- for this part?
<squeaky_pl> because PyPy depends on some machinery in system Python to detect availability of some symbols
<fijal> yes, but it has not been a problem for a bit forever
<fijal> (and we changed some parts of it)
<squeaky_pl> if you translate with PyPy you can end up with a PyPy that is missing some things in os.*
<fijal> so no, I don't think so
<mattip> squeaky_pl: those should be considered bugs, if you still see any let us know
<squeaky_pl> fijal, maybe it changed, last time I checked was about 2 years ago, sorry for false alarm
<fijal> we attempted to fix that problem
<fijal> in case we didn't, then well please report bugs
<Ninpo> [platform:msg] Set platform with 'host' cc=None, using cc='gcc', version='Unknown' <- should this concern me?
<kenaan> cfbolz sys-getsizeof ce962d90778a /: close abandoned branch
<kenaan> cfbolz fix-longevity 147bb1ff2239 /: close branch, it's superseded by the merged regalloc-playground
<kenaan> cfbolz regalloc a343830b763a /: close branch, it's superseded by the merged regalloc-playground
<mattip> Ninpo: no. version is used only for win32 translation
<Ninpo> ok
<Ninpo> Just checking as I figure if I am building from source, march=native etc would be nice
<squeaky_pl> fijal, mattip, I'll try to translate with PyPy for upcoming releases and if I detect any missing stuff I will let you know
<kenaan> cfbolz bitset-intsets bfd90a10b38c /pypy/objspace/std/: in-progress: start implementing integer sets as bitsets
<mattip> since python2 must use MSVC9, but python3 must use MSVC 14 or more
<kenaan> cfbolz bitset-intsets 9481b4febfd0 /pypy/objspace/std/: implement difference and issubset
<kenaan> cfbolz bitset-intsets 6ce89c9c6bae /pypy/objspace/std/: fix update
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
xcm has quit [Remote host closed the connection]
<Ninpo> ok, translation in progress :)
<Ninpo> Wish me luck! :D
<Ninpo> mattip: I demand to know how you make this progress bar output so I can use it in my apps immediately :D
xcm has joined #pypy
<mattip> Ninpo: you mean the fractal?
<Ninpo> yeah
<nedbat> congrats on the 7.0 release, but the downloads page is still all about 6.0?
<Ninpo> you're about an hour late nedbat :D
* nedbat just catches up to Ninpo
<Ninpo> pages have been rebuilt, just not deployed by the looks
<mattip> nedbat: sorry, they should deploy soonish
<Ninpo> RTyping...
<Ninpo> this scrolling output is gorgeous
<mattip> it is in rpython/tool/ansi_mandlebrot.py
<mattip> it is in rpython/tool/ansi_mandelbrot.py
<mattip> and called via AnsiLogger.dot() whenever one of the tasks decides to emit a progress update
<squeaky_pl> I tweeted the x86_64 Linux portable release: https://twitter.com/squeaky_pl/status/1094933804043681798
<squeaky_pl> CC Antonio and his wheels project
<Ninpo> Safe to ignore?
<Ninpo> Thanks for the file path too
<mattip> which is considered "successful"
<squeaky_pl> BTW you guys should use more hash tags when tweeting releases
<squeaky_pl> Sounds lame but works
illume has joined #pypy
<Ninpo> hashtag pypy hashtag python hashtag jit hashtag pythongofast
<squeaky_pl> at least #python, many people follow this hashtag
jcea has joined #pypy
ajlawrence has joined #pypy
<Ninpo> build still going, good sign
<mattip> darn, the website is not updating
ajlawrence has quit [Quit: Page closed]
ajlawrence has joined #pypy
ajlawrence has quit [Client Quit]
<Ninpo> starting compile_c
ajlawrence has joined #pypy
<mattip> arigato: do you know how the pypy.org website is updating? it seems to be a vm on virt-y8pzvf.psf.osuosl.org
<ajlawrence> What is the best way to create a byte array buffer in cffi? I am currently using "char[]" but this results in a null terminated string.
<Ninpo> gah after all that time I had some errors
<Ninpo> I don't get it, I checked all the build deps
<Ninpo> ncurses5 and 6 with -devel packages installed
<Ninpo> tk-devel installed as well
<mattip> Ninpo: do you need curses ad tk? if not, just ignore the errors
<Ninpo> I've got openssl devel installed as well
<mattip> "PyPy can still be used as long as you don't need the corresponding modules"
<Ninpo> The _hashlib module is not available, falling back to a much slower implementation
<Ninpo> I'd rather get it right
<Ninpo> If the performance is markedly better I'll make a suse package
<mattip> let's attack one thing at a time - we can do packaging after
<Ninpo> Is it because I'm using openssl 1.1 not 1.0?
<Ninpo> mattip: sure :)
<Ninpo> so no I'm not overly bothered about the TK thing _right now_
<Ninpo> the haslib/openssl thing is a concern though?
<Ninpo> or is that normakl
<mattip> i think it is a spurious message left over from py2
* Ninpo double checks the stdio log you gave me
<Ninpo> you don't get that
<Ninpo> though I could have sworn it had all Trues at the top before it started, wish I'd redirected to a log file now
<Ninpo> hrm it did, but hashlib isn't listed like it is in the stdio log you gave mattip
<mattip> try './pypy3-c -c "import _pypy_openssl"'
marky1991 has joined #pypy
<Ninpo> mattip: no output
<mattip> ./pyyp3-c runs?
<mattip> so it imported properly, and the warning is spurious
<Ninpo> ok cool
<Ninpo> I take it I'm good to go then?
<mattip> yes. You should be able to use the libpypy3-c.so that you just created as a drop-in replacement for the current pypy3.5 one
<mattip> just back up the old one and copy the new one into the same directory
<Ninpo> pardon?
<mattip> you have a working pypy3.5 virtualenv for your application, right?
<Ninpo> you mean just copy that file from this build tree into where I've got current 3.5 v 7?
<Ninpo> I don't need the pypy bin or anything?
<mattip> yes, but back up the old one
<Ninpo> right
<Ninpo> 2 secs
<mattip> pypy3-c is a thin wrapper around the libpypy3-c.so
<mattip> and all the py, pyc, c-extensions should just work (famous last words)
someone1 has joined #pypy
someone1 has left #pypy [#pypy]
someone2 has joined #pypy
<someone2> hi
<Ninpo> mattip: hehe ok running some tests
<mattip> cfbolz, fijal, arigato: can someone look at why pypy.org is not pulling the latest updated pages?
<mattip> someone2: hi
<Ninpo> mattip: ok did a pip install -e . and got that py ssl error again
<someone2> is pypy only designed for implementing a dynamic language?
<mattip> Ninpo: maybe my last changes on that branch broke something
<Ninpo> doh
<Ninpo> It's not reliant on openssl 1.0 is it? I've got 1.1 and 1.1-devel installed here
<mattip> someone2: pypy is implemented in rpython which is designed for dynamic languages
<Ninpo> and I can't slot them
<mattip> Ninpo no, 1.1 should be good
<Ninpo> could I be missing something for hashlib itself?
<Ninpo> all the sles11 instructions said I'd missed was xz-devel which I added
<Ninpo> weird how it didn't fail in the goal dir
<Ninpo> I used the pypy 2.7 portable package provided by squeaky_pl for the build if that makes any difference at all
<Ninpo> says ssl already built
dddddd has joined #pypy
<mattip> Ninpo: let's try again later after I verify that version is valid
<Ninpo> doh
<Ninpo> ok
<Ninpo> mattip: Do you know when you'll get chance? I put a fair bit on hold this morning, just want to make sure I can set time aside again
<mattip> it should take a few hours to run the buildbots, the I probably have to fix something and run again. So 8 hours or so
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6015 [mattip: force build, unicode-utf8-py3]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7289 [mattip: force build, unicode-utf8-py3]
<Ninpo> oof ok. I'll keep an eye out but probably won't be until tomorrow now.
Rhy0lite has joined #pypy
<mattip> sorry, thanks for trying
<Ninpo> Out of interest what would the hashlib thing affect if anything? I'm hitting mysql via unix pipe atm
<mattip> probably nothing, if we have come this far it might be worth benchmarking anyway
antocuni has joined #pypy
<mattip> assuming it works
<mattip> antocuni: hi
<Ninpo> mattip: oh, trio needs it, guess I'll have to wait
Remi_M has quit [Remote host closed the connection]
<antocuni> mattip: hi
<Ninpo> Anything I can check in the build tree mattip? Is it just not bringing along the ssl module because of my other build failures? (tk, curses)
Remi_M has joined #pypy
<mattip> antocuni: I rebuilt the web pages but my browser is still showing the old v6 ones
<Ninpo> Mine is too fwiw
<antocuni> mattip: oh right, I forgot about the website, sorry :(
<mattip> antocuni: it is meant to update every 15 minutes or so, I think arigato can log in to the vm that hosts it
<antocuni> however, I have no idea how to force a refresh
<antocuni> mattip: I also realize now that I sent the announcement email only to pypy-dev; which other mailing lists should I send it to?
<mattip> blog post to morepypy, but only after the website updates
<antocuni> mattip: I already did the blob post
<mattip> ahh :( so now people will be confused
<antocuni> yeah, I fear so
<antocuni> sorry for that
<antocuni> this is yet another data point for my theory that everything should be more automated
<Ninpo> ./lib_pypy/_pypy_openssl.o exists mattip anything I can do with that?
<mattip> Ninpo: there should also be ./lib_pypy/_pypy_openssl*.so
<Ninpo> _pypy_openssl.pypy3-71-x86_64-linux-gnu.so
<mattip> but I fear it is only a symptom of the real problem, which is something else
<cfbolz> someone2: while it was designed for dynamic languages, it works for different ones too
<Ninpo> mattip: I fixed it
<mattip> Ninpo: ?
<Ninpo> I made a package and the problem went away. I noticed in my other envs there was a pypy openssl lib with the version 7 in the name
<Ninpo> and we only copied in the libpypy-c so
<mattip> ahh, so 71 vs 7
<mattip> sorry to mislead you
<Ninpo> yeah
<Ninpo> No worries :)
<Ninpo> running a test now
<mattip> about the website - I have reached out to #python-infra and they are starting to look up who has access to the machine
<mattip> github has github pages, which can host static websites. Apparently bitbucket does too, but only for git repositories?
<Ninpo> mattip: so this build munches my mysql result set into a dict much much faster, but overall run time (DB communication via threads) is almost twice as slow.
<Ninpo> 32.8s vs 50.2s
<antocuni> mattip: it would be enough to have a way to force-trigger a pypy.org update, and have a bitbucker pipeline which does it when we push
<mattip> I think that is what we have
* mattip checking
<mattip> maybe the hook changed
<antocuni> I don't see any bitbucket-pipeline.yml in the repo
<Ninpo> mattip: anything I can do here to help you see where the slowdown is?
<Ninpo> it has occurred to me for this to be a fair test I should build stable version 7
<mattip> Ninpo: what kind of db communication do you use? I know you said so a few days ago, can you repeat?
<Ninpo> pymysql via sqlalchemy_aio and trio, to a unix socket locally
<Ninpo> mattip: ^
<mattip> Ninpo: do benchmarks exist for trio? Maybe it is slower on the branch
<Ninpo> I can ask njs
<Ninpo> Oh he's here :)
<Ninpo> mattip: I'm going to build 35 v 7.0 though as I'm not comparing like for like, build wise. My v7.0 is the portable binaries made by squeaky_pl
<Ninpo> Whom earlier mentioned they build with cpython
<mattip> if that matters it is a bug
<Ninpo> mattip: a lot changing though in my comparison atm right? I'm building against different libraries, using pypy instead of cpython (and squeaky's pypy2.7v6) etc etc
<Ninpo> Don't want to give you duff info if it's as a result of the build process or some library I've got
oberstet has quit [Remote host closed the connection]
oberstet has joined #pypy
<fijal> Ninpo: it's rather unlikely
<fijal> Compared to the likelihood that something is off with pypy
<antocuni> fijal: do you know how to force an update of pypy.org?
<Ninpo> have faith :) besides it's free for me to check, I'm all in now anyway
<fijal> antocuni: no
<mattip> someone should have login access to virt-7tac5q.psf.osuosl.org
<antocuni> mattip: I don't
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6015 [mattip: force build, unicode-utf8-py3]
<mattip> Ninpo: you might get better results by going back a few versions on that branch, I seem to have broken some tests with my last commits
<mattip> Ninpo: 'hg up c0c8a1eba246'
<Ninpo> mattip: ah ok thanks, I'll do that after this v6 build finishes :)
<Ninpo> mattip: the pypy site docs (not readthedocs) mentions -r as a switch do I need that?
<antocuni> yes, "hg up -r <commit>"
<Ninpo> thanks antocuni
<Ninpo> I'm a git guy so double checking
altendky has joined #pypy
<arigato> sorry, it seems that none of us has got access
<antocuni> ouch
<antocuni> how was it updated so far?
<Ninpo> mattip: my build of 3.5-7.0.0 is also slower than squeaky_pl's build
<Ninpo> I'm going to try a cpython2.7 build
<mattip> Ninpo: the portable builds vendor in various libraries (the include the 'so's)
<Ninpo> Like it's almost twice the run time
<mattip> perhaps one of those is faster than your native libraries?
<mattip> the command line you use for building includes -Ojit ?
<Ninpo> Maybe. I'm about to rule out the cpython build approach then I'll look at how squeaky_pl builds their's
<Ninpo> yes
<mattip> strange
<Ninpo> pypy or python2 ../../rpython/bin/rpython --opt=jit
<Ninpo> as per the docs
<Ninpo> You promised me so much so long ago mattip xD
<Ninpo> hehe
<simpson> https://pypy.org/download.html#installing-numpy is promising. Is that only for the brand-new PyPy 7 release, or can I expect numpy to build alright on PyPy 6 too?
<antocuni> simpson: the latest numpy doesn't work with pypy 6
<antocuni> you need to use numpy==1.15.4 with pypy 6
<simpson> antocuni: Oh great, thanks.
<mattip> found the website login, it turns out authorized users are arigato, fijal, mattip, and Alex_Gaynor
<Alex_Gaynor> what am I an authorized user for?
<mattip> Alex_Gaynor: for pypy-home
<Alex_Gaynor> ah
<Alex_Gaynor> if you need SSH access, send a PR to the repo wherever the authorized users list is and CC me on it
<mattip> I can get in, now that I know which key to use. Now I can see the recipe fails since `hg pull` is too old
<antocuni> what do you mean by "too old"?
<mattip> error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
<Alex_Gaynor> mattip: what's `lsb_release -a` show?
<mattip> 12.04
<Alex_Gaynor> ooooof, that needs to be upgraded, that's just a massive risk. let me ping ernest
<mattip> Alex_Gaynor: thanks
<Ninpo> I'm still a bit of a green developer, but 20 year Linux Sysadmin if I can be of any assistance
<mattip> we should also get https onto that instance as well
<Alex_Gaynor> mattip: ok, ernest says he's on his way back from a conference ATM but will reach out later today
<antocuni> mattip: maybe you can copy html files by hand to update the website in the meantime?
<mattip> cool. I will leave a note with my request on #python-infra
<mattip> +1
<mattip> ok, website updated by hand
<antocuni> mattip: cool, thank you!
<mattip> we are number two on hacker news
<cfbolz> mattip: thanks for tracking this down!
<fijal> yay internet!
<antocuni> the comments on hacker news are kind of positive, surprisingly enough
<Rhy0lite> Congratulations on the PyPy 7.0 Release! Thanks for the continued support for Linux on Power and Linux on s390x.
<antocuni> it seems that scipy doesn't build on pypy 7? :(
<antocuni> near the end of the log file I see an AssertionError inside f2py
mikroskeem has joined #pypy
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7289 [mattip: force build, unicode-utf8-py3]
antocuni has quit [Remote host closed the connection]
<Ninpo> yeesh if ever there's a good indicator of how much faster pypy is than cpython, it's building pypy
antocuni has joined #pypy
<simpson> Ninpo: I've become in the habit of putting timers or tqdm or similar on my small scripts, and then the difference becomes visible. It's often 2-5x faster.
<antocuni> mattip: some of the links in the download page are broken :(
<antocuni> (my fault)
<antocuni> I'm fixing them now
<mattip> antocuni: scipy CI builds with latest nightlies on pypy3.5
<mattip> antocuni: push the page and I will copy-paste again
<kenaan> antocuni pypy.org[extradoc] 43d47b661208 /: fix the download links and regenerate HTML
<antocuni> mattip: links fixed and pushed
<mattip> antocuni: check now?
<antocuni> mattip: seems good, thanks again
<kenaan> mattip pypy.org[extradoc] 2cfb8fb9d732 /README: document the site update process
ajlawrence has quit [Quit: Page closed]
<cfbolz> antocuni: thanks for being the release manager!
<antocuni> not a particularly good one, admittedly :)
<marmoute> antocuni: did the release made it out ? Looks like yes
<marmoute> So, not too bad
<antocuni> yeah, it only took half a day to smooth all the issues, but too bad :)\
<antocuni> the fact that nobody reported the broken links should tell us something, btw
<antocuni> (not sure what)
<Ninpo> Er, I did
<Ninpo> Well I reported the v6 thing
<Ninpo> Just realised you meant the download links on the fixed v7 page
<antocuni> ah, I'm stupid of course
<Ninpo> I wasn't implying that!
<antocuni> nobody realized that the links were broken because nobody had a chance to see the v7 website anyway :)
<antocuni> Ninpo: sure, I was talking to myself
<Ninpo> hehe ok
<Ninpo> I follow the zen of python when it comes to insults (explicit etc) :D
<Ninpo> 19% away from finding out if it's my libs, or building on cpython that slows it down
<Ninpo> er not building it on cpython
<antocuni> don't worry, I surely didn't take it as an offense; the "I'm stupid" part was meant to be read together with the "nobody realized" part
<Ninpo> It's cool, I'm a dinosaur that struggles to get by in the more modern easy to offend people internet
<Ninpo> So I worry about that
<Ninpo> Appreciate you clearing it up :)
<antocuni> btw, pip install scipy works well on my machine, not sure why it fails on travis
<mattip> antocuni: numpy 1.16 changed the use of exec_command in f2py. It now calls Popen() rather than some really old thing
<mattip> which numpy is the travis recipe using?
<antocuni> mattip: I think it does a "pip install scipy" on a clean environment, so it automatically brings in numpy 1.16.1
Garen has quit [Read error: Connection reset by peer]
Garen has joined #pypy
<mattip> antocuni: you are building scipy==1.0.0 ? I think 1.2 has been released
<mattip> can we close release branches that have not been updated in more than 5 years?
<mattip> cfbolz: ^^^
<antocuni> mattip: oh, that's true. I am building BOTH scipy==1.0.0 and scipy (which collects 1.12.1)
<antocuni> but the error is about scipy==1.0.0
<antocuni> I suppose I can just avoid building scipy 1.0.0 for now
<mattip> +1
<cfbolz> mattip: yes please
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<mattip> did we ever get an issue out of the crashing example for cpyext that someone was working on at the sprint?
<Ninpo> hmm build process with cpython2.7 has been seemingly stuck for a long time at starting stackcheckinsertion, 100% cpu with lots of brk(0x55febe468000) type lines in strace, is this normal (and usually much faster on pypy?
<cfbolz> mattip: nope, will ping tim again
<cfbolz> Ninpo: yes it's probably normal, and yes faster on pypy
<Ninpo> rog
<Ninpo> I'll wait then :)
<mattip> <spam>
<kenaan> mattip default c080e584813c /pypy/module/zlib/test/test_zlib.py: skip test that crashes on old zlib version
<kenaan> mattip rmod-radd-slots ce5a8c7604a6 /: close abandoned branch
<kenaan> mattip ndarray-promote cf24682f0f6d /: close abandoned branch
<kenaan> mattip pypy3-release-2.6.x 7cf7426ddc77 /: close abandoned branch
<kenaan> mattip pypy3-release-2.3.x 25560ec3b2f5 /: close abandoned branch
<kenaan> mattip pypy3-release-2.4.x 072df3de15c5 /: close abandoned branch
<kenaan> mattip release-pypy3.3-v5 6dfb3af9716d /: close abandoned branch
<kenaan> mattip release-5.x 1ce3b640e7d7 /: close abandoned branch
<kenaan> mattip numpy_broadcast_nd a32aff107924 /: close abandoned branch
<kenaan> mattip cpyext-inheritance fba889ae9aaa /: close abandoned branch
<kenaan> mattip cpyext-debug-type_dealloc 91b5766bb8c6 /: close abandoned branch
<kenaan> mattip override-tp_as-methods 6e767f90b99a /: close abandoned branch
<kenaan> mattip matplotlib 6fcafa0bb5ea /: close abandoned branch
<kenaan> mattip win32-vmprof e4e1582c4390 /: close abandoned branch
<kenaan> mattip non-linux-vmprof-stacklet-switch-2 fa16a566a0a7 /: close abandoned branch
<mattip> </spam>
kipras has joined #pypy
<antocuni> mattip: am I supposed to send the release announcement to some mailing lists other than pypy-dev? The "how-to-release" mentions python-dev and python-annonce, but I can't find previous pypy announcement in the archives
ssbr has quit [Remote host closed the connection]
ssbr has joined #pypy
<Ninpo> mattip: well cpython2.7 build ruled out. Trying a build with squeaky_pl's docker build setup now
<squeaky_pl> Ninpo, the BUILD.rst is not updated, I'm guilty of not documenting the changes.
<Ninpo> squeaky_pl: no worries I'm working my way through. How easily can I make this use pypy for the build?
<Ninpo> Just overwrite the prefix64/cpython dir?
<squeaky_pl> you would need to change Dockerfile to download PyPy as last step and untar it somewhere
<squeaky_pl> then delete CPython compilation step from build_deps, and put pypy as python on your path
<Ninpo> Ok thanks
<squeaky_pl> as in symlink pypy as python
<Ninpo> yeah
<Ninpo> How are you adding the /opt/cpython bit to path?
marky1991_2 has joined #pypy
beystef has joined #pypy
<squeaky_pl> Ninpo, it's added in build and package to $PATH
<squeaky_pl> I dont remember why I needed it just there and not globally but there was a reason
marky1991 has quit [Ping timeout: 246 seconds]
antocuni has quit [Ping timeout: 268 seconds]
<Ninpo> wheyy and we're off
<Ninpo> squeaky_pl: a patch to curses failed, should I be worried?
<Ninpo> -""", libraries=['ncurses', 'panel']) + ncursesw
<Ninpo> squeaky_pl: aw you turn the mandlebrot off :P
<Ninpo> man alive the difference in speed on the rtyping/rtyper phase between pypy and cpython is utterly ridiculouas
<Ninpo> -a
<Ninpo> squeaky_pl: it looks like you have it in both places once for the build phase and once for the packaging part. Presumably so no system pythons interfered
<Ninpo> I'm building it with YOUR pypy2.7-v7 build :D squeakyception xD
<kenaan> stevie_92 cpyext-gc-trialdeletion 8ec9653041d2 /: Close branch cpyext-gc-trialdeletion.
asmeurer_ has joined #pypy
someone2 has quit [Quit: Page closed]
<squeaky_pl> Ninpo, that patch is different for pypy2 and pypy3, one of them always fail, I didnt turn off mandlebrot, Docker by default doesnt allocate TTY and translation toolchain turns it off automatically
<Ninpo> ahhhhh
<Ninpo> gotcha
<Ninpo> squeaky_pl: Incidentally I'm not long away from letting you know how building with pypy2.7 went :)
<Ninpo> I'm attempting to determine why your builds are a _hell_ of a lot faster than mine done on opensuse
<Ninpo> leap 15
<squeaky_pl> Ninpo, I'm using latest bleeding edge GCC, maybe that's a clue
<squeaky_pl> As in there is GCC 8.2 portable pulled into the build in the Dockerfile
<squeaky_pl> should not affect JIT but interpreter maybe
<arigato> mattip: sorry, missing links added to pypy.org/download.html
<Ninpo> squeaky_pl: ah potentially.
<mattip> arigato: ok, updating by hand
<mattip> arigato: done
<Ninpo> aaaand we're compiling! please don't be slow please don't be slow....
* Ninpo closes eyes and crosses fingers
<kenaan> rlamy Opcode-class 0cdae6b1a07e /: Close obsolete branch
<Ninpo> squeaky_pl: fwiw, the gcc version my build ran was 7.3.1
<Ninpo> squeaky_pl: hmm the package step falls over with find `pypy-` no such file or dir
<Ninpo> ah I was missing the revision argument
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
<Ninpo> Ok, moment of truth..
marky1991_2 has quit [Ping timeout: 240 seconds]
marky1991 has joined #pypy
<Ninpo> Argh it's still slower, what on earth...
<squeaky_pl> Ninpo, maybe that branch you are testing has a speed regression for your use case
<Ninpo> True, I'll try your build steps on a known good version. That said, it's running similar time as the version 7 I built by hand as a baseline (again, slower than your build)
<Ninpo> I checked building with cpython2.7 on my system that didn't make a difference either
<Ninpo> I wonder if it's an optimisation it's picking up for this CPU?
<squeaky_pl> Ninpo, during build time? I would expect JIT to be agnostic from the CPU used during build time.
<Ninpo> what about the gcc build
<Ninpo> oh I'm being dumb that's a portable build
<mattip> Ninpo: the same code runs faster when using squeaky_pl's build, even though both of you use the same version of pypy?
<mattip> s/use/build/
<Ninpo> I built that branch you gave me, I'm about to build 3.5-7 release
<Ninpo> Just weird that all of my builds so far have the same 20s or so performance regression
<mattip> no, not so weird if they all are building the same pypy version
<mattip> it would be weird if one build was faster
<Ninpo> they weren't all. I built a 7.0 release myself and that had the same issue
<Ninpo> so I built your build, had a performance regression. Built the earlier branch you gave me, same issue. Tried a version 7.0 build, same issue. So I tested with using cpython as squeaky_pl does, same issue. Now I just built your branch with squeaky_pl's build system, same issue. About to build 3.5-7.0 with squeaky_pl's build system using pypy2.7, and if that has the same issue, I'll use squeaky's build tool
<Ninpo> again with their defaults and go find something to do for a few hours :P
<mattip> ah. So all the locally built versions are slower, and only the downloaded is faster (so far)?
<Ninpo> so far yes
<squeaky_pl> is it even remotely possible that something from the host build system "contaminates" speed?
<mattip> can you compare the downloaded version's packaged *.so support library versions to yours?
<Ninpo> with an md5sum or something you mean?
<mattip> what os and version are you using?
<squeaky_pl> Ninpo, the files typically have SONAME encoded in ELF headers
<Ninpo> opensuse leap15
<Ninpo> squeaky_pl: starting to approach going over my head now, can you elaborate?
<mattip> in the portable package, there is a lib directory. It has various *.so files
<Ninpo> ah right
<Ninpo> ok
<squeaky_pl> I'm building everything on Fedora 29, the "OS image" inside docker is latest Centos 6 + gcc 8.2 with latest binutils, I package all the latest stable versions of libs.
<Ninpo> versions all look the same between squeaky_pl's 3.5-7.0 and my 3.5-7.1alpha
<Ninpo> even sizes
<LarstiQ> what exactly are you benchmarking to get this 20s slowdown?
<Ninpo> I'm timing run time on an app I've written to find utf8 bytes in mysql fields that are supposed to be latin1. Run time on py3.5 v6.0 and squeaky_pl's builds of py3.5v7 and py3.6v7 are all comparable around the 25s run time, I'm getting 45s+ on everything I've built so far
<Ninpo> an entire day in the hopes I could give mattip some real world feedback on the unicode branch xD the universe is out to get me
marky1991 has quit [Ping timeout: 246 seconds]
<fijal> Ninpo: at this stage the very obvious thing to do would be to compare the builds using something like valgrind
<fijal> you will immediately see, if it's in .so
<Ninpo> Yeah I'm building a release version with squeaky's tool now so I've got a proper baseline
<Ninpo> fijal: Though, I'd appreciate a pointer on how to do that?
<Ninpo> The valgrind part
<fijal> valgrind --tool=callgrind pypy foo.py
<Ninpo> oh, ha
<fijal> if you can't get around the output, send them to me fijall at gmail
<Ninpo> sure
<fijal> (the best tool for viewing them is kcachegrind)
<fijal> it slows down everything ~20x, so get your test smaller accordingly, if possible
<fijal> 20x, not 20%
<Ninpo> Does it wrap the thing while it runs or what? Do I need to be concerned about what it captures from runtime?
<Ninpo> data wise
<fijal> the run will output number of times each C function got called
<fijal> are your C functions data?
<Ninpo> Right ok
<fijal> (the output contains just that and relation who called who)
<Ninpo> okie dokie :)
<Ninpo> Just being careful, the stuff in the DB is potentially sensitive
<fijal> yeah sure
<fijal> I can definitely explain what every single output of profiling data contains :)
<fijal> at least the ones I ever wrote parser for ;-)
<Ninpo> :D
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6016 [Carl Friedrich Bolz-Tereick: force build, py3.6]
<bbot2> Started: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7290 [Carl Friedrich Bolz-Tereick: force build, py3.6]
<mattip> Ninpo: as far as the branch goes, it seems the answer (from your home-built results) is that the branch does not change the results
<mattip> but you have moved on to a different question, which is "why are your builds slower than squeaky_pl's"
<fijal> if the branch does not change the result, then your bottleneck is probably not in pypy
<fijal> er, not in utf8/unicode handling
<fijal> which is very fair if you use sqlalchemy - I would not expect it to be there
Rhy0lite has quit [Quit: Leaving]
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
squeaky_pl has quit [Remote host closed the connection]
<Ninpo> OK, finally after cleaning up my pyenv stuff, using squeaky_pl's build tools to build release 3.5-7.0.0, the regression is gone
<Ninpo> However I think I may have an answer, about to test
<Ninpo> yep
<Ninpo> mattip: resolved it
<mattip> Ninpo: ?
<Ninpo> pyenv virtualenv relies on a `python` being available in the pypy version....building today was only creating pypy and pypy3.5
<Ninpo> so virtualenv was building my entrypoint to cpython3.6
<Ninpo> the downloaded builds have the python symlink
* Ninpo facepalms repeatedly
<mattip> :(
<Ninpo> A WHOLE DAY
<Ninpo> lmaooo
beystef has quit [Quit: beystef]
<mattip> ok, now you know pypy is faster than cpython. Is the pypy branch any different than the recent v7?
<Ninpo> About to test
<mattip> :)
<RemoteFox> is it now with new version possible to use python3.x for my rpython project?
<Ninpo> mattip: on the short test it's no slower, checking the longer runtime now
<simpson> RemoteFox: No, RPython is still a subset of Python 2. What are you working on?
<simpson> RemoteFox: Ah, cool.
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/6016 [Carl Friedrich Bolz-Tereick: force build, py3.6]
<Ninpo> I can't believe after all that, I was running cpython every time. Oh my stars.
<simpson> Happens.
<Ninpo> mattip: btw, one thing I have noticed, from today, my tqdm progress bar I use when my code turns my list of tuples from sqlalchemy results into a dict, tqdm says about 200k items per second...it's around 50k in pypy (various versions)
<Ninpo> mattip: ok so performance on my small dataset is about the same, it seems consistently 10s faster on the set that was taking 4m35s or so
<Ninpo> I'm going to kick off a native build again and see if being non portable is any quicker.
<mattip> you might want to reduce your use of tqdm, I seem to remember someone saying it is not pypy freindly
<Ninpo> Me and njs probably
<Ninpo> I did ditch it for the runtime progress bar
<Ninpo> it was causing a lockup on threading
<Ninpo> I just chuck a count out to stderr occasionally now. Not as pretty but does the job.
<Ninpo> Now I want to use mandlebrot :D
<Ninpo> mattip: so anything I should be wary of with this special branch?
<mattip> lists to dictionaries should be fast. Are the keys all one kind: int, unicode, ascii ?
<mattip> Ninpo: no, it should just work faster with strings
<Ninpo> and now my issues are sorted (apart from not being able to pull in tcl/curses) any reason to not use the first one you gave me?
* mattip forgot, which one?
<Ninpo> the first one that you thought was broken when it wasn't pulling in ssl, but it was once I made a package
<Ninpo> it had a proper name, unicode something. Then you gave me c0c8a1eba246 to try
<Ninpo> mattip: ironically on the longer run time we're now 20s or so faster, pretty consistently. That's just on one DB out of a thousand or so as well, so exponentially that'll be nice.
<Ninpo> oh and the list is a list of tuples in each tuple it's just string keys and values. The bulk of data processing grabs a HEX representation of text fields (text, char, varchar), binascii.unhexlifies, then tries to decode as ascii then as utf8 (then will run ftfy on it later)
<Ninpo> er in each tuple it's just strings, I presume ascii, not sure what come back from mysql natively, possibly unicode
<Ninpo> since I munch on a _lot_ of strings after I have the result set (async generator, fetchmany)
<mattip> can you just decode to utf8, why both that and ascii?
<mattip> if it is ascii, then utf8 == ascii
<Ninpo> I'm looking for utf8 in latin1. If it decodes fine as ascii I know it's OK. If it fails to decode as ascii, I know I've got non ascii bytes in there. If they're latin1, it should fail if I decode with utf8. If it succeeds, I've a high chance I've found mojibake.
<Ninpo> This poor DB has been abused and one of the problems is a horrible mix of encodings from the app that talks to it. The app is being fixed, I've taken on the job of fixing the data.
<Ninpo> mattip thanks so much for your time today, I'm sorry I wasted so much of it
<Ninpo> squeaky left, if they come back and I'm not around please pass on my thanks there too.
<mattip> :)
<Ninpo> At least tomorrow I can build a native build and know the symlink caveat
<Ninpo> did I miss a package option or something? I noticed squeaky's downloads have the syms in
<mattip> it sounds like you could try scanning the string rather than decoding on pypy
<Ninpo> How do you mean?
<Ninpo> check the raw bytes?
<mattip> [ord(x) > 127 for x in s] or for latin-1 [ord(x) > 255 for x in s]
<Ninpo> I was doing that and it took a _lot_ longer. I had a if any(ord(c) > 127 for c in binascii.unhexlify(textfield) or something along those lines
<Ninpo> I could see if it's faster with your build, I've still got that revision somewhere
<mattip> on pypy it took longer?
<mattip> or cpython
<Ninpo> pypy
<Ninpo> I had the if any on both at first, I didn't switch to decoding the whole thing until later
<Ninpo> I can try again tomorrow though, I've just put it on my list
<mattip> huh. interesting
<Ninpo> Some of the strings are massive text fields, I'd assume walking an iterator that far if no chars found at some point would be a diminishing return
<Ninpo> we're talking a good 3TB of text data overall
<Ninpo> Happy to try it again tomorrow though once I've licked my wounds :P
<mattip> so do it explicitly, for c in ...: if c > 127: break else:
<mattip> so it will early exit
<Ninpo> won't any() early exit then?
<Ninpo> if any(ord(char) > 127 for char in binascii.unhexlify(row[0]).decode('utf-8')):
<Ninpo> That's what I originally had
<mattip> why decode?
<Ninpo> it's bytes
<Ninpo> and I was under the impression that was the way to do it because if I got a unicode decode error, it wasn't utf8
<Ninpo> and if it did decode, walk it for higher than acii
<Ninpo> er ascii
<Ninpo> does ord(char) work on bytes/handle multibytes?
<Ninpo> I'll investigate tomorrow :)
<Ninpo> Thanks a bunch
<mattip> multibytes means something is over 256
<Ninpo> yeah but latin1 bytes are OK
<Ninpo> utf8 aren't
<Ninpo> oh I keep confusing, not latin1, mysql latin1, so cp1252
<Ninpo> besides, for the actual _fixing_, I need to decode it as utf8 to use ftfy on it
<Ninpo> For the probe I'll have a play. Thanks mattip
<Ninpo> o/
<mattip> anyhow, [c for c in b'abc'] gives [97, 98, 99] so no ord needed
<cfbolz> Ninpo: if you want to try again, probably the explicit loop is really much faster than any with a generator expression
asmeurer_ has quit [Quit: asmeurer_]
<bbot2> Failure: http://buildbot.pypy.org/builders/own-linux-x86-64/builds/7290 [Carl Friedrich Bolz-Tereick: force build, py3.6]
marky1991 has quit [Read error: Connection reset by peer]
Garen has quit [Read error: Connection reset by peer]
Garen has joined #pypy
<Ninpo> cfbolz: Well the generator is for feeding from the DB, some of the result sets are _massive_
<mattip> Ninpo: can you show in a pastebin (not here) what your processing of row[0] looks like?
<mattip> including the call to ftfy
<Ninpo> About to go to bed but I'll share what I can tomorrow. Not calling ftfy yet, getting the scan code right still.
<mattip> ok, me too
* mattip zzz
<Ninpo> I still had pycharm open
<Ninpo> That's the meat of it
<Ninpo> Have a good night mattip :)
<Ninpo> still very much in test/design stage
igitoor_ has joined #pypy
nimaje1 has joined #pypy
nimaje has quit [Killed (rajaniemi.freenode.net (Nickname regained by services))]
oberstet has quit [Quit: Leaving]
tos9_ has joined #pypy
igitoor_ has joined #pypy
igitoor_ has quit [Changing host]
webmeister_ has joined #pypy
arigato has quit [*.net *.split]
ronan has quit [*.net *.split]
igitoor has quit [*.net *.split]
hexa- has quit [*.net *.split]
tos9 has quit [*.net *.split]
stillinbeta has quit [*.net *.split]
Alex_Gaynor has quit [*.net *.split]
avakdh has quit [*.net *.split]
infernix has quit [*.net *.split]
krono has quit [*.net *.split]
phlebas has quit [*.net *.split]
webmeister has quit [*.net *.split]
starlord has quit [*.net *.split]
tos9_ is now known as tos9
igitoor_ is now known as igitoor
Curi0 has quit [Ping timeout: 246 seconds]
Curi0 has joined #pypy