#pypy IRC log for Wednesday, 2012-02-22

davisagli (~davisagli@davisagli.com) left irc: Excess Flood00:03
davisagli (~davisagli@davisagli.com) joined #pypy.00:04
sunoano (~sa@unaffiliated/sunoano) left irc: Quit: Leaving.00:09
nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 240 seconds00:10
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy.00:14
mat^2 (mathias@87.55.0.198) left irc: Ping timeout: 272 seconds00:15
DasIch (~DasIch@p3E99155C.dip.t-dialin.net) left irc: Quit: DasIch00:20
voidspace (~voidspace@python/psf/voidspace) left irc: Quit: Goodbye...00:27
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Ping timeout: 240 seconds00:31
dmalcolm (~david@c-24-128-191-171.hsd1.ma.comcast.net) joined #pypy.00:31
squiddy (~squiddy@f053087042.adsl.alicedsl.de) left irc: Quit: Leaving00:45
mjacob (~foobar@p57A8C0C6.dip.t-dialin.net) left irc: Quit: leaving00:47
nedbat (~nedbat@python/psf/nedbat) joined #pypy.00:51
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 260 seconds00:51
fijal (~fijal@c-76-120-66-180.hsd1.co.comcast.net) joined #pypy.00:53
rhn_mk1 (~rhn@5acba580.bb.sky.com) left irc: Remote host closed the connection00:55
fijalAlex_Gaynor: sad00:55
fijalAlex_Gaynor: what?00:55
fijalAlex_Gaynor: native fmttable is ok no?00:55
fijalit's just that we don't unroll loops00:56
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 240 seconds00:56
fijaltoo many copies as well00:56
Alex_Gaynorfijal: it copies bytes into a static buffer00:56
fijalinstead it should cast the original buffer and read it from there00:57
fijalI think I know where it comes from00:57
Alex_Gaynoryes, except you have a string00:57
Alex_Gaynorso you can't cast the buffer00:57
fijalI'm afraid I wrote it even ;-)00:57
fijalwhy not?00:57
Alex_GaynorI mean you can00:58
Alex_GaynorI guess rffi has a thing fo rit?00:58
Alex_Gaynorexcept it'll still copy sometimes00:58
fijalmeh01:00
fijalso much stuff to speed up so little time01:00
fijalno wonder this stuff is slow01:00
Alex_GaynorYes, this is a place of RPython that isn't so nice, IMO01:00
fijalwe're kind of paying the price for "implement a python interpreter as fast as possible"01:00
fijalas in fast in human time01:00
Alex_Gaynorworks ok01:01
thurloat (thurloat@blk-222-81-113.eastlink.ca) left #pypy ("not irc, I am in you.").01:01
Alex_Gaynorfijal: too bad there's no way to get a char* without it being nonmoving already01:03
fijalAlex_Gaynor: you can cast it01:04
Alex_Gaynorfijal: I mean yes you can do cast_ptr_to_adr(llstrtype(data)) + \01:05
Alex_Gaynor                offsetof(STRTYPE, 'chars') + itemoffsetof(STRTYPE.chars, 0)01:05
Alex_Gaynorbut then if it moves you have a problem01:05
fijalbut it does not move01:05
Alex_Gaynor(like if we get a parallel GC or so)01:05
fijalyou cannot do anything GC related for a bit and you're good01:05
fijalwell01:05
fijalwe have more than one spot where this happens01:05
Alex_GaynorI don't want to debug that if we get one.01:05
Alex_GaynorDo we?01:05
Alex_GaynorWhere?01:05
fijalleave a comment "carefully not move it"01:05
fijalyes01:05
fijallike arraycopy01:06
Alex_GaynorI guess I'll add get_nonmovingbuffer_unsafe or so to rffi.py?01:06
fijalno01:07
fijalplease leave it inline or something01:07
fijalwith "# <start GC unsafe zone>01:08
Alex_Gaynork01:08
Alex_Gaynorwhat about doing the reverse, pack?01:08
Alex_Gaynoryou need basically stringbuilder.append_length(&float, 8) or so01:09
fijalyes, something like that01:11
fijalexcept you cannot do that at all :)01:11
fijalI think the reverse has to stay01:12
Alex_GaynorToo bad.01:12
fijalhm01:12
Alex_GaynorWe should make that doable in RPython, somehow01:12
fijalI fear so01:12
fijalmaaybe01:12
fijalah01:12
fijalAlex_Gaynor: can't you do something like a with statement or so?01:12
Alex_GaynorRPython is kind of not a phenomenal language for this stuff?01:12
fijalno01:12
Alex_Gaynor"Something like a with statement"01:12
Alex_Gaynorcan you be a little more vague ;)01:13
fijala little less I guess01:13
Alex_Gaynorsyntax isn't a substitute for semantics01:13
fijalI'm thinking loud01:13
fijalI guess leave it as it is for now01:13
fijalat some point we have to revamp files and stuff01:13
Alex_GaynorWell I'm not doing anything ATM01:13
fijallike structs, IO, sockets etc.01:13
fijalok01:13
fijaland make it fast01:14
fijalAlex_Gaynor: ah01:14
Alex_GaynorYes, I think we need pinning and zero padded strings01:14
fijalAlex_Gaynor: if you get bored one day, can you come up with a web app?01:14
fijalyes01:14
Alex_GaynorThat will make everything 100% easier01:14
fijalif we have pinning, we're good01:14
fijalit's on my todo list, after pycon though01:14
Alex_GaynorWhat do you want my web app to do?01:14
fijalI want to measure memory01:14
fijalso run something on pypy is good01:14
fijalI suspect ctypes to hog a lot01:15
fijalso something with a db01:15
fijaldjango admin?01:15
Alex_GaynorI don't have time for extra projects, why not just pick an open source web app?01:15
fijalyeah01:15
fijal:]01:15
Alex_GaynorBTW we need to work on tutorial more01:15
kenaan_12fijal default 11b6874c42c2ff 15/pypy/tool/jitlogparser/parser.py: fix the assembler names01:16
kenaan_12fijal default 118c669112ced4 15/: merge01:16
fijalyes01:16
fijalafter my tomorrow's talk though01:16
Alex_Gaynorsure01:16
fijalI mean I won't do stuff before my tomorrow's talk01:16
fijalfeel free to do it yourself ;-)01:16
fijalbut I'm sure you don't need my permission01:16
fijalAlex_Gaynor: if you want to help, you can prepare a mail to participants01:16
fijalasking for OS project preferences01:16
fijalmaybe as a list?01:17
Alex_GaynorAnd about numpy01:17
fijalyes01:17
Alex_GaynorDo we have a list to choose from?01:17
fijalno01:21
fijalmaybe write down something like01:21
fijal"please list 5 open source project you want pypy to speed up in order of preference"?01:21
Alex_GaynorOk01:21
fijalwe need to write artificial examples as well01:21
fijalwhat's bad what's better01:21
fijalE           (application-level) TypeError: unsupported operand types for format: 'float64', 'str'01:22
fijalare we supposed to have a failing test on trunk?01:22
Alex_Gaynorfijal: yes, I pushed it this morning01:22
Alex_Gaynorbecause I couldn't figur eout wtf is going on01:22
Alex_Gaynorthe class has __str__ and __repr__01:22
nettok (~quassel@190.148.234.217) joined #pypy.01:25
kenaan_12pjenvey extradoc 1112a4ad40ab30 15/talk/sea2012/talk.rst: legal counseling01:25
harrisonhttp://2.bp.blogspot.com/-ezWSh-RMbtA/T0Q8ohltnRI/AAAAAAAAlYU/IumUR2RVR-Y/s400/%2521Rahm-Emanuel-children.jpg01:25
harrisonrahm emanuel as hitler01:25
harrisonhow h8ful01:25
Alex_GaynorThis really isn't an appropriate place for that.01:26
kenaan_12alex_gaynor extradoc 113dca0a7b9146 15/talk/pycon2012/tutorial/emails/01_numpy.rst: more text01:26
kenaan_12alex_gaynor extradoc 11ba04f56772e5 15/: merged upstream01:26
harrisonoh sorry wrong channel i profusely apologize01:26
davisagli (~davisagli@davisagli.com) left irc: Excess Flood01:26
Alex_Gaynorfijal: does the email text look ok?01:26
davisagli (~davisagli@davisagli.com) joined #pypy.01:27
fijalAlex_Gaynor: looking01:29
fijalAlex_Gaynor: WTF?01:30
Alex_Gaynor?01:30
fijalwith the format01:30
Alex_Gaynorit's an email. what's the issue?01:31
fijalno, with the numpy format01:31
Alex_GaynorOh, yeah I couldn't figure it out01:31
fijalAlex_Gaynor: so with the email it does not contain information how to get back to us01:31
Alex_GaynorI assume Stuart provides that?01:31
fijalno01:32
fijalI don't know01:32
fijalhe protects privacy01:32
fijaland privacy is most protected if you have your computer turned off01:32
fijalor something01:32
Alex_GaynorAh, does it need __format__ I think01:32
fijaluh01:33
fijalAlex_Gaynor: it does call float.__format__01:33
fijalbut with the wrong kind of self01:33
Alex_Gaynorah, ok01:33
Alex_Gaynormakes sense I guess01:33
Alex_GaynorI'll add __format__ then, in a few minutes01:34
fijalcool01:34
Alex_Gaynorfijal: what email should I put for you int his?01:35
fijalours?01:35
kenaan_12fijal extradoc 118c327578c393 15/talk/: missing letter and some more slides01:35
fijallike me you & armin?01:35
Alex_GaynorYes, what email is yours?01:35
Alex_Gaynorfijall@gmail?01:35
kenaan_12fijal default 11126806ef2466 15/pypy/module/micronumpy/interp_support.py: add a jitdriver here01:36
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/7401:36
Alex_Gaynorfijal: can't we make that somehow use frame or make it pure python01:37
bbot24Failure: 15http://buildbot.pypy.org/builders/cpython-2-benchmark-x86-64/builds/2201:37
fijalyeah01:37
fijalAlex_Gaynor: yeah, we can make it use a frame01:38
fijalbut this would require an extra array and an extra signature01:38
fijalis it worth it?01:38
Alex_Gaynorwhy would it require an extra array?01:38
fijaland there is no expression tree anyway01:38
fijalyeah01:38
fijalwe have to somehow reduce the boilerplate01:38
fijalI'll remove all those jitdrivers eventually01:38
fijalI promise :)01:38
Alex_Gaynorok good01:38
Alex_Gaynoris fijall@gmail your email?01:39
fijalyeah01:39
Alex_Gaynork01:39
kenaan_12fijal backend-vector-ops 1176bf35c876fa 15/: merge default01:39
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/106601:39
fijaloops, I broke one benchmark01:40
Alex_Gaynorfix it? ;)01:40
fijalyeah did it01:40
fijalI started a translation01:41
fijalforgetting I'm in states01:41
kenaan_12alex_gaynor extradoc 113f98dbfa8ce3 15/talk/pycon2012/tutorial/emails/01_numpy.rst: return address01:41
kenaan_12alex_gaynor extradoc 1181cb6c1cc6b2 15/talk/: merged upstream01:41
Alex_Gaynorfijal: yay, finally a pypy developer on my half of the world01:41
fijalhttp://plope.com/pyroptimization01:42
fijalso01:42
fijalpeople are measuring stuff by number of profiler output01:42
fijalline01:42
fijals01:42
Alex_Gaynorlulz01:43
fijalthat's a measure01:43
timotimooh, that's a thing?01:45
timotimoa shame, though, that pypy does "agressive inlining"01:45
timotimothat should make the difference shrink by quite a bit, right?01:46
fijaltimotimo: no01:46
fijalthe profiler output is the same01:46
fijalanyway01:46
timotimoi thought the argument went "there are more profiler lines, that means there are deeper nested function calls or more different functions, thus there is more function calling overhead"?01:47
fijalone day I'll write a really fast web framework/http server01:47
fijalit'll violate every abstraction and have horrible API01:48
timotimoand if i understand the tracing compiler right, each function call gets turned into one or two guards01:48
fijaltimotimo: I have no idea what it means01:48
fijaltimotimo: it vastly depends what you actually do01:48
bbot24Failure: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/81401:48
fijaltimotimo: if you have a loop in each it'll be pretty annoying01:48
fijaltimotimo: if you pass a very general **args, same thing01:48
Alex_Gaynorfijal: def f(**kwargs): return kwargs["item"] f(item=3) doesn't allocate a dict :]01:49
fijalAlex_Gaynor: right but if you do01:49
fijald = {}01:49
Alex_Gaynoryes, of course01:49
fijald[some_strange_thing]...01:49
kenaan_12alex_gaynor default 11dde74845c41f 15/pypy/module/micronumpy/: make numpy boxes work with str.format01:49
fijaletc..01:49
kenaan_12alex_gaynor default 116dd80b3ec992 15/pypy/: merged upstream01:49
fijalthanks01:49
CIA-8003agaynor 07roundup * 10#1066/numpypy can't print float64's: [resolved] Fixed in dde74845c41f * 14https://bugs.pypy.org/issue106601:50
fantasticsid (~user@178.18.16.11) joined #pypy.01:50
fijalAlex_Gaynor: btw, ipython notebook is pretty slick01:51
Alex_Gaynorcool01:51
timotimoit really is!01:52
fijaltimotimo: have you tried using sympy with it?01:52
timotimono, i thought sympy brings its own notebook-like thingie?01:52
fijaldoes it?01:52
fijalyou do01:53
fijal%load_ext sympy_printing01:53
timotimooh01:53
fijalor sympyprinting I think01:53
timotimoi think i saw that in the examples01:53
timotimoespecially for quantum mechanics it looked sweet01:53
fijaland it tex-renders your expressions01:53
timotimoyup01:53
fijaltimotimo: feel like finding me some examples by tomorrow?01:54
fijalI want to show scientists01:54
timotimoah, the Sage Notebook is what i was thinking of01:54
timotimothere are example notebooks in the source distribution of ipython01:54
timotimothose are the only ones i saw until now01:54
fijalsage was ugly01:54
fijallast time I looked01:54
timotimoi never looked ;)01:54
jyp (~interrupt@175.197.245.105) joined #pypy.01:54
timotimoP.<x>=PolynomialRing(GF(4,"a"),"x") <- that is python code?01:55
fijaldoes not look like it01:56
timotimois sage based on the python interpreter at all?01:56
fijalI have no idea01:56
timotimoapparently it is. i'm confused01:57
jyp (~interrupt@175.197.245.105) left irc: Remote host closed the connection01:57
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection01:58
timotimobut anyway. look at the example notebooks in the source distribution. they are in docs/examples/notebooks/01:58
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/37402:00
bbot2Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/201102:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/73102:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/40302:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/71502:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/125402:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/89902:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/155802:00
bbot2Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/83702:00
azanella (~azanella@187.21.5.187) left irc: Ping timeout: 265 seconds02:00
Alex_Gaynorfijal: if the email looks good, I'm going to send it to stuart02:03
berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) left irc: Read error: Connection reset by peer02:03
berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) joined #pypy.02:03
fijalAlex_Gaynor: cool02:05
Alex_Gaynorfijal: sent02:05
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy.02:11
fijalcool02:17
Action: fijal uses speed.python instead02:18
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/40302:19
Alex_GaynorRhyolite: ping02:19
fijalAlex_Gaynor: the annoying part is that this is *actually* a useful way to use this server02:19
Alex_Gaynorfijal: what is?02:19
fijaldoing translations02:19
RhyoliteAlex_Gaynor: pong02:19
fijaltesting STM etc.02:19
Alex_GaynorRhyolite: can you explain to me what I need to do to get a working mpfr compile?02:20
Alex_GaynorSo far I've compiled gmp with ./configure && make02:20
Rhyolitedo you want to give me access to tannit and try to help?02:20
fijalRhyolite: you can have access to tannit either way02:20
Alex_GaynorI'd be happy to, I don't know how, fijal can you give Rhyolite access to tannit?02:21
Rhyoliteyou basically need to build gmp and install it02:21
weirdowhat's with that build failure?02:21
Rhyolitethen configure mpfr pointing at the install and gmp build directory (I think)02:21
Rhyolitebuild mpfr and install it02:21
Rhyolitein the same location as gmp02:21
weirdois it my fault or is the nightly broken?02:21
Alex_Gaynoragaynor@tannit:~/src/mpfr-3.1.0$ ./configure --with-gmp=../gmp-5.0.4/02:21
Alex_Gaynorconfigure: error: gmp.h can't be found, or is unusable.02:21
RhyoliteI think configure defaults to /usr/local02:21
Alex_GaynorIs what I get02:21
Alex_Gaynorgmp-5.04 is where I did ./configure && make02:22
weirdoguys?02:22
fijalAlex_Gaynor: can you not compile gcc when benchmarks are running?02:22
fijalweirdo: no idea02:22
Alex_Gaynorfijal: ah yes, absolutely (this is why we should move all benchmarks to speed.python)02:22
fijalwe cannot move benchmarks to speed python02:23
fijalwithout doing some work for cpython02:23
fijalI think02:23
fijalRhyolite: see pm02:23
Alex_GaynorSo let's do work or something02:23
fijalyeah, you do it ;-)02:23
RhyoliteAlex_Gaynor: did you install GMP?02:23
Rhyolite"make install" ?02:24
Alex_GaynorRhyolite: no, I didn't, should I?02:24
Rhyoliteyes02:24
RhyoliteThen you do02:24
Rhyolitein MPFR02:24
berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) left irc: Remote host closed the connection02:24
Alex_Gaynorok, will do, after benchmarks finihs02:24
unbit (~unbit@93-58-162-185.ip159.fastwebnet.it) left irc: Ping timeout: 245 seconds02:24
Rhyolite./configure --with-gmp=<installdir> --with-gmp-build=<gmpbuilddir>02:24
Rhyolitein other words02:24
Rhyolitecd mpfr-3.1.002:24
Rhyolite./configure --with-gmp=/usr/local --with-gmp-build=../gmp-5.0.402:25
Rhyolitemake02:25
Rhyolitemake install02:25
Alex_Gaynorerr, so I'll need to sudo make install?02:25
Action: Alex_Gaynor was trying to avoid a global installation02:25
fijalinstall it globally02:26
fijalit's "fine"02:26
Alex_Gaynorok02:26
Rhyoliteor you can build it yourself02:26
Rhyolitego back to gmp02:26
Rhyolitecd gmp-5.0.402:26
Rhyolite./configure --prefix=$HOME/install02:26
Rhyoliteor --prefix=$HOME02:27
Alex_GaynorI'll probably do that, I don't trust myself not to break stuff02:27
Rhyoliteor wherever you want things installed in your home directory02:27
weirdoor $(pwd)02:27
Alex_GaynorGod, this makes me wish for a pip + virtualenv style setup for C02:28
Rhyoliteyes02:28
Rhyolitethat essentially is what you are creating02:28
Alex_GaynorYeah, I want a system for it :)02:28
Rhyolitebut gmp and mpfr don't make much of a mess02:28
Rhyoliteso installing globally is not that dangerous02:29
fijalit's not KDE02:29
fijalinstalling gcc globally can make a mess though02:29
Rhyolitefijal: yes, if you override the system version02:30
Rhyoliteagain, configure defaults to  /usr/local02:30
Rhyoliteso unless that is in your default path, it doesn't conflict02:30
RhyoliteAh, BSD directory structure history ...02:30
Alex_GaynorSoo, who's going to make virtualenv+pip for C?02:31
unbit (~unbit@93-58-162-185.ip159.fastwebnet.it) joined #pypy.02:33
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 252 seconds02:46
fijalAlex_Gaynor: any idea why does test_copy segfault these days?02:47
Alex_Gaynorfijal: uh, test_copy where?02:47
Alex_Gaynorfrom lib-python?02:47
fijalonly on vector branch apparently02:47
fijalAlex_Gaynor: numpy one02:48
Alex_Gaynorno, because you broke something in vectorization, I guess02:48
Alex_Gaynor(can we vectorize a copy?02:48
fijalno no no02:48
fijalnot uncompiled at least :)02:49
cdidd (~cdidd@93-80-122-87.broadband.corbina.ru) left irc: Remote host closed the connection02:51
fijalE           (application-level) AssertionError: assert <bound method ndarray.all of array([True, True, True, True, True, True, True, True, True, True, True, True, True, True, True])>()02:53
dracman (~draco@212.255.27.23) left irc: Ping timeout: 265 seconds02:53
Alex_Gaynorbug!02:54
fijaloh02:54
fijalI'm a moron02:54
Alex_Gaynorbenchmarks take forever :/02:55
fijalwe don't correctly overallocate02:56
Alex_Gaynorfor what?02:57
fijalfor arrays02:57
fijalwe've unrolled the loop02:57
fijalbut that's wrong in general02:58
Alex_Gaynoroh, you broke stuff on vectorize you mean :)02:58
fijalthere might  be an extra element at the end02:58
fijalyeah02:58
fijalpom pom pom02:58
fijalwe need to do something02:58
fijalthe error I posted is obvious :)02:59
fijalyou have Flase beyond the actual array size02:59
dracman (~draco@212.255.30.147) joined #pypy.02:59
Shanita (~John@osbk-4db16810.pool.mediaWays.net) left irc: Ping timeout: 240 seconds03:03
Moku (~John@osbk-4db153d3.pool.mediaWays.net) joined #pypy.03:03
Nick change: Moku -> Guest6305403:04
gogi_ (~gogi@p5B106ADC.dip.t-dialin.net) joined #pypy.03:08
Arach (~arach@FTTB-212.119.233.149.ranetka.ru) left irc: Ping timeout: 240 seconds03:10
gogi__ (~gogi@p5B1070D2.dip.t-dialin.net) left irc: Ping timeout: 252 seconds03:11
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/37403:13
nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 276 seconds03:14
Alex_Gaynorfijal: we should probably make array() not terrible at some point, maybe make it pure python03:16
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy.03:22
fijalAlex_Gaynor: yeah03:26
tos9 (~tos9@unaffiliated/tos9) left irc: Ping timeout: 276 seconds03:26
kenaan_12fijal backend-vector-ops 11939a94b35997 15/pypy/module/micronumpy/interp_support.py: ugh, fix the merge03:27
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/24703:27
fijalAlex_Gaynor: anyway, so we need a bit more sophisticated unrolling03:27
fijalAlex_Gaynor: I thought just counting one element too many is not too bad03:27
fijalbut there is also a reduce problem03:27
fijalpffff03:29
nedbat (~nedbat@python/psf/nedbat) joined #pypy.03:36
Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds03:40
gtaylor_ (~gtaylor@108-196-160-156.lightspeed.tukrga.sbcglobal.net) left irc: Quit: Konversation terminated!03:44
Alex_Gaynorfijal: ?03:44
Tobu (~Tobu@unaffiliated/tobu) joined #pypy.03:47
Alex_GaynorRhyolite: doing make in mpfr and ./configure --with-gmp=../../install --prefix=$HOME/install results in http://paste.pocoo.org/show/554821/03:49
Alex_GaynorI see it's not finding gmp.h, but why? configure found it ok03:50
fijalAlex_Gaynor: for all other operations you can just live with an extra array element03:51
fijalbut not for reduce03:51
fijalsay all() would not work if you have an extra element03:51
Alex_Gaynorfijal: sorry I'm pretty lost, what are we talking about?03:51
tos9 (~tos9@unaffiliated/tos9) joined #pypy.03:52
nedbat (~nedbat@python/psf/nedbat) left irc: Read error: Operation timed out03:55
fijalAlex_Gaynor: have you seen how the unrolled loop look like?03:56
Alex_Gaynorno03:56
fijalit's two iterations one after another03:56
fijalthat obviously does not work since you might have odd number of elements right?03:56
Alex_Gaynoryes, so just do a third iteration03:56
kenaan_12fijal backend-vector-ops 11c72d8c439aff 15/pypy/module/micronumpy/interp_support.py: oops03:57
fijalbut then we need an elaborate stopping mechanism03:57
fijalsomehow03:57
fijalframe.done-1 or so03:58
fijalnote that we check the frame for "done" only every 2 iterations03:58
Alex_Gaynorit's what C compilers do03:58
fijalyes03:58
fijalbut they have simpler situation03:58
fijalthey don't deal with multiple dimensions03:58
Alex_GaynorWell, why not just do frame.advance_n(2)03:59
Alex_Gaynorcatch iteration error03:59
Alex_Gaynorthen fall back to single advances03:59
Alex_Gaynoror so03:59
fijalyeah maybe04:00
Alex_Gaynorsounds easyish04:01
anish_ (anish@nat/redhat/x-kyzwahoijktrpcpn) joined #pypy.04:19
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy.04:20
nettok (~quassel@190.148.234.217) left irc: Remote host closed the connection04:21
Arach (~arach@FTTB-Beeline-195.68.161.234.ranetka.ru) joined #pypy.04:27
bbot23Success: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/201104:30
bbot2Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/2012 [py3k]04:30
kvda (~kvda@124-171-36-73.dyn.iinet.net.au) left irc: Quit: -___-04:52
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/125404:52
CIA-8003justinpeel 07roundup * 10#1067/Performance on Stack-Based VM machine: 04:54
CIA-80[chatting] I've attached a simpler code (simpletest.py) that gets down to the problem here04:54
CIA-80in my opinion. From what I have seen it is a problem ... * 14https://bugs.pypy.org/issue106704:54
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/73105:00
jamesaxl (~jamesaxl@41.248.199.40) left irc: Read error: Connection reset by peer05:00
jamesaxl (~jamesaxl@41.248.199.40) joined #pypy.05:00
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 276 seconds05:11
WinstonEwert_ (813ec8ab@gateway/web/freenode/ip.129.62.200.171) left irc: Ping timeout: 245 seconds05:13
asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) joined #pypy.05:20
bethebunny (~bunny@x-160-94-179-189.acm.umn.edu) joined #pypy.05:23
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/71505:28
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/89905:29
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/155805:30
cdidd (~cdidd@95-26-138-2.broadband.corbina.ru) joined #pypy.05:31
anish_ (anish@nat/redhat/x-kyzwahoijktrpcpn) left irc: Remote host closed the connection05:31
anish_ (anish@nat/redhat/x-pnuvhgvucnsvgrks) joined #pypy.05:50
rekamso (~textual@63-228-127-70.dia.static.qwest.net) joined #pypy.05:57
Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 255 seconds06:16
rekamso (~textual@63-228-127-70.dia.static.qwest.net) left irc: Quit: zzz06:24
Da_Blitz (~Da_Blitz@203.56.250.63) joined #pypy.06:30
bbot23Success: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/83706:31
AlekSi (~AlekSi@85.235.191.82) joined #pypy.06:55
Da_Blitz_ (~Da_Blitz@203.56.250.63) joined #pypy.07:05
Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 240 seconds07:07
asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) left irc: Quit: asmeurer07:10
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Quit: Leaving07:11
asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) joined #pypy.07:15
Nick change: Da_Blitz_ -> Da_Blitz07:20
bbot24Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/2012 [py3k]07:35
AlekSi (~AlekSi@85.235.191.82) left irc: Remote host closed the connection07:42
AlekSi (~AlekSi@85.235.191.82) joined #pypy.07:45
mikefc_ (9665bcc5@gateway/web/freenode/ip.150.101.188.197) left irc: Quit: Page closed07:53
mat^2 (mathias@87.55.0.198) joined #pypy.07:55
DasIch (~DasIch@p3E99155C.dip.t-dialin.net) joined #pypy.07:56
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy.07:58
PiotrSikora (~none@nginx/adept/piotrsikora) left irc: Excess Flood08:09
PiotrSikora (~none@nginx/adept/piotrsikora) joined #pypy.08:12
vad (~vad@77.72.196.122) joined #pypy.08:22
DasIch (~DasIch@p3E99155C.dip.t-dialin.net) left irc: Quit: DasIch08:22
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy.08:26
stefanop (~stefanop@77.72.196.122) joined #pypy.08:34
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 240 seconds08:52
AlekSi_ (~AlekSi@85.235.191.82) joined #pypy.08:59
AlekSi (~AlekSi@85.235.191.82) left irc: Ping timeout: 252 seconds09:01
serge_sans_paill (~serge@2001:660:7302:e771:21a:4bff:feb7:5b4) joined #pypy.09:23
rhn (~rhn@5acba580.bb.sky.com) joined #pypy.09:31
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy.09:31
squiddy (~squiddy@f053080067.adsl.alicedsl.de) joined #pypy.09:36
sunoano (~sa@mail.heartinternet.co.uk) joined #pypy.09:39
sunoano (~sa@mail.heartinternet.co.uk) left irc: Changing host09:39
sunoano (~sa@unaffiliated/sunoano) joined #pypy.09:39
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Remote host closed the connection09:40
dracman (~draco@212.255.30.147) left irc: Remote host closed the connection09:41
bivab (~bivab@fwstups.cs.uni-duesseldorf.de) joined #pypy.09:45
vad_ (~vad@77.72.196.122) joined #pypy.09:46
vad (~vad@77.72.196.122) left irc: Ping timeout: 240 seconds09:49
AlekSi_ (~AlekSi@85.235.191.82) left irc: Remote host closed the connection09:49
G2P (~G2P@fw-asn1.ornis.com) joined #pypy.09:50
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy.09:57
berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) joined #pypy.10:00
kushal (~kdas@117.201.107.68) joined #pypy.10:00
kushal (~kdas@117.201.107.68) left irc: Changing host10:00
kushal (~kdas@fedora/kushal) joined #pypy.10:00
fantasticsid (~user@178.18.16.11) left irc: Remote host closed the connection10:00
voidspace (~voidspace@python/psf/voidspace) joined #pypy.10:03
ebo^ (~ebo@icg1104.icg.kfa-juelich.de) joined #pypy.10:07
asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) left irc: Quit: asmeurer10:33
AlekSi (~AlekSi@85.235.191.82) joined #pypy.10:34
Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 272 seconds10:40
witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy.10:41
witulski (stupsi@fwstups.cs.uni-duesseldorf.de) left #pypy.10:44
Eventh (~even@dhcp-020049.wlan.ntnu.no) joined #pypy.10:52
CIA-8003Daid 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: 10:56
CIA-80[new] Currently, PyPy crashes without a proper error if you try to use it on an older10:56
CIA-80machine without SSE2 instructions. You can translate PyPy w ... * 14https://bugs.pypy.org/issue106810:56
CIA-8003Daid 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: [chatting] Oops, that should have been "if ((features & (1 << 26)) == 0)" * 14https://bugs.pypy.org/issue106810:57
zain (~textual@46.120.28.30) left irc: Quit: Computer has gone to sleep.10:59
tumbleweeddamn, that reminds me. I should be building the i386 package on Debian without SSE211:04
Tobu (~Tobu@unaffiliated/tobu) joined #pypy.11:07
Nick change: vad_ -> vad11:07
stefanop (~stefanop@77.72.196.122) left irc: Remote host closed the connection11:18
zain (~textual@bzq-79-182-136-52.red.bezeqint.net) joined #pypy.11:32
JaRoel|4d (~jaroel|4d@109.32.59.179) joined #pypy.11:47
nedbat (~nedbat@python/psf/nedbat) joined #pypy.11:49
Tobu (~Tobu@unaffiliated/tobu) left irc: Read error: Operation timed out12:00
azanella (~azanella@187.21.5.187) joined #pypy.12:03
rhn (~rhn@5acba580.bb.sky.com) left irc: Read error: Operation timed out12:05
Tobu (~Tobu@unaffiliated/tobu) joined #pypy.12:08
amaury_ (~amaury_@74.125.57.34) joined #pypy.12:09
khs (~khs@2001:700:300:2120:725a:b6ff:fee5:a44) joined #pypy.12:14
pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) left irc: Ping timeout: 240 seconds12:17
pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) joined #pypy.12:18
zain (~textual@bzq-79-182-136-52.red.bezeqint.net) left irc: Quit: Computer has gone to sleep.12:22
vad (~vad@77.72.196.122) left irc: Remote host closed the connection12:30
rndbit (~rndbit@vexar.de) left irc: Remote host closed the connection12:36
rndbit (~rndbit@vexar.de) joined #pypy.12:36
nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 245 seconds12:45
otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) joined #pypy.12:49
aboudreault (~alanb@osgeo/member/aboudreault) left irc: Ping timeout: 240 seconds12:55
Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds12:56
arigato (~arigo@adsl-84-227-45-39.adslplus.ch) joined #pypy.12:58
thurloat (~thurloat@blk-11-127-105.eastlink.ca) joined #pypy.12:59
anish_ (anish@nat/redhat/x-pnuvhgvucnsvgrks) left irc: Quit: Leaving12:59
linq (~ident@24-246-25-39.cable.teksavvy.com) left irc: Ping timeout: 240 seconds13:00
zain (~textual@bzq-79-182-136-52.red.bezeqint.net) joined #pypy.13:01
bethebunny (~bunny@x-160-94-179-189.acm.umn.edu) left irc: Read error: Operation timed out13:04
rhn (~rhn@5acba580.bb.sky.com) joined #pypy.13:06
JaRoel|4d (~jaroel|4d@109.32.59.179) left irc: Read error: Connection reset by peer13:06
JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) joined #pypy.13:06
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy.13:12
Rhy0lite (dje@nat/ibm/x-uhizrumasentjrga) joined #pypy.13:17
Tobu (~Tobu@unaffiliated/tobu) joined #pypy.13:22
bethebunny (~bunny@216-45-228-37-minneapolis-mn.hfc.comcastbusiness.net) joined #pypy.13:31
zain (~textual@bzq-79-182-136-52.red.bezeqint.net) left irc: Quit: Computer has gone to sleep.13:32
RazzI just read the paper: Tracing the Meta-Level: PyPy's Tracing JIT Compiler and it says there that the JIT generates machine code that is immediately executable, I was wondering how this is technically implemented, do you generate assembler or a shared object that is dynamically linked?13:33
arigatoRazz: we generate machine code in memory directly13:34
arigato(not "assembler", which properly means text source of machine code)13:34
Razzarigato: Ok, but how does the running program know where to look and execute that machine code?13:35
Razzis there a paper or document describing this implementation?13:36
arigatoyou use mmap to allocate memory that has the "executable" permission, fill it with bytes, and then jump to it13:36
Razzarigato: ah, cool13:36
arigatoe.g. from C code you jump to it by taking the address, casting it to a "function pointer" type, and calling it13:36
timotimorazz, the most important realisation here is this:13:37
bethebunny (~bunny@216-45-228-37-minneapolis-mn.hfc.comcastbusiness.net) left irc: Quit: leaving13:37
timotimomachine code is not special, at all13:37
timotimoeverything is just bytes. the only important bit is that you somehow jump there with the instruction pointer13:38
Razzright13:38
timotimoit really boggles the mind :)13:38
vad (~vad@77.72.196.122) joined #pypy.13:38
arigatoyes, although OSes tend to hide that by having memory that is either executable-but-read-only, or read-write but not executable13:38
RazzI did something similar to JIT compilation for the language SaC but I used shared objects13:38
serge_sans_paillRazz, SaC ?13:39
serge_sans_paillany ref ?13:39
RazzSingle Assignment C, sac-home.org13:39
Razzfunctional array programming language, research project13:39
RazzThat was for my BSc thesis, now I'm looking for a cool project for my MSc thesis13:40
arigatoI guess you used some external compiler?13:40
RazzKind of leaning towards partial evaluation and compiler / specializer generation13:40
Razzarigato: I use the sac2c compiler at runtime (it's implemented as a shared library)13:40
arigatook, so you generate some source code, pass it to a compiler, get a shared library, and load it13:41
Razzyup13:41
Razzgot speed ups near 20x original code for highly generic convolution13:41
arigato:-)13:41
serge_sans_paillRazz, looks like copperhead to me, any opinion ?13:41
Razzcopperhead?13:41
arigatoit's probably not suited to use that for pypy because we need to generate a lot of small bits of code, and without taking forever13:42
arigatobut we are vaguely considering using it as a 2nd-stage recompiler13:42
Razzok, cool13:42
leo2007 (~leo@222.130.136.192) joined #pypy.13:42
serge_sans_paillRazz, a data-// language embeded in python13:42
arigatoe.g. find out places of already-generated code that are stable and used a lot, and send them to a good slowish external compiler13:43
Razzserge_sans_paill: haven't heard of it tbh13:43
fijalhi13:43
arigatohi fijal13:43
RazzSaC provides Matlab like functionality13:43
Razzserge_sans_paill: I would say that looks quite similar at a glance, SaC also supports a CUDA backend but the main backend is ISO C13:45
serge_sans_paillright13:45
serge_sans_paillRazz, I'm planning to work on a C+OpenMP backend13:45
serge_sans_pailldepending on my free time :-)13:45
Razzcool13:46
Razzfor pypy?13:46
arigatofijal, Alex_Gaynor: fix translation please :-)  something broken in micronumpy13:46
arigatoon default13:46
fijalpfff13:46
arigatohttp://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/125413:47
Action: fijal fixes13:47
arigatohum, this doesn't seem to be in micronumpy after all13:47
arigatoah13:47
fijalarigato: ah sorry I think I fixed it13:47
arigatook13:47
arigatothe current failure is just some misordering of reds or greens in a jitdriver13:48
fijalyes13:48
ebo^arigato: did you have any luck with perfsuite?13:48
serge_sans_pailltimotimo, pypy relies on a library for the `executable bytes' generation13:49
arigatoebo^: not so far, but I gave up when I realized that the same inconsistent results occur even in 1 thread13:49
arigatoebo^: then I used valgrind and found it13:49
ebo^did you see the picture i posted?13:49
arigatono?13:49
ebo^https://imgur.com/oVhWR13:50
ebo^this is from one of our sparse matrix multiply benchmarks13:50
arigatoserge_sans_paill: unsure what you mean, but I would say "no you're wrong"13:50
ebo^1 thead on a free machine, with process binding13:50
serge_sans_paillarigato, something like http://homepage1.nifty.com/herumi/soft/xbyak_e.html or you designed your own ?13:51
fijalebo^: I see the great feature of matplotlib to happily eat your graph with the legend13:51
arigatoserge_sans_paill: we have our own13:51
serge_sans_paillright13:52
serge_sans_pailla doc somewhere ?13:52
serge_sans_paill(out of curiosity)13:52
ebo^i know ;-p13:53
arigatoserge_sans_paill: no :-(13:53
arigatosorry13:53
serge_sans_paillno problem13:53
serge_sans_paillseems an interesting piece of software on its own13:53
arigatoit's in pypy/jit/backend/x86 if you want to look at the source13:53
arigatoit's not really designed as a general just-in-time assembler13:54
arigatoit's meant to assemble the kind of code produced by our jit front-end13:54
serge_sans_paillok13:54
ebo^i'd still like to know where the 3 steps in that graph come from13:54
serge_sans_paillI will not look at it, `time is fleeting', you knwo13:54
Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 240 seconds13:55
zain (~textual@46.120.28.30) joined #pypy.13:56
ebo^modern processors are strange13:56
aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy.13:57
ebo^arigato: what was the problem with your code?13:59
arigatothere is a cache somewhere to speed up method dispatch14:02
arigatoI already made it thread-local14:02
arigatobut that's not enough14:02
ebo^ic14:02
arigatoas soon as a transaction wants to update the cache, it needs to be copied around14:02
fijalarigato: those are problems that go away with jitting right?14:04
ronnyarigato: would it be reasonable to have implementation details like method cache be tracked outside of transactions?14:05
fijalronny: that would be a) very unpypy b) harder to get right14:06
fijalbecause it would mean you need to write it with locks and stuff14:06
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy.14:06
nettok (~quassel@190.148.234.217) joined #pypy.14:07
ronnyi wonder if a lockfree hashtable woul fit for those - after all there houldnt be a real in doing long lookup more than once14:07
ronny*cost14:08
Tobu (~Tobu@unaffiliated/tobu) joined #pypy.14:10
nettok (~quassel@190.148.234.217) left irc: Remote host closed the connection14:12
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Quit: Leaving14:13
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy.14:13
amaury_ (~amaury_@74.125.57.34) left irc: Ping timeout: 240 seconds14:17
arigatoronny: just have one table per thread, that's fine, you don't need lockfreeness14:22
ronnyarigato: true14:23
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) left irc: Ping timeout: 252 seconds14:23
arigatothat's what I did and cancelled for performance reasons that you can read about in the logs14:24
dmalcolm (~david@c-24-128-191-171.hsd1.ma.comcast.net) left irc: Ping timeout: 240 seconds14:27
fijalarigato: haha14:32
pjenvey (~pjenvey@underboss.org) left irc: Ping timeout: 248 seconds14:32
fijalarigato: we have a bug report about SSE14:32
fijalhave you seen it?14:32
whitelynx (~whitelynx@63.241.75.144) joined #pypy.14:36
ericholscher (~eric@173.203.223.63) left irc: Ping timeout: 252 seconds14:38
serge_sans_paillfijal, pypy can generate sse code ?!?14:41
fijalserge_sans_paill: it uses sse for normal floating operations14:43
fijalit does not use automatic vectorization14:43
fijalGCC also uses SSE by default these days14:43
Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds14:44
Action: arigato fixes14:44
arigatoanyone has a clue how to test it?14:45
serge_sans_paillfijal, ok14:45
tumbleweedarigato: I tried to test this in a qemu without HVM that was supposed to not support SSE14:46
tumbleweedbut it didn't crash, so clearly it did support SSE14:46
arigato:-/14:46
Action: tumbleweed looks around for a machine olde enough to not have SSE14:47
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Read error: Connection reset by peer14:47
Rhy0litehow about a machine old enough to not have MMX?14:47
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy.14:48
pjenvey (~pjenvey@underboss.org) joined #pypy.14:48
ericholscher (~eric@173.203.223.63) joined #pypy.14:48
fprimex (~fprimex@fl-67-233-144-239.dhcp.embarqhsd.net) joined #pypy.14:53
tumbleweedunfortunatly debian still supports down to 486-class PCs :/ http://lists.debian.org/debian-devel/2011/11/msg00565.html14:53
tumbleweedso I should be building without any SSE on i386. Thankfully all amd64 machines support SSE214:54
gtaylor (~gtaylor@108-196-160-156.lightspeed.tukrga.sbcglobal.net) joined #pypy.14:57
timotimofijal: have the example notebooks in ipythons source been helpful?14:58
Eventh (~even@dhcp-020049.wlan.ntnu.no) left irc: Quit: Leaving.15:03
Rhy0litebivab: ping15:06
nedbat (~nedbat@python/psf/nedbat) joined #pypy.15:06
bivabRhy0lite: pong15:06
Rhy0litebivab: do you have time to look at PPC backend now?15:06
Action: tumbleweed found a Celeron rotting in the corner, which supports SSE but not SSE215:06
bivabRhy0lite: some, I have to leave in about an hour15:07
Tobu (~Tobu@unaffiliated/tobu) joined #pypy.15:07
Alex_GaynorRhy0lite: ping15:08
Rhy0liteAlex_Gaynor: pong15:08
Rhy0liteany progress with GCC?15:09
fijalarigato: there is a post on the ML15:09
fijalarigato: or on the bug tracker15:09
Alex_GaynorRhy0lite: I compiled gmp using --prefix=$HOME/install and make install, and now ./configure --with-gmp=$HOME/install finds it, however make in mpfr blows up not being able to find gmp.h (even though configure found it ok)15:09
Rhy0liteyes15:10
Rhy0liteplease use15:10
Rhy0lite./configure --with-gmp=$HOME/install --with-gmp-build=../gmp-5.0.4 --prefix=$HOME/install15:10
Alex_GaynorRhy0lite: configure: error: Do not use --with-gmp-build and other --with-gmp options simultaneously.15:11
Rhy0liteokay...15:11
Rhy0litetry15:11
Rhy0lite./configure --with-gmp-build=../gmp-5.0.4 --prefix=$HOME/install15:11
thurloat (thurloat@blk-11-127-105.eastlink.ca) left #pypy ("not irc, I am in you.").15:12
Alex_GaynorRhy0lite: mpfr-impl.h:68:19: error: gmp.h: No such file or directory15:13
Alex_Gaynormpfr-impl.h:71:24: error: gmp-impl.h: No such file or directory15:13
Alex_Gaynor:/15:13
Rhy0liteI wonder if MPFR knows how to deal with GMP-515:13
DasIch (~DasIch@p3E99155C.dip.t-dialin.net) joined #pypy.15:13
fijal (~fijal@c-76-120-66-180.hsd1.co.comcast.net) left irc: Ping timeout: 240 seconds15:13
Alex_Gaynorthis is mpfr 3.1.015:14
Alex_Gaynorshould I drop back to gmp 4.x?15:14
Rhy0liteyes, I think that's the next option15:14
Rhy0liteuse the latest GMP 4.3.x15:15
Alex_Gaynorok15:15
Alex_GaynorRhy0lite: err, is there a link to it somewhere?15:16
shiftingcontrol (~kracekuma@115.184.117.112) joined #pypy.15:17
Rhy0liteftp://ftp.gmplib.org/pub/gmp-4.3.2/gmp-4.3.2.tar.bz215:17
Alex_Gaynorthanks15:18
dcolish (dcolish@2610:10:20:208:5652:ff:fe2b:1165) left irc: Ping timeout: 260 seconds15:20
otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) left irc: Ping timeout: 260 seconds15:21
dcolish (dcolish@2610:10:20:208:5652:ff:fe2b:1165) joined #pypy.15:23
Alex_GaynorRhy0lite: ok, gcc is compiling now!  thanks15:25
shiftingcontrol (~kracekuma@115.184.117.112) left irc: Ping timeout: 240 seconds15:26
Rhy0litegreat!15:26
otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) joined #pypy.15:26
Rhy0liteI assume that you configured GCC with --prefix=$HOME/install as well?15:26
shiftingcontrol (~kracekuma@115.184.117.112) joined #pypy.15:26
Alex_GaynorYes :)15:27
Alex_GaynorNot often I can have every single CPU in this machine maxed15:27
durin42Alex_Gaynor: what's the machine like?15:28
Alex_GaynorRhy0lite: doh, just hit a compilation error http://paste.pocoo.org/show/555067/15:28
Alex_Gaynordurin42: 4cores (with hyperthreading)15:28
Alex_Gaynor12GB of RAM15:29
DasIch_ (~DasIch@p3E991C47.dip.t-dialin.net) joined #pypy.15:29
Rhy0litethat normally means the compiler does not run correctly15:29
Rhy0litelet me log in to tannit15:30
Rhy0liteprobably a broken LIBPATH15:30
Rhy0litelike you need export LIBPATH=$HOME/install/lib15:30
kenaan_12arigo default 11e0b455a97502 15/pypy/: Kill this specialization. It's mostly pointless and it gives occasionally headaches because fatalerror() is called ...15:30
kenaan_12arigo default 114320ef8d1ab2 15/pypy/jit/backend/x86/: Issue1068: in a pypy translated for x86-32 with SSE2, detect at run-time if we really have SSE2, and if not, abort ...15:30
Alex_Gaynork, this is in alex/src/gcc-trunk15:30
Alex_GaynorRhy0lite: is there anyway to verify that's the case?15:30
CIA-8003arigo 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: 15:30
CIA-80[resolved] Fixed in 4320ef8d1ab2. It should fail at run-time with a nice error message15:30
CIA-80now. Thank you! * 14https://bugs.pypy.org/issue106815:30
Rhy0liteone looks at the actual log file15:30
tumbleweedarigato: I'll try and test that15:31
arigatotumbleweed: thank you a lot15:31
Rhy0liteoh, you're building in the sources again15:31
DasIch (~DasIch@p3E99155C.dip.t-dialin.net) left irc: Ping timeout: 276 seconds15:32
Nick change: DasIch_ -> DasIch15:32
Alex_Gaynorerr, I guess15:32
Rhy0litethis basically is the first time that the new compiler from stage 1 bootstrap is invoked15:33
Rhy0liteif it does not run15:33
Rhy0liteit produces this obscure error15:33
Rhy0liteyep libpath15:33
Alex_Gaynorah, I missed that this was now the stage115:33
Rhy0litelook at /home/agaynor/src/gcc-trunk/x86_64-unknown-linux-gnu/libgcc/config.log15:33
Rhy0liteoh, you need libmpc as well15:34
Alex_Gaynoroh, whoops, I forgot to point configure at it15:34
Rhy0liteerror while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory15:34
Rhy0litelibmpc is not in the same location as gmp and mpfr?15:34
Alex_GaynorIt is, but I didn't provide --with-mpc15:35
Alex_Gaynorcould that cuase the issue?15:35
Rhy0liteno15:35
Alex_Gaynoroh :/15:35
Rhy0litenormally specifying --with-gmp is enough15:35
Alex_GaynorI seem to recall I need --with-mpfr as well15:35
Rhy0litetop-level config.log says that all were specified15:36
Rhy0liteor it inferred the others15:36
Alex_GaynorYeah, I just tried reconfiguring and remaking, no difference15:37
Rhy0litedid you use export LIBPATH=$HOME/install/lib ?15:37
kushal (~kdas@fedora/kushal) left irc: Quit: This computer has gone to sleep15:38
fijal (~fijal@128.117.228.167) joined #pypy.15:38
Alex_Gaynorah, no, that's on the make?15:38
Rhy0litego to /home/agaynor/src/gcc-trunk/host-x86_64-unknown-linux-gnu/gcc15:39
Rhy0liteldd cc115:39
Rhy0litethe problem is that it's finding /usr/lib/libgmp.so.315:39
Rhy0liteso it thinks everything is okay15:39
Rhy0litenot your version of GMP15:39
Rhy0litebut, yes, set export LIBPATH=$HOME/install/lib before invoking make15:40
Alex_Gaynorok, thanks15:40
Alex_Gaynorsame error, do I need to make clean first?15:40
Rhy0liteyes15:40
Rhy0liteand even better to use a separate build directory15:41
Alex_Gaynorok, glad this isn't a local machine, or I could turn off the heating15:41
Rhy0litewhen it builds the DFA for the scheduler, it slows down15:41
Alex_Gaynorno luck, same error15:43
Alex_Gaynorldd cc1 shows the same gmp, and lack of mpc15:45
Rhy0liteyes15:45
Rhy0liteHonestly, I suggest that you delete gcc-trunk15:46
Rhy0litedownload it again15:46
Rhy0liteand don't configure in the source tree15:46
Rhy0liteconfigure leaves bits around15:46
Rhy0liteI cannot tell what is new and what is old15:46
Alex_GaynorOk, how do I configure elsewhere?15:46
dmalcolm (david@nat/redhat/x-iviwvuncdvkemzel) joined #pypy.15:46
ebo^change into the dir, "/path/to/configure"15:47
Rhy0liteexactly15:47
Rhy0liteuse the full path to configure15:47
Alex_GaynorWell.  That's sort of obvious.15:47
Rhy0litewe can make the instructions more complicated if you prefer15:47
ebo^:-]15:47
Alex_GaynorRhy0lite: no, I assume you I'm well beyond my usual confusion threshold as it is :)15:48
Alex_GaynorAnd I was writing javascript yesterday.15:48
ebo^oh ... ok15:48
kushal (~kdas@117.201.107.68) joined #pypy.15:49
kushal (~kdas@117.201.107.68) left irc: Changing host15:49
kushal (~kdas@fedora/kushal) joined #pypy.15:49
kushal (~kdas@fedora/kushal) left irc: Client Quit15:50
jyp (~interrupt@175.197.245.105) joined #pypy.15:52
Action: fijal happily tries to run an x-based installer on tannit15:52
fijalwith ssh -X15:52
fijaltechnology is crazy15:53
ronnylol15:53
ronnyfijal: didnt you have a bad connection?15:53
Alex_Gaynorfijal: I'm doing svn co on gcc ATM, that might make tannit slow15:54
fijalAlex_Gaynor: I doubt that's even comparable15:54
fijalronny: I have 4M at home15:54
fijalwhich not too bad15:54
fijalbut I'm far away from home15:54
Alex_Gaynorfijal: gcc svn is huge, I think I now have all of fortran and java15:54
fijalhow do I write a loop in bash?15:55
fijalfor i in [1, 2, 3] to be precise15:55
Rhy0litefor i in `seq 1 2 3`; do15:56
fijalcool15:57
ronnyAlex_Gaynor: why a svn co on gcc?15:58
arigatoAlex_Gaynor: wait, I already have an "svn co" of gcc on tannit15:58
arigato~arigo/svn/gcc15:58
ebo^for i in 1 2 3; do echo $i; done15:59
ronnyfijal: for i in 1..3;do ?15:59
Alex_Gaynorronny: because my laptop me try toc ompil it15:59
arigatoAlex_Gaynor: I can even "svn up" it first, if you want15:59
ronnywhops15:59
Alex_Gaynormelts*15:59
thurloat (~thurloat@blk-11-127-105.eastlink.ca) joined #pypy.15:59
ronnyconfusing something15:59
ronnyah, its {1..3}15:59
Alex_Gaynorarigato: whoops, my co is just about done anyways15:59
arigato:-)15:59
arigatook15:59
tumbleweedarigato: meh, doesn't translate: http://paste.pocoo.org/show/555083/16:00
arigatoah yes16:00
arigatothat's an unrelated issue that should be fixed soon16:00
ronnyfijal: {start..end} is a inclusive range in bash16:00
arigato:-/16:00
Alex_Gaynorfijal: you fixed that red/greens issue, transplant to defaut?16:00
tumbleweedphew, I couldn't see the relationship16:00
arigatotumbleweed: for now, run "translate.py targetpypystandalone --withoutmod-micronumpy"16:00
tumbleweedah16:01
arigato"translate.py -Ojit targetpypystandalone --withoutmod-micronumpy"16:01
fijalAlex_Gaynor: I'm not sure16:01
fijalAlex_Gaynor: can you doubtly check16:01
fijaluh16:01
fijalmaybe indeed I fixed it on a branch16:01
fijalsorry sorry16:01
arigato:-)16:01
fijalarigato: fixed16:03
fijalarigato: I'm trying hard to not break the translation on default :/16:03
kenaan_12fijal default 114c6c003b391e 15/pypy/module/micronumpy/interp_support.py: sorry sorry fix the translation16:03
tumbleweed:)16:03
Alex_Gaynorfijal: just think, maybe some day amaury will finish sepcomp, and then we can move micronumpy outside pypy tree!16:03
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy.16:04
fijalAlex_Gaynor: maybe16:04
arigatofijal: it will crash again16:04
fijalarigato: because16:04
arigatothe variable 'i' is not listed16:04
fijal?16:04
kenaan_12fijal default 110e27c93ef49e 15/pypy/module/micronumpy/interp_support.py: pff sorry16:05
arigatowhy doesn't micronumpy/test/test_ztranslation crash?16:06
Alex_GaynorDoes it ztranslate invoke JIT?16:06
arigatoah16:06
arigatono16:06
arigatoit's test_zjit16:06
Alex_Gaynortest_zjit doesn't touch that part of the code, I guess16:07
arigatomissing test! :-)16:08
arigatohow about having one test for every jitdriver?16:08
arigato(ideally?)16:08
Alex_GaynorWell, ideally fijal will remove all but one jitdriver ;)16:08
jyp (~interrupt@175.197.245.105) left irc: Remote host closed the connection16:09
Alex_GaynorRhy0lite: so does agaynor@tannit:~/src/gcc-build$ ~/src/gcc-trunk/configure --prefix=$HOME/install --with-gmp=$HOME/install --with-mpfr=$HOME/install --with-mpc=$HOME/install16:09
Alex_Gaynorlook correct?16:09
AlekSi (~AlekSi@85.235.191.82) left irc: Remote host closed the connection16:10
Rhy0liteyes.  I would suggest setting export LIBPATH before you configure16:10
Alex_Gaynorexport LIBPATH=$HOME/install/lib16:10
Alex_Gaynor?16:10
Rhy0liteyes16:11
Alex_Gaynorok, let's build ourelves a gcc!16:11
Rhy0lite29th time is the charm!16:12
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Read error: Connection reset by peer16:12
fijalarigato: that's impressive16:12
fijalarigato: ideally we'll have only one jitdriver16:12
fijalarigato: I'm a bit sorry it was written in a bit of haste I must admin16:12
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy.16:12
fijaladmit16:12
arigatono problem16:12
arigatowhat is impressive?16:13
fijalyour STM data16:13
arigato:-)16:13
fijalI'm trying to get SSE benchmarks in some way before a talk in few hours16:13
arigatojust-in-time benchmarking :-)16:13
fijalyes16:13
Alex_GaynorRhy0lite: apparently it's going to be the 30th :( for all that, no love16:14
fijalhttp://paste.pocoo.org/show/555091/16:14
Rhy0litehmm16:14
Alex_Gaynorfijal: you can always benchmark for the first time on stage, there's no way that could go wrong16:14
Rhy0litelet's see what's going on16:14
fijalarigato: C has two versions16:14
fijalone calls add and stuff16:14
fijalthe other collapses stuff in the loop16:14
Alex_Gaynorfijal: in the C version are you allocating temporaries?16:14
fijalAlex_Gaynor: in the first version16:15
Alex_Gaynorfijal: I'd have 2 GCC results, no one writes C code like that16:15
Alex_Gaynorthere's only one gcc column here16:15
fijalAlex_Gaynor: that's not true16:15
Alex_Gaynorfijal: double `s` in the PyPy SSE column16:15
fijalAlex_Gaynor: if you have a C library that operates on arrays16:15
fijalchances are you would end up with code like that16:15
fijalunless it's a c++ template lib16:15
fijalnoone adds stuff like this16:15
fijalbut something more complex might be better16:16
fijaler16:16
fijalmore common16:16
Alex_GaynorJust do boht16:16
Alex_GaynorIMO16:16
fijalI don't understand why numpy is so dog slow16:16
fijal"both" what do you mean?16:16
fijalI have two results no?16:16
Alex_Gaynoryou have two tables16:16
Alex_GaynorI don't know what the difference is though16:16
Alex_GaynorGCC numbers are the same in both, anways16:17
fijalAlex_Gaynor: the second one has SSE16:17
fijalthe first one does not16:17
Alex_GaynorYes, but that changes the pypy numbers16:17
Alex_GaynorI'm saying you should have one C with temporaries, and other with a single loop like we generate16:17
fijalI do16:18
fijalthat's in () for C16:18
Alex_Gaynoruhh, that's definitely not obvious16:18
Alex_Gaynormake it a seperate column place16:18
Alex_Gaynorplease816:18
Alex_Gaynor*16:18
shiftingcontrolhi guys, if socket module is available in python is it possible bring down the server ?16:19
arigatoobscure, why is numpy twice as slow as gcc-first-column?16:19
Alex_Gaynorarigato: I've never seen any evidence that numpy is actually fast :/16:19
arigato:-(16:19
bivab (bivab@fwstups.cs.uni-duesseldorf.de) left #pypy.16:20
ebo^no standard deviations? ;-p16:20
fijalarigato: numpy has one operation that's blazing because it calls BLAS16:20
arigatoshiftingcontrol: maybe it's a question for #python16:20
shiftingcontrolarigato, uh, yes :)16:20
fijalI wonder if BLAS is fast, I would think so16:20
arigatome too16:20
fijalarigato: but indeed numpy is slower than advertised16:20
arigato":-(" again16:20
fijalarigato: or maybe - slower than you would think given how much they care16:20
fijalarigato: also IMO it got slower16:21
Alex_GaynorRhy0lite: compiling gcc is confusing :/16:21
Rhy0liteit normally should not be this confusing16:21
fijalas in the old benchmark from some old machine is more favorable than new ones16:21
fijalmaybe introduction of SSE moves results?16:21
arigatofijal: or maybe gcc got better16:21
fijalyes16:21
fijalwell16:21
Alex_GaynorRhy0lite: that's what I tell people who have trouble translating pypy :D16:21
fijalthat should really be reflected in numpy16:21
arigatoyes, but isn't16:22
fijalright16:22
fijalno idea why16:22
fijalarigato: anyway, it seems next to impossible to improve16:22
arigatoit looks like a top-priority project for numpy people16:22
Alex_Gaynorfijal: maybe numpy has loops with weird labels and gotos16:22
fijalgiven the code size16:22
Alex_Gaynor;)16:22
arigato:-/16:22
fijalarigato: I'll send them a mail maybe16:22
arigatobe sure to double-check your benchmarks16:22
Alex_Gaynorfijal: they'll probably tell you to use cython and fortran16:23
fijalebo^: they're negligable ;-)16:23
Alex_GaynorIs Pytran a thing you?16:23
ebo^thought so, too ... once16:23
fijalAlex_Gaynor: yeah there is a thing where you type fortran16:23
fijalweave inline?16:23
fijalebo^: not true actually16:23
ebo^btw: micronumpy does not provide a c interface? (similiar to pypy c-extension headers)16:25
fijalebo^: no16:25
Snyg (~snyg@p4FF1C653.dip0.t-ipconnect.de) joined #pypy.16:25
ebo^:-(16:25
fijalebo^: why would you need one?16:25
ebo^https://code.google.com/p/netcdf4-python/16:26
sunoano (~sa@unaffiliated/sunoano) left irc: Quit: Leaving.16:26
ebo^a library for reading netcdf binary files ... stores stuff in numpy arrays16:26
fijalebo^: yeah, I'm sitting next to the author :-P16:27
fijalI'm afraid our answer for now is "should be written in python"16:27
fijalbut on the flipside you can access pypy numpy arrays in C16:27
fijalthey're just bunch of data16:27
fijalnot the metadata though16:27
Rhy0liteAlex_Gaynor: okay, I'm an idiot.  I told you the wrong environment variable16:28
Rhy0liteexport LD_LIBRARY_PATH=$HOME/install/lib16:28
fijalRhy0lite: maybe you're not an idiot and this is just very hard?16:28
Rhy0litefijal: that's the kinder way to describe it :-)16:29
Alex_GaynorGO GO MAGIC STAGE 1 COMPILER!16:29
Alex_Gaynorit seems to be doing stuff, cool16:29
Alex_GaynorRhy0lite: the default bootstrap goes up to stage3 right?16:30
Alex_Gaynordefault gcc compiled, bootstrap compiled, and then bootstrap-bootstrap compiled16:30
Rhy0liteyes16:30
Rhy0liteit definitely seems much happier16:32
Alex_Gaynoryup, everything appears to be working now16:32
Alex_Gaynorhow do I know what stage of bootstrap it's in?16:33
Alex_Gaynor(make should totally have progress bars, or at least a mandlebrot)16:33
Rhy0litewell, it created prev-XXX in the top-level16:33
Rhy0liteso it's at least at stage216:33
Rhy0liteyou can look at gcc-build/stage_current16:33
shiftingcontrol (~kracekuma@115.184.117.112) left irc: Ping timeout: 260 seconds16:34
Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 260 seconds16:34
arigatofijal: pypy translation is not fixed16:37
Rhy0liteAlex_Gaynor: I need to commit my Makefile for translating PyPy16:37
fijalarigato: what is it now?16:37
arigatohttp://paste.pocoo.org/show/555099/16:37
Alex_GaynorRhy0lite: cat "all:\n\t./pypy/translator/goal/translate.py -Ojit" > Makefile16:38
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Ping timeout: 265 seconds16:38
fijalbah16:38
fijalarigato: can't we fix this somehow :/16:38
fijalarigato: I'm running into those order issues all the time16:38
ebo^to the author of micronumpy or python-netcdf4?16:39
fijalebo^: sorry?16:39
kenaan_12fijal default 11732abe5a499d 15/pypy/module/micronumpy/interp_support.py: of course a is a pointer16:39
ebo^<fijal> ebo^: yeah, I'm sitting next to the author :-P16:39
fijalebo^: well, python-netcdf416:40
fijaland micronumpy16:40
Rhy0liteAlex_Gaynor: more like http://paste.pocoo.org/show/555101/16:40
arigatofijal: we could, but it's a bit of a mess at various places16:40
fijalfor some definition of "next to"16:40
fijalarigato: I was more thinking about some heuristic that looks at it while running tests16:40
fijalarigato: like check types of your locals or so16:40
arigatoah, right16:40
arigatomakes sense16:40
Alex_GaynorRhy0lite: ah, so like a real makefile16:41
fijalI remember you and I deciding to not do reordering16:41
fijalebo^: I wrote a lot of micronumpy16:41
Rhy0liteAlex_Gaynor: yes.  and then at the top-level I have: http://paste.pocoo.org/show/555102/16:42
Rhy0liteyou guys may have all of those options burned into your brains, but not everyone does16:43
fijalarigato, Alex_Gaynor: I'm afraid in order for numpy to be faster, it would need something like copy-paste code specialization16:43
ronnyhmm, is anyone here involved wih Rpythonic?16:43
fijalfor say 1D arrays etc.16:43
fijalstuff we get for free due to the jit16:43
Alex_Gaynorfijal: eh, why?16:43
Action: arigato adds: basically int->int, float->float, list/dict/str/unicode->ref; and things that look like instances ->ref; and everything else, ->no clue16:43
fijalwell, not 100%, but almost for free16:43
Alex_Gaynorfijal: oh, upstream numpy16:43
Alex_Gaynorfijal: I thought you were saying *we* needed copy-paste16:44
fijalAlex_Gaynor: no16:44
fijalAlex_Gaynor: we have robots to do that16:44
Alex_Gaynorfijal: yes, we have quite good robots16:44
Alex_Gaynorfijal, Rhy0lite: Up to stage 3 of gcc compilation16:45
Rhy0liteyea!16:45
Rhy0liteAlex_Gaynor: This will be okay to play with.16:45
Rhy0liteMost people doing development with GCC use static versions of the libraries16:45
Rhy0liteto avoid exactly these shared library and versioning issues16:45
fijalAlex_Gaynor: the thing is as the things gets more complex is harder and harder for C code to keep up16:45
fijalbecause 2D is annoying16:46
fijalyou need to delegate stuff to functions and it becomes harder16:46
Alex_Gaynorfijal: Yes, I know why I program Python and why we have a JIT ;)16:46
shiftingcontrol (~kracekuma@115.241.59.83) joined #pypy.16:46
Rhy0litefijal: it's a balance16:46
Rhy0liteA JIT knows more about the dynamic behavior of the application16:46
fijalRhy0lite: I mean less JIT and more C vs python16:46
Rhy0litebut it generally is not considered to have enough time for really expensive optimizations16:46
fijalor more16:47
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy.16:47
harrison (~quassel@li89-226.members.linode.com) left irc: Quit: http://quassel-irc.org - Chat comfortably. Anywhere.16:47
fijalhand writing code vs expressing high level concepts16:47
Alex_GaynorRhy0lite: well, someday we'll be able to just stick the expensive ones in a background thread I guess16:47
harrison (~quassel@li89-226.members.linode.com) joined #pypy.16:47
fijalsimple stuff is easier to get fast in C than complex stuff16:47
Rhy0litefor instance, the numpy code doesn't change16:47
Rhy0liteby that I mean the low-level kernel16:47
fijalbecause you either sacrifice performance or leak abstractions all over the place16:47
Alex_Gaynorfijal: BTW, are you seeing Jeremy Siek while you're in colorado?16:47
Rhy0liteone can compile BLAS with ATLAS once16:47
fijalAlex_Gaynor: yes16:47
fijalAlex_Gaynor: want something from him?16:47
Alex_Gaynorfijal: I guess he's coming to PyCon anyways?16:48
Rhy0liteand if it takes 6 hours to figure out the optimal cache blocking, that's fine16:48
fijalAlex_Gaynor: is he?16:48
Alex_Gaynorfijal: dunno, he has the last few years.  I just found out a few years ago he was almost hired at my university16:48
Alex_GaynorRhy0lite: if it takes 6 hours my compiler better include a latte machine16:48
Rhy0liteAlex_Gaynor: stage3 generally is fast because it's compiling the compiler with an optimized compiler16:48
Rhy0litestage1 is compiled by the native "untrusted optimization" compiler16:49
Rhy0liteso stage2 compiler is slow16:49
Rhy0liteAlex_Gaynor: it's 6 hours, but then an installed library on your system for the next 2-5 years16:50
Rhy0litedid your CS professors talk about the cost-benefit of optimization?16:50
Alex_GaynorNo, but I can do the math with the most average of 'em.16:50
Rhy0litethe longer an application runs, the more benefit one gains from increased optimization and compilation time16:51
Alex_GaynorYup, but despite our long compilation cycles, I don't think PyPy is cut out for such static things, we change teh world every other day16:51
Rhy0litefijal: yes, one can use a separate thread16:51
fijal (~fijal@128.117.228.167) left irc: Read error: Connection reset by peer16:51
Rhy0liteoh, well16:51
fijal_ (~fijal@helmut.wlclient.ucar.edu) joined #pypy.16:52
Rhy0litebut PyPy also needs the concept of increasingly aggressive optimization16:52
Rhy0litefor example, IBM JIT has cold, warm, hot, scorching levels16:52
Alex_GaynorYes, we're just single tiered ATM.16:52
Rhy0litenot just 994 iterations, let's JIT it16:52
fijal_we need to do something with our slow interpreter16:53
mat^2 (mathias@87.55.0.198) left irc: Ping timeout: 245 seconds16:53
Alex_Gaynorfijal_: and tracing, has anyone ever investigated having the metatracer be a compiler instead of a VM?16:53
Rhy0liteat ~1000, JIT it warm.  at ~10000 JIT is hot.  at ~100000 JIT it scorching16:53
fijal_Alex_Gaynor: well, yes, timeshifter was a compiler16:53
fijal_Alex_Gaynor: ask armin how manageable it was16:53
Alex_Gaynorfijal_: what the heck was timeshifter?16:53
Nick change: fijal_ -> fijal16:54
fijalarigato: care explaining?16:54
Rhy0liteJITting in an alternative universe / timeline?16:54
exarkunHuh, is the time shifter gone?16:54
fijalexarkun: for years16:54
exarkunshows what I know16:54
Rhy0liteAlex_Gaynor: I think the GCC build is done16:55
fijalthat wasn't 6h16:55
Alex_GaynorRhy0lite: yeah, it's doing all of java or fortran, I can't tell which16:55
Rhy0liteI didn't think you configured for Java16:55
Rhy0liteJava is painful16:55
Alex_GaynorAnd yet I definitely see the words gcj16:55
Rhy0liteugh16:55
Rhy0liteI thought that was disabled by default16:56
ebo^ATLAS compile time depends on CPU ... if your CPU is known it's reasonably fast16:56
fijalAlex_Gaynor: did you figure out why you've seen NonVirtual string being copied?16:56
Rhy0liteoh, I see 16:56
Alex_Gaynorfijal: I assume it's from JIT logging that isn't even written anywhere, but I didn't look too much16:56
Rhy0liteoops16:56
fijalebo^: right, it's possible to precache stuff16:56
Rhy0liteI thought that Java was not part of the default languages any more16:56
fijaldoes anyone actually use gcj?16:57
Rhy0liteyes16:57
Rhy0liteI think there is one user16:57
fijalwho?16:57
Alex_GaynorHaha, that sounds like how we used to talk about pypy.16:57
fijalI suppose it can compete with hotspot with startup times16:57
Alex_GaynorNow we have at least 3 or 4 users.16:57
fijalAlex_Gaynor: is quora still using pypy?16:58
Alex_GaynorAFAIK16:58
Rhy0liteI think there was some, important Red Hat package that uses it16:59
Rhy0litemaybe parts of Eclipse?16:59
Rhy0liteor Tomcat and Jakarta libraries?16:59
Rhy0litethere was something16:59
Rhy0litebut extremely small niche17:00
dmalcolmwe built eclipse with gcj for a while 17:00
Rhy0litedmalcolm: do you remember who needs gcj?17:00
dmalcolm(due to $HOW_IS_ORACLE_TRYING_TO_SCREW_WITH_US_TODAY )17:01
Rhy0liteoh17:01
dmalcolmRhy0lite: not sure17:01
Rhy0liteso purely for entertainment17:01
fijalI hope we'll never get to the point "pypy is used because of politics"17:01
Action: Rhy0lite -> lunch17:01
dmalcolmwell, licensing, iirc17:01
Rhy0liteyes17:01
Rhy0litewatching the dance of Oracle, Google, IBM about Java is entertaining17:02
dmalcolms/entertaining/depressing/17:02
Action: dmalcolm is wondering why folks here are building gcc17:03
Alex_GaynorRhy0lite: err, so it finished, now I `make check && make install` and then it's $HOME/install/bin/gcc?17:03
fijaldmalcolm: I think they're trying to check if gcc got any better with vectorizing our code17:05
dmalcolmah17:05
fijaldmalcolm: we suffer quite a bit from that17:05
dmalcolmthankss17:05
Alex_Gaynordmalcolm: you've read our C you know what it looks like :)17:05
dmalcolmyup17:05
dmalcolmI hope to sprint at PyCon at improving it, fwiw17:05
Alex_Gaynordmalcolm: In what sense?17:05
dmalcolmthe old readability patch: embed the RPython source inline as comments, sorting of basic blocks, etc17:06
Alex_Gaynordmalcolm: So GCC's vectorizer (and problably other optimizations) don't like our C (or at least they used to not like it), GCC trunk in theory fixes this, and I want to check it out17:06
dmalcolmoh, nice17:06
dmalcolmis this in 4.7?17:06
dmalcolmgcc 4.7 that is17:06
JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) left irc: Read error: Connection reset by peer17:06
Alex_Gaynordmalcolm: It was committed on November 5th, I have no idea17:07
Alex_Gaynorthe 4.7 release notes don't say when it was released17:07
dmalcolm[my pypy rpm for f17 was built with that, fwiw, but the build flags might not have been right in any case]17:07
revolve (~3@cpc11-bagu10-2-0-cust741.1-3.cable.virginmedia.com) left irc: Quit: leaving17:08
G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving.17:09
Alex_Gaynordmalcolm: oh, has gcc 4.7 been released?17:09
dmalcolmno, we're using a prerelease17:09
Alex_Gaynorso you can probably test this, do you have a way to compare against a 1.8 release or something?17:10
Alex_Gaynora decent test program would be `for i in xrange(1000000): "a" * i`17:10
vad (~vad@77.72.196.122) left irc: Remote host closed the connection17:11
cdash004 (~sdf@host-173-230-2-219.vanodod.clients.pavlovmedia.com) joined #pypy.17:11
ebo^ (~ebo@icg1104.icg.kfa-juelich.de) left irc: Quit: Verlassend17:12
dmalcolm(taking its time)17:12
Action: fijal can't stand americans pronouncing spanish names17:13
sunoano (~sa@cpc3-nott15-2-0-cust249.12-2.cable.virginmedia.com) joined #pypy.17:13
sunoano (~sa@cpc3-nott15-2-0-cust249.12-2.cable.virginmedia.com) left irc: Changing host17:13
sunoano (~sa@unaffiliated/sunoano) joined #pypy.17:13
Alex_Gaynordmalcolm: you can use a lower iteration count if that's really slow17:13
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Ping timeout: 240 seconds17:14
dmalcolm(I killed it after 2 minutes)17:14
dmalcolm$ time pypy -c 'for i in xrange(100000): "a" * i'17:14
dmalcolmreal0m5.529s17:14
dmalcolmuser0m5.245s17:14
dmalcolmsys0m0.082s17:14
fijaldmalcolm: cpython or 1.8?17:15
dmalcolmoh bother, old build of pypy; 1.6 sorry17:15
Action: dmalcolm upgrades17:15
Alex_Gaynordmalcolm: well, it gives us a comparison point17:16
dmalcolmyeah17:16
fijaldmalcolm: I don't think this code changed since pypy 1.617:16
fijalactually17:16
Alex_Gaynorfijal: http://paste.pocoo.org/show/555109/ which is based on char_mul is like 12x faster under gcc trunk than tannit's GCC17:16
Alex_Gaynorfijal: the question is if the gcc compilation chnaged17:16
Tobu (~Tobu@unaffiliated/tobu) joined #pypy.17:17
mat^2 (mathias@87.55.0.198) joined #pypy.17:17
fijalAlex_Gaynor: hm17:18
dmalcolm$ time pypy -c 'for i in xrange(100000): "a" * i'17:18
dmalcolmreal0m7.017s17:18
dmalcolmuser0m6.572s17:18
dmalcolmsys0m0.147s17:18
dmalcolmbother17:18
JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) joined #pypy.17:18
Alex_Gaynorit regressed?17:18
dmalcolmlooks like it17:18
fijalAlex_Gaynor: dmalcolm uses shadowstack17:18
fijalso it might be it17:18
dmalcolmcould be my change of the flags17:18
dmalcolmwhat fijal said ^^^17:18
Alex_GaynorYes, but if we did this correctly GCC-trunk should be a huge speedup17:19
fijalAlex_Gaynor: do you want my C source files for pypy compilation?17:19
fijalAlex_Gaynor: or I can just compile it using your gcc17:19
dmalcolmit was also with '-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -mtune=generic -Wno-unused'17:19
kenaan_12fijal extradoc 11b5d022ba4121 15/talk/sea2012/: hopefully the final version17:20
Alex_Gaynorfijal: feel free to compile using my GCC, you need to do `LD_LIBRARY_PATH=/home/alex/install/lib /home/alex/install/bin/gcc`17:20
kenaan_12fijal extradoc 11603e6334bd6c 15/talk/pycon2012/tutorial/emails/01_numpy.rst: merge17:20
fijaldmalcolm: can you please remove the stack protector17:20
fijalit's nonsense17:20
fijalhow do I specif CC?17:21
fijalvia CC=17:21
Alex_Gaynorto our make file?17:22
Alex_Gaynorno idea17:22
fijalmake: /home/alex/install/bin/gcc: Command not found17:22
fijalcan you make it readable for me?17:22
Alex_Gaynorhow do I make ~/install readable?17:22
Action: Alex_Gaynor is a unix moron17:23
fijalit's of course17:23
fijal~agaynor17:23
fijalnot alex17:23
Alex_Gaynoruh, yeah, that too17:23
durin42Alex_Gaynor: chmod17:23
fijalworks17:23
fijalcompiling17:24
Alex_Gaynorcool17:25
fijaldmalcolm: ?17:25
fijalRhy0lite: how many people work on gcc core?17:25
dmalcolmfijal: probably, but I worry about the flags leaking through to extension modules17:26
Alex_Gaynorfijal: you have a reference pypy rom the same source for comparison?17:26
fijaldmalcolm: I think we don't preserve those anyway17:27
fijaldmalcolm: so why would you bother?17:27
fijalAlex_Gaynor: yeah17:27
fijaldmalcolm: unless I don't know about something17:27
fijaldmalcolm: the fortify as well17:29
fijalman pypy is big17:30
serge_sans_paill (~serge@2001:660:7302:e771:21a:4bff:feb7:5b4) left irc: Remote host closed the connection17:30
fijalyeah...17:32
arigatofijal: fixed, hopefully17:32
kenaan_12arigo default 111c381a211cb1 15/pypy/rlib/: Try heuristically to check when running on top of CPython that the arguments of jitdriver.jit_merge_point() have be...17:32
fijalarigato: thank you17:32
fijalarigato: and sorry :)17:32
fijalAlex_Gaynor: of course GCC happily emits new instructions17:32
arigatowell it was bound to occur :-)17:32
Alex_Gaynorfijal: ok, better to fix it now then when GCC is release17:33
Alex_Gaynorfijal: what instruction?17:33
fijalarigato: can we just ignore all things that start with 'P'?17:33
fijalmajority of those (except push and pop) are packed intrustions17:33
Alex_Gaynorfijal: let's add them one by one, I don't want GC roots can't be found because intel isn't consistant with their prefix17:34
fijalAlex_Gaynor: no, it's just about reading the list17:34
arigatoI agree with alex17:34
fijalok17:35
khs (~khs@2001:700:300:2120:725a:b6ff:fee5:a44) left irc: Quit: Leaving17:35
fijalarigato: there is pusha that we don't consider17:35
fijalat the very least17:35
Alex_Gaynorfijal: I guess it's good that we're getting packed instructions now17:35
fijal:]17:35
fijalAlex_Gaynor: not the kind we want I fear17:35
kenaan_12fijal default 115dc82977af96 15/pypy/translator/c/gcc/trackgcroot.py: one more to ignore17:36
kenaan_12fijal default 11bd01f89519db 15/pypy/rlib/: merge17:36
Alex_Gaynorfijal: what are we getting?17:36
arigatofijal: "pusha": true, but it's unlikely to be emitted on 32-bit and invalid on 64-bit17:37
shiftingcontrolfijal, have a min ?17:37
fijalshiftingcontrol: ?17:37
shiftingcontrolfijal, regarding Warning: cannot find your CPU L2 cache size in /proc/cpuinfo in sandbox, just doing some analysis I feel sandbox env doesn't have any way to access /proc/cpuinfo 17:38
fijalshiftingcontrol: how old is your pypy?17:39
shiftingcontrolfijal, 1,817:39
fijalshiftingcontrol: ah we did not update for generation17:39
fijalshiftingcontrol: it does not matter, it's just a warning17:39
shiftingcontrolas well as 1.717:39
fijaldefaults should be good enough17:39
shiftingcontrolyes It doesn't effect the o/p in anyway17:39
shiftingcontrol*affect17:39
fijalAlex_Gaynor: 3.5x faster17:40
Action: arigato changes the default to 4MB too17:40
Alex_Gaynorfijal: for which?17:40
fijalnewly compiled vs old17:40
Alex_Gaynorfijal: no, on what code?17:40
fijalwhatever dmalcolm posted17:40
kenaan_12fijal default 116fbb1c3a6c85 15/pypy/translator/c/gcc/trackgcroot.py: few more17:41
Alex_Gaynorfijal: ah, `for i in xrange(100000): "a" * 10000`17:41
Alex_Gaynor?17:42
Eventh (~Even@219.162.202.84.customer.cdi.no) joined #pypy.17:42
fijalAlex_Gaynor: yes17:42
fijalI want some long operation17:42
fijals17:42
Alex_Gaynorfijal: can you test some program using longs?17:42
Alex_Gaynorfijal: ah, I know a good one, let me find it17:43
fijalwhatever I try so far is faster on pypy17:43
fijalbut maybe my longs are too small17:43
Alex_Gaynorfijal: pidigits should be good17:43
Alex_Gaynorlet me find a pure python version17:43
fijalwell good17:44
fijalwhat do we do17:44
fijal?17:44
fijaldo we advertise using newer GCC?17:44
fijalor do we install GCC on tannit globally?17:44
fijalthat would cause even more confusion17:44
fijal"nightly is much faster than a hand-compiled one"17:44
arigatofijal: just use a factorial17:44
fijalit's worth a brief blog post17:44
arigatothis creates large longs quickly enough17:44
Alex_Gaynorfijal: let's get a few more examples17:44
arigatofijal: fwiw: translation *still* crashes17:45
fijalarigato: what this time?17:46
fijalarigato: can you please fix it then?17:46
fijalit seems my simple fixes are too hasty17:46
arigatook17:46
fijalsorry :/17:46
fijalarigato: is it still some sort of ordering?17:47
kenaan_12arigo default 110d3e428250f8 15/pypy/rpython/memory/gc/generation.py: Fix the old 'generation' GC to not use env.estimate_best_nursery_size() any more.17:47
otakutomo (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) left irc: Read error: Connection reset by peer17:47
arigatono17:47
arigatoit's a variable that you forgot to list17:47
antocuni (~antocuni@host120-22-dynamic.183-80-r.retail.telecomitalia.it) joined #pypy.17:47
fijal:/17:47
otakutomo (~otakutomo@27.83.117.212) joined #pypy.17:47
arigatoa bit hard to know which one17:48
arigatomaybe you should not use a "for" loop?17:48
arigatoit creates hidden variables to keep the state of the iterator17:49
fijalah17:49
fijalyes17:49
fijalprobably17:49
fijalit also has been fixed on a branch17:49
fijalbut code is different enough not to be mergeable easily17:49
Action: arigato fixes anyway17:49
Alex_Gaynorfijal: can you test http://paste.pocoo.org/show/555119/17:49
Alex_Gaynorfijal: ATM it's 6 seconds for CPython vs. 21 for us17:50
fijalwhat's the argument?17:50
fijalarigato: thank you17:50
Alex_Gaynorfijal: 7500 is what I used17:50
fijaloh17:51
fijalpython 2.7 is much faster than 2.617:51
fijalcpython17:51
fijalon longs in general17:51
Alex_Gaynorfijal: Yes, I used 2.717:51
fijalmaybe we should have a look17:51
Alex_Gaynorfijal: yes, but is trunk GCC pypy better on this?17:51
fijalno17:52
fijalnot significantly anyway17:52
Alex_Gaynoroh, too bad, I guess our long issue is somethign else17:52
arigatohow about clang?17:52
arigato(  :-)  )17:52
Alex_GaynorFWIW CPython 2.6 is 24 seconds, so maybe we just need 2.7s algorithms17:53
mat^2 (mathias@87.55.0.198) left irc: 17:53
shiftingcontrol (~kracekuma@115.241.59.83) left irc: Quit: Ex-Chat17:54
fijalyes17:54
fijalour longs are significantly older than 2.717:54
Alex_GaynorI guess there's no easy fix for us there then.  Glad to hear char_mul is faster17:55
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy.17:55
fijalAlex_Gaynor: well17:58
fijalAlex_Gaynor: "take new better algos"17:58
fijalis a much better fix than "make RPython magically faster"17:58
Alex_Gaynorfijal: more work thoug17:58
Alex_GaynorIdeally we do both :)17:59
arigatonote that there a few minor speedups in our longs, by putting a bit everywhere "assert i >= 0"17:59
Rhy0litefijal: core GCC is about 5 developers18:00
fijalRhy0lite: so it's roughly in-line with our manpower?18:00
Rhy0liteby that I mean the main optimizers18:00
Rhy0litebut there are people working on front-ends and libraries18:00
fijal"Experience Applying Fortran GPU Compilers to Numerical Weather Prediction"18:01
fijalsounds like a fun talk18:01
fijalok18:01
fijalarigato: well that gives us a point of reference18:01
fijalarigato: have you looked what changed between 2.6 and 2.7?18:01
Rhy0liteFirst, change your makefile replacing xlc with gfortran18:01
Rhy0litexlf18:01
Rhy0litefijal: pypy relies on CPython for the common part of the Python library18:02
fijalRhy0lite: yes, sort of18:02
fijalRhy0lite: in most part yes, but we took and modified pieces18:02
fijalnot very many though\18:02
fijalwhy?18:02
Rhy0liteI'm thinking about your question comparing developer manpower18:03
Rhy0liteI would guess it is about the same18:03
Alex_GaynorI'm amazed GCC is so few people.18:03
Rhy0litealthough GCC is more in maintenance mode18:03
fijalwe don't maintain the library18:03
fijalwe take effort every now and then to optimize it18:03
jamesaxl (~jamesaxl@41.248.199.40) left irc: Read error: Connection reset by peer18:03
fijalbut it can be compared to random volunteer effort18:03
fijalrather than long-term maintenance18:03
Rhy0liteAlex_Gaynor: there are some big re-writes that would be nice18:04
fijalRhy0lite: and how many people work on C/C++ frontend?18:04
Rhy0litebut it generally is good18:04
fijalRhy0lite: always :)18:04
tumbleweedarigato: Still get "Illegal instruction"18:04
jamesaxl (~jamesaxl@41.248.137.155) joined #pypy.18:04
Rhy0litein other words, the register allocator, scheduler, auto-vectorizer, high-level loop optimizer already have been contributed18:04
fijaltumbleweed: on what?18:04
Rhy0litewe already have whole-program optimization implemented18:04
tumbleweedfijal: Celeron Coppermine (SSE, no SSE2)18:05
Rhy0liteAlex_Gaynor: the main issues now are things like C11/C++11 support18:05
Action: tumbleweed fires up a debugger18:05
Rhy0litefijal: C++ changes more than C18:05
Rhy0liteI'm not sure what the plan is for supporting the new C11 lambda expressions18:06
Rhy0litebut there is one person who is the C language lawyer18:06
arigatofijal: I get about 15% speed-up running http://paste.pocoo.org/show/555119/, but I don't know if it's the longs18:06
Rhy0lite1-2 people who maintain the C++ front-end18:06
Eftarjin (~simon@2a01:e35:2e8d:b5f0:ea9d:87ff:fe22:e221) left irc: Ping timeout: 240 seconds18:06
Rhy0liteprobably 2-3 on libstdc++18:06
arigatofijal: do you have more data showing it's really the longs?18:06
fijalarigato: speedup between what and what?18:06
arigatopython2.6 and 2.718:06
fijalarigato: yes18:07
fijalarigato: factorial, long addition, long multiplication18:07
Rhy0litefijal: but there are a number of additional people who help with libstdc++18:07
fijalit's all cpyhthon 2.7 < pypy 1.8 < cpython 2.618:07
arigatofijal: I tried factorial, I didn't get any difference between python2.6 and 2.718:07
Alex_Gaynorarigato: did you do it large enough?18:07
fijalarigato: let me get a program18:07
arigatofactorial of 4000018:07
Alex_GaynorRhy0lite: in case you didn't see, we've confirmed that `for i in xrange(100000): "a" * i` is 3.5x faster with the new GCC18:07
fijalarigato: try /tmp/xx.py18:08
fijal1218:08
fijalis an argument18:08
fijalI get 2x18:08
tumbleweedfijal: => 0x9951bf9 <pypy_g_MiniMarkGC_allocate_nursery+105>:  cvtsi2sd %eax,%xmm018:08
Rhy0litefijal: the biggest problem is that Google has hired the majority of GCC developers and develops a lot of patches internally, but does not really take ownership in the GCC community18:08
fijalarigato: on tannit18:08
arigatothat's using pow18:08
arigatovery different from a factorial18:08
fijalarigato: yes, but I have more than one example :)18:08
arigatofijal: ok, but I'm asking: you said factorial is faster, and I don't see it18:09
arigatoso who's wrong? :-)18:09
Rhy0liteAlex_Gaynor: GCC compiling what?  I was a little confused by PyPy version numbers and CPython version numbers18:09
fijalarigato: /tmp/yy.py is addition18:09
fijalarigato: the same thing with multiplication18:10
Alex_GaynorRhy0lite: sorry, that's compiling pypy-trunk with the GCC trunk vs. gcc 4.4.318:10
fijalarigato: maybe not factorial ;-)18:10
fijalarigato: I have a 10h jetlag, I have a good excuse to not make much sense today18:10
Alex_GaynorRhy0lite: the resulting pypy binary executes that code 3.5x faster18:10
Rhy0litecool18:10
fijalarigato: is there enough evidence? ;-)18:10
arigatofijal: on my laptop yy.py runs at exactly the same speed with python 2.6 or 2.718:11
Rhy0litebut that's surprising if PyPy should be spending most of its time in JITted code18:11
fijalAlex_Gaynor: you should clarify in the tweet18:11
fijalarigato: but not on tannit18:11
fijalAlex_Gaynor: it's pypy build on gcc18:11
fijalRhy0lite: not if it spends time in runtime18:11
fijalarigato: I see 2x on tannit18:11
arigatofijal: then I guess it's the difference between a distribution-built and a custom-built cpython?18:11
fijalor almost 2x18:11
fijalarigato: uh18:11
Alex_Gaynorfijal: Can you est to see if https://bugs.pypy.org/issue905 is fixed?18:12
fijalboth are built using gcc 4.4.3?18:12
Rhy0litefijal: my custom builds of CPython are faster.18:12
arigatoah, wait18:12
fijalarigato: I think both are stock18:12
Alex_GaynorRhy0lite: str/char mul is part of the runtime18:12
Rhy0litefijal: I'm surprised that code spends so much time in the runtime18:12
Rhy0liteah18:12
Rhy0liteokay18:12
Rhy0liteI missed exactly what you were multiplying18:12
Alex_GaynorRhy0lite: there's no reason to JIT it, it's the same for every execution :)18:12
fijalRhy0lite: hard to do better18:12
arigatopffff?18:12
fijalarigato: pffff?18:13
WinstonEwert (813ec8ab@gateway/web/freenode/ip.129.62.200.171) joined #pypy.18:13
arigatofijal: sorry, I messed up.  running /tmp/yy.py on my laptop is 2x faster on cpython 2.6 than 2.7 (!!?)18:13
fijalarigato: are you sure?18:13
arigatoyes18:14
fijalarigato: I'm sure you have some custom build cpython18:14
fijalsay debug mode18:14
fijalor so18:14
fijalAlex_Gaynor: where do I get a zip from?18:14
arigatonot installed in /usr/local/bin18:14
Alex_Gaynorfijal: pfff, I don't remember, maybe ake the pypy zip?18:14
fijalI wonder if someone can take over our computers by submitting a python-based virus to the bugtracker with "look this is slow!"18:14
CIA-8003stefanor 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: 18:15
CIA-80[chatting] It hits a SSE2 instruction before the check:18:15
CIA-80=> 0x9951bf9 <pypy_g_MiniMarkGC_allocate_nursery+105>: cvtsi2sd %eax,%xmm0 * 14https://bugs.pypy.org/issue106818:15
Alex_Gaynorfijal: probably18:15
arigatofijal: on tannit32, python2.7 is a bit slower than 2.6 too18:16
Rhy0litefijal, Alex_Gaynor: Do you expect the GCC trunk build to have an effect on speed center benchmark results?18:16
arigatoon my laptop 32, python2.7 is 2x slower than 2.618:16
fijalarigato: 32 vs 64?18:16
arigatonow on 64 on my laptop I get speedups18:16
fijaltumbleweed: this is a gcc fault maybe?18:16
arigatodoesn't make much sense..?18:16
Alex_GaynorRhy0lite: not sure yet, I'm a bit doubtful, but I'd like to see if https://bugs.pypy.org/issue905 is affected first18:16
kenaan_12arigo default 1175870d03aa4f 15/pypy/module/micronumpy/interp_support.py: Can't use a "for" loop around a jit_merge_point.18:18
fijalAlex_Gaynor: it's ~15% faster18:18
Alex_Gaynorfijal: statistically significant?18:19
fijalbut cpython is 2x18:19
fijaltumbleweed: you can't help it, you need to feed gcc with options18:19
WinstonEwert (813ec8ab@gateway/web/freenode/ip.129.62.200.171) left irc: Ping timeout: 245 seconds18:19
tumbleweedfijal: I'm thinking that, yes18:19
fijalAlex_Gaynor: can we close the gcc bug?18:20
fijaland our bug as well18:20
tumbleweedfijal: but if the check could be done in really early startup, then we're ok18:20
Alex_Gaynorfijal: the GCC bug was marked as fixed, we don't have any other bugs in our tracker18:20
Alex_Gaynorfijal: and 15% isnt' enough to close the zip one, IMO18:20
fijaltumbleweed: you don't knwo18:20
fijalAlex_Gaynor: no18:20
Alex_Gaynorfijal: leave a comment there though18:20
Alex_Gaynor?18:21
fijaltumbleweed: we'll be better than any other C program18:21
CIA-8003fijal 07roundup * 10#905/ZipFile.extractall is very slow compared to CPython 2.6: 18:21
CIA-80That's not the mentioned GCC bug. It might still be some problem with18:21
CIA-80vectorization on the GCC side, but we don't know yet :) * 14https://bugs.pypy.org/issue90518:21
tumbleweedfijal: telling the compiler not to use SSE2 instructions just so we can print a warning and abort seems crazy :)18:22
fijaltumbleweed: but you have to do it for every C program anyway18:23
fijaltumbleweed: pypy is not special18:23
CIA-8003arigo 07roundup * 10#1068/PyPy crashes without SSE2, an error message would be better.: 18:23
CIA-80Pff. I forgot that it's also compiled with the gcc option "use SSE2". I just18:23
CIA-80put the check in the startup of the JIT. * 14https://bugs.pypy.org/issue106818:23
fijalok18:23
fijal"haha"18:23
fijalI guess18:23
Rhy0liteI think the x86_64 ABI requires SSE18:24
tumbleweedall known amd64 processors have SSE218:24
Rhy0liteIA-32, okay18:24
Rhy0litebut this is why Intel is developing its new x64 ABI18:24
tumbleweedIA-32, you're lucky to have cmov...18:24
fijaltumbleweed: well, you can run IA-32 programs on 64bit just fine18:25
fijaland you save money on RAM18:25
Rhy0lite8080A, one was lucky to have AH18:25
tumbleweedfijal: are you arguing that pypy should distribute 32 bit builds using SSE2? I'm fine with that18:26
tumbleweedalthough I should be supporting whatever minimum Debian supports, which is atm i486. Tough for me.18:27
fijaltumbleweed: I mean that if you build pypy without SSE it's unusable for everything that has floats18:27
fijaltumbleweed: it would be a serious hit for people18:28
fijalyou can do something like pypy-no-sse or so18:28
tumbleweedsure, but the alternative is to completely fail on supported hardware18:28
fijal"fail" as in report the error and exit?18:28
fijalor fail as in crash with illegal instruction?18:28
tumbleweedthe latter, it appears18:28
fijalok18:29
fijalso we'll upgrade to the former18:29
fijalarmin is doing that18:29
fijalis it any good?18:29
tumbleweedI'm still obliged by policy to build for the lowest common denominator18:29
fijaltumbleweed: then you might as well not build pypy at all18:29
tumbleweedlots of multimedia packages have run-time SSE2 checks18:29
fijaltumbleweed: seriously, it'll lead to confusion18:29
tumbleweedbut they probably have the SSE2 bits in hand-assembler to one corner of the app18:30
tumbleweedso it's more straight-forward to enable it on the fly...18:30
fijalyes, definitely18:30
tumbleweedok, you are arguing strongly enough that I'm happy to leave SSE2 enabled and wait for someone to file a rude bug18:31
fijaltumbleweed: seriously, I think having a clear warning and exit is good18:32
fijalbut also consider just having pypy-no-sse package18:32
tumbleweedyes, that'd be lovely18:32
LarstiQtumbleweed: I think the warning will be fine enough18:32
fijalLarstiQ: it's warning & abort()18:33
LarstiQfijal: sorry, that's what I meant18:34
LarstiQfijal: as long as it doesn't crash mysteriously18:34
tumbleweedfijal: I don't think pypy-no-sse is a real option, I'd probably be better off including both builds and picking the right one at startup with a shell script. But that'll increase build time by *another* 30%, so I can wait for a rude bug18:35
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Quit: Leaving18:39
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy.18:39
stakkars (~tismer@p5DDB6A94.dip.t-dialin.net) joined #pypy.18:42
dmalcolm (david@nat/redhat/x-iviwvuncdvkemzel) left irc: Ping timeout: 252 seconds18:52
pybot joined #pypy.19:00
-ChanServ (ChanServ@services.)- [#pypy] Welcome!19:00
bivab (~bivab@ip-62-143-59-5.unitymediagroup.de) joined #pypy.19:00
-ChanServ (ChanServ@services.)- [#stackless] Welcome to #stackless. This channel is for the discussion of matters relating to Stackless Python. Remember that others in this channel may not be in the same timezone as you, so stick around for an answer (even if only in your channel history) if you ask a question. The mailing list is also recommended as being a faster place to get help (http://www.stackless.com/mailman/listinfo/stackless).19:01
tito (~tito@pdpc/supporter/active/tito) left irc: Ping timeout: 260 seconds19:03
kenaan_12alex_gaynor default 1137fb24cc3dde 15/pypy/module/micronumpy/: Fix indexing with numpy boxes. Also remove a long dead test.19:05
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds19:07
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Ping timeout: 240 seconds19:08
dracman (~draco@212.255.30.147) joined #pypy.19:08
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy.19:09
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 245 seconds19:11
fijal (~fijal@helmut.wlclient.ucar.edu) left irc: Read error: Operation timed out19:17
arigatofijal (when you're back):19:17
arigato"looped" and "5+" are quite unclear imo in your slides19:17
arigatoand also,  ``a+b*c`` is as fast as a loop  =>  ``a+b*c`` is done with only one loop19:18
voidspac_ (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy.19:20
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) joined #pypy.19:28
dmalcolm (david@nat/redhat/x-kckxdjztdstaojdy) joined #pypy.19:29
leo2007 (~leo@222.130.136.192) left irc: Quit: rcirc on GNU Emacs 23.4.119:38
bivab (~bivab@ip-62-143-59-5.unitymediagroup.de) left irc: Remote host closed the connection19:41
Eventh (Even@219.162.202.84.customer.cdi.no) left #pypy.19:41
ihnorton (aadfcf19@gateway/web/freenode/ip.170.223.207.25) joined #pypy.19:46
voidspac_ (~voidspace@87-194-212-65.bethere.co.uk) left irc: Quit: Goodbye...19:47
asmeurer (~asmeurer@dhcp-altamirano-166.resnet.nmt.edu) joined #pypy.20:04
stakkars_ (~tismer@p5DDB6A94.dip.t-dialin.net) joined #pypy.20:05
stakkars (~tismer@p5DDB6A94.dip.t-dialin.net) left irc: Read error: Connection reset by peer20:05
Nick change: stakkars_ -> stakkars20:05
ssutch (~textual@173.228.114.189) joined #pypy.20:05
berdario (~Tiibiidii@host243-85-dynamic.0-87-r.retail.telecomitalia.it) left irc: Quit: Ex-Chat20:09
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy.20:11
PiotrSikora (~none@nginx/adept/piotrsikora) left irc: Excess Flood20:14
fijal (~fijal@helmut.wlclient.ucar.edu) joined #pypy.20:14
weirdotumbleweed, i don't care about build speed on win32-jit, you can run it for sure if you want :)20:15
PiotrSikora (~none@nginx/adept/piotrsikora) joined #pypy.20:15
weirdounless other builders care...20:15
tumbleweedweirdo: hrm? I was talking about Debian, not the builds pypy distributes20:17
xcombelle (~chatzilla@AToulouse-551-1-71-6.w92-146.abo.wanadoo.fr) left irc: Quit: ChatZilla 0.9.88 [Firefox 10.0.2/20120215223356]20:18
weirdook20:19
kenaan_12amauryfa sepcomp2 11410f58726ea8 15/pypy/translator/c/exportinfo.py: Extract information from the first rtyper, but don't use it to build the import module.20:19
kenaan_12amauryfa sepcomp2 11d772c8bbd652 15/pypy/translator/c/: Make better use of controller: no need to access the class through the 'Module', the one accessible through RPy...20:19
kenaan_12amauryfa sepcomp2 111516c6c5964a 15/pypy/translator/c/: Refactor and create a FunctionExportInfo similar to the ClassExportInfo. These classes have methods for the dif...20:19
kenaan_12amauryfa sepcomp2 118c0e4f28c231 15/pypy/translator/c/: No need to call functions and classes through the "import module", the original RPython objects are correctly a...20:19
JaRoel (~jaroel|4d@109.37.210.3) joined #pypy.20:27
tito (~tito@178.73.217.233) joined #pypy.20:30
tito (~tito@178.73.217.233) left irc: Changing host20:30
tito (~tito@pdpc/supporter/active/tito) joined #pypy.20:30
JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) left irc: Ping timeout: 240 seconds20:30
pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) left irc: Remote host closed the connection20:34
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Quit: Leaving20:35
leo2007 (~leo@222.130.135.22) joined #pypy.20:42
fijaldone with talking20:52
antocuni (~antocuni@host120-22-dynamic.183-80-r.retail.telecomitalia.it) left irc: Ping timeout: 265 seconds20:53
Rhy0lite (dje@nat/ibm/x-uhizrumasentjrga) left irc: Quit: Leaving20:54
ronnyamaury_: what exactly is seccomp supposed to do?20:55
ronnyeh sepcomp20:55
amaury_separate, not secure :-)20:55
fijalronny: separate compilation20:55
ronnyi guess what i meant so say waht will be the mechanism for it20:56
fijalronny: magic goo20:56
amaury_the translation of RPython functions generate C functions20:57
fijalronny: there is a plan in extradoc20:57
amaury_we record this info20:57
amaury_and call these C functions from another translation20:57
ronnyi see20:58
ronnyso its kind of a api bondary with metadata?20:58
fijalamaury_: it's great you're working on it btw20:58
amaury_actually what I submitted so far20:59
amaury_was written one year ago20:59
ronnyamaury_: how are those boundaries declared?20:59
amaury_for the moment, I mark those functions with @export21:00
fijalamaury_: btw21:00
fijalamaury_: I wonder if I can use your work to do something21:00
amaury_a signature is not necessary, if the function is used somewhere else in the interpreter21:00
ronnyi see, seems sensible21:00
fijalamaury_: wouldn't it be cool to be able to specify types?21:00
amaury_it is possible to specify types21:01
fijalwell, no21:01
amaury_see the tests :-)21:01
fijalit's possible to specify "some" types21:01
amaury_actually, the annotator does everything21:01
fijalyes21:01
amaury_when you specify types, I just annotate the function once mre21:01
fijalI want a more careful specification21:02
fijallike21:02
fijal"type of this class with those attributes"21:02
amaury_I don't understand21:02
amaury_are you describing a function signature?21:02
amaury_or one argument?21:02
amaury_or is it the list of functions to export?21:02
fijalone argument21:02
amaury_why "with those attributes?"21:03
amaury_the function is certainly already annotated with W_Root or similar21:03
fijalI mean I want a general way in pypy to give types to stuff21:04
amaury_you can do that for function arguments21:04
amaury_with _ensure_args_ or something like that21:05
ronnyfijal: so you bascially want detailed declarations for specifications of certain instances of a rtpytohn class?21:05
amaury__annenforceargs_21:05
fijalamaury_: yes21:05
fijalamaury_: but you can only do simple args21:05
fijalamaury_: like "everything that does not require bookkeeper"21:05
fijalI cannot specify a non-resizable list for example21:06
fijalor a function signature21:06
amaury_I'd put an assert at the beginning of the function21:06
fijalthat's usually not good enough21:07
fijalwe have make_sure_not_resized and stuff21:07
fijalbut it's very annoying to use21:07
amaury_what I do here is a bit different21:08
amaury_I let the first translation work normally21:08
fijalwell ok21:08
fijalI'm trying to sneak stuff in :)21:09
fijalmaybe you actually want to solve an easier problem21:09
fijalwhich would be of *defined* types21:09
leo2007 (~leo@222.130.135.22) left irc: Quit: rcirc on GNU Emacs 23.4.121:09
fijalI'm fine with providing types for the entire stdobjspace21:09
amaury_then, for the second translation, I install controllers and ExtFuncEntry21:09
amaury_fijal: I hope it won't be necessary21:09
pjdelport (~pjdelport@c-69-251-199-136.hsd1.md.comcast.net) joined #pypy.21:09
fijalamaury_: maybe it's actually a good idea :)21:10
gehho2 (~gehho2@ZO060191.ppp.dion.ne.jp) left irc: Ping timeout: 276 seconds21:10
amaury_to add types to *every* rpython function?21:10
fijalno21:10
fijalto every function on stdobjspace21:10
fijalofficial "API"21:10
amaury_but even this is not strictly necessary21:11
fijalmaybe we should make it strictly necessary21:11
amaury_or we could have heuristics for "sane" signatures of exported functions21:16
RazzIs there a paper that really explains the automatic generation of a JIT compiler in PyPy? It's mentioned several times but I've yet to find the details.21:16
fijalRazz: yes21:16
fijalRazz: have you read the metainterpreter paper?21:17
fijalhttp://dl.acm.org/citation.cfm?id=156582721:17
fijalyou can find pdf online21:17
fijalhttp://codespeak.net/svn/pypy/extradoc/talk/icooolps2009/bolz-tracing-jit-final.pdf21:17
fijalone of them21:17
dmalcolm (david@nat/redhat/x-kckxdjztdstaojdy) left irc: Quit: Leaving21:20
Razzfijal: thx21:24
fijalhttp://ctuning.org/wiki/index.php?title=CTools:CTuningCC21:26
Razzactually, I've read that paper and as far as I've understood it, it does not actually explain the *generation* of a JIT just the hints used in PyPy and it mentions partial evaluation several times without going into detail ...21:26
fijalRazz: ok21:27
fijalRazz: feel free to ask questions here :)21:27
Razzfijal: ok, thx21:27
fijalhttp://doc.pypy.org/en/latest/jit/index.html21:27
fijalthis might be some help?21:27
RazzI guess what I'm most curious about is how does PyPy actually generate the JIT?21:27
fijalbut it's definitely incomplete21:27
fijalcode is in jit/codewriter21:27
fijalthat generates some sort of IR21:28
fijalthat gets later interpreted by jit/metainterp21:28
fijalRazz: I don't think there is a precise paper you're looking for21:28
Razzok, cool I'll have a browse through the code then, thx21:28
fijalRazz: but do you know how pypy compiles RPython?21:28
fijalthere should be a paper about it21:28
RazzI think I just started reading that one or at least about RPython21:29
fijalRazz: ok21:29
JaRoel|4d (~jaroel|4d@109.37.210.3) joined #pypy.21:29
fijalRazz: so essentially in 5s RPython is: Python source code -> Python objects after importing -> flow graphs -> low level flow graphs -> C21:29
fijalJIT generator takes low level flow graphs and converts them to some other representation (a pretty braid-dead transformation)21:30
fijalthen there is a piece that interprets this IR21:30
RazzSo it would seem the interpreter is altered to not evaluate but to generate code I guesS?21:30
fijalRazz: at the very-high-level, it's just taking flow graphs of interpreter transformed to low level and interprets them21:30
Razzright21:31
fijalI can answer yes or no depending on what you exactly mean :)21:31
RazzWell, it says the interpreter is converted into a JIT, that would mean that instead of evaluating it's program it has to generate code either in RPython again or as PyPy seems to do to assembly and then it is passed to an assembler for executable code generation21:32
fijalright21:32
fijalbut it's done automatically21:32
JaRoel (~jaroel|4d@109.37.210.3) left irc: Ping timeout: 244 seconds21:32
RazzSo, if I write a simple interpreter it is both translated to C and into a low-level IR the latter of which is altered to become the JIT, is that about right?21:33
fijalyes, that's 100% correct21:33
fijalit's not altered to become the JIT though21:33
fijalit's just meta-interpreted by another layer21:33
RazzOk, so the interpreter code is interpreted by an RPython or Low-level-representation interpreter21:34
fijalinterpreter code is either compiled to C21:34
fijalor compiled to the IR that's later interpeted by another interpreter21:34
RazzAnd that low-level-representation interpreter then does the actual JIT-ing21:34
fijalonly one branch is interpreted the other is compiled21:35
Razzright21:35
fijalright21:35
fijalI can point you to places in code21:35
RazzSo, the actual JIT code is static and is in fact what you mean by 'tracing the Meta-Level' I guess?21:35
Razzfijal: that would be appreciated :-)21:35
fijalRazz: right21:36
fijalRazz: so the thing you win is essentially that you have to write a JIT for a much simpler language than Python21:36
fijalRazz: it's pypy/jit/metainterp/pyjitpl.py where the actual interpreter is used21:37
fijalAlex_Gaynor: I have a crazy idea21:37
RazzSo, you wrote a tracing JIT for that low-level representation which makes it applicable to any interpreter you write in RPython, cool21:37
fijalprecisely :)21:38
fijalyou can also look at it like that21:38
fijalyou write an interpreter in RPython which is then translated to a simpler language21:38
fijaland that simpler language has a tracing JIT21:38
fijalnow we took a lot of effort to remove a lot of abstraction layers21:39
Razzalthough that does make the term 'generate' a bit more complex, it is a JIT that is static which operates on a low-level description of the interpreter right?21:39
fijalright21:39
RazzI.e. the JIT code does not change from interpreter to interpreter21:40
fijalif we change the interpreter to a compiler it would be more true21:40
fijalyes, right21:40
fijalRazz: the really cool thing would be to not bother and apply the JIT back to itself21:40
RazzThat's pretty much everything I was unsure about, nice, thx21:40
RazzI thought it might actually be interesting to really generate a JIT following the 'specializer projections' i.e. a generalization of the futamura projections in partial evaluation21:41
fijalthat's probably doable21:41
fijaland not that hard21:42
fijalit's just a bit more effort21:42
RazzThen you would get a JIT for your program or you could follow along the same lines and generate a JIT for the interpreter21:42
Razzhow is it more effort?21:42
fijalif you just do JITting not more effort21:42
RazzI'm trying to find a MSc project, hence the questions btw :-)21:43
RazzMSc thesis* project21:43
fijalok21:43
RazzAnd I think the actual generation of a JIT might be an interesting approach and also make it comparable to what the PyPy project does21:44
Razzi.e. generation by partial evaluation21:44
JaRoel|4d (~jaroel|4d@109.37.210.3) left irc: Remote host closed the connection21:45
JaRoel|4d (~jaroel|4d@195-3-178-28.netaffairsdsl.nl) joined #pypy.21:46
fijalRazz: yes, although it's work21:49
RazzIndeed, but I do have a partial evaluator at hand that works as far as I can tell ;-) although it's a partial evaluator for C, so the implementation effor would be high21:50
fijalRazz: I don't think you can compare anything unless you implement stuff directly in pypy21:51
fijalbecasue it'll be apples to oranges21:51
fijalarigato: ping?21:52
arigatopong?21:52
Razzofc, that would indeed be useless unless I follow the same path as pypy, which would be rather redundant21:52
fijalarigato: how hard would it be to have jit-in-jit?21:53
fijalto jit the pyjitpl loop to be precise21:53
fijalI see it would require some reshuffling21:53
arigatoI think it doesn't work, but you can think about statically compiling something21:53
fijalarigato: why it does not work?21:53
fijalRazz: well, I guess I'm suggesting doing something like this in pypy21:54
fijalRazz: using current stuff21:54
arigatousing a tracing jit to speed up a tracing jit itself does not work, AFAICT21:54
fijalwhy?21:54
arigatothe tracing jit is an interpreter itself, ok, but it's only doing one iteration21:54
fijalI guess something more boring like statically compiling in codewriter would be better indeed21:55
arigatoyes21:55
fijalI'll give it a go21:56
arigatoI can think that the best approach would be to statically compile a small fraction of all jitcodes21:56
fijalI guess the simplest thing is to do something stupid21:56
fijalyes21:56
arigatonot all of them21:56
fijalbecause all of them would make our executable size ~100M21:56
fijalprobably21:56
Action: fijal -> break21:57
arigatoalso, don't be too enthusiastic --- it's not easy :-)21:57
ronnydo they have to be shipped in the same file?21:57
fijalthe simple thing is relatively easy21:57
fijalbut also quite a bit boring21:57
arigatono21:57
fijalthat is to emit RPython code21:57
fijalno?21:57
arigatoit's a mess21:58
fijalwhy?21:58
arigatoguards need to enumerate live variables for example21:58
arigatoalso you'd need a version for blackholing21:58
arigatoyou need to force some inlining carefully, too21:59
arigatoto statically malloc-remove some of the ConstXxx22:00
arigatofor the manipulations that start with green variables22:00
fijal (~fijal@helmut.wlclient.ucar.edu) left irc: Ping timeout: 248 seconds22:03
ihnorton (aadfcf19@gateway/web/freenode/ip.170.223.207.25) left #pypy.22:03
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds22:03
aboudreault (~alanb@osgeo/member/aboudreault) left irc: Ping timeout: 260 seconds22:05
bugsbunnyak (aadfcf19@gateway/web/freenode/ip.170.223.207.25) joined #pypy.22:10
arigato (~arigo@adsl-84-227-45-39.adslplus.ch) left irc: Quit: See you22:10
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy.22:10
kenaan_12amauryfa sepcomp2 11094c275fd0b4 15/pypy/translator/c/: Implement attribute access22:24
thurloat_ (~thurloat@blk-11-127-105.eastlink.ca) joined #pypy.22:24
kenaan_12amauryfa sepcomp2 11cdad5637ce91 15/pypy/translator/c/: Implement method calls across dll boundaries22:24
kenaan_12amauryfa sepcomp2 118f7ccec230cd 15/pypy/translator/c/: clean whitespace22:24
kenaan_12amauryfa sepcomp2 113ac122eefc54 15/: hg merge default22:24
thurloat (~thurloat@blk-11-127-105.eastlink.ca) left irc: Ping timeout: 244 seconds22:25
Nick change: thurloat_ -> thurloat22:25
kenaan_12alex_gaynor extradoc 11ed3ea5c4cb3f 15/planning/: Rename this to .rst22:26
fprimex (~fprimex@fl-67-233-144-239.dhcp.embarqhsd.net) left irc: Quit: later22:26
fijal (~fijal@helmut.wlclient.ucar.edu) joined #pypy.22:30
fijal (~fijal@helmut.wlclient.ucar.edu) left irc: Read error: Connection reset by peer22:31
fijal (~fijal@helmut.wlclient.ucar.edu) joined #pypy.22:31
Alex_Gaynorfijal: pong22:32
amaury_Looks like cpyext is not far from passing most Cython tests22:37
Alex_GaynorCool22:37
amaury_If someone wants to implement the remaining functions, be my guest22:38
fijalAlex_Gaynor: I was discussing jit-in-jit with armin22:39
Alex_Gaynorfijal: what does that mean?22:39
fijalAlex_Gaynor: to jit pyjitpl.py22:46
fijalor statically compiel it22:46
fijalor something22:46
Alex_Gaynorfijal: basically a version of functions specialized with recording each op, or something else?22:47
fijalAlex_Gaynor: to compile say pypy interpreter loop to an RPython function that does the jiting22:47
fijalto avoid overhead of interpreting in pyjitpl.py22:47
Alex_GaynorOk so for tests or something you're saying?22:48
Alex_GaynorThis isn't about a normal pypy binary22:48
fijalyes it is22:50
fijalto speed up jitting itself22:50
Alex_GaynorJITing the JIT gives me a headache22:50
fijalwell22:51
fijalmaybe we can somehow change the interpreter that we have in pyjitpl.py22:51
fijalinto a compiler22:51
Alex_Gaynorthat makes more sense ot me, but I guess you said that's what the timeshifter did?22:53
fijalyes22:54
fijalbut the timeshifter was broken for a variety of reasons22:54
Alex_GaynorWhat was the timeshifter anyways?22:54
Alex_Gaynor(And why was it named that)22:54
fijalit shifted a bit of time ;-)22:54
fijalso what it did was to take rpython-level graphs22:54
fijaland change them into jit graphs22:55
fijalbut it was all done as a graph transformation22:55
Alex_GaynorI guess  compiler for pyjitpl is a mess with blackhole22:55
fijalwhy?22:56
Alex_GaynorWell, how do you jump into the middle of a C function if you fail a guard in one of them?22:56
fijalthat's what blackhole does no?22:57
fijalyou just raise "ContinueInBlackhole"22:57
Alex_GaynorBlackhole jumps into the middle of interpreting jitcode22:58
Alex_Gaynorjumping into a bytecode is easy22:58
Alex_Gaynorhow do you jump into an actual C function22:58
Alex_Gaynorsetjmp or something22:58
fijalyou don't have to do it22:59
fijalyou can still have blackhole that interprets everything normally22:59
bbot2Started: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/81523:00
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/24823:00
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/106723:00
bbot2Started: 15http://buildbot.pypy.org/builders/cpython-2-benchmark-x86-64/builds/2323:00
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/7523:00
fijalok23:00
fijalWTF dbus daemon makes me unable to open files?23:00
Alex_Gaynorfijal: so you end up with generated function AND the jitcode?23:00
bbot24Failure: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/7523:00
fijalAlex_Gaynor: yes23:01
Alex_Gaynormemory use:/23:01
bbot24Failure: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/24823:01
amaury_"translation failed"23:01
fijalyes23:01
fijalindeed, armin broke stuff this time23:01
fijalon the other hand, where are we passing r_longlong?23:02
Alex_Gaynoris_being_profiled23:02
Alex_Gaynorapparently23:02
Alex_Gaynorisn't that a bool?23:02
fijal?23:02
fijalhow is is_being_profiled an r_longlong?23:03
amaury_works in 32bit mode23:03
Alex_Gaynorhow the hell should I know :/23:03
fijalAlex_Gaynor: ok, so look how metainterp._compile_and_run_once works23:03
Alex_Gaynorfijal: yes I know how it works23:03
fijalyou replace interpret() with a special function23:03
fijalmemory consumption should be ok23:03
fijalgiven that we don't want to compile for all jitcodes23:03
gtaylor (~gtaylor@108-196-160-156.lightspeed.tukrga.sbcglobal.net) left irc: Quit: Konversation terminated!23:03
fijalonly for some23:03
fijalAlex_Gaynor: and then interpret can either normally interpret or call a special function23:04
nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 276 seconds23:05
mjacob (~foobar@p57A8B8C7.dip.t-dialin.net) joined #pypy.23:06
Alex_Gaynorfijal: how do we decide which functions are compiled, and which are 100% interpreted?23:07
Alex_GaynorI guess the smaller ones (like newint) are best to compile23:08
fijalAlex_Gaynor: by say running some statistics?23:08
fijalwe know how often we interpret each function23:08
Alex_Gaynorwhat stats?23:08
fijalor we can find out23:08
fijalyou compile pypy with special instrumentation that tracks23:09
fijalhow often you metainterp a certain function23:09
Alex_GaynorWell anyways, there's like 700 things I want to work on first.23:10
fijal:]23:11
fijaldo you have some for me? ;-)23:11
bbot24Failure: 15http://buildbot.pypy.org/builders/cpython-2-benchmark-x86-64/builds/2323:11
Alex_Gaynorfijal: go finish vectorization or record dtypes?23:12
fijalyeah, record dtypes23:12
fijalI'll leave vectorization alone for now ;-)23:12
fijalI need to implement strings & unicodes for record dtypes23:12
Alex_GaynorYes, and we need detection23:12
Alex_Gaynore.g. ["a", "abc", "def"] becomes str323:12
stakkars_ (~tismer@p5DDB6A94.dip.t-dialin.net) joined #pypy.23:13
fijalthat's so ugly it leaves me speechless23:15
stakkars (~tismer@p5DDB6A94.dip.t-dialin.net) left irc: Ping timeout: 244 seconds23:15
Nick change: stakkars_ -> stakkars23:15
mjacobwhat's the purpose of 'Symbolic's in rpython?23:15
fijalmjacob: sometimes you don't know the value23:16
fijallike sizeof(stuff)23:16
kvda (~kvda@124-171-36-73.dyn.iinet.net.au) joined #pypy.23:16
mjacobfijal: and at translation time i have to call compute_fn?23:17
fijalmjacob: you don't call compute_fn23:17
fijalyou render it in C23:17
Snyg (~snyg@p4FF1C653.dip0.t-ipconnect.de) left irc: Quit: Bye23:17
justinpeel (~justinpee@c-76-23-44-72.hsd1.ut.comcast.net) joined #pypy.23:18
whitelynx (~whitelynx@63.241.75.144) left irc: Quit: Ex-Chat23:28
squiddy (~squiddy@f053080067.adsl.alicedsl.de) left irc: Quit: Leaving23:31
rhn (~rhn@5acba580.bb.sky.com) left irc: Remote host closed the connection23:38
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 240 seconds23:39
hacman (~hacman@cpe-66-65-188-46.nyc.res.rr.com) joined #pypy.23:42
voidspac_ (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy.23:42
Tobu (~Tobu@unaffiliated/tobu) left irc: Ping timeout: 272 seconds23:44
nedbat (~nedbat@python/psf/nedbat) joined #pypy.23:46
otakutom_ (~otakutomo@KD027083117212.ppp-bb.dion.ne.jp) joined #pypy.23:51
LarstiQ_ (~larstiq@menas.richtlijn.be) joined #pypy.23:54
otakutomo (~otakutomo@27.83.117.212) left irc: Ping timeout: 252 seconds23:54
djahandarie (~darius@unaffiliated/djahandarie) left irc: Ping timeout: 252 seconds23:54
djahandarie (~darius@137.99.25.240) joined #pypy.23:54
LarstiQ (~larstiq@menas.richtlijn.be) left irc: Ping timeout: 252 seconds23:54
djahandarie (~darius@137.99.25.240) left irc: Changing host23:54
djahandarie (~darius@unaffiliated/djahandarie) joined #pypy.23:54
zain (~textual@46.120.28.30) left irc: Quit: Textual IRC Client: http://www.textualapp.com/23:54
--- Thu Feb 23 201200:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!