#pypy IRC log for Wednesday, 2012-01-11

mfoord (~anonymous@python/psf/voidspace) joined #pypy.00:00
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection00:04
CIA-1703r.lobb 07roundup * 10#960/Sandboxing for external function 'pypy__float2longlong': 00:06
CIA-17[chatting] Many thank, Armin. I can't find that commit any more -- I assume it has been00:06
CIA-17merged into the trunk -- but the problem has gone from t ... * 14https://bugs.pypy.org/issue96000:06
craigkerstiens (~craigkers@204.14.152.118) left irc: Quit: craigkerstiens00:07
mfoord (~anonymous@python/psf/voidspace) left irc: Quit: mfoord00:10
mfoord (~anonymous@87-194-212-65.bethere.co.uk) joined #pypy.00:11
mfoord (~anonymous@87-194-212-65.bethere.co.uk) left irc: Changing host00:11
mfoord (~anonymous@python/psf/voidspace) joined #pypy.00:11
durin42 (~durin@adium/durin42) left irc: Ping timeout: 240 seconds00:14
mvt (~mvantelli@53530442.cm-6-4a.dynamic.ziggo.nl) joined #pypy.00:16
durin42 (~durin@adium/durin42) joined #pypy.00:16
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy.00:17
mikefc_ugh. numpy's linalg testing doesn't actually test half the things that are in it.00:25
nedbat (~nedbat@python/psf/nedbat) joined #pypy.00:26
Action: mikefc_ reads up on doctests.00:26
Alex_Gaynormikefc_: they are evil00:26
Alex_Gaynorand terrible00:27
Alex_Gaynordon't use them ever if you can avoid it00:27
mikefc_Alex_Gaynor: lots of numpy stuff only appears to have doctests 00:27
Alex_Gaynorfun00:27
mikefc_Alex_Gaynor: "we" don't do doctests in pypy?00:27
Alex_Gaynorno, I mean we support the stdlib doctest mod of course00:27
Alex_Gaynorbut I can't anti-reccomend them enough00:28
mikefc_i.e. eveything should be unittests?00:28
Alex_GaynorI led the charge to port 10s of thousands of lines of doctest to unittest in django00:28
mikefc_they seem possibly OK for a small project. never used them myself.00:29
mvt (~mvantelli@53530442.cm-6-4a.dynamic.ziggo.nl) left irc: Quit: This computer has gone to sleep00:29
fenrrir (~rodrigo@189.70.232.240) left irc: Quit: Leaving00:32
jterrace (Adium@dynamic-oit-vapornet-b-618.Princeton.EDU) left #pypy.00:42
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.01:00
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) joined #pypy.01:12
rekamso (~textual@63-228-127-70.dia.static.qwest.net) left irc: Ping timeout: 240 seconds01:16
craigkerstiens (~craigkers@208.106.28.36) joined #pypy.01:22
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/2801:24
nick125Alex_Gaynor: Just curious, why do you not like doctest?01:25
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/20001:29
exarkunbecause it sucks, probably01:37
exarkunthat's why I don't like it, at least ;)01:37
gutworthit's cute, but ineffective in the real life01:39
nick125I can see it being ineffective for a *lot* of testing.01:40
dmalcolm (~david@c-24-61-12-82.hsd1.ma.comcast.net) left irc: Quit: Leaving01:46
bbot24Failure: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/77201:46
CIA-1703r.lobb 07roundup * 10#961/Spurious (?) mercurial error messages from sandlib.py: [chatting] Yes, thanks Armin and Fijal. That problem seems to have gone too. * 14https://bugs.pypy.org/issue96101:55
bbot2Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/192102:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/67402:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/32402:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/67202:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/33402:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/119102:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/85502:00
bbot2Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/150802:00
bbot2Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/78502:00
dgl (~dgl@109.86.165.231) left irc: Quit: Leaving...02:14
etrepum_ (~bob@accessnat4.mochimedia.net) joined #pypy.02:16
etrepum (~bob@accessnat4.mochimedia.net) left irc: Read error: Operation timed out02:18
craigkerstiens (~craigkers@208.106.28.36) left irc: Quit: craigkerstiens02:18
mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 240 seconds02:18
etrepum_ (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 252 seconds02:21
lahwrandoes trampgeek come here?02:24
lahwranI'm curious what he's doing with the sandbox02:25
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) left irc: Quit: Computer has gone to sleep.02:27
mfoord (~anonymous@python/psf/voidspace) left irc: Quit: mfoord02:28
nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 245 seconds02:33
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection02:37
etrepum (~bob@75-101-96-144.dsl.static.sonic.net) joined #pypy.02:45
squiddy (~squiddy@g224194229.adsl.alicedsl.de) left irc: Quit: Leaving02:55
ericflo (~ericflo@75.103.8.110) left irc: Quit: ericflo03:00
Kaskuka (~John@osbk-4db150f7.pool.mediaWays.net) left irc: Ping timeout: 240 seconds03:03
Kaskuka (~John@osbk-4db149a4.pool.mediaWays.net) joined #pypy.03:04
bbot23Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/100903:09
dracman (~draco@212.255.35.167) left irc: Ping timeout: 252 seconds03:19
dracman (~draco@212.255.32.178) joined #pypy.03:25
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy.03:27
Action: mikefc_ campaigns for more hours in the day03:33
mwhudsonmikefc_: +103:41
anish_ (anish@nat/redhat/x-sehmgrtrefmvknse) joined #pypy.04:01
bbot23Success: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/192104:10
mat^2 (~mathias@212.130.113.35) joined #pypy.04:15
icrazyhack (~horieyui@113.106.212.50) joined #pypy.04:21
bfirsh (u1308@gateway/web/irccloud.com/x-zwlzlulxmbcwlynp) left irc: Remote host closed the connection04:29
Alex_Gaynor (u1246@gateway/web/irccloud.com/x-udnawuwrosxgieus) left irc: Remote host closed the connection04:29
CIA-1703mikefc 07roundup * 10#998/numpypy app level module layout fix (patch attached): 04:30
CIA-17[new] A simple patch to the applevel numpypy module.04:30
CIA-17* move fromnumeric into numpypy/core/ (as it is in numpy)04:30
CIA-17* add a __version__ string "n ... * 14https://bugs.pypy.org/issue99804:30
mikefc_I guess I'm going to have to learn how to use mercurial properly04:30
mikefc_took me long enough to get used to git after using svn for so long...04:30
gutworth (~benjamin@dhcp-128-36-84-221.central.yale.edu) left irc: Ping timeout: 240 seconds04:32
oal (u4126@gateway/web/irccloud.com/x-xnkndjuxwfezqhzx) left irc: Remote host closed the connection04:32
CIA-1703agaynor 07roundup * 10#998/numpypy app level module layout fix (patch attached): 04:34
CIA-17[chatting] A few things:04:34
CIA-17a) Can we please use explicit relative imports, rather than implict ones.04:34
CIA-17b) It doesn't seem correct to me to have Ap ... * 14https://bugs.pypy.org/issue99804:34
Alex_Gaynor (u1246@gateway/web/irccloud.com/x-rnkikbjuccokcbmy) joined #pypy.04:36
#pypy: mode change '+o Alex_Gaynor' by ChanServ!ChanServ@services.04:36
bfirsh (u1308@gateway/web/irccloud.com/x-ehycullrzdkcnukn) joined #pypy.04:38
symbols (44628d3d@gateway/web/freenode/ip.68.98.141.61) joined #pypy.04:41
symbolshello, I'm finally trying out pypy04:41
symbolsare differences from python considered bugs or feature requests?04:43
symbolsby python i mean specifically CPython 2.704:43
mikefc_symbols: depends.04:43
Alex_Gaynorsymbols: and some are "that's tough" :)04:44
mikefc_symbols: what's the issue?04:44
oal (u4126@gateway/web/irccloud.com/x-jtsepuebqzzjktrf) joined #pypy.04:45
symbolsits ctypes related04:45
mikefc_Alex_Gaynor: I don't have an opinion on where the numpy apptests should go. fijal might.  it's a bit weird with the applevel stuff in one place and the mixed module in another.04:45
symbolsbyref throws a type error when used with the second parameter04:45
symbolswhich is an offset04:46
Alex_Gaynorsymbols: that's probably a bug, our byref has several :/04:46
symbolscan I help fix it?04:46
Alex_Gaynorsure, the first step would be to add a test for it04:47
Alex_Gaynormost of ctypes is actually written in pure python04:47
Alex_Gaynormore than that I can't say, I haven't worked on our ctypes implementation much myself, I can try to answer any questions you have though04:47
symbolsI'm on windows at the moment04:48
Action: Alex_Gaynor knows even less about windows04:48
symbolsis that a problem for building/testing this stuff?04:48
Alex_Gaynorit shouldn't be04:48
symbolswhat's the expectation for ctypes-y code04:49
symbolsslower, faster, or equal with CPython?04:49
Alex_Gaynormixed bag the good cases should be much faster (100x) bad cases are slower :/04:49
symbolshow about generators?04:49
Alex_Gaynorfaster, though I can't remember if those improvements are in 1.7 or just hg04:50
symbolsokay04:50
EnCuKou (~encukou@ip-94-113-220-25.net.upcbroadband.cz) left irc: Ping timeout: 252 seconds04:51
symbolsso if I want to write a test, first step to clone the repo?04:51
symbolswill I have to make a new build?04:51
kenaan12alex_gaynor default 110a73918924c2 15/lib_pypy/numpypy/__init__.py: explicit relative import04:51
Alex_Gaynorno, you don't need to translate pypy to run tests04:51
stakkars_ (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy.05:02
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer05:02
Nick change: stakkars_ -> stakkars05:03
stakkars_ (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy.05:07
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer05:07
Nick change: stakkars_ -> stakkars05:07
symbolsokay, I have a cloned repo here, how do I run tests?05:07
symbolsspecifically, I'd like to locate and run any existing ctypes tests05:08
symbolsokay, I found a getting started doc that mentions running with the embedded pytest.py05:15
bbot23Success: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/150805:16
symbolsshould I run that with the interpreter that I installed (pypy 1.7 for windows)? or do I run that with standard cpython05:18
aleksi (~aleksi@85.235.191.82) joined #pypy.05:18
nettok (~quassel@190.148.241.226) joined #pypy.05:21
bbot23Success: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/85505:23
Alex_Gaynor (u1246@gateway/web/irccloud.com/x-rnkikbjuccokcbmy) left irc: Remote host closed the connection05:25
oal (u4126@gateway/web/irccloud.com/x-jtsepuebqzzjktrf) left irc: Remote host closed the connection05:25
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds05:27
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy.05:29
icrazyhack (~horieyui@113.106.212.50) left irc: Ping timeout: 255 seconds05:32
bbot23Success: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/67205:35
bfirsh (u1308@gateway/web/irccloud.com/x-ehycullrzdkcnukn) left irc: Remote host closed the connection05:36
bfirsh (u1308@gateway/web/irccloud.com/x-gywhtslgstswqkkt) joined #pypy.05:39
bbot23Success: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/119105:42
bbot23Success: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/67405:42
Alex_Gaynor (u1246@gateway/web/irccloud.com/x-ylepxbqdwnoboepd) joined #pypy.05:46
#pypy: mode change '+o Alex_Gaynor' by ChanServ!ChanServ@services.05:46
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Read error: Operation timed out05:47
_aleksi (~aleksi@85.235.191.82) joined #pypy.06:00
mcdonc (~mcdonc@cabana.palladion.com) joined #pypy.06:00
aleksi (~aleksi@85.235.191.82) left irc: Ping timeout: 240 seconds06:02
mcdonc (~mcdonc@cabana.palladion.com) left irc: Remote host closed the connection06:03
mcdonc (~mcdonc@cabana.palladion.com) joined #pypy.06:03
mcdonc (~mcdonc@cabana.palladion.com) left irc: Remote host closed the connection06:04
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) joined #pypy.06:04
_aleksi (~aleksi@85.235.191.82) left irc: Ping timeout: 244 seconds06:09
craigkerstiens (~craigkers@c-76-126-162-38.hsd1.ca.comcast.net) joined #pypy.06:09
symbols (44628d3d@gateway/web/freenode/ip.68.98.141.61) left irc: Quit: Page closed06:09
aleksi (~aleksi@85.235.191.82) joined #pypy.06:10
oal (u4126@gateway/web/irccloud.com/x-hpqxbbfhybbdtlbv) joined #pypy.06:15
whyking (~quassel@p5B3DD7D5.dip.t-dialin.net) joined #pypy.06:34
Arnar (~arnarb@li187-148.members.linode.com) left irc: Ping timeout: 240 seconds06:39
Arnar (~arnarb@li187-148.members.linode.com) joined #pypy.06:40
bbot23Success: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/78506:42
mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 244 seconds06:54
CIA-1703Twirrim 07roundup * 10#994/significantly slow joins: 06:57
CIA-17That would be it, translated using --objspace-std-withstrbuf:06:57
CIA-170.0973238945007s for the ugly join method. * 14https://bugs.pypy.org/issue99406:57
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/33407:00
mvt (~mvantelli@53530442.cm-6-4a.dynamic.ziggo.nl) joined #pypy.07:16
nettok (~quassel@190.148.241.226) left irc: Ping timeout: 244 seconds07:16
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) joined #pypy.07:16
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) left irc: Changing host07:16
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.07:16
fermianyon (~lane@c-71-229-21-197.hsd1.al.comcast.net) left irc: Ping timeout: 240 seconds07:18
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection07:23
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) joined #pypy.07:30
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) left irc: Changing host07:30
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.07:30
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection07:31
JaRoel|4d (~jaroel|4d@2001:980:7133:1:c838:5fe1:5f9c:b4de) left irc: Remote host closed the connection07:32
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) joined #pypy.07:33
tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) left irc: Changing host07:33
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.07:33
verte-wleslie (~verte@python/site-packages/verte) joined #pypy.07:33
aleksi (~aleksi@85.235.191.82) left irc: Remote host closed the connection07:39
bretthart (~bretthart@112.205.79.93) joined #pypy.07:40
bbot24Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/32407:42
aleksi (~aleksi@85.235.191.82) joined #pypy.07:43
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) joined #pypy.08:05
arigato (~arigo@adsl-89-217-237-16.adslplus.ch) joined #pypy.08:08
JaRoel (~jaroel|4d@office.fourdigits.nl) joined #pypy.08:18
zain (~textual@66.175.91.194) joined #pypy.08:28
EnCuKou (~encukou@ip-94-113-220-25.net.upcbroadband.cz) joined #pypy.08:34
bivab (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy.08:35
Trundle (~andy@p578bfdcf.dip0.t-ipconnect.de) joined #pypy.08:38
Trundle (~andy@p578bfdcf.dip0.t-ipconnect.de) left irc: Changing host08:38
Trundle (~andy@python/site-packages/trundle) joined #pypy.08:38
fijal (~fijal@196-215-5-11.dynamic.isadsl.co.za) joined #pypy.08:39
CIA-1703fijal 07roundup * 10#960/Sandboxing for external function 'pypy__float2longlong': [resolved] reclosing * 14https://bugs.pypy.org/issue96008:44
CIA-1703fijal 07roundup * 10#961/Spurious (?) mercurial error messages from sandlib.py: [resolved] reclosing * 14https://bugs.pypy.org/issue96108:44
arigatofijal: random note: you can actually reclose bugs without a message08:54
fijaloh ok08:54
fijaldidn't know :)08:54
fijalarigato: I'm having some crazy ideas about parallelizing trasnaltion08:56
fijaltranslation08:56
fijalwant to listen or not quite?08:56
arigatoyes08:58
fijalso I was thinking about a model with multiple processes08:59
fijal[together with hodgestar]08:59
fijalbut instead of serializing objects, you would put them in shared memory08:59
fijallike an mmap file08:59
fijalprobably some special GC support to make it work nicely is needed08:59
Action: Hodgestar listens too.08:59
fijalyou would still need locking and all the things that are required for threads to cooperate09:00
fijalbut that way you can distribute pieces that are distributable09:00
verte-wlesliefijal: which part of translation?09:01
fijalverte-wleslie: pretty much all of them are to some degree parallelizable09:01
arigatothere is little difference between multiple-processes-with-mmap and just regular threads09:01
fijalarigato: the main difference is we don't have a GIL09:01
fijalI'm not saying it buys us a better model :)09:02
arigatowell, no09:03
arigatothe main difference is that we *can't* have a GIL09:04
arigatoso we are forced to do everything that would be needed anyway even with threads09:04
arigatoI don't think using multiple processes buys us anything at all, when compared to multiple threads09:04
fijalbuys us a possibility to distribute it in the current world09:05
fijalbecause right now we'll not use multiple cores with multiple threads09:05
fijalbesides, what you say is not entirely true, because you only have explicitely shared objects09:05
arigatosorry if I'm confusing09:05
fijalyou don't have to share say code and classes09:05
arigatoeven worse09:06
fijalok, so what are you saying?09:06
verte-wleslietranslation is pretty stateful, though - consider how PBC descs are built up as an example that the mutation during translation is everywhere09:07
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds09:07
arigatoI'm saying that this is not a solution at all, because it's all something that would be done with multiple threads (which are the same but maybe a bit more flexible), and you have exactly the same remove-the-GIL issues09:07
verte-wleslieer, not PBC, CallFamily09:07
fijalverte-wleslie: well, C-generation is not that stateful for example09:07
fijalarigato: I don't think I understand why09:08
arigatothreads = processes that share all their memory09:08
fijalwe don't have to share all the memory09:09
fijalthat's something different09:09
fijalwe have to share enough memory not to have to serialize stuff09:09
arigatoof course with threads you don't *have* to share all the memory, you can keep some parts seen only by one thread09:09
verte-wlesliearigato: you have one additional issue - if the shared data is an object graph, you need to ensure that it is its transitive closure.09:09
fijalarigato: eh, maybe you don't understand me - do you run into "potential segfault" issues? yes09:10
fijalbut you have interpreter state that's consistent09:10
arigatoverte-wleslie: that's a problem in both models09:10
fijalso you can run it09:10
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) joined #pypy.09:10
fijaland gc state that's consistent etc.09:10
verte-wlesliearigato: it's not a problem in the threads model.09:10
fijalyou can make it a translation problem and not the interpreter problem09:10
fijalyes, you run into the "careful locking" problem09:10
verte-wlesliebecause the heap is its transitive closure, by construction.09:10
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy.09:10
arigatoverte-wleslie: yes, it is, if threads think some objects are their own but that assumption is violated09:11
fijalarigato: ah, btw, there is a cool concept about threads coming from rust09:11
fijalso rust has this concept of "write permission" to an object09:11
fijaland only one thread can have write permission09:11
fijaleveryone else can only read from that object09:11
fijaland by passing object over a channel, you pass the write bit09:12
arigatothat's not enough in case of Python, because e.g. if you read lst[-1] while another thread is doing lst.pop(), segfault09:12
arigato(not to mention dictionaries)09:12
fijalok, I think you really misunderstand my goals09:12
fijalmy goal is how to make the translation parallelizable09:13
fijalif I have to write it as workers model it's fine09:13
fijalright now I can't have multiple processes, because serializing graphs is a slow mess09:13
fijalif I could (even by hand) have a fast way of serializing graphs, I'll be good to go09:13
arigatoI think (but I may be wrong) that rewriting the whole translation process to fit into model X is a no-no09:14
fijalI'm not trying to say this is a working model for everyone to do everything09:14
tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection09:14
fijalif we ever want it to be parallel we kind of have to09:14
arigatouh?09:15
arigatoI've just argued the opposite in proposals/tm/09:15
arigatoand in my pypy-dev mails09:15
verte-wleslieyou could avoid serialising graphs, if the function boundary is how you delimit different processes.09:15
arigato(that's also why I'm very negative right now about any approach that requires major rewrites)09:16
fijalI kind of doubt the STM approach would be any good on anything that's a consumer laptop for the next few years :/09:16
verte-wlesliearigato: by the way, you mentioned GCC in those mails. do you plan on using some sort of GCC provided transaction support? I didn't see how it was relevant.09:18
arigatofeel free to, but note that my own laptop is a 2-CPUs, 4-core machine, so maybe you are wrong09:18
fijalwe would need STM to be 2x slower at most for it to make sense09:18
fijalarigato: do you think it's feasible?09:18
arigatofijal: did you read proposals/tm/?  I answer this question there09:19
fijaland besides - it's 4 core 1 CPU, but is it really 4 core or 2 x 2?09:19
fijalyes, I did09:19
Action: fijal reads again09:19
arigatoI think it's feasible but a lot of work09:19
verte-wlesliehmm, I haven't. *looks*09:19
arigatoverte-wleslie: no, GCC's libitm isn't really relevant, apart from inspiration09:19
arigatoverte-wleslie: and, the proposals/tm/ I mention is in our private repository so far09:20
verte-wleslieok09:20
arigatofijal: it's 2 x 209:20
fijalwhere 2 comes from hyperthreading?09:21
arigatoyes09:21
fijalso that's 2 core really09:21
fijalanyway09:21
fijal4 core laptops are getting kinda common09:21
arigatoyes09:21
arigatoI'm not saying that TM is the ultimate solution09:22
fijalok09:22
fijalwe don't have anything better in mind IMO :)09:22
arigatobut that it may be better than retrofitting existing large programs09:22
arigatoor even avoiding issues when designing new programs09:22
arigatowe'll see09:25
Action: arigato -> ski09:25
arigato (~arigo@adsl-89-217-237-16.adslplus.ch) left irc: Quit: See you09:26
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy.09:37
CIA-1703Garen 07roundup * 10#900/Using cProfile on Windows generates negative tottime values: 09:37
CIA-17The problem is still present as of 409a8b279f54 from the 1/10 nightly.09:37
CIA-17I do see the affinity is set correctly (pypy.exe only shows CORE-0 act ... * 14https://bugs.pypy.org/issue90009:37
verte-wleslietranslation aspects implemented largely in C seems not-pypy-ish to me; I wonder how much backend support is really necessary for STM09:42
fijalverte-wleslie: how would that be a translation aspect?09:45
verte-wlesliein the same manner that GC or jit is - you're changing the meaning of a number of instructions to call additional functionality on top of more 'raw' instructions09:47
fijalthat would not be C, why you think it'll?09:48
G2P (~G2P@fw-asn1.ornis.com) joined #pypy.09:49
verte-wlesliea big chunk of the transactional behaviour code currently is, https://bitbucket.org/pypy/pypy/src/1b1707eedf87/pypy/translator/stm/src_stm/et.c09:50
fijalthat's different09:51
fijalanyway, I'm not up for discussion09:51
verte-wleslieok09:51
zain (~textual@66.175.91.194) left irc: Quit: Computer has gone to sleep.09:57
mapis (c332cbfe@gateway/web/freenode/ip.195.50.203.254) joined #pypy.10:04
Hodgestarfijal: Is there a canonical way for code (e.g. setup.py) to check whether it's running under pypy?10:13
timotimotry importing __pypy__?10:14
timotimothere's also something in sys10:14
timotimo    subversion = ('PyPy', '', '')10:15
timotimothat's in sys10:15
mapisHei, I'm writing a little post about PyPy and it's speed. And well I use fibonacci sequence for this. And PyPy is coming up with great results. Now I found this fibonacci demo in your code base but I can not figure out how it works actually? https://github.com/pypy/pypy/blob/master/demo/fibonacci.py10:16
verte-wlesliemapis: this is a demo of the thunk object space.10:17
Hodgestartimotimo: Thanks. Maybe hasattr(sys, 'pypy_version_info')?10:17
pedronis (~pedronis@73-53.195-178.cust.bluewin.ch) joined #pypy.10:17
verte-wlesliemapis: it's really just a demo, I wouldn't use this one as a performance test.10:18
mapisverte-wleslie: so a thunk is for something like lazy loading I read and it has nothing to do with performance :) well sorry about this one10:18
mapisI guess this is the fastest recursive fibonacci you can do on PyPy http://dpaste.com/685862/ ?10:19
verte-wlesliemapis: it's for lazy evaluation - similar to the way that generators are lazier than lists.10:19
mapisBesides adding cores or anything else10:19
verte-wlesliewell, at 36 iterations you're probably not going to hit the jit for the outer loop10:20
verte-wleslieI guess there's not much you can do about that, though, fib(36) is big enough10:21
mapisverte-wleslie: thank you for this clarification. I have been developing for Django for a long time and never realized PyPy really is fast. Well and you have great things going on as well with numpy being implemented. I think I'm actually going to donate to help. This is a project Python really needs.10:21
ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) joined #pypy.10:22
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) left irc: Ping timeout: 240 seconds10:22
verte-wleslieexcellent. but yeah, in general, the most obvious way to write the code is the way to make it run the fastest on pypy.10:24
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) joined #pypy.10:24
lizardo (~lizardo@189.2.128.130) joined #pypy.10:27
verte-wleslieI haven't had opportunity to look at the method jit, which is the only one that could work here10:28
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) left irc: Ping timeout: 252 seconds10:28
lucianmapis: as you can imagine, recursive fib isn't exactly representative for production python code10:30
mapisyes I know that - I will try something more realistic in the future but it still proves a point10:30
ThomasWaldmannsome stuff will be slower than expected and/or taking rather long until it gets up to speed10:31
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Quit: Leaving10:31
lucianmapis: especially since, as verte-wleslie said, the tracing jit won't end up being involved at all10:33
mapishmm, thats true - could you suggest a simple test that would use JIT as it should be used?10:33
mikefcmapis: https://bugs.pypy.org/file481/smallpt.py10:34
lucianmapis: a long enough loop10:34
mikefci quite like that example. 16minutes on cpython. 1 minute on pypy.10:34
mikefcand it makes a pretty picture :)10:34
mikefc(as all good pypy code should)10:34
lucianmapis: i guess the simplest change would be to write fib iteratively10:34
lucianbut again, that isn't so representative10:34
lucianmikefc's example is much better10:34
lucianit's also awesome10:35
mapisI will look at it and if possible apply it. Even the fibonacci gets 26 s on CPython and 4 s on PyPy - so it's still balzing ... But I'll look at the smallpt example / somehow it's not loading for me10:36
mikefcit's on the bug tracker. which has a untrusted https cert.10:36
mikefcyou'll have to load it in a browser 10:36
mapisYes I accepted that one10:36
mapisit just hangs10:36
lucianmikefc: i get an exception on pypy1.7, btw10:36
mikefcsmallpy 640 480 410:37
mapisgot it10:37
lucianmikefc: yes, i was just getting there :)10:37
mikefci've run it on 1.6, 1.7 and nightlies10:37
mapisYees - this one is long. How does it stack up the original C implementation?10:38
witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy.10:41
witulski (stupsi@fwstups.cs.uni-duesseldorf.de) left #pypy.10:41
squiddy (~squiddy@g224197029.adsl.alicedsl.de) joined #pypy.10:41
mikefci compiled the c version. but get BusErrors10:43
mikefcwhen running10:43
mapisok I'll try it also :)10:43
mapisthis is a very nice example10:44
mikefcbut a projected time of about 14 seconds. compared to 1min for pypy10:44
mikefcthe code may benefit from some tweaking.10:44
mapiswell thats not bad at all10:44
mikefcreplacing vector class with numpy perhaps.10:44
mapisYes I saw the first post about numpy today10:45
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Quit: fzzzy10:45
whyking (~quassel@p5B3DD7D5.dip.t-dialin.net) left irc: Ping timeout: 252 seconds10:46
anish_ (anish@nat/redhat/x-sehmgrtrefmvknse) left irc: Quit: Leaving10:47
Nick change: verte-wleslie -> oblong11:13
Nick change: oblong -> verte11:13
Nick change: verte -> verte-wleslie11:13
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) joined #pypy.11:20
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer11:26
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy.11:26
mapismikefc: can I use your code smallpt for my testing and do a post about it. and could I / should I reference you as the author of it?11:29
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) joined #pypy.11:40
ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) got netsplit.11:43
verte-wleslie (~verte@python/site-packages/verte) got netsplit.11:43
asksol (asksol@2a01:7e00::f03c:91ff:fedf:af30) got netsplit.11:43
rguillebert (~rguillebe@2a01:e34:eea7:c690:21f:c6ff:fe12:4dee) got netsplit.11:43
ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) returned to #pypy.11:47
verte-wleslie (~verte@python/site-packages/verte) returned to #pypy.11:47
asksol (asksol@2a01:7e00::f03c:91ff:fedf:af30) returned to #pypy.11:47
rguillebert (~rguillebe@2a01:e34:eea7:c690:21f:c6ff:fe12:4dee) returned to #pypy.11:47
mfoord (~anonymous@87-194-212-65.bethere.co.uk) joined #pypy.12:00
mfoord (~anonymous@87-194-212-65.bethere.co.uk) left irc: Changing host12:00
mfoord (~anonymous@python/psf/voidspace) joined #pypy.12:00
nedbat (~nedbat@python/psf/nedbat) joined #pypy.12:02
mimi (~mimi@97-88-28-179.dhcp.roch.mn.charter.com) joined #pypy.12:12
[Arfreve1] (~Arfrever@minotaur.apache.org) joined #pypy.12:13
[Arfrever] (~Arfrever@apache/committer/Arfrever) left irc: Ping timeout: 244 seconds12:15
nshepperd (~asdfg@119.12.146.160) joined #pypy.12:16
mapisI hope I got this right: http://www.konstruktor.ee/blog/python-giving-haskell-a-run-for-its-money ... this is a great thing for python and I realized this just today.12:17
mimi (~mimi@97-88-28-179.dhcp.roch.mn.charter.com) left irc: Quit: Leaving12:18
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Ping timeout: 252 seconds12:21
stakkars_ (~tismer@i59F72A11.versanet.de) joined #pypy.12:23
asmeurer__ (~asmeurer@c-174-56-21-245.hsd1.nm.comcast.net) joined #pypy.12:25
verte-wlesliemapis: pypy is an implementation of python, not of cpython12:27
mapissorry12:27
mapisI'll fix it12:27
mapisfixed12:28
verte-wlesliealso possibly 'if n <= 1:'12:28
verte-wleslieand of course the cases where python is faster than C are documented, so 'never faster than "compiled languages"' is only sort-of true12:30
lesshaste (~lesshaste@87-194-206-189.bethere.co.uk) joined #pypy.12:33
mapisThats a good point - makes it nicer. Speed wise probably has no difference but made it look nicer anyway.12:33
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) joined #pypy.12:34
verte-wlesliehave you compared iterative fib implementations on haskell vs pypy ?12:34
mapisI was thinking about the wording of this - I will try to update it to a more correct wording.12:34
mapisI have not compared iterative yet - they were advised here before also and would probably benefit more from the PyPy speedup I know. But I'll try that one on another post12:36
lesshastefijal: hi12:37
jellmapis: such tests are really funy12:41
lesshaste (~lesshaste@87-194-206-189.bethere.co.uk) left irc: Quit: Leaving12:41
jellmapis: in taht fibonacci test - try some bigger numbers than 36, and in python try xrange, not range12:41
jellfunny*12:42
mapisindeed they are - thats not the real point actually ... the point is that PyPy is fast end I think the Python community should take notice of this. But I will try larger numbers with xrange - I tryed it before (without xrange) but the results did not change12:42
verte-wlesliejell: much bigger and you'd be waiting days.12:42
stakkars_ (~tismer@i59F72A11.versanet.de) left irc: Quit: hasta la vista12:43
verte-wleslieand yes, the xrange/range distinction means little on pypy12:43
verte-wleslieI think12:43
verte-wleslieit's never made much of a difference on ranges of only 36 anyway12:43
mapiswow it does not - why does xrange make such a big difference?12:43
mapiswith xrange I get 2,062 s with PyPy12:43
mapisthis is great12:44
mapisgreate i mean12:44
jellverte-wleslie: in pypy, true, but it's good habit to use xrange in py2.x12:44
verte-wleslieyou're sure that's the change that makes the difference?12:45
jellin such small range - this difference should not be as big as this...12:46
jellstrange...12:46
mapisupdated it with xrange results - that seems imposible yes but true12:46
verte-wlesliethere's no way it spent half that time in the iteration itself - I mean, how long does fib(35) take?12:47
jimbaker (~jbaker@canonical/jimbaker) left irc: Ping timeout: 240 seconds12:47
verte-wleslieit's got to be at least half of the runtime.12:48
mapissomething is off12:48
mapisI get it now without xrange also - how can this be12:48
mapistests are stupid you are right - this is crapp12:48
mapisthey are how to say - incomparable?12:49
jellthis is very specifical case, so in other, bigger programs pypy can be faster than ghc12:50
verte-wleslieyou've done all the usual setup for a benchmarking machine - eg, disabled adaptive CPU power management?12:51
jellpower managment? you mean frequency scaling?12:51
nshepperdmapis: pypy does better than unoptimised ghc in my silly iterating test: http://paste.pocoo.org/show/533316/12:52
verte-wleslieyes12:52
mapisI figured it out: it's all good. Actually what made the difference is verte-wleslies suggestion of having if n <= 1: ... this actually makes a 2 s difference12:53
nshepperdmight be better to try it on a real benchmarking machine, though12:53
mapisnshepperd: yes pypy is better acording to my updated tests also12:53
mapisalso12:53
nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds12:54
jellnshepperd: try that n <= 112:54
jellone test less in asm12:56
mapisI updated the table also so now PyPy comes before unoptimized GHC - thats just awesome12:56
lucianhttp://buildbot.pypy.org/nightly/trunk redirects to http://localhost:8099/nightly/trunk/12:57
jellshould be proxy, not redir12:57
jellmapis: also you should give a try to nightly pypy build - it's aroun 30% faster than 1.713:00
jelland in your table - haskle optimized should have 1x measurement ;)13:01
jellhaskel*13:01
timotimohaskell :)13:02
jell:)13:02
stakkars_ (~tismer@i59F72A11.versanet.de) joined #pypy.13:03
mapistrue: fixed .... will probably try the nighty build next time as haskells compiler is not even the newest there - thats because my homebrew was nut updated which I used to compile it with13:03
gutworth (~benjamin@128.36.84.221) joined #pypy.13:05
stakkars_ (~tismer@i59F72A11.versanet.de) left irc: Client Quit13:06
kenaan12l.diekmann set-strategies 11764907052fed 15/pypy/objspace/std/: added listview_str/int for setobjects to later create lists from sets without wrapping/unwrapping the e...13:09
kenaan12l.diekmann set-strategies 1195d8ecd1711f 15/pypy/objspace/std/: (cfbolz, l.diekmann): restructure some code: the speed hack in FastListIterator is no longer there, so ...13:10
kenaan12l.diekmann set-strategies 1129acb5e48ac9 15/pypy/objspace/std/: added fastpath for initialization of lists with iterables using int- or stringstrategy13:10
stakkars_ (~tismer@i59F72A11.versanet.de) joined #pypy.13:12
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) left irc: Quit: Computer has gone to sleep.13:20
mitsuhiko (~mitsuhiko@ubuntu/member/mitsuhiko) left irc: Ping timeout: 252 seconds13:21
mitsuhiko (~mitsuhiko@ubuntu/member/mitsuhiko) joined #pypy.13:23
kenaan12l.diekmann set-strategies 11b8be45d7d460 15/pypy/objspace/std/: (cfbolz, l.diekmann) added fastpath for dict.fromkeys with iterable using stringstrategy13:24
kenaan12hager ppc-jit-backend 117ccc3bb51335 15/pypy/jit/backend/ppc/ppcgen/opassembler.py: use temporary scratch register in emit_getarrayitem_gc and emit_setarrayitem_gc13:25
stakkars_ (~tismer@i59F72A11.versanet.de) left irc: Quit: stakkars_13:30
aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy.13:32
stakkars_ (~tismer@i59F72A11.versanet.de) joined #pypy.13:32
verte-wleslie (~verte@python/site-packages/verte) left irc: Quit: ~~~ Crash in JIT!13:44
kenaan12l.diekmann set-strategies 11b1a065c4225d 15/pypy/objspace/std/: (cfbolz, l.diekmann) implemented listview_str on dicts13:44
kenaan12l.diekmann set-strategies 1119aec63fdbfe 15/pypy/objspace/std/: (cfbolz, l.diekmann): implemented listview_int for dicts13:44
verte-wleslie (~verte@python/site-packages/verte) joined #pypy.13:45
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Ping timeout: 252 seconds13:46
voidspace (~voidspace@python/psf/voidspace) left irc: Quit: Uhm... gotta go13:49
Nick change: mfoord -> voidspace13:49
kenaan12l.diekmann set-strategies 11243af83be4d9 15/pypy/objspace/std/test/test_liststrategies.py: added listview tests for listobject13:50
kenaan12l.diekmann set-strategies 1144c5a3419379 15/pypy/objspace/std/: (cfbolz, l.diekmann): added listview_str for strings13:56
kenaan12l.diekmann set-strategies 1128d2d9a61e5e 15/: merged with default13:57
verte-wleslie (~verte@python/site-packages/verte) left irc: Quit: ~~~ Crash in JIT!14:05
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) joined #pypy.14:05
kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) left irc: Quit: Computer has gone to sleep.14:37
fprimex (~fprimex@brent-macbook.sc.fsu.edu) joined #pypy.14:37
whitelynx|work (~whitelynx@63.241.75.144) joined #pypy.14:48
jimbaker (jbaker@conference/canonical-sprint/x-heyctwcesllvjdnk) joined #pypy.14:49
jimbaker (jbaker@conference/canonical-sprint/x-heyctwcesllvjdnk) left irc: Changing host14:49
jimbaker (jbaker@canonical/jimbaker) joined #pypy.14:49
kenaan12l.diekmann set-strategies 1137da0bb1707e 15/pypy/objspace/std/test/test_liststrategies.py: fixed tests: stringobject has now a listview_str method, too14:55
kenaan12l.diekmann set-strategies 11a26b3141a0d4 15/pypy/objspace/std/: (cfbolz, l.diekmann): added fastpath for dict.keys if keys are strings14:55
mat^2 (~mathias@212.130.113.35) joined #pypy.15:04
kenaan12l.diekmann set-strategies 11aae0411e2217 15/pypy/objspace/std/test/test_liststrategies.py: fixed test: show that listview_str returns None for other objects15:07
fijalhi15:28
craigkerstiens (~craigkers@c-76-126-162-38.hsd1.ca.comcast.net) left irc: Quit: craigkerstiens15:33
fermianyon (~lane@c-71-229-21-197.hsd1.al.comcast.net) joined #pypy.15:34
fijalmapis: fibonacci is a really horrible benchmark15:36
fijalmapis: especially the recursive one15:37
fermianyon (~lane@c-71-229-21-197.hsd1.al.comcast.net) left irc: Ping timeout: 240 seconds15:43
arigato (~arigo@adsl-89-217-237-16.adslplus.ch) joined #pypy.15:45
whyking (~quassel@p50848714.dip0.t-ipconnect.de) joined #pypy.15:51
kenaan12l.diekmann set-strategies 117578dd73ccf8 15/pypy/objspace/std/: fixes15:53
fijalarigato: how was skiiing?15:54
arigatostill tired :-)15:54
arigatobut great15:54
icrazyhack (~horieyui@114.119.1.1) joined #pypy.15:54
voidspace (~anonymous@python/psf/voidspace) left irc: Quit: voidspace16:01
fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy.16:07
CIA-1703fijal 07roundup * 10#900/Using cProfile on Windows generates negative tottime values: 16:08
CIA-17QueryPerformanceCounter is definitely not the best. Right now we directly embed16:08
CIA-17RTLD instruction in the assembler, which is much faster than hav ... * 14https://bugs.pypy.org/issue90016:08
lesshaste (~lesshaste@ikaris.cs.bris.ac.uk) joined #pypy.16:14
lesshastehi all16:16
fijallesshaste: hi16:16
lesshastejust a quick note about numpypy... as someone who wrote a small script this morning :)16:16
lesshastemy script has its slow part functions that don't use numpy at all16:17
lesshasteis it plausible to pypy just certain functions?16:17
lesshastethis is a slightly silly question I realise16:17
ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) left irc: Quit: Leaving...16:17
lesshasteso perhaps I will change it to...16:18
lesshastefijal, how is it goin?16:18
lesshastegoing16:18
fijalgood16:18
fijallesshaste: why don't you want to use everything else under pypy?16:19
lesshastefijal, I do.. I have just assumed that anything that needs scipy will fail16:19
aleksi (~aleksi@85.235.191.82) left irc: Ping timeout: 240 seconds16:19
lesshastefijal, I don't fully follow your latest blog post. slow 2 python seems to be very fast compared to the C implementations16:20
fijaltrue :)16:20
lesshastefijal, "slow 2 python" 14ms16:20
lesshastefijal, what is going on there? The python versus C comparison is confusing16:21
fijalwell apparently it's not slow :)16:21
lesshasteis it secretly pypy?16:21
fijalwhy is it confusing?16:21
fijalhow is it secretly pypy?16:21
fijalit's openly pypy no?16:21
lesshasteno!16:21
lesshastethe table below says pypy16:21
lesshastethis table doesn;t16:21
lesshasteit says "A straightforward version of those in Python "16:21
lesshaste[..]16:21
fijalweeeel16:21
fijalpython is a language16:22
lesshasteit needs to say these are pypy timings16:22
fijalcpython is an implementation16:22
fijalit does not say it's cpython either16:22
lesshasteright but below it does say pypy16:22
lesshasteso it's fair to assume the first table is 50% likely to be cpython :)16:22
exarkunyea, change the pypys to pythons16:22
exarkunPython should mean PyPy by default :)16:22
lesshasteI suggest more explicit boasting :)16:22
fijallesshaste: it does say pypy in the analysis below16:22
fijalyou should read the anlysis not only tables sorry :)16:23
fijallesshaste: details are a bit buried but that's deliberate16:23
whyking (~quassel@p50848714.dip0.t-ipconnect.de) left irc: Ping timeout: 268 seconds16:23
fijalthis is work-in-progress, we're only interested in people who read the entire thing16:23
lucianfijal: lesshaste is right that it's not immediately obvious that bit means pypy16:24
arigatofwiw, I agree with lesshaste and lucian16:24
lesshastethe explanation below also quotes a cpython number. It would be great to have that in the table16:24
Action: lesshaste rarely agrees with himself :)16:24
fijallesshaste: no, because the cpython number is far less reliable16:25
lesshasteok16:25
fijalbut maybe I should say above16:25
fijalarigato: ok ok16:25
arigato:-)16:25
fijalarigato: I'll clarify a bit16:25
arigatoit's enough to start the blog post with python16:25
arigatosorry16:25
fijal Table below compares running PyPy against C16:25
fijaldoes that clarify enough?16:26
arigatoyes16:26
lesshastecool16:26
arigatoyou can even point in the direction you argued for above16:26
arigatoand say16:26
arigato"This table compares Python (run with PyPy) against C"16:26
arigatoor even16:27
arigato"This table compares Python (run with PyPy) against C (with GCC 4.5.5)"16:27
lesshastewhy is the number of iterations different for the inline versions?16:27
fijaldone16:27
arigato:-)16:27
fijallesshaste: it's also described isn't it?16:28
fijaldid you read the entire blog?16:28
fijalit's not :(16:28
fijalit was supposed to be16:28
lesshasteI did read it16:28
lesshasteah ok16:28
arigato(sorry, gcc 4.4.5)16:29
lucianfijal: your suspicious nature is suspicious :)16:29
lesshastesorry to carry on with this but ... "An important thing to notice is the data dependency of the inline version causes a huge slowdown for the C versions. This is not a severe disadvantage for us though -- the brain-dead Python version takes longer and PyPy is not able to take advantage of the knowledge that the data is independent. The results are in the same ballpark as the C versions -- 15% - 170% slower, but the algorithm one chooses matters m16:30
lesshasteore than the language."16:30
fijalyes?16:30
lesshastewhat exactly is 15%-170% slower than what? It looks from that paragraph that it is sating the inline python version is 15%-170% slower than some C version16:31
lesshastebut that isn't in the table16:31
fijalpypy is 15-170% slower than C16:31
fijaldepending what you compare16:31
dmalcolm (david@nat/redhat/x-pimpfrknvhqeturs) joined #pypy.16:32
fijaldmalcolm: hi16:32
dmalcolmhi16:32
lesshasteok.. I see what you are saying. You compare inline python only with inline C16:32
lesshasteso we just need an explanation of what the inline version is doing :)16:33
fijaldmalcolm: thanks for bringing sanity to hash discussions16:33
dmalcolmI did?16:33
dmalcolmoh, arguing for conservatism?16:34
fijalthe option proposal is by far the best one I've seen16:34
fijallesshaste: it could have been written better16:36
fijallesshaste: where were you when I asked for reviews :)16:36
fijalbut I won't majorly revamp it now16:36
lesshaste:)16:36
fijalmikefc: ping16:36
Nisstyre (~yours@c-208-90-102-250.netflash.net) left irc: Ping timeout: 240 seconds16:42
kenaan12fijal better-jit-hooks 119892289121d2 15/: merge default16:44
kenaan12fijal better-jit-hooks 11b53f0ac39e01 15/pypy/: be secure against not having any jit_merge_points found16:44
Alex_Gaynorfijal: how about instead of 'UNKOWN' just using None?16:44
fijalshouldn't that be string?16:45
voidspace (~anonymous@87-194-212-65.bethere.co.uk) joined #pypy.16:45
voidspace (~anonymous@87-194-212-65.bethere.co.uk) left irc: Changing host16:45
voidspace (~anonymous@python/psf/voidspace) joined #pypy.16:45
fijalit's a description16:45
fijalbut ok16:45
Alex_Gaynorit's a terrble API to just have that string there16:45
fijalit's not like you have only strings16:45
fijalyou also have tuples16:45
fijaland I guess 'UNKNOWN' and None are as descriptive16:46
kenaan12fijal better-jit-hooks 11d5efe4cff53d 15/pypy/module/pypyjit/interp_resop.py: use None here16:46
Alex_Gaynorexcept it's possible to interact with unkown as if it's a real value, and not realize it16:46
fijalI heavily doubt someone would ever interact with this value other than print it16:49
fijalAlex_Gaynor: I'll fix tests and merge it16:51
fijalmaybe do some numpy work16:51
fijalAlex_Gaynor: feel like giving directions what would be cool?16:51
fijalmaybe docs?16:51
Alex_Gaynorfijal: in numpy?  review and work on the axis ops would be cool16:52
Alex_Gaynorfijal: if you could import numpy.testing that'd be very cool I guess16:52
Alex_Gaynorthough we'll probably have like 100000x tests failing ATM16:52
fijalmikefc promised he'll send me a mail with dependencies16:53
fijalAlex_Gaynor: starting with the fact that we have no 'numpy' module16:53
fijalAlex_Gaynor: tutorial btw?16:53
Alex_Gaynorwell, you know what I meant16:53
Alex_Gaynorfijal: yes, we should start, I can write an outline this weekend and then we can write split up writing slides for it.  sound good?16:53
fijalok16:53
Alex_Gaynorfijal: also, I'll ask jesse how we can contact teh people who signed up to ask for code samples16:53
fijalI have some ideas16:54
fijalif you want to brainstorm16:54
Alex_Gaynorfijal: also, we need to decide, are we going to demo tracebin or current jitviewer?16:54
fijaldepends16:54
JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Remote host closed the connection16:54
Nisstyre (~yours@c-208-90-102-250.netflash.net) joined #pypy.16:55
fijalarigato: ping?16:57
Alex_Gaynorfijal: I'm interested in any ideas you have16:57
fijalarigato: http://paste.pocoo.org/show/533403/16:57
fijalarigato: any ideas what are 00s?16:57
Rhy0lite (dje@nat/ibm/x-zipjjfrpjpmypzvj) joined #pypy.16:59
arigatofiajl: pong17:01
arigatofijal: yes, that's the continuation of the previous line17:01
arigatothe number takes 8 bytes17:01
fijalarigato: so in this backend test assembler generated depends on the amount of tests run17:01
fijalL.17:01
fijal:/17:01
fijalso there is no automatic way to say "give me the number of instructions"?17:02
arigatothat's objdump doing too much formatting for you17:02
arigatoyou need to reverse it, e.g. by ignoring lines without an instruction17:03
arigato(which means, lines with less than 2 '\t')17:03
fijalok17:03
G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving.17:04
jimbaker (jbaker@canonical/jimbaker) left irc: Ping timeout: 252 seconds17:04
kenaan12fijal better-jit-hooks 11d1f73a4788a2 15/pypy/jit/backend/: fix test runner17:15
Trundle (~andy@python/site-packages/trundle) left irc: Remote host closed the connection17:16
fijalpffff17:17
fijalarigato: so test_zrpy_gc moves _descr up to AbstractResOperation17:17
fijalbut not translation I think :/17:17
arigatoeh17:17
craigkerstiens (~craigkers@50-78-100-242-static.hfc.comcastbusiness.net) joined #pypy.17:18
arigatothat's strange17:18
Alex_Gaynorfijal: add more asserts17:18
Alex_Gaynorit solves all problems17:18
fijalarigato: maybe even translation17:18
fijalI didn't get there in test fixes :)17:18
fijalanyway17:18
fijalis it fine to have descr on basic resop or is it not?17:19
arigatopreferrably not17:19
fijalbecause there was nothing preventing it from happening :/17:19
arigatolook around at where it occurs, usually the error message is relatively direct17:19
arigato(relatively)17:19
fijalyes17:20
fijalsomeone is doing op._descr = None17:20
fijalinstead of op.setdescr(None)17:20
arigatoah17:20
arigatobad someone17:20
lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Remote host closed the connection17:20
fijalpyjitpl.py17:20
fijalrecord_loop_or_bridge17:20
fijalhardly a random someone17:20
arigatothat's me I fear17:21
arigatopom pom pom17:21
Alex_Gaynorbad arigato, apparently :)17:22
kenaan12fijal better-jit-hooks 11267e8180a342 15/pypy/jit/metainterp/compile.py: fix a translation problem17:22
arigatofijal: there is another one a few lines apart17:23
arigatoand you should keep the comment17:23
fijaldid I kill the comment?17:23
arigatoyes17:23
kenaan12fijal better-jit-hooks 116d90b9e1e3ab 15/pypy/jit/metainterp/compile.py: one more place17:24
fijalwasn't intentional17:24
arigato:-)17:24
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer17:24
Nick change: stakkars_ -> stakkars17:24
fijalarigato: can you think about adding better support for detecting already compiled bridges?17:24
arigatoyes17:24
fijalit should work now, but a bit by chance (again)17:24
stakkars_ (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy.17:24
arigatoyes, I see17:25
kenaan12fijal better-jit-hooks 117d78bb3e99e9 15/pypy/jit/metainterp/compile.py: oops bring back the comment17:26
arigatoshould I try to write a test and do fixes in better-jit-hooks?  or just in default?17:26
fijalno, better-jit-hooks17:26
fijalbecause it would be a mess to merge17:26
arigatook17:27
fijalI'm fine with delaying the merge for that btw17:27
lesshaste (~lesshaste@ikaris.cs.bris.ac.uk) left irc: Quit: Leaving17:27
fijalok good17:27
fijalI should have fixed all the tests17:27
fijalarigato: should I kick buildbots now or wait for your changes?17:27
arigatodunno :-)17:27
arigatoI should do the changes soonish, like in the next 3 hours17:28
arigatox86/test/test_basic fails17:28
arigatobah :-(17:28
fijalarigato: uh?17:30
fijalarigato: on the branch?17:30
arigatoyes, you just broke it17:30
`fox` (~fox@host130-111-dynamic.20-79-r.retail.telecomitalia.it) joined #pypy.17:30
fijalpffff17:30
fijalok17:30
Last message repeated 1 time(s).17:30
arigatoyes :-(17:30
arigatoadd a different interface, like cleardescr()?17:30
fijalI can just add an assert?17:31
arigatowell it's a bit of a mess17:31
fijalor should I make this an official interface?17:31
fijalok17:31
fijalwhy it's a mess btw?17:31
arigatoyou need setdescr(None) to still work17:31
fijalat this point?17:31
arigatobut you don't have 'self' in the "def setdescr()" patched in17:31
arigatoyes17:31
arigatootherwise there is no point at all17:31
fijalno point  at all of what?17:32
fijalI can do17:32
arigatoof "op.setdescr(None)"17:32
fijalassert isinstance(op, ResOpWithDescr)17:32
arigatoif it doesn't work, the tests like test_memmgr will fail17:32
fijalop._descr = None17:32
fijalno?17:32
arigatoah, you can, but better done in its own interface17:32
fijalok17:32
arigatoso that only resoperation.py has to worry about ResOpWithDescr17:32
[Arfreve1] (~Arfrever@minotaur.apache.org) left irc: Quit: leaving17:33
Nisstyre (~yours@c-208-90-102-250.netflash.net) left irc: Ping timeout: 240 seconds17:33
fijalhttp://paste.pocoo.org/show/533418/17:34
fijallike this?17:34
arigatoyes, looks nice17:34
stakkars_ (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer17:35
kenaan12fijal better-jit-hooks 114dd1794b695d 15/pypy/jit/metainterp/: use a better interface to make tests pass17:35
stakkars_ (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy.17:35
[Arfrever] (~Arfrever@apache/committer/Arfrever) joined #pypy.17:35
Nisstyre (~yours@c-208-90-102-250.netflash.net) joined #pypy.17:35
arigatotest_runner.TestX86.test_compile_asmlen fails with KeyError: 'x86_32' here on linux3217:38
craigkerstiens (~craigkers@50-78-100-242-static.hfc.comcastbusiness.net) left irc: Quit: craigkerstiens17:39
voidspace (~anonymous@python/psf/voidspace) left irc: Quit: voidspace17:39
voidspace (~anonymous@python/psf/voidspace) joined #pypy.17:40
fijalKeyError in....?17:40
fijalmachine_code_dump?17:40
arigatoyes17:40
fijalwell, maybe add there the case17:41
arigatoobscure, but ok, let me do it17:41
fijalwell17:41
fijalmaybe we should reuse the dictionary from cpu detection?17:41
fijalI've seen one more complete somewhere :)17:42
`fox` (~fox@host130-111-dynamic.20-79-r.retail.telecomitalia.it) left irc: Ping timeout: 248 seconds17:42
arigatoyes, but it's based on something else17:42
fijalffff17:42
fijalyes :/17:42
fijalI suppose just add an entry and forget indeed17:42
arigatoyes17:42
fermianyon (~lane@wan-217-185.usouthal.edu) joined #pypy.17:43
arigatowell it fails anyway17:43
mapis (c332cbfe@gateway/web/freenode/ip.195.50.203.254) left irc: 17:45
arigatothis is the code I get: http://paste.pocoo.org/show/533425/17:45
fijal_ (~fijal@196-215-5-11.dynamic.isadsl.co.za) joined #pypy.17:46
fijal_my computer just turned off :/17:46
fijal (~fijal@196-215-5-11.dynamic.isadsl.co.za) left irc: Disconnected by services17:46
arigatoagain..?17:46
Nick change: fijal_ -> fijal17:46
fijalyes :/17:46
arigatoso I was saying: http://paste.pocoo.org/show/533425/17:47
arigatothat's what I get with test_compile_asmlen17:48
bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Read error: Operation timed out17:49
fijal"nop"?17:50
fijaland why is the regalloc not using registers???17:50
fijalthis is all very confusing17:50
stakkars (~tismer@i59F72A11.versanet.de) left irc: Quit: schnarch17:50
Nick change: stakkars_ -> stakkars17:50
arigatoah, NOP comes from flush_loop()17:51
fijal64 bit version is drastically more efficient17:51
fijalwhy does it spill a register?17:51
arigatoI know, that doesn't make sense17:52
fijalI agree that I would like some other test to fail17:52
fijalrather than this one17:52
fijalm y fault I suppose17:53
fijalmaybe we should start writing some tests "is this assembler efficiently compiled" or so17:53
arigato:-/17:53
fijalarigato: depending on the amount of yakshaving you're willing to do, you can just put an "if sys.maxint == " in the class setup 17:54
fijaland check against the arbitrary list of ops17:54
fijalor something17:55
arigatoshave shave shave17:55
arigatofor a bit17:55
fijalbut arguably this assembler i heavy nonsense17:55
arigatonote that test_compile_asmlen generates a slightly bogus sequence of instructions17:59
arigatoguard_true() is supposed to be only used on values that are 0 or 117:59
fijalbecause it has no label?17:59
fijaloh ok17:59
fijalfeel free to fix :)17:59
rekamso (~textual@67.51.82.66) joined #pypy.17:59
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Ping timeout: 252 seconds18:00
dmalcolm (david@nat/redhat/x-pimpfrknvhqeturs) left irc: Read error: Connection reset by peer18:01
dmalcolm (david@nat/redhat/x-kbkahqvpbgiyomza) joined #pypy.18:01
arigatoah no18:02
arigatosorry, it's "obvious"18:02
arigatoon x86-64, the variable is in edi, because that's where the first argument to a call goes18:02
arigatoon x86-32, the variable is instead in [EBP+8]18:03
arigatowe don't do more clever register analysis18:03
fijalhm :/18:03
fijalok18:03
fijalwell, then just accept it?18:03
Action: arigato fixes by adding a line before the label()18:03
fijalis label loading stuff into registers?18:04
arigatoyes18:04
arigatosorry18:04
arigatono18:04
arigato(how can I mean "no" and type "yes"? :-/18:04
JaRoel|4d (~jaroel|4d@095-096-229-181.static.chello.nl) joined #pypy.18:04
arigatohum18:05
fijalI would blame high energy particles18:05
arigato:-)18:05
Trundle (~andy@82.113.98.164) joined #pypy.18:05
Trundle (~andy@82.113.98.164) left irc: Changing host18:05
Trundle (~andy@python/site-packages/trundle) joined #pypy.18:05
etrepum (~bob@75-101-96-144.dsl.static.sonic.net) left irc: Quit: etrepum18:05
arigatohow can I know where in the raw dump of assembler bytes is the label?18:05
fijalon x86 it's written in a descr18:06
fijaldescr has target token which has an address18:06
arigatook, but no official exported-at-applevel solution?18:06
fijalapplevel?18:06
fijalno, not yet18:06
arigatook18:06
fijalI did not add descrs exposure yet18:07
fijal(at all)18:07
arigatowhy is there a MOV in the bridge?18:09
arigatoah bah18:09
fijalyes :)18:09
arigatoit's part of the following JMP on x86-6418:09
kenaan12arigo better-jit-hooks 117435bc0b9fa2 15/pypy/jit/backend/x86/tool/viewcode.py: Add an option to recognize "x86_32" too.18:12
kenaan12arigo better-jit-hooks 1124de52d56e68 15/pypy/jit/backend/x86/: Use a lower bound on 32-bit: 5 is enough, we don't need 13.18:12
kenaan12arigo better-jit-hooks 1187406b9ca67a 15/pypy/jit/backend/: Fix test_compile_asmlen on 32 bits too.18:12
fermianyon (~lane@wan-217-185.usouthal.edu) left irc: Ping timeout: 240 seconds18:12
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) joined #pypy.18:15
JaRoel|4d (~jaroel|4d@095-096-229-181.static.chello.nl) left irc: Remote host closed the connection18:27
etrepum (~bob@accessnat4.mochimedia.net) joined #pypy.18:28
arigato (~arigo@adsl-89-217-237-16.adslplus.ch) left irc: Ping timeout: 252 seconds18:28
nickik (~nick@194-29-23-82.static.cablecom.ch) joined #pypy.18:33
Turicas (~alvaro@mail.justen.eng.br) joined #pypy.18:35
rekamso (~textual@67.51.82.66) left irc: Ping timeout: 255 seconds18:35
arigato (~arigo@adsl-89-217-33-163.adslplus.ch) joined #pypy.18:41
arigatofijal: ah, I've found some code in compile.py (written by me, of course) that prevents "Brdige was already compiled!"18:53
arigatothere is even a test in test_recursive.py18:53
voidspace (~anonymous@python/psf/voidspace) left irc: Quit: voidspace18:57
kenaan12arigo better-jit-hooks 11450f9d31a735 15/pypy/jit/backend/x86/assembler.py: This case should not occur any more.  See comment.18:58
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer18:59
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy.18:59
Alex_Gaynorarigato: can't that be written assert adr_jump_offset != 018:59
arigatoyes19:00
Alex_Gaynorok :)19:00
umgehercentos 6, anybody with pypy running ok? I've some problems here19:00
arigatoI chose that way to keep the original syntax a bit more19:00
arigatoand to put my longish comment19:00
arigato*and* to be sure that it remains even if some day we kill the asserts...19:01
arigatoumgeher: which ones?19:02
mikefc_ (9665bcc5@gateway/web/freenode/ip.150.101.188.197) left irc: Ping timeout: 258 seconds19:03
umgeherarigato: ./pypy: /lib64/libcrypto.so.0.9.8: no version information available (required by ./pypy) 19:03
arigatoah, ok19:03
umgeherwith libssl too (same error)19:03
arigatoit's "just" a warning I guess19:03
fijalarigato: cool :)19:03
fijalarigato: can you merge the branch then?19:04
umgeherand when I create virtualenv with pypy... let's get here..19:04
arigatofijal: ok, I can do it, but let me build and try a full translation...19:04
fijalarigato: can you please not raise AssertionError though?19:04
fijalException is even better19:04
arigatoer, why not?19:04
fijalbecause if you hit fatal rpython error: AssertionError19:04
fijalyou're clueless19:04
fijalyou also won't look for raise AssertionError19:04
arigato"fatal rpython error: Exception" looks even worse to me19:04
fijalno19:05
fijalbecause you look for 'raise Exception'19:05
fijaland not for 'assert Xxx'19:05
arigatoeh19:05
umgeherarigato: OSError: Command /home/jenkins/env/bin/pypy -c "#!python19:05
fijalso raise something more specific19:05
umgeher\"\"\"Bootstrap setuptoo...19:05
Alex_Gaynorwouldn't it be better for RPython to just display the exception message?19:05
umgeher" --always-copy -U setuptools failed with error code 119:05
arigatofijal: I'll just replace it with "assert xyz" then19:05
fijalclass BridgeAlreadyCompiled(Exception): pass19:05
fijalis much better19:05
fijaland not that verbose19:05
fijalarigato: can you do that?19:05
arigatoyes, ok :-)19:05
arigatoAlex_Gaynor: yes, I somehow agree19:07
kenaan12arigo better-jit-hooks 11dcd30a900b17 15/pypy/jit/backend/x86/assembler.py: follow fijal's suggestion and raise an explicit exception instead.19:07
arigatoumgeher: that's very uninformative19:08
fijalstill19:08
fijalAssertionError is not fun19:08
umgehermmm let me create a pastebin.... 19:08
arigatoumgeher: can you paste the complete log of what you are doing to a service like paste.poocoo.org?19:09
umgeherarigato: yeah, for sure19:09
umgeherarigato: http://pastebin.com/vmaQjuqa19:10
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer19:10
stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy.19:10
Alex_Gaynorumgeher: what versino of virtualenv do you have?19:10
umgeherAlex_Gaynor: 1.5.119:10
Alex_Gaynoryou need 1.6.119:10
Alex_Gaynor(or newer)19:11
umgehermmmm 19:11
umgeherok let me try it19:11
arigatofor assert failures, alternatively we could try to capture the line number in the original .py source19:12
umgeherarigato / Alex_Gaynor: tks so much! it's working19:12
arigato:-)19:13
fijalarigato: message would already be awesome19:16
voidspace (~anonymous@python/psf/voidspace) joined #pypy.19:17
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) joined #pypy.19:23
voidspace (~anonymous@python/psf/voidspace) left irc: Quit: voidspace19:23
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy.19:25
JaRoel|4d (~jaroel|4d@82.161.43.49) joined #pypy.19:27
oakdog8 (~oakdog8@telsasoft-host81.dsl.visi.com) joined #pypy.19:28
Rhy0liteany pypy register allocator experts around?19:30
rekamso (~textual@216.190.27.14) joined #pypy.19:30
fijal"experts"19:31
Rhy0liteanyone who understands its limitations?19:35
fijalin what sense?19:38
fijaland I guess yes, I do19:38
Rhy0liteI'm trying to understand the limitations of the register allocator for PPC19:39
Rhy0litecurrently there are some fixed uses of registers in PPC19:39
fijalsame in x8619:39
Rhy0litesome are completely dedicated, like stack pointer and thread local storage (even if not used)19:40
Rhy0liteand others are fixed for a particular sequence19:40
Rhy0liteso far David and Sven have removed the registers with fixed uses from the pool of managed registers19:40
fijalRhy0lite: from our perspective bad register allocator would give you say 2x slowdowns and mostly in cases that are otherwise fast19:41
zain (~textual@66.175.91.194) joined #pypy.19:41
Rhy0liteis there a way to tell the pypy RA that I need a specific register at some point in a sequence and then return it to the managed pool?19:41
Rhy0litecan the pypy RA handle allocating around that19:41
fijalyes19:42
fijalalthough it won't try to be very smart about that19:42
Rhy0liteor must it have the register in the managed pool for the entire sequence?19:42
fijalas in you can ask for a specific register, but it won't try to keep it free in advance19:42
fijalno, there is an argument selected_reg=xxx for most functions19:42
fijalor there are already args for groups of registers19:42
fijalRhy0lite: we would end up with no registers on x86_32 that way :)19:43
Rhy0liteIA-32 gets what it deserves! :-)19:43
fijalso there is selected_reg=xxx and there is need_lower_byte=yyy I think19:43
fijalthe latter meaning19:44
fijal"I want a register, but not arbitrary one, one from the group"19:44
fijalright now there is just one group, but feel free to create new ones19:44
fijalRhy0lite: generally the register allocator interface has to be revamped at some point19:45
Rhy0liteokay19:45
Rhy0litein one case I need a specific reg19:46
Rhy0litein another case, I just need a scratch reg from managed regs19:46
Rhy0liteI don't know why get_scratch_reg() was not implemented for PPC19:46
gtaylor (~gtaylor@68-115-251-182.static.gnvl.sc.charter.com) joined #pypy.19:48
fijaldon't ask me :)19:48
fijalso yes, seems the current API is just fine19:48
nickik (~nick@194-29-23-82.static.cablecom.ch) left irc: Quit: Verlassend19:49
Rhy0litewhy shouldn't I ask you?  you have an opinion about everything! ;-)19:49
arigatofijal: I translated a pypy-c on better-jit-hooks19:52
arigatoand it fails tests from pypyjit/test_pypy_c19:52
arigato(on 32-bit)19:52
arigato(fails 48 of the 907 tests)19:53
arigatoeh19:54
arigatosorry, ignore me :-)19:54
arigatoit fails the test_pypy_c of some old checkout of "default" :-/19:54
arigatoyes, it works fine.  merging time :-)19:55
fijal:)19:56
mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 244 seconds19:56
arigatocan you do the merge after all?  it has no conflict, but you know better what to write as a summary in the checkin message19:57
arigato(good work, btw; I can already see interesting hacks :-)20:00
Action: amaury_ also would like to know what this better-jit-hooks branch was about20:01
Alex_Gaynoramaury_: it's about allowing you to write a python hook for when something is compiled by the JIT20:02
amaury_to print low-level opcodes for example?20:03
Alex_Gaynor(or other events(20:03
Alex_Gaynorto print them, to test new optimizations, to use them in a performance analysis tool, whatever :)20:04
fijalI'll write a blog post20:09
fijalarigato: some details are not exposed20:09
fijalbut they're "easy"20:09
fijalok, I'll merge and write a post then20:09
fijalarigato: can you think about an interesting optimization?20:09
fijalthat we don't have :)20:09
amaury_I suppose inner functions should not be used in jit hooks20:11
Alex_Gaynoramaury_: you mean a closure?20:11
Alex_Gaynorwhy not20:11
amaury_otherwise they may generate another jit code20:11
amaury_and call the hooks recursively20:11
Alex_Gaynorno, the JIT will compile it, but the hooks aren't called recursively20:11
fijalamaury_: yes :)20:12
fijalamaury_: it has been thought about :)20:13
amaury_I'm sure it has :)20:13
sunoano (~sa@unaffiliated/sunoano) left irc: Read error: Operation timed out20:13
fijalthere is a recursion control check20:13
fermianyon (~lane@c-71-229-21-197.hsd1.al.comcast.net) joined #pypy.20:14
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Ping timeout: 252 seconds20:28
zain (~textual@66.175.91.194) left irc: Quit: Computer has gone to sleep.20:30
Guest89149 (~sa@mail.heartinternet.co.uk) joined #pypy.20:35
kenaan12mattip numpypy-axisops 115463174c165f 15/pypy/module/micronumpy/: separate AxisReduceSignature, does not solve bug20:35
mattip (~chatzilla@bzq-79-182-116-64.red.bezeqint.net) joined #pypy.20:35
fijalmattip: hi20:36
mattipfijal: rumor has it you're bored.20:36
fijalhehehe :)20:36
mattipWell, maybe it's just me spreading rumors :)20:36
fijalI was thinking about taking it over if you dont' mind20:36
fijalbut I can explain what's wrong right now20:36
mattipboth. Take it over and tell me what's wrong.20:37
kenaan12fijal numpypy-axisops 11b906cc4a9740 15/pypy/module/micronumpy/interp_ufuncs.py: reindent the docstring20:37
kenaan12fijal default 11db33420263f5 15/: merge better-jit-hooks. This branch introduces few hooks on applevel that let you introspect and modify the list of...20:37
kenaan12fijal better-jit-hooks 114d9eda6790fd 15/: close merged branch20:37
kenaan12fijal numpypy-axisops 119b14783334f5 15/pypy/module/micronumpy/: merge20:37
fijalwuhu!20:38
fijalmattip: ok20:38
fijalmattip: so, first of all signature should not call get_concrete20:38
fijalthis is pointless20:38
fijalsignature represents a structure that gets compiled to assembler20:38
mattipwow, did you just commit better-jit-hooks? cool!20:38
mattip(sorry, I'll listen now)20:38
fijalyes, will write a blog post tonight20:38
fijalif you call get_concrete signature no longer represents the assembler20:39
Alex_Gaynorfijal: cool, translating and will start on -client soon20:39
fijalcool20:39
fijalAlex_Gaynor: add hooks/let me know what you neded20:39
mattipthe structure hold things inside it: array storage and iter.20:39
Alex_Gaynorfijal: uh, btw Field.__init__ why mess with __dict__, just do a normal assignment?20:39
fijalAlex_Gaynor: haha :)20:42
fijalmattip: you mean the signature?20:42
fijalAlex_Gaynor: feel like trying or should I tell you?20:42
Alex_Gaynorfijal: is it to avoid a property?20:43
mattiphg blame on signature: guess who put guess concrete into _invent_array_numbering, _create_iter?20:43
fijalthere is __getattribute__ somewhere down20:43
fijalmattip: no, this is different :)20:44
fijalI guess no longer necessary20:44
dracman (~draco@212.255.32.178) left irc: Quit: Konversation terminated!20:44
fijalmattip: this is the case where you get array signature (because something has forced result)20:44
fijalbut you know what get_concrete() would do20:44
fijalit definitely would not run the assembler20:44
mattipok, with you so far.20:45
fijalI guess I could have created a ForcedSignature20:45
fijalor let me maybe document that20:45
mattipBut I am also calling it in _create_iter20:46
fijalyes20:47
kenaan12fijal default 1130e3fdc262ca 15/pypy/module/micronumpy/signature.py: document20:47
fijalbut note that this is not create_iter of Call220:47
fijalthis is create_iter of ArraySignature20:47
fijalwhich means we matched somehow against a structure that has a concrete array in this place20:47
fijalthat's why you run into recursive problem20:48
mattipright. got it.20:48
fijalmattip: this is a fairly hard part btw, took me a while to get it right :)20:48
mattip"arr" can be one of two things, that's the problem!20:49
Action: mattip trying to imagine how to fix it.20:49
fijalyou can't without obscuring or code duplication20:49
fijalbut it's actually good20:49
fijalremember that the structure represents kind of assembler you want to compile20:50
fijalso it's not that relevant if you use:20:50
fijala + b20:50
fijalor a + (c * d)20:50
fijalwhere c * d was forced20:50
fijalyou still want to reuse the assembler20:50
mattipyes, I am a Call2 signature after all.20:50
mattipso no "concreting" the array at this point.20:51
fijalyes, you want to keep it virtual20:53
fijalAlex_Gaynor: we don't have an answer for the reference counting issue, do we? :/20:53
Alex_Gaynorfijal: for subexpressions you mean?20:53
Alex_Gaynorfijal: I don't have one yet, but I'll chat with david about it tomorrow night20:54
mattipthen where should the actual AxisIterator iterator be created?20:54
fijalmattip: it depends what your goal is20:55
fijalif your goal is to force the array, there is absolutely no point in having the Reduce class at all20:56
fijalyou can as well write it in a function and be happy20:56
fijalif you want to be smarter (Which I think we do)20:56
fijalthen you have to create an AxisIterator per concrete array you're actually using20:57
fijalthink about it20:57
Action: mattip thinking, need to connect the concrete array and a iter, hmm tastes like a signature20:58
mattipin compute?21:00
lizardo (~lizardo@189.2.128.130) left irc: Quit: Leaving21:00
Trundle (~andy@python/site-packages/trundle) left irc: Ping timeout: 240 seconds21:00
gtaylor_ (~gtaylor@68-115-251-182.static.gnvl.sc.charter.com) joined #pypy.21:00
fijalwell21:00
fijalthere are various options21:00
gtaylor (~gtaylor@68-115-251-182.static.gnvl.sc.charter.com) left irc: Quit: Konversation terminated!21:00
fijaleither you want to do that21:00
fijalor you want to just compute specific items from the underlaying array21:01
Shrill (~shrill@ip98-167-237-72.ph.ph.cox.net) joined #pypy.21:02
fijalgenerally you need to have an AxisIterator21:02
fijalbut AxisIterator won't necesarilly correspond to an array21:02
fijalit's just a way to control the left hand side of the assignment21:02
fijalmattip: I'll write it, if you want21:03
mattipyes please21:03
fijalok21:04
mattipI have learned alot but it's time to move on.21:04
fijalok21:04
fijalmikefc: ping?21:04
mattipI'll just remove an assert I put in for debugging that breaks translation.21:05
fijalmattip: I'll revamp stuff so don't worry please :)21:06
Fedal (~fedal@ip98-167-237-72.ph.ph.cox.net) joined #pypy.21:06
EvilBastid (~fedal@ip98-167-237-72.ph.ph.cox.net) joined #pypy.21:07
mattipok.21:07
fijalmattip: is there anything else you would like working btw?21:08
EvilBastid (~fedal@ip98-167-237-72.ph.ph.cox.net) left irc: Client Quit21:08
mattipChristmas was a while ago, and I don't even celebrate it.21:08
Fedal (~fedal@ip98-167-237-72.ph.ph.cox.net) left irc: Client Quit21:08
Shrill (~shrill@ip98-167-237-72.ph.ph.cox.net) left irc: Quit: Leaving21:08
Fedal (~fedal@ip98-167-237-72.ph.ph.cox.net) joined #pypy.21:09
mattipI thought once I had axis iterators, I could make dot() work for multidimensional arrays21:09
mikefc_ (9665bcc5@gateway/web/freenode/ip.150.101.188.197) joined #pypy.21:10
mattipmreging frompyfunc would mean we could get things like round, floor, ceil to work from app level.21:11
mattipmerging*21:11
fijalmerging?21:11
fijalis it done?21:11
fijalwell21:12
fijalfrompyfunc always returns an array of objects21:12
fijalin numpy21:12
fijalwhat do we want?21:12
Fedal (~fedal@ip98-167-237-72.ph.ph.cox.net) left irc: Client Quit21:13
mattipI want round, floor, ceil21:14
mattipI could implement them as more descr_ ufuncs21:14
fijalthat's probably better21:15
fijalfrompyfunc is just a horrible unusable API21:16
fijalthe way it is in numpy21:16
Alex_Gaynorfijal: yeah we discussed this, we agreed on numpypy.pypy.frompyufunc which takes a lambda *dtypes: dtype method which computes the result dtype21:18
fijalmakes sense to me21:18
fijaland numpy.frompyfunc should raise a warning?21:18
fijalor an exception "don't use"21:18
Alex_Gaynorno, we should just not implement it21:18
fijalAlex_Gaynor: do we have a plan for arrays of objects?21:18
Alex_Gaynorsince I don't think we'll ever do object arrays21:18
Alex_Gaynorfijal: ATM, no, do we have a usecase?21:19
fijalwe should give a hint that there is a function that does what you want :)21:19
fijalat least21:19
Alex_Gaynorfijal: I mean, in theory you can do something with the new GC hook arigato wrote21:19
fijalis there a usecase?21:19
Alex_Gaynorproviding a custom trace function for arrays, in practice I don't know if it's worth it21:19
Alex_Gaynorfijal: no idea21:19
fijaldef frompyfunc(*args): raise NotImplementedError("Read the docstring of numpypy.pypy.frompyfunc isntead")21:19
fijalno, a usecase for object arrays21:20
fijalI heavily dislike _numpypy.pypy namespace btw21:20
Alex_Gaynorwhy?21:20
lambacck (~chris@d24-150-124-118.home.cgocable.net) joined #pypy.21:20
mattipfwiw I'm happy to kill the numpypy-frompyfunc branch21:22
mattipand reimplement it when there's a usecase21:22
mattipfor frompyfunc21:22
fijalmattip: cool21:24
fijalmattip: kill it then :)21:24
fijalAlex_Gaynor: because it's a lot of typing and contains pypy twice21:24
fijalnow that we have _numpypy21:24
fijalwe can just have _numpypy.frompyfunc21:24
fijaland don't expose it via numpypy21:24
Action: mattip confused. Was the death sentence stayed, at the price of a lambda dtypes function argument?21:26
fijalmattip: it's a different thing21:28
fijalI mean in a different namespace21:28
fijalwhat's the branch status anyway?21:28
Action: mattip checking21:31
fijalAlex_Gaynor: someone should review hashes one day21:32
fijalthey're sort of arbitrary21:32
fijalin signature.py21:32
mattiplast commit was three weeks ago with the comment "tests, translate passes"21:34
mikefc_fijal: a list of things which numpy.testing assumes is present in numpy which we currently don't have: http://paste.pocoo.org/show/533520/21:37
mikefc_btw, morning all :)21:37
fijalmikefc_: cool, mattip was looking for things to work on ;)21:43
Dulak (~michael@unaffiliated/dulak) joined #pypy.21:44
mikefc_fijal: there's a lot of dtypes related stuff.21:45
mikefc_fijal: Alex_Gaynor also made a comment on my latest patch wondering if lib_pypy was really the best place for applevel tests.  You and He might want to let me know what you think :)21:46
mikefc_i don't have an opinion. Nor do I really know which is better for the future21:47
mikefc_Alex_Gaynor: I'll resubmit that patch with explicit relative imports21:48
fijalmikefc_: no21:48
fijalmikefc_: you messed stuff up :)21:48
mikefc_?21:48
fijalif you write a test in lib_pypy this *is* an applevel test21:48
fijalhm21:48
fijalactually, good point21:48
fijalmikefc_: scratch that21:49
fijalAlex_Gaynor: I claim it is, otherwise where?21:49
fijalmodule/micronumpy?21:49
amaury_We have pypy/module/test_lib_pypy/21:49
amaury_for example, pwd.py is tested there21:49
fijalah ok21:50
mikefc_We could leave the actual tests copied from numpy in lib_pypy, but anything we do ourselves could go in module/micronumpy?21:50
fijalmikefc_: so pypy/module/test_lib_pypy/numpypy21:50
mikefc_ah21:50
Action: mikefc_ looks at the dir tree21:50
mikefc_fijal: what about tests which (hopefully) are just going to be copied over from the numpy source?  21:51
mikefc_hmm.21:52
fijalmikefc_: then they can be in lib_pypy21:52
fijalbut they then are not really AppTests right?21:53
mikefc_what are we classing as 'AppTests'.  I think I don't understand the terminiology correctly.21:53
mikefc_BaseNumpyAttTest?21:53
mat^2 (~mathias@212.130.113.35) joined #pypy.21:53
mikefc_i think i just need to rewrite the top bit of test_fromnumeric. i don't think it needs to be that sort of test...21:54
fijalAppTests are specific21:54
fijalor special21:54
fijalthey run on untranslated interpreter21:54
mikefc_right. so anything in lib_pypy is really not an AppTest.21:55
mikefc_no? am I confused?21:57
fijaldo you have AppTests there?21:58
fijalthey'll be named AppTestXxx21:58
fijal:)21:58
mikefc_well , they're only named that way because I copied the testing code from the mixed module.21:58
fijalno21:58
mikefc_class AppTestFromNumeric(BaseNumpyAppTest): 21:58
fijaltheir naming is significant21:58
mikefc_dammit!21:58
fijalif the name of the test starts from AppTest it means stuff21:59
fijaltry renaming it and see what occurs :)21:59
fijalmeh :/22:00
mikefc_"no module names numpypy"22:00
fijalmikefc_: see?22:00
fijalnow they're run on the host interpreter22:00
fijalthere is magic involved22:00
mikefc_so... I should move them to the moduel/test_lib_pypy dir?22:01
fijalyes22:01
mikefc_ok. now...22:01
fijallib_pypy should not import stuff from outside lib_pypy22:02
fprimex (~fprimex@brent-macbook.sc.fsu.edu) left irc: Quit: http://www.fprimex.com22:02
fijalprecisely because you might not have it22:02
mikefc_the tests that come from numpy itself, how are they going to be run considering they're not AppTests?22:02
Action: mikefc_ 's mind is starting to throb22:02
fijalhow smart do I want to be....22:04
fijalmikefc_: either after translation or with crazy hacks or you have to convert them to apptests22:04
fijalI think it's fine to run them after translation for now22:04
`fox` (~fox@host130-111-dynamic.20-79-r.retail.telecomitalia.it) joined #pypy.22:05
mikefc_Ok. thanks for your help!22:06
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy.22:11
mikefc_OK. I think I can see a little better -- we want to write AppTests which test the code pre-translation.  And we want these for numpypy so that we have a sane development process i.e. easy and quick to test.    The tests that are imported directly from the numpy tree do NOT get run be default (whether they run or not doesn't affect pypy compilation), but they 'merely' exist so that after translation we can see how close we are to havi22:12
fijalmikefc_: yes, they'll also automatically run after translation22:12
fijalthis makes sense22:12
fijalsay on a buildbot22:12
fijaland if we want to work on something, we port this particular one to apptest22:12
mikefc_yep yep yep :)22:13
mikefc_this pypy business is many layers deep :)22:14
tilgovi (~randall@adsl-76-228-82-246.dsl.pltn13.sbcglobal.net) joined #pypy.22:17
tilgovi (~randall@adsl-76-228-82-246.dsl.pltn13.sbcglobal.net) left irc: Changing host22:17
tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy.22:17
`fox` (~fox@host130-111-dynamic.20-79-r.retail.telecomitalia.it) left irc: Ping timeout: 240 seconds22:22
amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Ping timeout: 240 seconds22:24
dracman (~draco@212.255.32.178) joined #pypy.22:24
fijalmikefc_: yes :)22:30
hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Quit: Leaving22:34
arigato (~arigo@adsl-89-217-33-163.adslplus.ch) left irc: Ping timeout: 252 seconds22:36
fijalmattip: ping?22:36
CIA-1703mikefc 07roundup * 10#998/numpypy app level module layout fix (patch attached): 22:36
CIA-17A simple patch for the layout of the applevel numpypy module. Updated with Alex's22:36
CIA-17suggestions.22:36
CIA-17* move numpypy/fromnumeric.py to numpypy/core/ ... * 14https://bugs.pypy.org/issue99822:36
mattipfijal: pong22:37
fijalmikefc_: can't you just get commit privs and work on a branch btw?22:37
fijalmattip: would you mind if I throw most of this stuff away? ;-)22:37
mattipof course not. The tests seem to be ok though.22:37
fijalyes, sure22:38
fijalbut not performance wise22:38
fijalI mean right now it tries to be lazy but it's not22:38
mikefc_fijal: how do i get commit privs?  I guess a bitbucket account would be a good start.22:38
fijalI think I'll make it simply non-lazy22:38
fijalmikefc_: yes, and ask here22:38
fijaltell me your bitbucket name22:38
fijalmikefc_: you volunteer to have one pretty much22:38
mikefc_just signed up. username 'mikefc'22:39
Action: mikefc_ dreads learning another versioning system :(22:40
fijalmikefc_: make sure your real name is there btw22:40
fijalmikefc_: where are you from btw? (I mean mostly timezone)22:42
oakdog8 (~oakdog8@telsasoft-host81.dsl.visi.com) left irc: Ping timeout: 240 seconds22:42
mikefc_Brisbane, Austrlia. GMT+1022:42
fijalcool22:42
fijalI think we have contributors really from all over the world22:42
fijalmikefc_: I was working against australians not so long ago btw ;-)22:43
mattipfijal: why wasn't it lazy, I thought that was the whole point of the virtual array and signature22:44
mattipI really must have missed the mark22:45
fijalmattip: because you wrote it so it forces it22:45
fijalyes :)22:45
fijalif something is lazy it means that you don't have to force it22:45
fijalso for example (assuming we were to implement lazy reduce)22:45
fijalsum(a, axis=1) + sum(a, axis=2)22:46
fijalwould not create 2 intermediates22:46
fijalthat is implemented by having a loop in +, and then using eval22:46
fijalso eval should return one value22:46
fijalwhich itself requires a loop - agreed22:46
fijalbut only over the dimension where it was computed22:46
fijalso in principle you don't have the left array and the right array22:47
fijalyou only have the right array (or values array) and the result you have to return22:47
fijalmattip: do I make any sense?22:49
mattipI thought I was on the right track to do that.22:49
mattipBut it's hard to discuss with this irc internet lag22:49
mattipI mean22:50
oakdog8 (~oakdog8@telsasoft-host81.dsl.visi.com) joined #pypy.22:50
fijalmattip: ok, let me try to explain othewise22:50
mattipI had a ReduceSignature that definitely should not have had the get_concrete()22:50
mattipbut did use the left and right as you said.22:51
fijalwhat sort of assembler would you like for sum(a, dim=1) + sum(a, dim=2)22:51
mattipyes, that kind of puts a chill on lazy evaluation.22:52
mattipIf it was just (a+b)*(a-b) I could imagine the assembler.22:52
mattiphmm.22:52
fijalyes it's much easier to explain by challenging the listener instead of trying to explain how I see it :)22:53
fijalespecially that I'm often wrong22:53
asmeurer__ (~asmeurer@c-174-56-21-245.hsd1.nm.comcast.net) left irc: Quit: asmeurer__22:53
mattipI wonder where I got the notion I could have made it lazy in the first place, now that I think about the big picture.22:54
fijalyou can :)22:54
fijalbut it won't be lazy how you think it would22:54
fijalmattip: FYI I just spent like an hour walking around the flat and thinking about it22:55
mattiplet me guess22:55
mattipYou could create some kind of operator that, say, for a given 2d array22:56
mattipwould just calculate the sum of a particular column22:56
fijalyes good :)22:56
fijalthat itself would be an assembler loop22:56
fijaland call it from the outer loop22:56
fijalI don't think we're quite ready to do that22:57
mattipI had a double-loop version a while ago22:57
fijalyes22:57
fijalbut it wasn't the correct kind of double-loop22:57
mattipright. It was inside out.22:57
fijalbecause you would need to yield from the inner loop22:57
fijalno22:57
fijalbecause the outer loop is somewhere else22:58
fijalyou don't know where yet22:58
mattipI still don't know where: how would the caller specify the loop to be called?22:58
fijalyou would need to have the inner loop executed by eval22:58
fijalso eval would be called from the outer loop somewhere else22:59
mattipchunks?22:59
fijalin signature somehow22:59
fijalmattip: remember in eval we have the array22:59
fijalso it's not really a problem22:59
fijalanyway, can we shuffle this for "later" in terms of "performance optimizations"?22:59
bbot2Started: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/77323:00
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/20123:00
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/101023:00
bbot2Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/2923:00
fijalmattip: ?23:00
mattip"correct, then fast later"23:00
fijalyes, precisely23:00
fijalmattip: note that this is already fast23:00
fijaljust not "faster" :)23:00
mattipin most use cases that I can think of, you eventually want to do all the iterations anyway.23:01
fijalyes23:01
fijalbut you're faster if you avoid allocating and walking the intermediate23:01
fijalbecause you trash caches23:02
mattipyes and no.23:02
fijal?23:03
mattipnon-lazy you run along the entire array sequentially23:03
mattip(unless you are using the "wrong" axis)23:04
mattipno?23:04
dmalcolm (david@nat/redhat/x-kbkahqvpbgiyomza) left irc: Read error: Operation timed out23:04
mattipI had a version that was not really creating an intermediate, but using the actual result array 23:05
mattipahh, hang on, forget all that.23:06
mattipIt just seemed for a minute that by using an intermediate23:06
mattipfor large input arrays23:06
mattipyou could actually improve cache coherance (sp?)23:07
mattipbut maybe not.23:07
mattipanyhow, I think I will be happier once this is out the door and into the wild23:09
mattipthen someone else can make it faster23:10
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) joined #pypy.23:11
gtaylor_ (~gtaylor@68-115-251-182.static.gnvl.sc.charter.com) left irc: Quit: Konversation terminated!23:11
srin (srin@gateway/shell/devio.us/x-fzmywjuxszghmfeg) joined #pypy.23:12
Alex_Gaynorfijal: ping23:13
srin (srin@gateway/shell/devio.us/x-fzmywjuxszghmfeg) left irc: Client Quit23:13
mattiphey, what happened to math.round?23:13
mattipor is it a problem with x86 and 32 bit linux?23:13
Action: Rhy0lite -> home23:14
Rhy0lite (dje@nat/ibm/x-zipjjfrpjpmypzvj) left irc: Quit: Leaving23:14
mikefc_round is not in math (for whatever reason)23:17
fijalAlex_Gaynor: pong23:17
Alex_Gaynorfijal: nvm, I'm an idiot, I'll have round 1 of tracebin-client in 2 seconds23:18
fijalhow does that prove you're an idiot?23:18
fijalit doesn't prove you're exceptionally smart either I guess23:18
fijalcool stuff ey?23:18
fijal:)23:18
Alex_Gaynorfijal: those two were unrelated :)23:18
Alex_Gaynorfijal: I'm an idiot because I forgot that the last section of a trace doesn't end in a label23:19
fijalah :)23:19
Alex_Gaynorand I'll have round 1 in 2 seconds because I found that bug23:19
fijalthere is stuff to slice and dice traces23:19
fijalfeel free to reuse/refactor23:19
fijalI'm super proud about my hacks btw :)23:19
Alex_Gaynorfijal: I'm doing it manually ATM, because (a) so far it's super simple, (b) minimal deps for a CLI tool feels like a good idea23:19
fijalyou slice and dice on server side IMO23:19
Alex_Gaynorno, I want to do as much as possible on the client23:20
fijalrequiring pypy checkout though defeats the point23:20
Alex_Gaynoryou won't require a pypy checkout23:20
fijalAlex_Gaynor: remember one thing - the more you do on the client the less you can measure times23:20
fijalbut if you're doing network you're kinda screwed anywya23:20
fijalor we need some way to actually remove the hooks times from counters or so23:21
Alex_Gaynorfijal: basically the idea is: hook just saves data, then after all execution you slice and dice and send over network23:21
fijalbecause it does not make sense23:21
fijalyes, good23:21
fijalbut you need to get stats *at this point*23:21
fijalright?23:21
Alex_Gaynorfijal: ATM I'm being lazy and slicing and dicing in the hook23:21
fijalright, get_stats is not implemented23:21
Alex_Gaynorget_stats() is for later :)23:21
Alex_GaynorATM you can at least do traces compiled and traces aborted with hooks23:21
fijalalso storing in memory might be prohibitevly expensive23:21
fijal(as uploading though)23:21
Alex_Gaynoryes, I'll think about buffering strategies later23:22
Alex_Gaynorone thing at a time23:22
fijalyes23:22
Alex_Gaynorfijal: anyway you can see my wonderful work here: https://bitbucket.org/alex_gaynor/tracebin-client/src23:22
fijalAlex_Gaynor: btw, please think from day one about poor soulds in africa and compress the stream :)23:22
Alex_Gaynorfijal: compressing is easy, just serialize and bz2.  There's a stdlib for that!23:22
fijalAccess denied23:22
fijaleh23:22
Alex_Gaynoreh, oh it's priavte23:23
Alex_Gaynorwhoops23:23
fijalI guess I should log in as fijal instead of pypy23:23
Alex_Gaynorpublic now23:23
fijalbut hey23:23
antocuniAlex_Gaynor: what is tracebin-client?23:23
fijalantocuni: our secret weapon :)23:23
antocuniwhatever it does, I'm sure it's supercool :-)23:24
Alex_Gaynorantocuni: it'll be a command line tool that you pip install and then pypy -mtracebin and you get your trace uploaded and analyzed like: http://tracebin.ep.io/trace/1/compiled/1/23:24
Alex_Gaynorantocuni: and it uses fijal's jithooks so it's all in memory23:24
antocunioooh23:24
antocuninice23:24
Alex_Gaynornow I have to go cook dinner, bbl23:24
antocuniwhy does it need jithooks? Can't it just use PYPYLOG?23:24
fijalantocuni: because jithooks are the future :)23:25
kenaan12hager ppc-jit-backend 11a2005205886e 15/pypy/jit/backend/ppc/ppcgen/regalloc.py: remove unused code23:25
kenaan12hager ppc-jit-backend 11b55636b23f7a 15/pypy/jit/backend/ppc/ppcgen/: (bivab, hager): Adjust size of FPR_SAVE_AREA on PPC64. Also, resize stackframe if bridges need more space.23:25
fijalalso would not work with -m without crazy hacks23:25
antocunios.execve(sys.executable, ...) should work23:26
antocuniabout jithooks, I'm not sure that they are preferable to the good old PYPYLOG if you just want to save the log23:26
fijalantocuni: yes they're 23:30
fijalthey're much easier to use23:30
fijalfor starters23:30
fijalthey also give you access to other stuff23:30
antocuniyes, but e.g. they screw the timings23:30
fijalyou can write them in an efficient manner if you want to23:31
fijalcreating a log screws the timing as well23:31
antocuniyes, but not as much as calling applevel hooks23:31
fijal[citation needed]23:31
fijalit's writing to disk for one23:31
antocuniok, I don't feel like to argue about this right now :-)23:32
fijalgood :)23:32
fijaljithooks give you few advantages23:32
fijallike it's much easier to find where the source is for one23:32
fijalyou can selectively choose which ones are you interested in23:33
antocunitrue23:33
fijalfor example right now it's a little nightmare to select loops which are from the particular piece of code23:33
fijalI just think that they're more flexible23:33
fijaland I don't want to add finish_once any more23:34
fijalsort of hacks23:34
antocunithat's obvious23:34
antocuniwhat is finish_once?23:34
fijalthe thing called on assembler just before the interpreter shutdown23:34
fijalso you can dump counters23:34
fijalantocuni: let's put it that way - I had quite a lot of issues with logs23:35
antocuniok :-)23:35
fijallike jitviewer crashing because someone put a coma in code description23:35
fijalor someone made a typo in the way assembler address is dumped23:35
fijal(those are all real examples)23:35
fijaland armin constantly complaining "jitviewer never works"23:35
fijalso I guess a slightly more robust solution would not *really* hurt23:36
fijaland if you care about timings you should run without logging anyway23:36
fijalantocuni: jit-backend-counter makes our smallest possible loop quite a lot slower for example23:36
fijalantocuni: do I have to continue or am I good? :)23:36
fijalnote that I don't want you to agree or anything, I want you to know my point ;-)23:37
mattip<spam> getting my honor back23:37
jimbaker (jbaker@canonical/jimbaker) joined #pypy.23:37
kenaan12mattip numpypy-frompyfunc 11f36626591158 15/: reimplement when there is a usecase23:37
kenaan12mattip numpypy-is_contiguous 11e5b79894ad1e 15/: no one really wanted this in the first place23:37
kenaan12mattip numpypy-ufuncs 11f57dcc7ac95e 15/pypy/module/micronumpy/: add ceil23:37
mattip</spam>23:37
antocunifijal: you didn't have to convince me that jithooks are good, but thanks for the explanation :-)23:38
fijalantocuni: explanation is mostly really how logging is horrible and unflexible :/23:38
fijaland also requiring retranslation at single tweak23:39
gmcabrita (gmc@slackwa.re) left #pypy.23:39
fijalwhile I hope that some of the logic will stay applevel now23:39
mattip (chatzilla@bzq-79-182-116-64.red.bezeqint.net) left #pypy.23:39
antocunifijal: logging has e.g. the advantage which can work for all the rpython vms23:39
squiddy (~squiddy@g224197029.adsl.alicedsl.de) left irc: Quit: Leaving23:40
JaRoel|4d (~jaroel|4d@82.161.43.49) left irc: Remote host closed the connection23:41
Action: antocuni off23:43
antocunibye23:43
fijalwell, hooks as well23:44
whitelynx|work (~whitelynx@63.241.75.144) left irc: Quit: Ex-Chat23:44
fijalnot that I care...23:44
fijalantocuni: logging is there to stay btw23:45
antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Remote host closed the connection23:45
--- Thu Jan 12 201200:00

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