#pypy IRC log for Monday, 2011-12-05

apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) left irc: Remote host closed the connection00:06
jonanin (~jonanin@24-183-50-140.dhcp.mdsn.wi.charter.com) left irc: Read error: Connection reset by peer00:07
Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 244 seconds00:09
harrisonthis is fun. i am compiling pypy from repo using pypy from download00:09
harrisoni tried 6 months ago but didn't have enough ram00:09
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) joined #pypy.00:10
harrisonlo lac00:11
Squarepy (~Squarepy@ip82-139-118-42.lijbrandt.net) left irc: Quit: Leaving00:15
kenaan12alex_gaynor numpy-dtype-refactor-complex 112d7dd6a415a4 15/pypy/module/micronumpy/: progress, can now see if 2 complexes are equal and read them out of a value00:16
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Quit: fzzzy00:17
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) left irc: Remote host closed the connection00:17
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy.00:18
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) joined #pypy.00:18
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) left irc: Ping timeout: 244 seconds00:22
rekamso (~textual@c-71-197-238-154.hsd1.wa.comcast.net) joined #pypy.00:32
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Ping timeout: 240 seconds00:34
ousado_ (~ousado@hmbg-5f762bbb.pool.mediaWays.net) joined #pypy.00:38
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Quit: fzzzy00:39
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Ping timeout: 240 seconds00:41
ousado (~ousado@unaffiliated/ousado) left irc: Ping timeout: 258 seconds00:42
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/612 [12hakanardo, jit-targets]00:47
tlynn (~tlynn@cpc6-cmbg14-2-0-cust121.5-4.cable.virginmedia.com) left irc: Ping timeout: 240 seconds00:50
derdon (~derdon@p5DE8947D.dip.t-dialin.net) left irc: Remote host closed the connection00:56
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) joined #pypy.00:59
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) left irc: Changing host00:59
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.00:59
maxyz (~maxy@186.18.94.35) joined #pypy.01:12
maxyz (~maxy@186.18.94.35) left irc: Ping timeout: 252 seconds01:21
bbot24Failure: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/73401:21
maxyz (~maxy@186.18.94.35) joined #pypy.01:27
harrison (~sr@adsl-69-209-213-114.dsl.chcgil.sbcglobal.net) left irc: Remote host closed the connection01:34
Da_Blitz (~Da_Blitz@203.56.250.63) joined #pypy.01:35
bbot2Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/187701:38
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/29401:38
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/61301:38
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/114201:38
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/63201:38
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/81701:38
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/145901:38
bbot2Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/73801:38
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/28301:38
maxyz (~maxy@186.18.94.35) left irc: Ping timeout: 245 seconds01:49
Vorpal (~AnMaster@unaffiliated/anmaster) left irc: Ping timeout: 240 seconds01:51
maxyz (~maxy@186.18.94.35) joined #pypy.01:53
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/28302:05
asmeurer__ (~asmeurer@dhcp-baca-230.resnet.nmt.edu) left irc: Quit: asmeurer__02:10
asmeurer__ (~asmeurer@70.56.139.215) joined #pypy.02:20
asmeurer__ (~asmeurer@70.56.139.215) left irc: Ping timeout: 252 seconds02:25
jcookeman (~jcookeman@78-86-161-32.zone2.bethere.co.uk) left irc: Ping timeout: 244 seconds02:26
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/96402:29
Kaskuka (~John@osbk-4db16b6e.pool.mediaWays.net) left irc: Ping timeout: 240 seconds02:42
Kaskuka (~John@osbk-4db17372.pool.mediaWays.net) joined #pypy.02:42
nedbat (~nedbat@python/psf/nedbat) joined #pypy.02:46
durin42 (~durin@173-15-14-174-Illinois.hfc.comcastbusiness.net) left irc: Ping timeout: 244 seconds03:04
durin42 (~durin@adium/durin42) joined #pypy.03:06
lac_ (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.03:11
lac (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Ping timeout: 244 seconds03:11
Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 244 seconds03:40
Da_Blitz (~Da_Blitz@203.56.250.63) joined #pypy.03:42
kenaan12ned nedbat-sandbox 11d06f77ba878f 15/pypy/translator/sandbox/test/test_sandlib.py: Add a test of opening lots of real files also.03:47
kenaan12ned nedbat-sandbox 11ba523ca5ff05 15/pypy/translator/sandbox/test/test_sandlib.py: Add a sandlib test for lseek03:47
mitchellh (u4018@gateway/web/irccloud.com/x-ssbxjvlfhsoopzbw) left #pypy.03:48
bbot24Finished ??: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/29403:50
nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 248 seconds03:57
apanda (~apanda@c-24-7-101-62.hsd1.ca.comcast.net) joined #pypy.04:03
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/16004:10
bbot24Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/187705:11
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/29505:19
asmeurer__ (~asmeurer@70.56.139.215) joined #pypy.05:24
rekamso (~textual@c-71-197-238-154.hsd1.wa.comcast.net) left irc: Quit: Textual IRC Client: http://www.textualapp.com/05:26
gutworth (~benjamin@dhcp-128-36-84-91.central.yale.edu) left irc: Ping timeout: 252 seconds05:39
Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 252 seconds05:52
Da_Blitz (~Da_Blitz@203.56.250.63) joined #pypy.05:59
aleksi (~aleksi@85.235.191.82) joined #pypy.06:04
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/145906:13
neunon (~snoonan@unaffiliated/neunon) joined #pypy.06:13
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/63206:21
kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Quit: Textual IRC Client: http://www.textualapp.com/06:34
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/81706:36
Nick change: Gulopine -> Gulaway06:36
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/61306:41
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy.06:42
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/114206:44
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy.06:49
cheyuni` (~user@125.129.20.246) joined #pypy.06:53
cheyuni` (~user@125.129.20.246) left irc: Remote host closed the connection06:55
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Read error: Operation timed out06:57
kenaan12hakanardo jit-targets 1116988785671d 15/pypy/jit/backend/x86/test/test_regalloc.py: fix test06:58
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Remote host closed the connection07:07
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) joined #pypy.07:08
kirma (~jkirma@kekkonen.cs.hut.fi) joined #pypy.07:11
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Remote host closed the connection07:16
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) joined #pypy.07:17
mvt (~mvantelli@87.213.45.85) joined #pypy.07:19
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Remote host closed the connection07:21
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) joined #pypy.07:22
fijalhi07:30
kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #pypy.07:32
brutal_chaos (~chaos@francium.electricgrey.com) joined #pypy.07:33
brutal_chaosWhat is wrong with this: python2.7 ./pypy/translator/goal/translate.py -Ojit --stackless ./pypy/translator/goal/targetpypystandalone.py --withmod-bz2 --withmod-_minimal_curses --withmod-pyexpat --withmod-_ssl07:37
brutal_chaoscan I not have stackless and jit?07:38
Garenbrutal_chaos: It's enabled by default now, so no need to add an option for it unless you want to exclude it.07:42
brutal_chaosGaren: which is default?07:44
Garenbrutal_chaos: http://morepypy.blogspot.com/2011/11/pypy-17-widening-sweet-spot.html  ... "PyPy now comes with stackless features enabled by default"07:48
brutal_chaosoh, very cool. thanks07:48
brutal_chaoshas anyone had success building pypy with llvm/clang?07:49
Garenbrutal_chaos: Somewhere I've heard it works. :)  Not as cross-platform as gcc though I bet.07:52
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection07:55
Vorpal (~AnMaster@unaffiliated/anmaster) joined #pypy.07:57
ronnybrutal_chaos: it need to be built with the shadowstack gc rootfinder to work on non-gcc compilers07:58
ronnyGaren: actually more cross-platform, just a bit slower07:58
Garenronny: clang/llvm doesn't work nearly well on windows for me08:00
Garenronny: Where does it work better?08:01
ronnyGaren: the main difference between the default (asmgcc) and shaodowstack is, that one us plain c, the other is gcc magic08:01
Garenoic08:02
pedronis (~pedronis@73-53.195-178.cust.bluewin.ch) left irc: Remote host closed the connection08:07
pedronis (~pedronis@73-53.195-178.cust.bluewin.ch) joined #pypy.08:09
Ademan (~dan@adsl-71-141-224-79.dsl.snfc21.pacbell.net) left irc: Quit: leaving08:13
etrepum (~bob@75-101-96-144.dsl.static.sonic.net) joined #pypy.08:14
brutal_chaoswell poo. I didn't build with shadowstack (nor did I include tests). What can I do to see if pypy is failing?08:17
fijalronny: it's not gcc magic08:24
fijalit works on VC++08:24
fijalit's just that we postprocess C-compiler generated assembler08:24
fijalwhich is not very cross-compiler08:24
fijalbrutal_chaos: did it build with asmgcc and clang?08:25
brutal_chaosit is still building08:25
brutal_chaosjust past rtyper 20%08:25
brutal_chaosfijal: ^08:25
fijalah no08:25
fijalit'll crash later on08:25
fijalmuch later on08:25
brutal_chaos:(08:25
fijalI would cancel it and start with shadowstack08:26
fijalwe're trying to phase out asmgcc, but it's kinda hard to match the performance08:26
brutal_chaosso what is asmgcc?08:26
brutal_chaosalso, at what point will the build fail?08:26
kkris (~kris@80-123-46-92.adsl.highway.telekom.at) joined #pypy.08:30
brutal_chaosfijal: ^08:30
fijalat C compilation stage08:30
brutal_chaosfijal: what is asmgcc though?08:30
fijalok, so do you know the problem of finding GC stack roots?08:30
brutal_chaosno08:30
fijalso do you know what GC roots are?08:32
fijalthose are things that can reference alive objects08:32
fijalso alive objects can be referenced from globals, from stack and so on08:33
fijalright?08:33
brutal_chaosright08:33
fijalwhen you're doing garbage collection you have to start at roots and walk the entire object graph until you're done08:33
fijaleverything else is dead08:33
fijalso C does not provide you a way to find all pointers on the stack08:33
fijalyou can walk the entire stack, but you might run into an int that looks like a pointer but is actually not08:33
fijaland that'll keep something artificially alive for example08:34
fijaland causes other troubles08:34
fijalwith me so far?08:34
brutal_chaosyeah08:34
fijalok, so there are various strategies how to track pointers on the stack08:35
fijalit's also not any pointers - we want only pointers that point to GC managed structures, so they're of an appropriate type08:35
fijaltype information is gone by the time you generate assembler, so the info is not there at all08:35
fijalso we have two strategies08:35
fijalone is called "shadowstack" where you copy the entire stack into the heap and you can look what's there08:36
fijalthis is obviously costly08:36
fijalthe other one is to have hints that compile to assembler hints08:36
fijaland postprocess assembler generated by the C compiler08:36
fijallike gcc -S08:36
fijaland then compile it only08:36
fijalthis is obviously faster, but also obviously less cross-platform08:36
fijalin fact it's so much pain to maintain we would like to get rid of it08:36
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.08:37
fijaleven at the some % of performance costs08:37
fijalbut I guess right now it's 10% and we don't want to do it08:37
fijalbrutal_chaos: do I make any sense?08:37
brutal_chaosfijal: yes, thanks.08:37
fijalnp :)08:37
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Quit: Leaving08:37
brutal_chaosfijal: clang has a -S and generates assembly. can't that be post processed?08:43
kenaan12bivab arm-backend-2 117873941fd23b 15/pypy/: (arigo, bivab): move this hack to rmmap and make it a bit cleaner08:43
kenaan12bivab arm-backend-2 11b485870748d3 15/pypy/jit/backend/test/runner_test.py: (arigo, bivab): test the presence of INSTANCE_PTR_NE and INSTANCE_PTR_EQ in the backend08:43
kenaan12bivab arm-backend-2 1183649b8410c7 15/pypy/jit/backend/arm/regalloc.py: (arigo, bivab): add instance_ptr_... also in the register allocator08:43
kenaan12bivab arm-backend-2 118fbef9af526f 15/pypy/jit/backend/arm/: (arigo, bivab): clear CPU cache everty time instructions are written to memory and put breakpoints at the loc...08:43
fijalbrutal_chaos: but it's different assembler08:44
bivab (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy.08:44
fijalsure it can but it requires effort08:44
brutal_chaosah08:44
brutal_chaosfijal: that makes sense08:44
bbot24Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/73808:59
asmeurer__ (~asmeurer@70.56.139.215) left irc: Quit: asmeurer__09:07
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy.09:15
antocuni (~antocuni@host129-122-dynamic.16-79-r.retail.telecomitalia.it) joined #pypy.09:16
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Client Quit09:16
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy.09:17
__pv (pav@xen.ihme.org) left irc: Quit: leaving09:17
G2P (~G2P@fw-asn1.ornis.com) joined #pypy.09:17
__pv (pav@xen.ihme.org) joined #pypy.09:18
Garen_ (garen@69.76.18.3) joined #pypy.09:25
uche (~uche@70-90-116-204-BusName-summit.co.hfc.comcastbusiness.net) left irc: Ping timeout: 252 seconds09:25
Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 240 seconds09:26
Da_Blitz (~Da_Blitz@203.56.250.63) joined #pypy.09:27
brutal_chaoshow do I use the shadowstack gc?09:28
Garen (garen@69.76.18.3) left irc: Ping timeout: 258 seconds09:28
brutal_chaoswhere in this line do I add it?: python2.7 ./pypy/translator/goal/translate.py -Ojit ./pypy/translator/goal/targetpypystandalone.py --withmod-bz2 --withmod-_minimal_curses --withmod-pyexpat --withmod-_ssl09:28
fijalok09:29
fijalwhy are you using all those options, can you tell me?09:29
fijalyou know that everything after target is redundant?09:29
fijalthey're on by default09:29
fijalit's translate.py --gcrootfinder=shadowstack I believe09:30
brutal_chaosfijal: ah, it's the line gentoo's ebuild generates as part of the ebuild09:30
fijalbut this and -Ojit are the only options you're interested in09:30
brutal_chaosas part of the build process* with its USE flags.09:30
fijalI know and gentoo package maintainer claims this is because gentoo users like tinkering with options09:30
fijalso he passed some for a good measure09:30
brutal_chaosso, that is why09:32
fijalok09:32
jellnext person asking about broken old ebuild file :)09:33
brutal_chaosold? broken? no09:33
jelllast week there was also such person ;)09:33
brutal_chaosmissing some features, yes09:33
brutal_chaosI've emailed the maintainer to add the option, hopefully they'll do so.09:34
fijalbrutal_chaos: hey hey hey09:34
fijalbrutal_chaos: wait a sec09:34
fijalwhy do you want to use shadowstack?09:34
brutal_chaosfijal: yes?09:34
fijaljust because you want to use clang?09:34
fijalit *will be* slower09:34
brutal_chaosfijal: llvm/clang09:34
fijalyeah09:35
fijalbut why not just compile using gcc?09:35
fijalI mean don09:35
jellfijal: nice catch ;)09:35
fijalt change package options until you did benchmarks and made sure it works at least09:35
fijalwe don't even have such a buildbot09:35
brutal_chaosfijal: lol, the only package option I am adding is the ability to use shadowstack so pypy builds with clang.09:36
fijalwe don't even have such a buildbot09:36
fijaluh sorry09:36
fijalso how would that look like?09:36
brutal_chaoswhat do you mean?09:36
brutal_chaoshow would I build with clang?09:37
fijalhow does that look like?09:37
fijalwill it still compile with asmgcc on gcc?09:37
brutal_chaosoh, yeah, definitely09:37
brutal_chaosthe only way clang is used, is if the user sets an environment variable to use clang instead of gcc.09:37
brutal_chaosgcc is default and the package option doesn't change your compiler at all09:38
brutal_chaosjust includes --gcrootfinder=shadowstack to the translation line09:38
brutal_chaosthat's all09:38
brutal_chaosI just want to have --gcrootfinder=shadowstack available so if I change my compiler to clang, I can build pypy09:39
brutal_chaosfijal: btw, how can I run benchmarks?09:40
brutal_chaosonce the build completes, I'd like to see the results.09:40
stakkars_ (~tismer@i59F7379D.versanet.de) joined #pypy.09:45
fijalbrutal_chaos: check out pypy/benchmarks09:45
fijaland then run runner.py with options09:45
fijal--help is a way to find them09:45
fijalbtw, I would like to at least emit a warning to a user09:45
fijal"this is going to be slower"09:45
brutal_chaosfijal: I am not the maintainer, but I'll let them know.09:46
fijalcool09:47
fijalI mean yes, exploding is not good09:47
brutal_chaosfijal: I simply created my own ebuild that ads the option in the mean time though.09:50
brutal_chaos(personal use, not for distribution)09:50
arigato (~arigo@fwstups.cs.uni-duesseldorf.de) joined #pypy.09:51
ojii (~ojii@40-34.60-188.cust.bluewin.ch) joined #pypy.09:52
brutal_chaoswoot, ebuild operational. Attempting a clang/shadowstack build.09:58
brutal_chaosafter it completes (i need sleep, so sometime tomorrow), I'll run benchmarks. fijal, how would you like me to submit them?09:58
cpets (c358b60a@gateway/web/freenode/ip.195.88.182.10) joined #pypy.09:59
fijalbrutal_chaos: I think if you're aware of outcomes, it's good enough to report them to ebuild maintainer09:59
fijalyou can also post them on pypy-dev09:59
brutal_chaosmailing list?10:01
kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Ping timeout: 244 seconds10:02
fijalyes10:02
fijalit would be interesting to see10:02
_aleksi (~aleksi@85.235.191.82) joined #pypy.10:06
brutal_chaosfijal: alright, the build is going and I am off to bed. I'll post the results to the ml once I get a chance.10:06
fijalbrutal_chaos: cool, thanks!10:07
brutal_chaosfijal: can these be hidden? [version:WARNING] Errors getting Mercurial information: Not running from a Mercurial repository!10:09
fijalit would be cool if you had this info10:09
fijalbecause that renders quite a few sys attributes useless10:09
aleksi (~aleksi@85.235.191.82) left irc: Ping timeout: 240 seconds10:09
brutal_chaoshttps://bitbucket.org/pypy/pypy/get/release-1.7.tar.bz2 is where the source comes from10:10
brutal_chaosfijal: ^10:11
fijalright10:11
fijalgood point10:11
squiddy (~squiddy@g224193176.adsl.alicedsl.de) joined #pypy.10:12
brutal_chaosk, now I am off to bed. :)10:12
lizardo (~lizardo@189.2.128.130) joined #pypy.10:18
fijalarigato: hi armin10:19
ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) joined #pypy.10:20
arigatohi10:21
ronnyhmm10:27
CIA-1303ronny 07roundup * 10#952/try to use .hg_archival if .hg is not availiable: 10:28
CIA-13[new] that way people getting the bitbucket tarballs will have correct vcs bases sys10:28
CIA-13attributes * 14https://bugs.pypy.org/issue95210:28
Da_Blitz (~Da_Blitz@203.56.250.63) left irc: Ping timeout: 252 seconds10:29
Da_Blitz (~Da_Blitz@203.56.250.63) joined #pypy.10:31
fijalarigato: your test runs with no end in sight10:31
fijalarigato: the one that you commited for the missing write barrier for setinteriorfield10:32
fijalI wrote a fix, looks like this:10:32
fijalhttp://paste.pocoo.org/show/516603/10:33
kenaan12arigo default 111f76b745f839 15/pypy/jit/backend/x86/test/test_zrpy_gc.py: Oups, sorry.10:35
fijalcan I commit my fix?10:36
mkerrin (~mkerrin@wg1-nat.fwgal01.deri.ie) joined #pypy.10:37
arigatofijal: yes, please do, if it passes my corrected test10:37
Action: arigato tries to answer on irc via hg commit messages10:37
fijalnice haiku :)10:37
fijalAttributeError: 'NoneType' object has no attribute 'foo'10:38
fijalyou did not run the test, did you :)10:38
Action: fijal fixes10:38
arigatouh?10:38
arigatoargh10:38
arigatowell kill the line that says "check that..."10:38
verte (~verte@python/site-packages/verte) joined #pypy.10:38
verte (~verte@python/site-packages/verte) left irc: Client Quit10:38
fijalronny: can you elaborate/come up with a patch?10:39
ronnyfijal: its on my list, i have a basic idea, its not that different from what hgdistver does10:44
Action: fijal keeps running10:44
fijalronny: well, sure, but the bug report does not convey your basic idea in any sense10:44
fijalit's of no information to anyone who is not you10:44
fijalwhen I look into bugs for release I would be inclined to close this one with "wtf"10:44
fijalwhat is .hg_archival?10:45
fijala thing you just invented or something else?10:45
fijala bug saying "our release tarballs give warnings about hg information not being there"10:45
fijalis by far more informative IMO10:45
ronnyfijal: its not our own release tarballs, its the source tarballs from bitbucket10:46
fijalwell whatever10:46
ronnyfijal: and those have .hg_archival10:46
fijalit's the same thing10:46
kenaan12fijal default 116b51800a7ece 15/pypy/jit/backend/: A test and a fix10:47
CIA-1303fijal 07roundup * 10#951/segfault in nested array/dict creation: [resolved] Fixed in 6b51800a7ece thanks for reporting! * 14https://bugs.pypy.org/issue95110:48
fijalarigato: thanks for finding this :)10:48
arigato:-)10:48
Action: fijal ponders what to do10:50
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/29510:50
fijalarigato: btw, how insane is the idea of having refcounting for really large objects?10:51
mikefcfijal: may i ask what the problem was for that segfault?10:52
fijalmikefc: sure, a missing write barrier for setinteriorfield10:52
fijal:-)10:52
fijaldo you want to know what that means?10:52
mikefcahh. that makes about as much sense as i thought it would :)     Slowing trying to figure out how to do *anything* in pypy10:53
mikefcnow I'll have to build my own version rather than a DLd one.10:53
ronnythe next ngihtly will include the change10:54
ronnywhat are you trying to do?10:54
fijalmikefc: or wait till tomorrow10:55
fijalmikefc: do you know what is a write barrier?10:55
mikefcronny: I just had a complex data structure holding a whole tonne of crap.  basically holding a DB in memory10:55
fijalI can seriously explain what I meant10:55
fijal(if you want to know)10:55
mikefci didn't realise there were nightlies. I need more hours in the day.10:55
fijalhttp://buildbot.pypy.org/nightly/trunk/10:56
fijalby tomorrow EU time10:56
mikefcfijal: i do want to know, but i may not be able to take it in.  I like the idea of python in python.  and of having a good numpy. but my grasp of JITs and what-not is quite quite limited.10:56
fijalhahaha :)10:57
fijalnever stop believing in yourself10:57
arigatofijal: to ensure quick collection?  that's unlikely to work, because there are probably indirectly references from non-refcounted small objects, like the frame10:57
fijalarigato: not in the jitted case10:57
fijalalso, even in the normal case10:58
fijalI'm usually talking about such examples:10:58
arigatowell, then the W_XxxObject that holds the reference to the big array10:58
fijalhttp://paste.pocoo.org/show/516609/10:59
fijalright10:59
fijalbut then the big object would be10:59
fijalW_XxxRefcountedObject10:59
fijallike a numpy array10:59
mikefcfijal: thanks for the fix. 10:59
Action: mikefc now readies to post a speed bug10:59
fijalso in this case the frame would remove the refcount just before storing a new one11:00
fijalarigato: still a bit too disruptive idea?11:00
fijalor simply won't work?11:00
arigatofijal: trying to understand what you exactly mean: do you really mean "W_Refcounted", as in a subclass of W_Root?11:01
fijalI mean something like11:01
fijalRefoucountedNumpyArray11:01
fijalwhich is a subclass of W_Root11:01
fijalwhich itself has a reference to large *raw* array11:01
arigatoyou can't put a refcount on a subclass of W_Root, without adding refcount-management code *everywhere* that manipulates W_Root11:02
fijalI don't want to have an explicit refcount11:02
fijaljust an implicit one, like gc=refcount strategy11:02
fijalah11:02
fijalI understand what you mean11:03
arigatowhat is an "implicit reference count"?11:03
fijalyou mean that each place that handles W_Root objects would have to do "is this a refcounted object?" question?11:03
fijalright?11:03
arigatoyes11:03
fijalok11:03
fijalthat would suck11:03
arigatoyes :-)11:03
fijalyou know what's the issue btw?11:04
fijalwhy am I bringing it up?11:04
arigatono11:04
fijalbecause you have things like this:11:04
fijala = some_numpy_array()11:04
fijaland in a loop11:04
CIA-1303mikefc 07roundup * 10#953/defaultdict behaviour inconsistent with cpython: 11:04
CIA-13[new] While trying to recall how defaultdicts work, I found that11:04
CIA-13collections.defaultdict([]) and collections.defaultdict({}) cause a TypeError11:04
CIA-13... * 14https://bugs.pypy.org/issue95311:04
fijala = <some expression based on a>11:04
fijallike11:04
fijala = (a + a) * (a + a)11:04
fijalfor example11:04
fijalno11:04
fijalw11:04
fijalno, it's even more often11:05
fijala[:] = (a + a) * (a + a)11:05
fijalso you replace items of a11:05
fijalwhile you're doing that, you invalidate all the expressions that are based on a11:05
pedronis (~pedronis@73-53.195-178.cust.bluewin.ch) left irc: Ping timeout: 240 seconds11:05
fijalso you need now to compute11:05
fijala + a11:05
fijaland (a + a) * (a + a)11:05
fijalwhile computing a+a is pointless11:05
fijalbut you don't know11:05
arigatoI see11:06
CIA-1303fijal 07roundup * 10#953/defaultdict behaviour inconsistent with cpython: 11:06
CIA-13[chatting] This should probably be reported upstream as a CPython missing test case? Do they11:06
CIA-13fail silently or do they actually succeed? * 14https://bugs.pypy.org/issue95311:06
fijalarigato: I don't quite know how to attack that11:07
fijalmaybe we can do JIT-based refcounting?11:07
arigatomaybe with the help of the JIT, indeed11:07
arigatoif the line a[:] = (a+a)*(a+a) is itself in a JITted loop11:08
arigatothen the JIT can notice that the object b=(a+a) never escapes11:08
arigatostill not obvious...11:10
pedronis (~pedronis@73-53.195-178.cust.bluewin.ch) joined #pypy.11:10
kenaan12l.diekmann type-specialized-instances 11591a337d364f 15/pypy/objspace/std/test/test_mapdict.py: fixed mapdict tests11:11
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) joined #pypy.11:11
Nick change: elliottcable -> elliottcable|hat11:12
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) left irc: Changing host11:16
Squarepy (~Squarepy@unaffiliated/squarepy) joined #pypy.11:16
Action: arigato does pyglet today, to replace pygame in (1) bub-n-bros and (2) dotviewer11:16
fijalarigato: hooray!11:16
fijalnice zooming....11:17
arigato:-)11:17
fijaland pypy compatibility11:17
arigatoyes11:17
fijalI'm probably surfing today :)11:17
CIA-1303mikefc 07roundup * 10#953/defaultdict behaviour inconsistent with cpython: 11:17
CIA-13I'm currently looking at cpython source to see if I can figure what they do.11:17
CIA-13Output for both pythons included below.11:17
CIA-13================11:17
CIA-13cpyth ... * 14https://bugs.pypy.org/issue95311:17
djc (~djc@enrai.xavamedia.nl) left irc: Changing host11:19
djc (~djc@gentoo/developer/djc) joined #pypy.11:19
djc (djc@gentoo/developer/djc) left #pypy.11:20
arigato:-)11:20
fijalwhich is one of the few outdoor sports that actually work better in bad weather11:21
arigato:-)11:22
stakkars_ (~tismer@i59F7379D.versanet.de) left irc: Quit: schnarch11:23
ronnyoh, app_defaultdict looks kind of evil11:23
Nick change: elliottcable|hat -> ec11:26
fijalarigato: so pypy 1.7 is less popular than 1.6 in terms of downloads from bitbucket11:26
fijalhowever11:26
fijalI suppose it's at least partly because people ship it these days11:27
mikefccan i mention pypy in a cpython bug report saying "add the testcase so pypy knows how to behave"?11:29
mikefcnot sure if that is considered rude or something...11:29
mikefcafter living through the ffmpeg/libav split i worry too much...11:30
fijalmikefc: sure that's fine11:30
Dulakmikefc: the cpython guys are not anti-pypy really11:30
fijalmost of them anyway11:30
lac_ (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Read error: Connection reset by peer11:30
DulakWell, there are exceptions to every rule but it's not exactly the holy war you'd get from say emacs vs vi11:31
fijalright11:31
fijalI think pypy and cpython occupy niches different enough11:32
lac (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.11:32
derdon (~derdon@pD9E1CEBC.dip.t-dialin.net) joined #pypy.11:32
Action: mikefc can't imagine trying to code python in C11:33
lucianDulak: also, the emacs/vi holy war is pretty much over :)11:34
CIA-1303mikefc 07roundup * 10#953/defaultdict behaviour inconsistent with cpython: submitted a request for a testcase to cpython http://bugs.python.org/issue13531 * 14https://bugs.pypy.org/issue95311:34
fijalmikefc: thanks!11:35
Taggnostrmikefc, if you want to work on a patch for cpython and need help you can ping me11:36
nedbat (~nedbat@python/psf/nedbat) joined #pypy.11:36
fijalnedbat: hi, again, thanks for your work on sandbox!11:37
nedbatfijal: sure, no problem.11:37
mikefcTaggnostr: thanks.  the patch would be tiny. i included a 3 line example in the bug submission.  I just don't know the correct 'assertRaises' syntax. looking it up now...11:38
Taggnostrmikefc, you can also use it as a context manager11:38
fijalnedbat: I just don't want to make you feel we don't appreciate it, we totally do11:38
nedbatfijal: thanks11:39
mikefcTaggnostr: pathces have to be done through "hg qdiff"?11:41
fijal (~fijal@197.168.178.132) left irc: Read error: Connection reset by peer11:42
Taggnostrmikefc, hg diff is fine11:42
Taggnostrmikefc, so you just need to get a clone of cpython, add the test(s), check that the test suite passes and use hg diff > patch.diff to make the patch11:42
Taggnostrmikefc: http://docs.python.org/devguide/#quick-start11:43
mikefcTaggnostr: thanks. reading "lifecycle of a patch"11:43
mikefc(while doing a hg clone)11:43
Taos (jakob@host-92-20-152-142.as13285.net) left #pypy.11:47
Action: mikefc goes down the rabbithole. 11:57
amaury_ (~amaury_@74.125.57.34) joined #pypy.11:57
derdon (~derdon@pD9E1CEBC.dip.t-dialin.net) left irc: Remote host closed the connection11:58
mikefccan't compile python on this piece of shit. osx snow leopard.12:04
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Remote host closed the connection12:04
mikefcanyone know the configure magic?12:04
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.12:05
chronitis (~chronitis@88-104-122-204.dynamic.dsl.as9105.com) joined #pypy.12:17
stakkars_ (~tismer@i59F7379D.versanet.de) joined #pypy.12:19
lucianmikefc: try homebrew12:34
mikefccompiling from source, so I can run in debug mode, so I submit a patch :)12:34
lucianhomebrew likely has a recipe12:35
lucianmikefc: https://github.com/mxcl/homebrew/blob/master/Library/Formula/python.rb12:36
Taggnostrmikefc, there's an issue with osx12:36
mikefcpossibly.  i'm down the rabbithole. from a bug to pypy, to a bug to python. to figuring out how to write python unittests.12:36
Taggnostrmikefc: http://bugs.python.org/issue1324112:37
Taggnostrthere should be instructions there12:37
mikefci have something compiled. enough to work with for now. 12:41
Taggnostryou don't probably need the debug build for this12:41
Squarepy (~Squarepy@unaffiliated/squarepy) left irc: Ping timeout: 268 seconds12:42
mikefcyeah. i'm figuring stuff out slowly. i don't even need a debug build.12:42
mikefci don't even need a build12:42
mikefci can probably just use the python i have to run the tests they have.12:42
mikefcit's late :(12:43
mikefcahhh. the indentation of my code is wrong. damn space/tabs12:43
amaury_ (~amaury_@74.125.57.34) left irc: Ping timeout: 244 seconds12:44
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) joined #pypy.12:44
witulski (~stupsi@WLan195.urz.uni-duesseldorf.de) joined #pypy.12:47
witulski (stupsi@WLan195.urz.uni-duesseldorf.de) left #pypy.12:50
lac_ (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.12:51
lac (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Ping timeout: 252 seconds12:52
mikefcfirst python patch submitted!12:54
Taggnostrmikefc, you could have used assertRaises12:59
Taggnostrwhen you use it as a context manager you can then introspect the error too12:59
mikefci could have. but i did what was easiest for my brain :)13:00
Taggnostr(even though error messages are considered implementation details, so it's usually not necessary to test them)13:00
mikefci thought so. it did seem a bit specific to test the message. 13:00
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) left irc: Ping timeout: 252 seconds13:00
gutworth (~benjamin@dhcp-128-36-84-91.central.yale.edu) joined #pypy.13:01
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.13:02
mikefcTaggnostr: what would the assertRaises look like?  assertRaises(TypeError, defaultdict, {})13:03
mikefcjust the one line?13:03
exarkunhttp://docs.python.org/library/unittest.html?highlight=assertraises#unittest.TestCase.assertRaises13:03
Taggnostror with self.assertRaises(TypeError): defaultdict({})13:04
mikefcwell, that's much simpler than my shit. 13:04
Action: mikefc works on pathc213:04
mikefcpatch213:04
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 245 seconds13:05
mikefcTaggnostr: thanks for the assist.13:08
Taggnostrthanks for making cpython and pypy better13:08
kkris (~kris@80-123-46-92.adsl.highway.telekom.at) left irc: Quit: Leaving.13:12
_aleksi (~aleksi@85.235.191.82) left irc: Remote host closed the connection13:19
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) joined #pypy.13:20
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) left irc: Changing host13:20
Squarepy (~Squarepy@unaffiliated/squarepy) joined #pypy.13:20
aleksi (~aleksi@85.235.191.82) joined #pypy.13:24
aleksi (~aleksi@85.235.191.82) left irc: Remote host closed the connection13:24
aleksi (~aleksi@85.235.191.82) joined #pypy.13:25
kenaan12ned nedbat-sandbox 114fe097ff1a9b 15/pypy/translator/sandbox/: Remove some pypy dependencies from sandlib.13:27
Action: arigato is not finding the (few) things that he needs in pyglet13:28
ronnyarigato: what do you need?13:29
arigato(1) creating images from RGB data with a colorkey for transparency13:30
arigato(2) writing and reading from the off-screen buffer13:30
arigato(3) not crashing when doing partially-off-screen accesses, but I can manage that myself13:30
ronnyhmm13:31
ronnygenerating lists of global functions and running them is faster than direcly running a tree visitor n times (pyevolve gentic programming evluation on pypy)13:31
ronnyarigato: i think modern gtk has  what you want, but probbly in a bit unpleasant api13:32
nedbatdoes anyone else get a fail response from bitbucket when pushing?  "remote: Timeout, server bitbucket.org not responding. abort: unexpected response: empty string" ?13:33
arigatoI don't want gtk, I want something that is really really portable13:33
arigatobub-n-bros has already a gtk version13:33
jnoller (~jnoller@vpn.nasuni.com) joined #pypy.13:33
stakkars_hi13:34
arigatohi13:34
stakkars_I was in a meeting with Diez Roggisch, who wants to learn PyPy.13:34
stakkars_hisproject will be embedding PyPy. aehm&.13:35
lucianarigato: i'm sure you can do it with pyglet's GL binding13:35
lucianor another one13:35
aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy.13:35
stakkars_arigato: going to write a blog entry, now. (fixing stuff is next on ly list).13:36
jellarigato: fltk is something more portable13:36
jellarigato: also uip http://www.tecgraf.puc-rio.br/iup/en/toolkits.html13:37
stakkars_do we have a strategy, like putting a draft somewhere into extradoc, or do we write directly?13:37
antocuni (~antocuni@host129-122-dynamic.16-79-r.retail.telecomitalia.it) left irc: Ping timeout: 252 seconds13:37
arigatolucian: yes, I'm sure too, but how exactly, that would require deep digging13:39
lucianwell, i could do those with regular gl, but i'm not sure how it'd integrate with pyglet's 2d stuff13:40
arigatoregular gl looks good enough13:40
lucianarigato: cairo might be a reasonable option too13:40
lucianand in fact, pyglet's 2d stuff is built on GL afaik13:41
lucianso it might not be that hard to figure out where it fucks up13:41
luciani think pyglet has no tests, or something13:41
arigatowhat I like about pyglet is that it doesn't need me to painfully compile 7 versions for various OSes, but I could potentially point people to install more stuff13:41
lucianthat is nice, yes13:42
arigatobut pygame is out for now, because OS/X support is bad13:42
lucianmeh, it's been worse13:42
luciandoes it work on PyPy?13:43
lucianbtw, when I was on OS X I couldn't get pyglet working on pypy13:43
witulski (~stupsi@WLan195.urz.uni-duesseldorf.de) joined #pypy.13:44
witulski (stupsi@WLan195.urz.uni-duesseldorf.de) left #pypy.13:44
arigatothe pygtk web site offers no OS/X download, so that's out too13:44
arigatopyglet may work on CPython on OS/X, but you are right, I should just check13:45
stakkars_what, pygame is out?13:45
luciangtk(3) is only realistically usable on ubuntu13:45
lucianQt works great everywhere, but it's big and i don't think it works on pypy either13:45
stakkars_but it is _in_ python-2.7 on Mac Os X13:45
lucianfor just some graphs and stuff, pyglet/gl sounds best13:45
arigatostakkars_: yes, mac ports, if you want to install that, but it doesn't work with the system python13:46
arigatoas far as I know13:46
exarkungtk(3) isn't even realistically usable on ubuntu13:46
lucianarigato: no, there's a "native" pygame package13:47
arigatowhere?13:47
lucianarigato: http://pygame.org/download.shtml13:47
Fluxiddoes pypy like timeit? i mean, does jit work properly when benchmarking with timeit?13:47
lucianthe first osx dmg13:47
lucianit's 32bit, though ( i think)13:47
lucianalthough so is pyglet13:47
stakkars_aha. Well, Diez had it, I will ask him when he comes in half an hour again13:47
lucianexarkun: how so?13:47
exarkunlucian: because of the 3 part13:48
lucianexarkun: really? it seems to work13:48
arigatook, thanks13:48
exarkunlucian: yea, seems to, until it starts segfaulting.  or until you notice you're using all deprecated apis that are only packaged by accident.13:48
exarkunsort of ot though, sorry13:48
aboudreault (~alanb@osgeo/member/aboudreault) left irc: Quit: Leaving13:49
lucianexarkun: that sounds silly. is gobject-introspection that bad?13:49
exarkunlucian: yes13:49
Action: lucian is sad; i was going to write an IRC client with gtk3 and twisted13:49
jellFluxid: timeit is bad also on cpython13:50
stakkars_arigato: no macports. http://pygame.org/wiki/MacCompile13:50
stakkars_as it looks, it should work with the standard python.13:51
stakkars_but well, no simple package installer.13:52
arigatostakkars_: no, you're right, there is a Lion package installer now13:52
arigatobivab says that there wasn't, one month ago13:53
logan` (~loganchie@canlover.m6.ntu.edu.tw) joined #pypy.13:54
stakkars_ah. I didn't follow: are you looking for a new pygamish thing for PyPy, or deciding what to support on top of PyPy?13:54
jelllucian: do you have it in github?13:54
arigatostakkars_: that's not immediately related to pypy at all.13:54
jelllucian: or are you starting it?13:54
Nick change: Gulaway -> Gulopine13:54
arigatostakkars_: it's related insofar as dotviewer goes13:54
lucianjell: yeah, just starting. empty repo mostly13:55
arigatobut it seems that I have nothing to do, just keep it in pygame13:55
jelllucian: have you ported gi to pypy? ;)13:55
lucianjell: no, and i won't bother either13:55
stakkars_yeah. Btw, I tried the jitviewer today. A bit weird, yet.13:55
jellwithout gi - how you want to write something under gtk3?13:56
aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy.13:56
stakkars_but it worked. Do you use it, or how do you look at jit traces?13:56
lucianjell: it's gonna run on CPython, most likely13:57
jellargh, ok13:57
mikefcone more bug case for the road...13:59
Squarepy_ (~Squarepy@wcw-staff-214-150.wireless.uva.nl) joined #pypy.13:59
Squarepy_ (~Squarepy@wcw-staff-214-150.wireless.uva.nl) left irc: Changing host14:00
Squarepy_ (~Squarepy@unaffiliated/squarepy) joined #pypy.14:00
lucianis there any (good) UI toolkit that would work on pypy?14:00
Squarepy (~Squarepy@unaffiliated/squarepy) left irc: Ping timeout: 252 seconds14:01
Nick change: Squarepy_ -> Squarepy14:04
Nick change: ousado_ -> ousado14:07
Rhy0lite (dje@nat/ibm/x-mkylutffxovkxuzo) joined #pypy.14:13
Nick change: Gulopine -> Gulaway14:14
fijal (~fijal@41.177.93.12) joined #pypy.14:15
fijalAlex_Gaynor: hey14:22
Nick change: hazmat` -> hazmat14:24
whitelynx|work (~whitelynx@63.241.75.144) joined #pypy.14:27
mattip (~chatzilla@bzq-79-177-116-180.red.bezeqint.net) joined #pypy.14:32
mattiphi14:33
fijalhi14:33
fijalmattip: I'll have a look at reshape now now14:33
mattipOK, np. I actually wanted to talk about something else.14:33
mattipIt goes like this:14:33
setmeaway (~setmeaway@119.201.52.190) left irc: Quit: Leaving14:34
mattipfind_unaryop_result_dtype in interp_ufuncs is deciding what dtype a result should be.14:34
fijal_ (~fijal@41.53.98.38) joined #pypy.14:34
mattipBut when promote_is_largest is True, it is converting an int to a float6414:35
mattips/_is_/_to_/14:35
fijal_ok14:35
mattipWhen I do arange(100).sum() I expect to get back an int (at least on numpy it works like that)14:36
mattipbut numpypy is promoting it to a float.14:36
mattipEnd of speech :)14:36
fijal_hm14:37
fijal_ok14:37
fijal_not too good14:37
fijal (~fijal@41.177.93.12) left irc: Disconnected by services14:37
mattipno, now quite finished yet, I didn't ask the question. sorry14:37
Nick change: fijal_ -> fijal14:37
fijalstakkars: hey?14:37
mattipPossible fixes: sum should not promot_to_largest, or promote_to_largest should not convert int to float.14:38
mattipChoose one.14:38
mattipNow I think I'm done...14:38
DulakIs there a way to suppress this error?  UserWarning: readline.read_init_file() not implemented14:38
fijalarigato: personally I would try webgl14:39
fijalyou need a (decently new) browser14:39
fijalbut it might work on every OS quite reasonably14:39
fijalDulak: no idea, where does it come from?14:40
Dulakfijal: only under pypy, when I load ipython14:40
fijalah14:40
fijalwell, yes, by implementing readline.read_init_file() :)14:40
antocuni (~antocuni@host129-122-dynamic.16-79-r.retail.telecomitalia.it) joined #pypy.14:42
setmeaway (~setmeaway@119.201.52.190) joined #pypy.14:42
Squarepy (~Squarepy@unaffiliated/squarepy) left irc: Ping timeout: 248 seconds14:42
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) joined #pypy.14:43
Dulakugh I would have to implement a lot more than just that...14:43
Squarepy (~Squarepy@wcw-staff-214-150.wireless.uva.nl) left irc: Changing host14:44
Squarepy (~Squarepy@unaffiliated/squarepy) joined #pypy.14:44
fijalDulak: why?14:44
DulakI looks like it uses parse_and_bind14:44
Dulaks/I/It/14:45
mattipfijal: I am going with changing promote_to_largest. It seems all the reduce functions can overflow happily in numpy.14:48
fijalmattip: ok14:49
fijalmattip: I have no particular preference actually14:49
fijal(as of now at least :)14:49
mattipcool.14:50
mattiphmm. Nope. that breaks mean(). So there will be two classes of reduce functions. All this to add dot. Perhaps after this the next vector of improvement would be to use fpypy.14:55
mattipBut then I guess that's a whole new can of worms.14:55
arigatofijal: about both the a[:]=(a+a)*(a+a) and the sys.exc_info() issues:14:56
arigatomaybe it would be enough if we had a CALL that is known to not have side effects,14:56
arigatoand can thus be killed by the optimizer if the result is not used14:57
fijalwith sys.exc_info it's more involved14:57
arigatofor sys.exc_info(), this would a CALL that returns the traceback part of the tuple,14:57
arigatoand if the CALL cannot be killed, then the loop is aborted14:57
fijalbecause sys.exc_info() would force frames even above you14:58
fijalso if your frame is not yet being traced, you still abort some JIT above you14:58
arigatothat's fine if this only occurs once during tracing14:58
arigatoor, let's say, that's already better than now14:58
fijalyes, probably14:58
fijalI was thinking about something obscure14:59
fijallike have a special bytecode for sys.exc_info()[1]14:59
fijalor anything that does not read [2]14:59
arigatoyes, but that's too obscure14:59
fijalno, it's actually simpler :)14:59
fijalit's just very unpypyish14:59
arigatoit *is* very obscure and unsafe14:59
fijalwhy?14:59
fijalI mean, of course, yes I agree15:00
fijalI'm just arguing for the sake of argument, sorry15:00
arigato:-)15:00
fijalit's super unpypyish15:00
fijalbecause you have to check if sys is ok15:00
fijalif exc_info is ok15:00
arigatoyes15:00
fijaland you have to have a very obscure hack (albeit a localized one)15:00
arigatoyes15:00
fijalI'm fine with saying "this is slow for now"15:01
fijalbtw15:01
arigatoand we would need to support a few use cases like "sys.exc_info()[:2]"15:01
fijalright15:01
fijalyes, *it is obscure*15:01
fijalI agree :)15:01
arigatoand even "(exc, val, _) = sys.exc_info()" would be too hard to properly support15:01
fijalno...15:01
fijalbecause you can reference _ later15:01
fijalhow do you know?15:02
arigatoyes, precisely15:02
fijalso anyway15:02
fijalre - numpy15:02
arigato:-)15:02
fijalI think we should think what we want to achieve15:02
exarkunis the reason tracebacks are expensive written down anywhere?15:02
fijalexarkun: I don't think so, although it's easy15:02
fijalexarkun: you just need to make all the frames existy15:03
fijalwhich are in various places on stack etc.15:03
exarkunall at once?  you can't be lazy and only fetch data when it's used?15:03
fijalno15:04
fijalbecause stuff from C stack might disappear later15:04
fijalwe were thinking about elaborate hacks like copying this stuff somewhere in the heap15:04
fijalso you can track that later15:04
fijalit's kinda hard though15:04
fijal[doable though]15:04
fijalit also would "leak" memory15:05
fijalas you know already15:05
fijalthat's not different than cpython15:06
fijalor at least not too different15:06
exarkunyes, the semantics of traceback objects is to leak :)15:06
fijalright15:06
exarkunanyway, the C stack part basically explains why it's hard to be lazy, thanks15:07
fijalexarkun: I can add that to the FAQ if you want15:07
fijalI think it's written *somewhere*15:07
fijalhttps://bitbucket.org/pypy/pypy/wiki/JitFriendliness15:08
fijalhere we go15:08
fijala very brief report15:08
fijalbut well15:08
Fluxidfijal: are "Generators" and "String joining" parts still actual?15:11
fijalit's better than it was in Feb15:12
fijalbut still might be true for some cases15:12
fijalespecially string join15:12
witulski (~stupsi@WLan170.urz.uni-duesseldorf.de) joined #pypy.15:13
witulski (stupsi@WLan170.urz.uni-duesseldorf.de) left #pypy.15:13
Action: fijal surfing15:14
fijal (~fijal@41.53.98.38) left irc: Read error: Connection reset by peer15:15
bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Read error: Connection reset by peer15:19
arigatoah, bah15:22
Action: arigato found a real-world example where recursion leads to nonsensical over-compilation from the JIT15:24
chronitisI was wondering for the py3k port whether it is planned to have distinct everything (ie, including rlib) or just the interpreter/modules/objspace?15:24
arigato(actually it traces over and over again the same bridge, aborting it all the time with "Bridge out of guard 3364 was already compiled!")15:24
arigatochronitis: right now it's done as a mercurial branch15:26
arigatowhich, for now, solves the problem nicely15:26
chronitisI know - I meant whether there was a view on the scope of changes15:26
arigatono15:27
brutal_chaosHow much ram is needed for pypy 1.7 to build now (64bit)?15:27
arigatoaround 4GB15:27
brutal_chaosugh. I have (htop reports) 3699MB, enough?15:28
chronitis(eg, rlib oct() returns python2 style 0123 instead of 0o123, hence whether commonality or performance is more useful)15:28
brutal_chaosarigato: ugh. I have (htop reports) 3699MB, enough?15:29
stakkars_arigato: is test_dlltool supposed to work, already?15:29
cheyuni (~user@125.129.20.246) joined #pypy.15:31
chronitisI suspect that is enough RAM, at worst case a small amount of swapping15:31
arigatobrutal_chaos: that's probably enough with CPython, yes15:32
deets (~deets@i59F7379D.versanet.de) joined #pypy.15:33
arigatowith a default PyPy I would think it's really <4.small number> GB that it needs15:33
arigatobut you need to make sure that e.g. you don't have a OS that gobbles up one GB for itself15:33
asmeurer__ (~asmeurer@dhcp-baca-230.resnet.nmt.edu) joined #pypy.15:34
bivab (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy.15:35
stakkars_ (~tismer@i59F7379D.versanet.de) left irc: Quit: schnarch15:35
cheyuni (~user@125.129.20.246) left irc: Ping timeout: 245 seconds15:35
stakkars_ (~tismer@i59F7379D.versanet.de) joined #pypy.15:39
brutal_chaosarigato: lol, running Gentoo. It was idling around 140MB ram usage.15:47
brutal_chaosI should at some point figure on getting that number down, but it's not too bad now.15:48
stakkars_hi all,15:50
stakkars_are we still building dlls?15:50
stakkars_ping16:00
kenaan12hager ppc-jit-backend 1122a892ccc25e 15/pypy/jit/backend/ppc/ppcgen/codebuilder.py: Add cashe flushing16:02
aleksi (~aleksi@85.235.191.82) left irc: Remote host closed the connection16:03
mvt (~mvantelli@87.213.45.85) left irc: Quit: This computer has gone to sleep16:03
brutal_chaosarigato: the requirement of possible swapspace explains why my build failed now. :( I just created a swap file of 4GB, so the build should pass now.16:04
brutal_chaospossible swapspace being used*16:05
kushal (~kdas@114.143.162.64) joined #pypy.16:05
kushal (~kdas@114.143.162.64) left irc: Changing host16:05
kushal (~kdas@fedora/kushal) joined #pypy.16:05
stakkars_ (~tismer@i59F7379D.versanet.de) left irc: Quit: schnarch16:11
asmeurer__ (~asmeurer@dhcp-baca-230.resnet.nmt.edu) left irc: Quit: asmeurer__16:12
kenaan12hakanardo jit-targets 11d638586fc5b1 15/pypy/jit/backend/: hg merge default16:14
kenaan12hakanardo jit-targets 119f840860f2cb 15/pypy/jit/metainterp/optimizeopt/: dont crash if two equal virtuals become not equal16:14
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/614 [12hakanardo, jit-targets]16:15
mat^2 (~mathias@212.130.113.35) joined #pypy.16:25
stakkars_ (~tismer@i59F7379D.versanet.de) joined #pypy.16:26
stakkars_arigato: do you have a minute?16:26
Guest42179 (~raydeo@50.19.209.239) left irc: Quit: Coyote finally caught me16:27
raydeo (~raydeo@merickel.org) joined #pypy.16:27
mattip (chatzilla@bzq-79-177-116-180.red.bezeqint.net) left #pypy.16:29
cpets (c358b60a@gateway/web/freenode/ip.195.88.182.10) left irc: Ping timeout: 265 seconds16:39
arigato stakkars_: yes?16:40
stakkars_arigato: there was the abiliuty to build dlls, in the past.16:41
arigatostakkars_: there still is: if you are compiling with the cpyext module, you get a dll16:42
stakkars_how much does this still exist? Is somebody working on embedding?16:42
arigatono, that's just for cpyext16:42
arigatonobody is working on embedding so far16:42
stakkars_ah, right. ok16:42
arigatoalthough a simple minimal embedding solution is probably easy (like with one function in the API, something like PyRun_Simple())16:43
stakkars_the cpyext generates a dll which gets connected to pypy?16:43
stakkars_and pypy is a .exe?16:43
arigatothe cpyext puts the whole pypy in a dll16:43
arigatolike CPython16:43
arigatothe .exe is a dummy stub16:43
stakkars_ahhh. and why?16:43
arigatobecause it's simpler, I suppose16:44
EnCuKou (~encukou@193.167.65.94) joined #pypy.16:44
arigatono need to connect the .exe and the .dll, if everything is in the .dll16:44
stakkars_I thought it builds extension modules.16:44
stakkars_and those are then dlls, and pypy as well?16:45
arigatoyes, like with CPython16:45
stakkars_so it is still a big exe, which is the dll16:45
arigatounsure what you mean, but CPython is the same16:46
stakkars_ok, so one huge pypy dll, and certain extensions as dll.16:46
apanda (~apanda@c-24-7-101-62.hsd1.ca.comcast.net) left irc: Remote host closed the connection16:46
arigatofor embedding, not much is missing16:46
arigatomostly a way to load the pypy dll without starting to interpret a program16:47
apanda (~apanda@c-24-7-101-62.hsd1.ca.comcast.net) joined #pypy.16:47
stakkars_ok, I understand. I looked everywhere but avoided cpyext, for certain reasons ;-)16:47
stakkars_last question:16:48
stakkars_test_dlltool was not working when we tried.16:49
stakkars_is that supposed to work, or broken?16:49
arigatowhich directory?16:49
stakkars_pypy/translator/c/test16:49
arigatoI don't know about it16:50
deetsit was commented out16:50
deetsand when trying to run it, complained about annotator.annotated[block] being a bool, not a graph16:50
stakkars_passing over to deets. May I introduce you? Diez Roggisch16:51
apanda (~apanda@c-24-7-101-62.hsd1.ca.comcast.net) left irc: Ping timeout: 240 seconds16:51
deetsah, sorry, I should have said who I am and that I worked with Christian on this the afternoon16:51
G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving.16:52
stakkars_arigato: does cpyext already support calling back?16:53
EnCuKou (~encukou@193.167.65.94) left irc: Remote host closed the connection16:53
arigatoyes16:55
arigatodeets: hi16:55
stakkars_well, then embedded pypy is really in reach. I thought we were lightyears away from it16:56
stakkars_or miles ;-)16:56
deetssounds great16:57
arigato:-)16:57
arigatoyou would get more precise information from amaury16:57
arigatobut I really think it's not very far away16:57
arigato(of course with the performance hit of cpyext)16:57
deetsis there any test / code that shows how to inject a call into the build DLL for example the PyRun_Simple()-like thing?16:58
stakkars_the performance hit is refcounting etc., right16:58
bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Read error: Connection reset by peer16:58
ronnyhow hard is making a performant c api?16:58
exarkunA new one, incompatible with CPython's?16:59
ronnyyes16:59
stakkars_deets: well, let's contact amaury, then. He is here, often.16:59
arigatodeets: what already works is using it as extension modules do, which may include the extension module containing C code that calls back17:01
arigatoe.g. with PyRun_Simple(), if that's implemented so far17:01
arigato(maybe it's not, but that's an easy fix)17:01
arigatoor with PyObject_CallObject() or anything17:01
reuben_ (Seta00@seta00.com) left #pypy ("Textual IRC Client: http://www.textualapp.com/").17:02
deetsok, I'll try & prod around 17:02
arigatowhat I don't know is how the pypy dll will behave if its main entry point is not called17:02
arigatoit will probably not have initialized its internal state17:02
arigatoe.g. the GC17:02
deetsah, ok.17:03
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy.17:03
stakkars_well, you mean an initialization that is done once, but then other entry points can work?17:05
arigatoyes17:06
exarkunarigato: CPython has Py_Initialize and doesn't work until you call that.  So PyPy's not really much different?17:06
arigatothe problem is that the initialization is in the same function that parses the command-line and runs the script provided and eventually runs the finalization code17:06
stakkars_to force a single init call is not a problem, IMHO.17:06
arigatoso yes, it's a matter of splitting it up carefully17:07
Action: pedronis expects this to require some cleanup of the .h files which is probably a good thing17:07
arigatoexarkun: yes, like this17:07
exarkunOh, except CPython has fun exceptions that don't require initialization: Py_SetProgramName(), PyEval_InitThreads(), PyEval_ReleaseLock(), and PyEval_AcquireLock()17:07
exarkun(according to <http://docs.python.org/c-api/init.html>)17:07
stakkars_ok, but nothing that looks like a huge problem17:08
stakkars_and that answer was very different say, half a year ago?17:08
stakkars_I would now tell CCP for instance: it is pretty doable. Months, not many. Right?17:09
stakkars_ok, some refactoring what goes where when, I see17:10
arigatobut it depends what the goal is17:10
Action: stakkars_ tends home17:10
stakkars_an embedded application17:10
arigatoif the goal is to embed it "a la CCP games", then no, it's going to be slooooow17:10
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:11
stakkars_aha? because they call it much too often and with tasklets, I guess17:11
roelbruggink (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:12
arigatoyes, they have too many transfers from C to Python to C to Python etc.17:12
arigatoas far as I understood17:12
stakkars_ok, so are moving between the worlds all the time, which is bad.17:12
stakkars_but if not much slower than they have now, it is a starting point,17:13
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds17:13
deetsand I presume due to the dynamic nature of JITting, there is no stable way of exposing the objects in their internal representation?17:13
arigatocpyext is opaque to the JIT17:14
stakkars_and they can then turn C/C++ modules into PyPy, one after the other17:14
arigatostakkars_: that's a better idea :-)17:14
arigatobut I fear a bit that it will start being 5x slower17:14
stakkars_huiiii :-)17:14
arigatoe.g. running PIL on pypy works, but is maybe 5x slower17:15
arigatoat least in my example (an image viewer)17:15
stakkars_interesting, cpyext is a complete barrier for the jit.17:16
stakkars_well, all the conversions etc as well.17:16
arigatowell you cannot JIT a loop that would be looping in C, for example17:16
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 268 seconds17:16
stakkars_yes, sure17:16
arigatoso loops written in Python instead of C are actually faster on PyPy17:16
arigatowhich is of course completely wrong on CPython17:16
arigatoso it may take a lot of refactoring for them to arrive at good performance with PyPy17:17
CIA-1303agaynor 07roundup * 10#954/looped string formatting of dict entry slow and hogging memory: 17:18
CIA-13[chatting] I'm not able to reproduce this, the falling numbers are with changing the17:18
CIA-13attached script up to 10k:17:18
CIA-13alex@alex-gaynor-laptop:~/Dow ... * 14https://bugs.pypy.org/issue95417:18
azanella (~azanella@189.6.80.207) left irc: Read error: Operation timed out17:18
stakkars_so my advice is not a solution but a migration. In the end, C looses17:18
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Quit: fzzzy17:18
stakkars_ok I must go and write my blog. Simply put it in?17:19
deetswould the tying of C/C++-structures into the JIT work on a struct-level?17:19
deetsit's just a very rough idea, but like exposing the underlying memory layout and types to PyPy, thus not needing to go the full route of providing PyObjec*-instances17:20
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:20
deetsbecause I fear phasing out >3M lines of code won't sit to well with my colleagues ;)17:20
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/614 [12hakanardo, jit-targets]17:20
exarkunCode is a liability17:21
exarkunGetting rid of 3M lines of it sounds like a massive win.17:21
stakkars_I remember we had that with RPython extensions and EWT applications.17:21
Alex_Gaynordeets: sounds like you're talking about ctypes basically17:21
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:22
stakkars_It always starts "great", but then people forget that they wanted to call forth and back seldom, and suddenly "your embedding" is no good.17:22
deetsAlex_Gaynor: to some extend, yes - if that's properly jittable. If things have to run through FFI I guess it's less sexy...17:23
stakkars_RPython dies as a solution, because bummers cannot give up their C crap.17:23
Alex_Gaynordeets: ATM ctypes structs aren't JIT'd nicely, but they're very close to being as good at reading fields as a C compiler is.17:23
stakkars_ (~tismer@i59F7379D.versanet.de) left irc: Quit: schnarch17:23
JaRoel|4_ (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:23
roelbruggink (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 248 seconds17:24
jterrace (~jterrace@aegis.CS.Princeton.EDU) joined #pypy.17:24
deetsok, thanks for the infos. gotta go now too. cya17:25
deets (deets@i59F7379D.versanet.de) left #pypy.17:25
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds17:26
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds17:27
Alex_Gaynorarigato: Do you remember which conference the hints paper carl wrote was for?17:29
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:29
arigatono17:29
pedronisAlex_Gaynor, the last one, ICOOOLPS17:30
Alex_Gaynorpedronis: thanks17:30
pedronisit's a workshop17:30
mkerrin (~mkerrin@wg1-nat.fwgal01.deri.ie) left irc: Ping timeout: 240 seconds17:31
arigatoah yes17:31
JaRoel|4_ (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 244 seconds17:33
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:33
roelbruggink (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:35
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 240 seconds17:35
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 240 seconds17:37
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) joined #pypy.17:39
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:41
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) left irc: Read error: Connection reset by peer17:42
aurojit (~apanda@dhcp-44-187.EECS.Berkeley.EDU) joined #pypy.17:42
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Ping timeout: 240 seconds17:43
Action: arigato -> away17:44
roelbruggink (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 268 seconds17:44
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:44
arigato (~arigo@fwstups.cs.uni-duesseldorf.de) left irc: Quit: See you17:45
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds17:47
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:48
azanella (~azanella@189.6.80.207) joined #pypy.17:48
stakkars_ (~tismer@f052069108.adsl.alicedsl.de) joined #pypy.17:51
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 245 seconds17:52
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:54
DanielHolth (~dholth@ip98-180-34-112.ga.at.cox.net) joined #pypy.17:54
stakkars_Alex_Gaynor: the C types can of course be quite quick.17:55
stakkars_enforcement of a Python API is probably a large overhead.17:56
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds17:56
stakkars_thinking of PIL, Armin talked about a 5 times speed loss against CPython.17:57
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:57
stakkars_I guess this is converting to/from refcounted objects all the time.17:58
roelbruggink (~jaroel|4d@office.fourdigits.nl) joined #pypy.17:59
stakkars_and probably not in single actions, but stuff like a user supplied filter function, which then goes forth and back in every loop cycle?17:59
Alex_GaynorPIL is slow because it uses the CPython C-API18:00
Alex_GaynorInterfacing with raw C code can be extremely efficient.18:00
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds18:00
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.18:00
stakkars_Alex_Gaynor: that sounds promising.18:00
stakkars_so you mean actually a ctypes like interface18:01
Alex_GaynorSure, callls through ctypes are already very fast, and anto has a branch which makes using Structs very fast18:02
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 244 seconds18:02
stakkars_what about the refcounting? Only a problem for objects to be passed in and out?18:02
roelbruggink (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds18:03
stakkars_or, does cpyext really use refcounting, or is that a fake?18:03
dmalcolm (david@nat/redhat/x-fvsigngeczovtbqf) joined #pypy.18:03
kushal (~kdas@fedora/kushal) left irc: Quit: This computer has gone to sleep18:04
roelbruggink (~jaroel|4d@office.fourdigits.nl) joined #pypy.18:04
Alex_GaynorCPyext fakes refcounting, if you interface with raw C you don't have these problems18:05
JaRoel|4_ (~jaroel|4d@office.fourdigits.nl) joined #pypy.18:06
stakkars_well, ould it make sense to use PIL with interfacing directly, bypassing the API?18:06
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 248 seconds18:06
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.18:07
Alex_GaynorIf someone wants to rewrite PIL using ctypes, yes that would be faster on pypy18:07
stakkars_probably makes not _soo_ much sense. Better to rewrite PIL in pure Python, right?18:07
cpets (4f7588fa@gateway/web/freenode/ip.79.117.136.250) joined #pypy.18:07
Alex_Gaynorsure, and ctypes to interface with libjpg and friends18:08
fijal (~fijal@197.168.0.109) joined #pypy.18:08
stakkars_and I doubt it would be very hard. Just much18:08
stakkars_hmm, sounds like a nice project.18:08
etrepum (~bob@75-101-96-144.dsl.static.sonic.net) left irc: Quit: etrepum18:09
stakkars_maybe we can talk into Fredrik to "Un-C" his PIL for us ;-)18:09
roelbruggink (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds18:09
stakkars_I think that's a general migration advice, maybe:18:10
JaRoel|4_ (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 245 seconds18:10
stakkars_use cpyext first for your modules,18:10
stakkars_then re-port them to Python, step by step.18:11
fijalgttt18:11
fijalgrrr18:11
fijalI want to tell armin he's not right :/18:11
Alex_Gaynorfijal: hey18:11
Alex_Gaynorwhat's armin not right about?18:12
stakkars_funny, developers were paid for porting Python to C, nowadays the reverse thing will happen :-)18:12
fijal4.something gig of ram to build pypy on pypy18:12
fijaland embedding18:12
fijalstakkars_: I did embed pypy some time in the past18:12
stakkars_fijal: yes?18:13
MostAwesomeDudestakkars_: PIL is several thousand lines of very dense, uncommented C. I already got started on the port, but it'll take a *long* time and everybody already has more important things to do.18:13
fijalstakkars_: into webkit18:13
fijalanyway, I made it work via dlltool, might be broken these days18:13
fijalwhat are you trying to achieve?18:13
stakkars_MostAwesomeDude: therefore I meant to ask the Effbot, maybe he even has a Python implementation18:14
fijalstakkars_: what do you want to tell CPP?18:15
fijalit wasn't hard18:15
fijaland I did it within a month18:15
stakkars_dlltool? Ah, well, we were playing around today, and some things seem to be not working18:15
fijalended up with a working webkit and python <-> JS interface18:15
fijalmight be18:15
fijaldeets is not around anymore :(18:16
stakkars_test_dlltoll maybe it was. I tried to show it to Diez, but had no clue, and we failed18:16
mattip (~chatzilla@bzq-79-177-116-180.red.bezeqint.net) joined #pypy.18:16
stakkars_yes, he is on his way home. Maybe you reach him later.18:16
stakkars_It makes pretty much sense to keep him interested.18:17
fijalwell, I can make it work18:17
fijalbut I have no personal interest in that18:17
stakkars_just confusing if non-working cole is around. Maybe put in a warning "unsupported attic code" ;-)18:18
stakkars_s/cole/code/18:19
hpk (~hpk@hq2.merlinux.eu) left irc: Quit: WeeChat 0.3.218:20
jnoller (~jnoller@vpn.nasuni.com) left irc: 18:21
stakkars_MostAwesomeDude: a crazy old idea, which I might consider again, after the JIT is so well:18:22
fijalstakkars_: it's probably mostly fine18:23
stakkars_can we write a script that uses a primitive mapping to let C code run as Python code? 18:23
gtaylor (~gtaylor@108-196-160-120.lightspeed.tukrga.sbcglobal.net) joined #pypy.18:23
fijalstakkars_: but also I have no interest in making it suite someone's else taste18:23
antocuni (~antocuni@host129-122-dynamic.16-79-r.retail.telecomitalia.it) left irc: Ping timeout: 252 seconds18:23
fijalsuit18:23
fijalafter all, we did quite a lot to interest CPP - we made the JIT, we made stackless18:23
fijalif they're still not believing we're any hope, sorry, but I have no real belief I would get any money out of the deal18:24
stakkars_ijyou think they still are not interested?18:25
stakkars_they really should be now. And Win64 is coming -- what else do they want?18:25
fijalI have no idea18:26
fijalbut look18:26
fijalat some point they might just use it18:26
fijaland be happy18:26
fijalbut I have very little hope it'll translate into some contract for us18:26
stakkars_that's always a danger18:26
fijalI'm just saying I'm not investing my time in parts of pypy that are of not interest to me18:27
fijaland are actually a maitnenance burden18:27
stakkars_btw., I did not mean CCP, but Diez's company.18:27
fijalok18:27
fijalwhat they're doing?18:27
kenaan12arigo default 110d1f6b514b53 15/pypy/jit/metainterp/test/test_recursive.py: Add a failing test.18:30
DanielHolthThis is not PIL or even Python, but if you just want to wrap a library for doing something with images imlib2 seems easy. http://sheddingbikes.com/posts/1292063326.html18:30
kenaan12arigo default 115abc8457062e 15/pypy/jit/metainterp/: Fix the test.18:30
mattipThere is a market for pypy you may want to consider, going in the embedded direction.18:30
arigato (~arigo@82.113.121.170) joined #pypy.18:31
fijalarigato: hi armin18:31
arigatohi18:31
etrepum (~bob@accessnat4.mochimedia.net) joined #pypy.18:31
fijalarigato: I successfully translate pypy using pypy on 4G of RAM18:31
fijal3.7 actually18:31
fijal(graphics)18:31
brodie (~brodie@sven.sf.io) left irc: Changing host18:31
brodie (~brodie@unaffiliated/brodie) joined #pypy.18:31
arigatonice18:32
fijalmattip: pypy's embedded story is not that great18:32
kushal (~kdas@fedora/kushal) joined #pypy.18:32
mattipI thnk there is a considerable market for algorithm implementation that starts at a very high level and ends up with assembler18:32
fijalarigato: it's --source and I have to close browsers18:32
fijalbut whatever18:32
arigato:-)18:32
fijalanyway, it's possible, although you want to close your browsers18:32
mattipIt may not be very open-source, since one of the goals is to hide the source code :), but lots of money is there.18:33
aboudreault (~alanb@osgeo/member/aboudreault) left irc: Quit: Leaving18:33
fijalmattip: I doubt it's sellable18:34
fijalbut hey, who am I to judge18:34
kushal (~kdas@fedora/kushal) left irc: Client Quit18:35
kenaan12alex_gaynor numpy-dtype-refactor-complex 117a810c2bdf0d 15/pypy/module/micronumpy/: added real and imag descriptors to complex objs18:35
kenaan12alex_gaynor numpy-dtype-refactor-complex 11006352005df1 15/pypy/jit/: merged default18:35
kenaan12alex_gaynor numpy-dtype-refactor-complex 1122862d325dba 15/pypy/module/micronumpy/: fix, make this numpypy18:35
mattipWell, I know alot of people who make a living translating matlab to c18:36
fijalwell, that's great18:36
fijalmy plan is to make those people obsolete18:36
arigatobah18:36
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy.18:36
logan` (~loganchie@canlover.m6.ntu.edu.tw) left irc: Remote host closed the connection18:36
fijalarigato: yes?18:37
Action: arigato just spent 10 minutes with "hg up" figuring out how this metainterp/test/test_math.py could possibly fail since forevr18:37
arigatoany idea about why? :-)18:37
fijalno?18:37
arigatothere is no such file in hg18:38
fijalbah18:38
fijalof course18:38
arigatoit's a local-only file18:38
DasIch_ (~dasich@p3E990997.dip.t-dialin.net) joined #pypy.18:38
mattipalong the way, maybe get their employer to pay you. Company sponsorship?18:40
arigatoI forgot to check it in, maybe?18:40
fijalmattip: I don't happen to have an employer ;-)18:40
DasIch (~dasich@p4FFDE8BF.dip.t-dialin.net) left irc: Ping timeout: 240 seconds18:41
mattipBut you could pitch your idea of "making algorithm implementation easy" to, say, automotive firms, so they would sponsor pypy.18:42
DanielHolthpypy on arduino, brillant18:42
DanielHolthyou have to reduce the memory requirements from 6GB down to 4k18:42
Action: Alex_Gaynor doesn't get people who hack on hardware18:42
SquarepyDanielHolth: ask for a fundraiser18:43
fijalmattip: believe me, making anyone big to invest into pypy is not gonna fly18:43
DanielHolthIt's refreshing to code with 32 bytes of RAM when you normally have gigabytes. Totally different challenges.18:44
SquarepyDanielHolth: like the old days18:44
DanielHolthalthough I would spring for 128 or 256 bytes any day18:45
kenaan12arigo default 11ed550a1d0c11 15/pypy/jit/metainterp/test/test_math.py: Add a test that I wrote long ago, but apparently forgot to check in.18:45
CIA-1303afa 07roundup * 10#953/defaultdict behaviour inconsistent with cpython: An easy task for someone who wants to start hacking on pypy! * 14https://bugs.pypy.org/issue95318:46
aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy.18:47
stakkars_arigato: fijal : are you going to PyCon US?18:58
stakkars_funny: a test that always annoys you, and it is a local, non-versioned thing:19:00
stakkars_testing-virus19:00
Action: fijal is going19:02
stakkars_fijal: pycon?19:05
lmatosdo you guys pay for hosting for the pypy.org box?19:05
stakkars_I am paying for hosting my server, which runs the win64 buildbot, yes.19:06
mattipSage seems to have grown a community of investors, octave has a funding page.19:08
fijallmatos: nope19:10
fijallmatos: but we would love more boxes :)19:10
fijalor maybe we actually do19:10
kenaan12arigo default 1192d4f8f7bcfb 15/pypy/module/_collections/: Test and fix.19:10
CIA-1303arigo 07roundup * 10#953/defaultdict behaviour inconsistent with cpython: [resolved] Sorry, couldn't resist. 92d4f8f7bcfb * 14https://bugs.pypy.org/issue95319:10
lmatosfijal: what kind of boxes and what size? www.linode.com, Don't get too greedy with your offer and I'll see what I can do :)19:10
fijalhehe :)19:13
fijalessentially if we can get one powerful box for buildslave it'll be awesome19:14
amaury_4GB RAM is a bit short :-)19:14
fijalbut yeah, 4G is a bit short19:14
fijalfor example our windows and mac boxes are someone's boxes who is very kind19:14
arigatoanother tannit-sized box, with today's performance instead of two years ago (almost?), would be cool :-)19:14
arigatobut indeed, it's not the most pressing need19:15
fijallmatos: I can tell you details what would be cool if you're interested19:15
fijalarigato: I think another tannit box would be *really* cool19:15
amaury_arigato: you missed lib-pypy/_collections.py19:15
arigatoamaury_: ba19:15
arigatoh19:15
fijallmatos: we have obscure requirements though19:16
Action: arigato copy-pastes19:16
amaury_I saw it when testing with bin/py.py19:16
lmatosfijal: feel free to pm me. I can ask. A 4GB or larger box may be a stretch, but it never hurts to ask. Do you guys have any analytics data anywhere? If Linode Sponsored it, I'm sure marketing would like to see that.19:16
fijalwe have about 10-20k visits to our blog each time we post something interesting19:16
fijal(all of them are geeks)19:17
stakkars_ (~tismer@f052069108.adsl.alicedsl.de) left irc: Quit: schnarch19:17
lmatoshaha19:17
fijalnot sure if it's good or bad :)19:17
arigatoamaury_: :-)19:17
kenaan12arigo default 110732486f6a76 15/lib_pypy/_collections.py: Forgot this version of the file.  Thanks amaury.19:18
fijallmatos: I can probably just give you access to analytics, there is nothing hidden there19:18
ojii (~ojii@40-34.60-188.cust.bluewin.ch) left irc: Remote host closed the connection19:22
hakanardohmm, test_ajit seem to be 5 times slower on jit-targets as compared to default...19:23
fijal:/19:23
fijalhakanardo: you mean pypy py.test test_ajit19:24
fijalor just test_ajit?19:24
hakanardopy.test test_ajit19:24
Squarepy (~Squarepy@unaffiliated/squarepy) left irc: Quit: Leaving19:24
fijalwell, that's not the end of the world I suppose19:24
fijalbut I wonder why19:24
fijalit might mean tracing is slower as well19:25
hakanardoindeed but it's a bit strange19:25
Alex_Gaynorfijal: well it means untranslated tracing i sslower, who knows what that means for real code19:26
hakanardodo we have something that would scale worse than linearly on the number of resops?19:26
fijalhakanardo: I hope not19:26
fijalif we do we should remove it19:26
arigatohakanardo: bah19:30
arigatoit seems that the tests really run slower and slower19:31
arigatoI tried to run with the following command line:19:31
arigatopy.test test_ajit.py test_ajit.py {repeat 10x} -xv -k test_merge_guard19:31
arigatoit takes 7.7 seconds the first time, and down to 13.8 seconds19:31
arigatoto run the same tests19:31
arigatothat's also the impression we get by running in parallel test_ajit in both the branch and in default19:32
arigatoat the beginning it's almost as fast19:32
arigatobut it gets slower and slower19:32
hakanardoarigato: test_ajit takes 12 min to run for me the first time I runt it in jit-targets19:33
arigatoI'm sure that it took a while to run, say, the last 10 tests19:33
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Remote host closed the connection19:33
arigatobut if you run them again, only these last 10 tests, then it will be very fast19:33
kkris (~kris@93-82-40-130.adsl.highway.telekom.at) joined #pypy.19:34
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy.19:35
chronitisdoes the generated bytecode depend on any objspace options?19:37
Alex_GaynorYes, there are several which enable/disable custom bytecodes19:38
chronitis(for PEP3147 __pycache__ directories - is it necessary to tag bytecodes with finer granularity than just "pypy-<major,minor>")19:38
JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 252 seconds19:39
chronitisor since non-dev users are unlikely to be changing objspace options, is this a minor enough issue to ignore19:39
arigatoI think it's minor enough for now19:41
chronitisright19:41
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Ping timeout: 252 seconds19:42
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) joined #pypy.19:42
amaury_ (~amaury_@74.125.122.49) joined #pypy.19:42
arigatobah, how do I get py.test to give a useful result with pressing Ctrl-C ?19:44
Alex_Gaynorsome obscure combination of flags, I'm sure19:45
arigatodidn't find it19:45
arigatook, for future reference: comment out "except KeyboardInterrupt: raise" in _pytest/runner.py:10019:47
Alex_Gaynorheh19:48
arigatoah, bah19:50
arigatohakanardo: it's because of gc.collect()19:51
arigatoactually calling it explicitly takes more and more forever on CPython when the total memory usage grows19:51
arigatowarmstate.py:17819:52
hakanardoah!19:52
arigatofound by writing test_x.py that does 10 times the test_merge_xxx, then one time19:54
arigatofrom pypy.translator.goal import unixcheckpoint19:54
arigatounixcheckpoint.restartable_point(auto='run')19:54
arigatothen one mor time the test_merge_xxx19:54
arigatorunning with py.test -s19:55
arigatoand commenting out the two lines in _pytest/runner.py:100 as explained above19:55
arigatoat the end, press Ctrl-C when there is a noticable pause in the output19:55
arigato(you get as many tries as you want, thanks to unixcheckpoint)19:56
arigatomost of the time, the traceback is at rgc.collect()19:56
fijalpffff19:56
fijalwhy it does eat more and more mem btw?19:56
Alex_Gaynorwhy do we need gc calls all over the place in teh tests?19:56
arigatothis gc.collect() is not in "default", so I'm not sure19:57
arigatoI guess it's to test something related to weakrefs19:57
arigatoI already had problems that it took a bit forever19:57
arigatoI ended up putting the relevant tests in test_memmgr.py by calling a subprocess19:58
Alex_Gaynorit should be an explicit rgc call ni the test then, I think, not in the JIT's code19:58
arigatoto get some clean state19:58
arigatoAlex_Gaynor: a bit hard, see memmgr.py:81 and the comment19:59
Alex_Gaynoron jit-targets?19:59
arigatonot necessarily19:59
fijalAlex_Gaynor: hey, I'll refactor signatures20:00
arigatothese are for tests that check that old loops really really go away20:00
fijaland change the way iterators are created20:00
Alex_Gaynorfijal: ok :)20:00
fijalAlex_Gaynor: for what is worth, we can move strides to ConcreteArray20:00
fijalwhich would be either NDimArray or NDimSlice20:00
fijaland keep everything else leaner20:00
Alex_Gaynorfijal: sounds good20:00
fijalI *still* think we should not go via scalars when doing numeric computations on boxes20:00
fijalbut well20:01
Alex_Gaynorfijal: complex stuff is almost in a mergable state20:01
fijalcool20:01
fijalreshape apparently as well20:01
Alex_Gaynorfijal: btw, if you run laplace (the version I have) 2x, the second version we're basically tied with C++20:01
Alex_Gaynorfijal: I guess we should blog post soon20:01
Alex_Gaynorfijal: is numeric verison faster than numpy yet?20:02
etrepum (~bob@accessnat4.mochimedia.net) left irc: Remote host closed the connection20:07
etrepum (~bob@accessnat4.mochimedia.net) joined #pypy.20:07
cpets (4f7588fa@gateway/web/freenode/ip.79.117.136.250) left irc: Ping timeout: 265 seconds20:08
hakanardosorry, had to take an urgent call20:09
hakanardoI added a gc.collect() to jit-targets to get the memgr tests to pass20:10
mfoord (~anonymous@python/psf/voidspace) joined #pypy.20:10
hakanardothere is one there that assumes the loops are freed very quickly...20:11
fijalAlex_Gaynor: there are few issues I want to fix20:11
fijalAlex_Gaynor: is it inplace or not inplace?20:11
fijalbecause on is 2x faster on C++20:12
fijalor >2x20:12
fijalthe non-inplace one20:12
Alex_Gaynorfijal: did we improve there at all after you fixed the registe rallocator?20:12
fijalyes, by 10%20:12
Alex_Gaynornot nearly 2x though20:12
fijalno, not nearly20:13
fijalsharing iterators should help some20:13
fijaland I have some other ideas20:13
Alex_Gaynorsharing iterator is hard :/20:13
fijalbut we should wait quite a bit more with a blog post ok?20:13
fijalno, it's not20:13
Alex_Gaynoris that what you want to refactor signature for?20:13
fijalI've done it, it just does not make optimizer happy20:13
fijalyes20:13
Alex_Gaynorheh, the whole point is to make the optimizer happy20:13
Alex_Gaynor;)20:13
Rhy0litemaybe you are using the term "register allocator" in a broader way20:14
stakkars_ (~stakkars@89.204.153.195) joined #pypy.20:15
Rhy0litebut it seems like the problem starts earlier with how the IR deals with addresses and temporaries20:15
fijalRhy0lite: addresses and temporaries are a domain of the backend20:15
Alex_GaynorRhy0lite: no, earlier there was a bug where the regalloc would assign registers to variables that were only ever used as a live-variable for a guard.  this meant in tight loops you could often have stuff not in registers for stupid reasons.20:15
Alex_GaynorI was specifically asking fijal how much his fix for that helped.20:15
amaury (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy.20:16
stakkars_arigato: According to what you said about the Jit and refcounting: wouldn't that be an approach to re-invent refcounting?20:17
JaRoel|4d (~jaroel|4d@2001:980:7133:1:94a1:1366:80f8:ee54) joined #pypy.20:17
Rhy0liteAlex_Gaynor: I mean things like f53 = getarrayitem_raw(i25, i2, descr=<FloatArrayNoLengthDescr>)20:17
stakkars_It would nicely get virtualized as in Psyco!20:17
Rhy0liteand later getarrayitem_raw20:17
Alex_GaynorRhy0lite: what's the problem with them?20:17
Rhy0litewhere the address is i2 + offset20:18
Alex_Gaynorah, you're saying the issue is we don't fold arithmatic on variables into the addressing in MOV operations?20:18
Rhy0liteyes20:18
Alex_Gaynorthat's a seperate issue from the register allocator.20:18
Alex_Gaynorthat should be a backend-specific peephole optimization.20:18
Alex_Gaynor(IMO)20:19
Rhy0liteit's expensive to expect the backend to re-discover common addresses20:19
Rhy0liteinstead of maintaining them in a common form in the IR20:19
Alex_Gaynorhow would you express i2 = i1 + 1; getaarrayitem_raw(some_addr, i2) in the JIT's SSA repr?20:20
amaury_ (~amaury_@74.125.122.49) left irc: Ping timeout: 240 seconds20:20
Alex_GaynorI need to run to class, I'll be back to discuss in 20 minutes?20:20
Rhy0litettyl20:20
ojii (~ojii@202-91.78-83.cust.bluewin.ch) joined #pypy.20:24
fijal (~fijal@197.168.0.109) left irc: Ping timeout: 244 seconds20:27
arigatostakkars_: are you saying that we should use refcounting in pypy, because the jit can optimize it away?  that's a lot of work for nothing, because refcounting is not faster anyway20:28
amaury__ (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy.20:30
mfoord (~anonymous@python/psf/voidspace) left irc: Quit: mfoord20:30
amaury (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Ping timeout: 240 seconds20:31
arigatoRhy0lite, Alex_Gaynor: fwiw, in the op_malloc_gc branch, I lower the level of the "new_*" operations before the backend sees them20:31
arigatothe branch is not done, but that seems to make sense20:31
arigatomaybe something similar could be done by replacing getarrayitem with explicit asm-level index manipulations20:32
arigatoalthough it would need to be done a bit earlier, to benefit from the optimizer20:32
arigato(it's not obvious, because we'd ideally want to avoid recomputing "p1+offset+4*i2" if it was computed before, but only if there is no intermediate gc call)20:34
stakkars_ (~stakkars@89.204.153.195) left irc: Ping timeout: 240 seconds20:34
arigatoRhy0lite: also, note that on x86, addressing like "p1+offset+4*i2" can be done within any instruction, so it's an unclear win20:35
Rhy0litearigato: yes, but one needs to maintain p1 and i220:35
stakkars_ (~stakkars@89.204.153.195) joined #pypy.20:35
arigatoyes, that's the drawback20:36
Rhy0liteit can be a benefit20:36
Alex_GaynorRight, a MOV is the same number of cycles no matter what addressing you give it right?20:36
Rhy0litebut computing p1+offset+4*i2, saving it to a stack location, then loading it to dereference it20:36
arigatoI still think there are easier problems with the way we produce code20:36
Alex_Gaynorthe advantage is in the +1/-1 case because you can fold that into the instruction always20:36
Rhy0litewhat is less efficient is computing the address20:38
Rhy0litestoring it in a stack location20:38
Rhy0litereferencing the array through the stack location20:38
Rhy0liteand then updating the value in the stack location20:38
Alex_Gaynorthat was the register allocator bug, I think20:38
Rhy0liteokay, I haven't seen the latest code from the JIT for Maciej's example20:39
Alex_Gaynordo you have the python code for his example, I have a recent pypy I can test it against20:39
lizardo (~lizardo@189.2.128.130) left irc: Quit: Leaving20:41
Rhy0litea link is in his twitter posting, but twitter is being a twit20:41
Alex_GaynorRhy0lite: https://bitbucket.org/fijal/hack2/src/a8eb5c9e36cd/bench/laplace/laplace.py20:43
Alex_Gaynorthat look right?20:43
Rhy0liteyes20:43
Alex_GaynorRhy0lite: which version do you want the ASM for?20:43
Rhy0litenumeric_3_time_step20:43
Alex_Gaynork20:43
tilgovi (~randall@69.111.59.168) joined #pypy.20:44
gutworthpunpckldq is a gcc instruction :)20:44
gutworthx86 rather20:44
tilgovi (~randall@69.111.59.168) left irc: Changing host20:44
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.20:44
Rhy0litegutworth: eieio is a PowerPC instruction20:44
Alex_Gaynorgutworth: yeah, it's a packed.... something quadword20:44
stakkars_ (~stakkars@89.204.153.195) left irc: Quit: Colloquy for iPhone - http://colloquy.mobi20:45
Alex_GaynorRhy0lite: do you know which loop you want?20:47
Rhy0liteno20:47
Alex_Gaynordo you remember what arithmatic ops were in it?20:47
Rhy0liteit should be addsd, mulsd20:48
Rhy0litefour getarrayitem_raw followed by setarryitem_raw20:49
kenaan12hakanardo jit-targets 11417d2384375b 15/pypy/jit/metainterp/: Dont rgc.collect() more than we have too (not working when run in a separate process by test_all)20:49
Alex_Gaynorok found it I think20:49
Action: mikefc is working on his last bug report.20:50
mikefcI think it's memory thrashing rather than cpu.20:50
mikefcAny ideas on how to profile total memory use during a run?20:51
Alex_GaynorRhy0lite: http://dpaste.com/666636/ is what we generate now20:51
Alex_Gaynorerr shit I screwed it up a bit, one moment20:52
Alex_GaynorRhy0lite: http://dpaste.com/666637/ need to close my laptop now20:52
Rhy0litetime for all the students to put their heads down in class :-)20:53
arigatoi63 = i5 < i3320:54
arigato    mul    r14,QWORD PTR [rbp-0x120]20:54
arigato    mul    0xdc79e3ae20:54
arigatoI wouldn't hesitate to say here: "uh?"20:54
Rhy0liteis getinteriorfield_raw new?20:56
asmeurer__ (~asmeurer@dhcp-baca-230.resnet.nmt.edu) joined #pypy.20:56
Rhy0liter14 isn't the worst20:58
Rhy0litethe updates to r15, r13, r10 and r8 seem bad20:58
arigatowhat is wrong with r15?21:00
CIA-1303mikefc 07roundup * 10#954/looped string formatting of dict entry slow and hogging memory: 21:01
CIA-13OK. This is probably just a case where pypy version is just running out of memory21:01
CIA-13and thrashing swap. * 14https://bugs.pypy.org/issue95421:01
arigatoah, they are all incremented by what turns out to be the same value?21:01
Rhy0litearigato: it may not be as bad21:01
Rhy0litewhat I am looking for is a read-after-write cycle21:02
Rhy0litewhich is the problem shown by Maciej's inplace_laplace.cxx example21:02
Rhy0liteif the Python loop is not as fast as laplace.cxx, there is some memory dependency being introduced21:02
Rhy0litefor inplace_laplace.cxx, it was the data itself21:03
Rhy0litethat does not appear to be the problem for the JIT code, but somewhere there is a memory dependency in the addressing code21:03
Rhy0litemaybe it now is with rcx and rdx21:05
stakkars_ (~stakkars@89.204.153.195) joined #pypy.21:05
stakkars_Iphone test21:05
gutworth (~benjamin@dhcp-128-36-84-91.central.yale.edu) left irc: Ping timeout: 252 seconds21:05
Rhy0litearigato: what is difficult to determine from the code is the addresses in the stack21:05
Rhy0lite    mov    rcx,QWORD PTR [rbp-0x110]21:06
Rhy0lite    mov    rdx,QWORD PTR [rbp-0x118]21:06
gutworth (~benjamin@dhcp-128-36-84-91.central.yale.edu) joined #pypy.21:06
Rhy0litethe offsets from rbp are independent, but the addresses may be the same as some other write21:07
stakkars_arigato: About refcounting: yes, I'm saying that if is not too hard, it would be nice to offer this. 21:07
arigatoRhy0lite: true21:07
Rhy0litearigato: if the code is slow, I suspect that the previous iteration of the loop is writing to the same address21:08
stakkars_That's the last bastion where people can have a "yes but". It is a psycological thing21:08
arigatoRhy0lite: but that should be kind of obvious from the Python sources, no?21:08
Rhy0liteno21:08
stakkars_The cosy feeling that there is nothing different if they want, although slower. Then move to a better gc. See it?21:09
arigatostakkars_: feel free, but it's tons of work21:10
arigatonot for me :-)21:10
arigatoI mean, it's not something I want to do, at all21:10
stakkars_waah, well21:10
arigatoRhy0lite: this said, I'm sure that gcc produces a loop that is at least half as short21:11
Rhy0litearigato, the length of the loop is not the problem21:11
Rhy0litex86 is really good and running cr*ppy code well21:12
stakkars_I hate Windows, but I do what people want, that's my goal. Undecided about ref gc, tho21:12
arigatoRhy0lite: it still contains many more guards than the C++ version of the loop, which I guess only has one21:13
arigatofor example21:13
Rhy0litehttp://paste.pocoo.org/show/515473/21:13
Rhy0litearigato: 2x should not be due to guards21:14
goodwill (~goodwill_@pdpc/supporter/active/goodwill) joined #pypy.21:14
goodwill (goodwill_@pdpc/supporter/active/goodwill) left #pypy ("+++ OK ATH OK").21:15
lucian (~lucian@cpc1-newc15-2-0-cust84.gate.cable.virginmedia.com) left irc: Remote host closed the connection21:15
arigatoI'm kind of impressed that we are *only* 2x slower, actually, given the mess of [rbp-0x*] that we have and that is not at all in the gcc version21:15
Rhy0litearigato: the top code is good (laplace.cxx) and the bottom code is worse (inplace_laplace.cxx)21:15
Rhy0litearigato: x86 is good with memory reads21:15
Rhy0liteit can pipeline it a lot21:15
Rhy0litethe problem is a Load-Hit-Store21:15
kkris (~kris@93-82-40-130.adsl.highway.telekom.at) left irc: Quit: Leaving.21:16
Rhy0litewhere a load from memory hits a story in the previous iteration21:16
Rhy0litein the bottom code21:16
Rhy0litethis happens on line 7121:16
Rhy0lite        movsd   %xmm1, 8(%rdx,%rax)21:16
Rhy0litewhen %rax gets updated for the next iteration21:16
Rhy0liteit hits21:16
Rhy0lite        movsd   (%rdx,%rax), %xmm221:16
Alex_GaynorRhy0lite: my second paste fixes teh weird MULSD issue :)21:17
Rhy0litethe top one does not have the conflict21:17
Rhy0lite        movsd   %xmm1, 8(%rdi,%rax)21:17
Rhy0lite%rdi points to a separate array21:17
arigatoRhy0lite: note that the two C++ versions of the code are not doing the same thing, as far as I can tell21:17
Rhy0litearigato: yes, the algorithms are different21:17
Rhy0litebut Maciej was playing around trying to understand the source of the pypy slowdown21:18
arigatoI mean, they compute something really different21:18
arigatoit's not just using a different algo to compute the same thing21:18
Rhy0litethey both are laplace solvers21:18
arigatono21:18
arigatoI think not21:18
Rhy0litebut different convergence characteristics21:18
arigatothe 2nd algo does not satisfy any sane mathematical definition that I can think of21:19
Rhy0litehehe21:19
kenaan12mattip matrixmath-dot 119160acf08843 15/pypy/: Merge with default21:19
Rhy0litetalk to Maciej :-)21:19
kenaan12mattip matrixmath-dot 110f00b31fe95a 15/pypy/module/micronumpy/interp_numarray.py: fix for renamed class21:19
kenaan12mattip matrixmath-dot 1155693d8b2b89 15/: Merge with default21:19
kenaan12mattip matrixmath-dot 1155f149559e25 15/pypy/module/micronumpy/: bad merge21:19
kenaan12mattip matrixmath-dot 1109f8917ecaf3 15/pypy/module/micronumpy/test/test_compile.py: bad merge21:19
kenaan12mattip matrixmath-dot 11885d36165f89 15/pypy/module/micronumpy/: experimental approach to dot iterator problem21:19
kenaan12mattip matrixmath-dot 11dc6c3373f647 15/pypy/module/micronumpy/: clean compile a bit21:20
kenaan12mattip matrixmath-dot 111ae4feb97953 15/pypy/module/micronumpy/: Backed out changeset: 885d36165f8921:20
kenaan12mattip matrixmath-dot 115a5cfa32fe70 15/pypy/module/micronumpy/: merge21:20
kenaan12mattip matrixmath-dot 1126e6b2238d4a 15/pypy/module/micronumpy/interp_numarray.py: translation fixes: avoid negative slices21:20
kenaan12mattip matrixmath-dot 11beba9400c9dd 15/pypy/module/micronumpy/: add bin_impl_one_dim, would be nice to have some tests21:20
kenaan12mattip matrixmath-dot 11699511d4d5d5 15/pypy/module/micronumpy/test/test_numarray.py: add failing test for sum return value21:20
kenaan12mattip matrixmath-dot 11ee2362c0cec8 15/pypy/module/micronumpy/interp_numarray.py: need to fix failing sum test before continuing21:20
kenaan12mattip matrixmath-dot 11924460a509cd 15/pypy/module/micronumpy/: expose promote_to_largest to reduce functions, fixes sum() prod() bug without ruining mean()21:20
kenaan12mattip matrixmath-dot 11d28b98fc74ed 15/pypy/module/micronumpy/: dot works21:20
kenaan12mattip matrixmath-dot 118ee1a24557b8 15/pypy/module/micronumpy/interp_numarray.py: dot seems to work, more of a proof-of-concept than usable21:20
mattipsorry about that, didn't mean to interrupt :)21:20
arigato:-)21:20
Rhy0litearigato: I'm just using the two to highlight the performance characteristics21:20
arigatook21:20
Rhy0liteone has a read-after-write dependency21:21
Rhy0litethe other does not21:21
arigatoyes21:21
arigatook21:21
Rhy0litearigato: also I only am showing the core loop21:21
Rhy0litefor the first one, tmp[][] = u[][] for each loop21:21
Rhy0liteI didn't show the memcpy21:21
arigatoyes (I already discussed this with maciej, and the 2nd version looks to me like plain buggy code, but I see your point)21:22
Rhy0liteI believe the dependency is the bottleneck21:22
arigatoah21:22
Rhy0liteand the reason for the slowdown of the C++ code21:22
squiddy (~squiddy@g224193176.adsl.alicedsl.de) left irc: Quit: Leaving21:22
Rhy0liteand I believe there is some dependency in the pypy code21:23
Rhy0litenot in the data, but in the addresses stored in the stack (rbp)21:23
Rhy0litemy intuition is one of the writes to memory is read to initialize rcx or rdx in each loop iteration21:24
arigatobut there is only one setinteriorfield_raw?21:25
Rhy0liteah hah!21:25
Rhy0litenow you see why it's difficult to read the pypy jitviewer code21:25
arigatowait, I didn't mean it that way21:26
arigato(the jitviewer code is best seen colored, too)21:26
arigatoor else I don't understand your intuition21:26
Rhy0litefor instance, line 1421:27
aboudreault (~alanb@osgeo/member/aboudreault) left irc: Ping timeout: 255 seconds21:27
Rhy0lite    mov    rcx,QWORD PTR [rbp-0x110]21:27
Rhy0lite16:     movsd  xmm9,QWORD PTR [rcx+r8*8]21:27
Rhy0litethe jit is loading rcx from the address at that stack location21:27
Rhy0liteon each iteration21:27
arigatoyes21:27
Rhy0litereading isn't bad21:27
Rhy0litebut I suspect one of the iteration index updates writes to that same location21:28
Rhy0liteI cannot tell because the SSA variables are independent21:28
Rhy0liteand the stack offsets are different21:28
arigatono, nothing writes to rbp-0x11021:28
jterracenumpypy only has float64 but not float32?21:28
Rhy0litearigato: yes21:28
Rhy0litebut that does not matter21:28
Rhy0liteit's updating [rbp-0x110]21:28
arigato?21:29
Rhy0litewhat if [rpb-0x1d0] points to the same memory?21:29
arigatouh?21:29
Rhy0lite    mov    QWORD PTR [rbp-0x1d0],r1521:29
arigatoof course [rbp-0x110] and [rbp-0x1d0] point to different memory locations21:29
arigatorbp is the frame pointer21:29
Rhy0litewhy?21:29
Rhy0litestop21:29
Rhy0litethe values at those locations21:30
Rhy0liteif [rbp-0x110] and [rbp-0x1d0] both are 0x1234567821:30
arigatoah, /me rereads21:30
amaury__jterrace: there is a "floating" type21:30
amaury__defined with "float32" things internally21:31
mikefcjterrace: pretty sure it has a float32   dtype=f421:31
jterracenumpypy.float64 exists, and you can set dtype='float32' with a string, but there is no numpypy.float3221:31
amaury__sorry, I don't know anything about numpy :(21:31
amaury__did you try dtype='floating'21:31
amaury__?21:31
jterracei think it's just missing from the global module scope21:31
Alex_Gaynorjterrace: err we have float32, I bet I didn't expose the type though21:31
jterraceyeah i think you just forgot it in the global module scope21:31
jterracebecause it works as a string21:31
Alex_Gaynorjterrace: yup, that's the issue21:32
lindsay_l (~lindsay_l@96.24.71.70) joined #pypy.21:32
arigatoRhy0lite: sorry, I don't understand what you mean about the two lines you pasted above21:32
Alex_Gaynorjterrace: I'll fix it in a little while (in class ATM)21:32
jterracethanks21:32
Rhy0litearigato: remember that x86 instructions can perform lots of implicit indirections21:32
Rhy0liteI don't know if the exact lines I quoted are the problem21:33
Rhy0liteI completely agree that rbp-0x110 and rbp-0x1d0 are independent addresses21:33
Rhy0litebut [rbp-0x110] and [rbp-0x1d0] could be the same address21:33
Rhy0litein other words the address contained at those two frame pointer locations21:33
Rhy0liteon line 14 and 1621:34
Rhy0liteone loads rcx21:34
Rhy0liteand then loads relative to rcx21:34
Rhy0liteon line 36, one is storing21:34
arigatoyes, but I don't see the point.  are you saying that the CPU is getting lost by doing "write at [ecx]; read at [edx]" because the value in ecx and edx are the same?21:34
Rhy0liteI *suspect* that one of the stores is hitting the same address21:34
Rhy0litenot lost21:35
Rhy0litebut needs to wait21:35
Rhy0litethe CPU is loading rcx21:35
arigatoI doubt it a bit, but I may be wrong21:35
Rhy0litearigato: something is updating the array indexes21:35
Rhy0liteand it's not done inline21:35
Rhy0liteand there is no other reason to write r15, for example21:36
arigator15 is saved because of the guards that follow21:36
arigatoone of these guards has the old value of r15 as "fail_args"21:36
Rhy0liteok21:36
mattip (chatzilla@bzq-79-177-116-180.red.bezeqint.net) left #pypy.21:36
Rhy0litebased on the code21:37
stakkars_arigato: reminds me of instruction sequences which could even kill a Cpu :-)21:37
Rhy0liteI suspect that rax and rdx are the neighbors above and below21:37
Rhy0liteand that rcx+r13*8 and rcx+r8*8 are the neighbors left and right21:37
`fox` (~fox@95.232.111.114) joined #pypy.21:38
Rhy0litearigato: maybe the slowdown all is due to guards21:39
Rhy0litewriting to the index value in memory and then reading it would cause problems21:40
Rhy0liteif you look back at the gcc code, it always is reading from memory to set the base addresses21:41
arigatowe are comparing 16 asm instructions using registers with 46 asm instructions using the frame, so it really doesn't seem like a complete surprize that the latter is 2x slower21:41
arigatoRhy0lite: ah21:41
arigatosorry, I think I begin to understand what you mean21:42
Rhy0lite        addq    $8, %rbx21:42
Rhy0lite        addq    $8, %r921:42
Rhy0lite        movq    8(%r11,%rbx), %rdi21:42
Rhy0lite        movq    (%r9), %rsi21:42
arigatoyou are saying that storing something at rbp-xx and then reading it next iteration is bad21:42
Rhy0litearigato: not exactly21:42
jterraceAlex_Gaynor: is there a string type for numpypy yet?21:42
Rhy0liteI am saying that storing something at [rbp-xx] and then reading it next iteration is bad21:43
jterracenp.array(['hey'], dtype='string') -> infinite loop :)21:43
Rhy0litearigato: as we agree, the offsets only are used one21:43
Rhy0liteonce21:43
Rhy0liteI don't see anything read and write from [rbp-NN]21:43
Rhy0litebut if [rbp-NN] and [rbp-MM] are the same21:43
derdon (~derdon@p5DE894EA.dip.t-dialin.net) joined #pypy.21:44
Rhy0litethen pypy may be reading and writing to the same address in each iteration21:44
Rhy0liteif it reads from [rbp-NN] and writes to [rbp-MM]21:44
arigatosorry, what is the 4 lines of assembler you pasted above?21:44
Rhy0litethe four lines above are the core of the update in the gcc outer loop iteration21:44
Rhy0liteit's marching through an index of the addresses for each C++ vector21:45
Rhy0liteupdating rdi, rsi, rcx, rdx21:45
Rhy0litebut not writing the address that is read into those registers21:45
Rhy0litemaybe all of the problem is due to the extra frame references by pypy21:46
arigatoI don't really follow you.  why does anything done in the outer loop have a relevance to performance?21:46
Rhy0litearigato: I was trying to show that the gcc loop never writes addresses to set up the vectors that it indexes21:47
Rhy0liteI agree that the inner loop update is just         addq    $8, %rax21:48
Alex_Gaynorjterrace: err, no we don't have a string dtype yet21:49
jterraceok21:49
jterraceit goes into an infinite loop and keeps using more and more memory21:49
jterraceif you try and use dtype='string'21:49
Alex_Gaynorheh, ok I'll take a look at that as well21:50
Alex_Gaynorjterrace: I can't for the live of me figur eout why though21:51
dracman (~draco@212.255.33.90) joined #pypy.21:51
jterraceheh21:51
jterracectrl+c fails too21:51
jterracehad to kill it21:51
arigatoI really think that ignoring the frame, the memory accesses are exactly the same as gcc, and that should be good enough for the cpu ---21:51
arigatobut it still has 3 times as many instructions to run, and maybe occasionally gets cache conflicts between ebp-xx and the matrix21:51
arigatosorry if you're trying to tell something different and I keep missing it21:52
ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) left irc: Quit: Leaving...21:52
stakkars_ (~stakkars@89.204.153.195) left irc: Quit: Colloquy for iPhone - http://colloquy.mobi21:53
Rhy0litearigato: I cannot say for sure because it is difficult to know what the addresses resolve to21:55
Rhy0litecompared to the straight-forward indexing of the GCC code21:55
Rhy0litemaybe the slowdown is all of the extra guard code21:55
Rhy0liteand we're looking at it different ways21:56
Rhy0litebecause the guard code does require extra writes21:56
Rhy0litealthough if the writes never are used in the critical path, they can percolate out of the store queue very slowly and not matter21:56
Rhy0litearigato: the problem in modern processors is the memory wall21:59
Rhy0liteand, apparently because of guards, pypy performs a lot more operations with memory21:59
arigatoyes, but still: e.g. we do 10 "add" where gcc does one, so this has a cost, surely22:00
Rhy0liteyes, but it won't make much of a difference22:00
arigatoI'm not sure what you mean by guards that require memory operations22:01
Rhy0lite    cmp    r14,QWORD PTR [rbp-0x120]22:01
Rhy0lite    jge    0xdc79e3ae22:01
arigatothis QWORD PTR is just loading Yet Another value from the frame22:01
Rhy0liteas opposed to GCC performing register-register comparisons22:01
Rhy0lite        cmpq    %rbp, %rbx22:02
arigatoit's not directly the fault of the guard22:02
Rhy0litegcc's inner loop comparison is         cmpq    %r8, %rax22:02
Rhy0litein other words, gcc's update is22:03
Rhy0lite        addq    $8, %rax22:03
Rhy0lite        cmpq    %r8, %rax22:03
Rhy0litepypy is22:03
Rhy0lite    cmp    r14,QWORD PTR [rbp-0x120]22:03
Rhy0lite    jge    0xdc79e3ae22:03
arigatoit's just that we are using something like 20 or 25 different values in the loop, not counting the xmm ones22:04
Rhy0lite    mov    rcx,r1422:04
Rhy0lite    add    r14,0x122:04
arigatoso of course, it's actually good that all variables that are used only once in a loop at directly accessed from the frame22:04
arigatolike the value to compare r14 to22:05
Rhy0litearigato: but, for instance, there should be additional free registers22:05
arigatothere are none22:05
arigatorbp is the frame pointer, r11 is used as the scratch register22:05
arigatoall others are in use22:05
lindsay_l (~lindsay_l@96.24.71.70) left irc: Quit: Leaving22:07
`fox` (~fox@95.232.111.114) left irc: Ping timeout: 252 seconds22:08
arigato(r11 is not actually *used* in this loop, but I mean, it is used generally as the scratch register)22:08
Rhy0liteokay22:09
Rhy0litebut pypy seems to have a lot of induction variables22:09
Rhy0litenot all of which should be necessary22:09
Rhy0litethough that is a natural outcome of the guards for the trace22:10
Rhy0liteTo compress the code, one needs to see that some of the guards can be combined, right?22:10
arigatothat would be advanced by our standards, but yes22:11
arigatomaybe it's a generally useful feature to try to combine at least the base addresses together22:12
arigatoin this case it's 5 different values that probably all point to the very same array22:13
Rhy0liteyes22:13
arigatoI'm also not sure why we get 10 adds22:13
Rhy0liteone may need 3 base addresses, but not 522:14
Rhy0liteanyway, I need to drive home22:17
arigatook, see you22:18
Rhy0lite (dje@nat/ibm/x-mkylutffxovkxuzo) left irc: Quit: Leaving22:19
Nick change: Gulaway -> Gulopine22:20
Nick change: amaury__ -> amaury22:22
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection22:25
arigato (~arigo@82.113.121.170) left irc: Quit: See you22:30
raydeo (~raydeo@merickel.org) got netsplit.22:31
gtaylor (~gtaylor@108-196-160-120.lightspeed.tukrga.sbcglobal.net) left irc: Quit: Konversation terminated!22:33
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/16122:37
bbot2Started: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/73522:37
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/96522:37
chronitis (~chronitis@88-104-122-204.dynamic.dsl.as9105.com) left irc: Quit: Lost terminal22:41
raydeo (~raydeo@merickel.org) got lost in the net-split.22:42
aurojit (~apanda@dhcp-44-187.EECS.Berkeley.EDU) left irc: Read error: Connection reset by peer22:42
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) joined #pypy.22:42
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) joined #pypy.22:42
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) left irc: Changing host22:42
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.22:42
dracman (~draco@212.255.33.90) left irc: Ping timeout: 252 seconds22:45
kenaan12alex_gaynor default 1124a17a8610e1 15/pypy/module/micronumpy/: expose numpy.float32, thanks to jterrance for pointing it out22:50
Alex_Gaynorjterrace: ^22:53
jterracenice22:53
jterracebut got my name wrong :)22:53
jterracebut don't worry, people mispell it all the time22:53
Action: Alex_Gaynor shifts awkwardly22:54
jterracehehe22:54
pjenveynobody believes the spelling of anything in alex's commit messages anyway22:56
Alex_Gaynorpjenvey: this is the truth22:57
jterraceup to 19/46 tests passing with pypy: https://twitter.com/#!/jterrace/status/14382732424735539322:58
jterracei think reshape branch will bump that up by a lot22:58
Alex_Gaynorjterrace: are the tests easy to run?22:58
Alex_Gaynori.e. you I go run them22:58
jterraceyeah22:58
jterraceit's just, download nightly pypy, create a virtualenv, and run setup.py22:59
Alex_Gaynorerr i.e. *should* I go run them22:59
jterracehmm?22:59
jterraceoh you mean on reshape branch?22:59
Alex_Gaynorerr, link to the repo?23:00
Alex_Gaynordunno, I just want to validate that there's no actual stuff to do besides reshape23:00
jterracehttps://github.com/pycollada/pycollada/tree/pypy23:00
jterraceif you just run venv/bin/pypy collada, it runs the test suite23:01
Alex_Gaynork, gotta translate first23:01
jterracesetup.py will install the only deps it needs - unittest2 and python-dateutil23:01
jterracedoes the buildbot build branches?23:01
Alex_Gaynorif you ask it to23:02
jterracenot sure how useful the tests would be, because other things will probably fail23:03
jterracei could help write small reshape tests23:03
jterracewhich branch is reshape on? none of the numpy branch names jump out at me23:03
Alex_Gaynormatrixmath-reshape-merge I think23:04
jterracedo i have to do a full build to try out the branch?23:04
jterraceor can i run the tests without building the full translator?23:05
Alex_Gaynoryou can run it, it'll be excruciatiatelingly slow though, like 2000x slower23:05
jterracehmm if it's just one test module, maybe x isn't that bad though?23:06
Alex_Gaynordunno, only one way to find out23:06
jterracethese reshape tests look pretty good23:07
apanda (~apanda@dhcp-44-187.EECS.Berkeley.EDU) left irc: Read error: Connection reset by peer23:08
aurojit (~apanda@dhcp-44-187.EECS.Berkeley.EDU) joined #pypy.23:08
lac_ snow! SNOW! WE HAVE snow! :-) :-) (wish armin was around)23:10
mikefcsnow. pffft23:12
jterraceraining here (NJ,US)23:12
whitelynx|work (~whitelynx@63.241.75.144) left irc: Quit: Ex-Chat23:13
Alex_Gaynorjust dark here (NY, US)23:14
mikefca nice overcast 21C (Bris, Aus)23:15
harrison (~quassel@adsl-69-209-194-12.dsl.chcgil.sbcglobal.net) joined #pypy.23:15
jterraceAlex_Gaynor: is this right? ./pytest.py pypy/module/micronumpy/test/test_numarray.py23:17
Alex_Gaynoryup23:17
jterraceit didnt take that long at all23:17
jterrace107 passes, 1 skipped23:17
Alex_Gaynorsorry, I thought you meant running *your* tests with the untralsated pypy23:17
jterraceoh23:17
jterracei can even do that?23:17
raydeo (~raydeo@merickel.org) joined #pypy.23:17
Alex_Gaynorsure ./pypy/bin/py.py <your code>23:17
Rhyolitelac_: If it were easy, I would be happy to send snow from my home23:18
dracman (~draco@212.255.26.64) joined #pypy.23:18
jterraceoh that's super cool23:20
jterracedid not know that was possible23:20
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Read error: Operation timed out23:21
mfoord (~anonymous@87-194-212-65.bethere.co.uk) joined #pypy.23:21
mfoord (~anonymous@87-194-212-65.bethere.co.uk) left irc: Changing host23:21
mfoord (~anonymous@python/psf/voidspace) joined #pypy.23:21
mwhudson (~mwh@linaro/mwhudson) left irc: Quit: Leaving23:21
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy.23:21
mwhudson_ (~mwh@120.136.5.22) joined #pypy.23:22
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) joined #pypy.23:23
Nick change: mwhudson_ -> mwhudson23:26
ojii (~ojii@202-91.78-83.cust.bluewin.ch) left irc: Quit: Leaving23:31
tlynn (~tlynn@cpc6-cmbg14-2-0-cust121.5-4.cable.virginmedia.com) joined #pypy.23:39
jterraceAlex_Gaynor: played around with adding a few more tests of my own to matrixmath-reshape-merge branch, and all worked correctly23:40
jterracelooks awesome23:40
Alex_Gaynorcool23:41
jterracemy tests: http://pastebin.com/raw.php?i=89ukxJMG23:42
Vorpal (~AnMaster@unaffiliated/anmaster) left irc: Ping timeout: 248 seconds23:43
nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 260 seconds23:45
Action: mikefc is excited about the numpypy work.23:45
Action: jterrace agrees23:45
tlynn_ (~tlynn@cpc6-cmbg14-2-0-cust121.5-4.cable.virginmedia.com) joined #pypy.23:46
mikefchope to delve into it soon. (still working on starting my pickle numpy problem)23:46
jterracedid you look at the npy format?23:47
jterracelooks not that complicated: https://github.com/numpy/numpy/blob/master/doc/neps/npy-format.txt23:47
jterracei think that's what's used for pickling23:47
mikefcnope. I'm only slowly wrapping my head around how pypy works.23:48
JaRoel|4d (~jaroel|4d@2001:980:7133:1:94a1:1366:80f8:ee54) left irc: Remote host closed the connection23:48
jterrace (~jterrace@aegis.CS.Princeton.EDU) left irc: Quit: Leaving.23:49
tlynn (~tlynn@cpc6-cmbg14-2-0-cust121.5-4.cable.virginmedia.com) left irc: Ping timeout: 240 seconds23:49
mikefcand what the hell is entailed in pickling.  I know nothing of python internals :(23:49
Rhyolitefirst you create a Python brine23:49
exarkunpickling is just turning an object into some bytes and vice versa23:50
cwillu_at_work (~cwillu@cwillu-1-pt.tunnel.tserv13.ash1.ipv6.he.net) left irc: Ping timeout: 252 seconds23:51
mikefcexark: yeah, I know what pickling does, but not how it actually does it internally in python. when is __reduce__ used, when should get/setstate and getinitargs be used.  I have to find time to figure these out etc.23:52
mikefcafk23:52
Alex_GaynorI'd be lieing if I said there are more than about 50 people in the world who properly understand the answers to those questions.23:53
exarkunbut you're just implementing numpy right?  so copy whatever numpy does23:53
mikefcexarkun: possibly. but i had a look at at what pypy was doing in micronumpy and didn't understand any of it :)23:54
mikefcufuncs and spaces23:54
mikefclike i said - learning 23:55
Alex_Gaynorufuncs are a numpy concept, objspace is a pypy one23:55
mikefcthe comments in pypy code can be quite ... um... absent? :)23:55
Alex_GaynorI'm not a good commenter :/23:56
mfoord (~anonymous@python/psf/voidspace) left irc: Quit: mfoord23:59
--- Tue Dec 6 201100:00

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