| mfoord (~anonymous@python/psf/voidspace) joined #pypy. | 00:00 | |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection | 00:04 | |
| CIA-17 | 03r.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 been | 00:06 |
| CIA-17 | merged into the trunk -- but the problem has gone from t ... * 14https://bugs.pypy.org/issue960 | 00:06 |
| craigkerstiens (~craigkers@204.14.152.118) left irc: Quit: craigkerstiens | 00:07 | |
| mfoord (~anonymous@python/psf/voidspace) left irc: Quit: mfoord | 00: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 host | 00:11 | |
| mfoord (~anonymous@python/psf/voidspace) joined #pypy. | 00:11 | |
| durin42 (~durin@adium/durin42) left irc: Ping timeout: 240 seconds | 00: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_Gaynor | mikefc_: they are evil | 00:26 |
| Alex_Gaynor | and terrible | 00:27 |
| Alex_Gaynor | don't use them ever if you can avoid it | 00:27 |
| mikefc_ | Alex_Gaynor: lots of numpy stuff only appears to have doctests | 00:27 |
| Alex_Gaynor | fun | 00:27 |
| mikefc_ | Alex_Gaynor: "we" don't do doctests in pypy? | 00:27 |
| Alex_Gaynor | no, I mean we support the stdlib doctest mod of course | 00:27 |
| Alex_Gaynor | but I can't anti-reccomend them enough | 00:28 |
| mikefc_ | i.e. eveything should be unittests? | 00:28 |
| Alex_Gaynor | I led the charge to port 10s of thousands of lines of doctest to unittest in django | 00: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 sleep | 00:29 | |
| fenrrir (~rodrigo@189.70.232.240) left irc: Quit: Leaving | 00: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 seconds | 01:16 | |
| craigkerstiens (~craigkers@208.106.28.36) joined #pypy. | 01:22 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/28 | 01:24 |
| nick125 | Alex_Gaynor: Just curious, why do you not like doctest? | 01:25 |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/200 | 01:29 |
| exarkun | because it sucks, probably | 01:37 |
| exarkun | that's why I don't like it, at least ;) | 01:37 |
| gutworth | it's cute, but ineffective in the real life | 01:39 |
| nick125 | I 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: Leaving | 01:46 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/772 | 01:46 |
| CIA-17 | 03r.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/issue961 | 01:55 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1921 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/674 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/324 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/672 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/334 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1191 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/855 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/1508 | 02:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/785 | 02: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 out | 02:18 | |
| craigkerstiens (~craigkers@208.106.28.36) left irc: Quit: craigkerstiens | 02:18 | |
| mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 240 seconds | 02:18 | |
| etrepum_ (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 252 seconds | 02:21 | |
| lahwran | does trampgeek come here? | 02:24 |
| lahwran | I'm curious what he's doing with the sandbox | 02: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: mfoord | 02:28 | |
| nedbat (~nedbat@python/psf/nedbat) left irc: Ping timeout: 245 seconds | 02:33 | |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection | 02:37 | |
| etrepum (~bob@75-101-96-144.dsl.static.sonic.net) joined #pypy. | 02:45 | |
| squiddy (~squiddy@g224194229.adsl.alicedsl.de) left irc: Quit: Leaving | 02:55 | |
| ericflo (~ericflo@75.103.8.110) left irc: Quit: ericflo | 03:00 | |
| Kaskuka (~John@osbk-4db150f7.pool.mediaWays.net) left irc: Ping timeout: 240 seconds | 03:03 | |
| Kaskuka (~John@osbk-4db149a4.pool.mediaWays.net) joined #pypy. | 03:04 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/1009 | 03:09 |
| dracman (~draco@212.255.35.167) left irc: Ping timeout: 252 seconds | 03: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 day | 03:33 | |
| mwhudson | mikefc_: +1 | 03:41 |
| anish_ (anish@nat/redhat/x-sehmgrtrefmvknse) joined #pypy. | 04:01 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1921 | 04: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 connection | 04:29 | |
| Alex_Gaynor (u1246@gateway/web/irccloud.com/x-udnawuwrosxgieus) left irc: Remote host closed the connection | 04:29 | |
| CIA-17 | 03mikefc 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/issue998 | 04:30 |
| mikefc_ | I guess I'm going to have to learn how to use mercurial properly | 04: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 seconds | 04:32 | |
| oal (u4126@gateway/web/irccloud.com/x-xnkndjuxwfezqhzx) left irc: Remote host closed the connection | 04:32 | |
| CIA-17 | 03agaynor 07roundup * 10#998/numpypy app level module layout fix (patch attached): | 04:34 |
| CIA-17 | [chatting] A few things: | 04:34 |
| CIA-17 | a) Can we please use explicit relative imports, rather than implict ones. | 04:34 |
| CIA-17 | b) It doesn't seem correct to me to have Ap ... * 14https://bugs.pypy.org/issue998 | 04: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 | |
| symbols | hello, I'm finally trying out pypy | 04:41 |
| symbols | are differences from python considered bugs or feature requests? | 04:43 |
| symbols | by python i mean specifically CPython 2.7 | 04:43 |
| mikefc_ | symbols: depends. | 04:43 |
| Alex_Gaynor | symbols: 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 | |
| symbols | its ctypes related | 04: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 |
| symbols | byref throws a type error when used with the second parameter | 04:45 |
| symbols | which is an offset | 04:46 |
| Alex_Gaynor | symbols: that's probably a bug, our byref has several :/ | 04:46 |
| symbols | can I help fix it? | 04:46 |
| Alex_Gaynor | sure, the first step would be to add a test for it | 04:47 |
| Alex_Gaynor | most of ctypes is actually written in pure python | 04:47 |
| Alex_Gaynor | more 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 though | 04:47 |
| symbols | I'm on windows at the moment | 04:48 |
| Action: Alex_Gaynor knows even less about windows | 04:48 | |
| symbols | is that a problem for building/testing this stuff? | 04:48 |
| Alex_Gaynor | it shouldn't be | 04:48 |
| symbols | what's the expectation for ctypes-y code | 04:49 |
| symbols | slower, faster, or equal with CPython? | 04:49 |
| Alex_Gaynor | mixed bag the good cases should be much faster (100x) bad cases are slower :/ | 04:49 |
| symbols | how about generators? | 04:49 |
| Alex_Gaynor | faster, though I can't remember if those improvements are in 1.7 or just hg | 04:50 |
| symbols | okay | 04:50 |
| EnCuKou (~encukou@ip-94-113-220-25.net.upcbroadband.cz) left irc: Ping timeout: 252 seconds | 04:51 | |
| symbols | so if I want to write a test, first step to clone the repo? | 04:51 |
| symbols | will I have to make a new build? | 04:51 |
| kenaan | 12alex_gaynor default 110a73918924c2 15/lib_pypy/numpypy/__init__.py: explicit relative import | 04:51 |
| Alex_Gaynor | no, you don't need to translate pypy to run tests | 04: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 peer | 05:02 | |
| Nick change: stakkars_ -> stakkars | 05: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 peer | 05:07 | |
| Nick change: stakkars_ -> stakkars | 05:07 | |
| symbols | okay, I have a cloned repo here, how do I run tests? | 05:07 |
| symbols | specifically, I'd like to locate and run any existing ctypes tests | 05:08 |
| symbols | okay, I found a getting started doc that mentions running with the embedded pytest.py | 05:15 |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/1508 | 05:16 |
| symbols | should I run that with the interpreter that I installed (pypy 1.7 for windows)? or do I run that with standard cpython | 05:18 |
| aleksi (~aleksi@85.235.191.82) joined #pypy. | 05:18 | |
| nettok (~quassel@190.148.241.226) joined #pypy. | 05:21 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/855 | 05:23 |
| Alex_Gaynor (u1246@gateway/web/irccloud.com/x-rnkikbjuccokcbmy) left irc: Remote host closed the connection | 05:25 | |
| oal (u4126@gateway/web/irccloud.com/x-jtsepuebqzzjktrf) left irc: Remote host closed the connection | 05:25 | |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds | 05:27 | |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy. | 05:29 | |
| icrazyhack (~horieyui@113.106.212.50) left irc: Ping timeout: 255 seconds | 05:32 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/672 | 05:35 |
| bfirsh (u1308@gateway/web/irccloud.com/x-ehycullrzdkcnukn) left irc: Remote host closed the connection | 05:36 | |
| bfirsh (u1308@gateway/web/irccloud.com/x-gywhtslgstswqkkt) joined #pypy. | 05:39 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1191 | 05:42 |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/674 | 05: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 out | 05: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 seconds | 06:02 | |
| mcdonc (~mcdonc@cabana.palladion.com) left irc: Remote host closed the connection | 06:03 | |
| mcdonc (~mcdonc@cabana.palladion.com) joined #pypy. | 06:03 | |
| mcdonc (~mcdonc@cabana.palladion.com) left irc: Remote host closed the connection | 06: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 seconds | 06: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 closed | 06: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 seconds | 06:39 | |
| Arnar (~arnarb@li187-148.members.linode.com) joined #pypy. | 06:40 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/785 | 06:42 |
| mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 244 seconds | 06:54 | |
| CIA-17 | 03Twirrim 07roundup * 10#994/significantly slow joins: | 06:57 |
| CIA-17 | That would be it, translated using --objspace-std-withstrbuf: | 06:57 |
| CIA-17 | 0.0973238945007s for the ugly join method. * 14https://bugs.pypy.org/issue994 | 06:57 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/334 | 07: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 seconds | 07: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 host | 07: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 seconds | 07:18 | |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection | 07: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 host | 07:30 | |
| tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy. | 07:30 | |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection | 07:31 | |
| JaRoel|4d (~jaroel|4d@2001:980:7133:1:c838:5fe1:5f9c:b4de) left irc: Remote host closed the connection | 07: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 host | 07: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 connection | 07:39 | |
| bretthart (~bretthart@112.205.79.93) joined #pypy. | 07:40 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/324 | 07: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 host | 08: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-17 | 03fijal 07roundup * 10#960/Sandboxing for external function 'pypy__float2longlong': [resolved] reclosing * 14https://bugs.pypy.org/issue960 | 08:44 |
| CIA-17 | 03fijal 07roundup * 10#961/Spurious (?) mercurial error messages from sandlib.py: [resolved] reclosing * 14https://bugs.pypy.org/issue961 | 08:44 |
| arigato | fijal: random note: you can actually reclose bugs without a message | 08:54 |
| fijal | oh ok | 08:54 |
| fijal | didn't know :) | 08:54 |
| fijal | arigato: I'm having some crazy ideas about parallelizing trasnaltion | 08:56 |
| fijal | translation | 08:56 |
| fijal | want to listen or not quite? | 08:56 |
| arigato | yes | 08:58 |
| fijal | so I was thinking about a model with multiple processes | 08:59 |
| fijal | [together with hodgestar] | 08:59 |
| fijal | but instead of serializing objects, you would put them in shared memory | 08:59 |
| fijal | like an mmap file | 08:59 |
| fijal | probably some special GC support to make it work nicely is needed | 08:59 |
| Action: Hodgestar listens too. | 08:59 | |
| fijal | you would still need locking and all the things that are required for threads to cooperate | 09:00 |
| fijal | but that way you can distribute pieces that are distributable | 09:00 |
| verte-wleslie | fijal: which part of translation? | 09:01 |
| fijal | verte-wleslie: pretty much all of them are to some degree parallelizable | 09:01 |
| arigato | there is little difference between multiple-processes-with-mmap and just regular threads | 09:01 |
| fijal | arigato: the main difference is we don't have a GIL | 09:01 |
| fijal | I'm not saying it buys us a better model :) | 09:02 |
| arigato | well, no | 09:03 |
| arigato | the main difference is that we *can't* have a GIL | 09:04 |
| arigato | so we are forced to do everything that would be needed anyway even with threads | 09:04 |
| arigato | I don't think using multiple processes buys us anything at all, when compared to multiple threads | 09:04 |
| fijal | buys us a possibility to distribute it in the current world | 09:05 |
| fijal | because right now we'll not use multiple cores with multiple threads | 09:05 |
| fijal | besides, what you say is not entirely true, because you only have explicitely shared objects | 09:05 |
| arigato | sorry if I'm confusing | 09:05 |
| fijal | you don't have to share say code and classes | 09:05 |
| arigato | even worse | 09:06 |
| fijal | ok, so what are you saying? | 09:06 |
| verte-wleslie | translation is pretty stateful, though - consider how PBC descs are built up as an example that the mutation during translation is everywhere | 09:07 |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds | 09:07 | |
| arigato | I'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 issues | 09:07 |
| verte-wleslie | er, not PBC, CallFamily | 09:07 |
| fijal | verte-wleslie: well, C-generation is not that stateful for example | 09:07 |
| fijal | arigato: I don't think I understand why | 09:08 |
| arigato | threads = processes that share all their memory | 09:08 |
| fijal | we don't have to share all the memory | 09:09 |
| fijal | that's something different | 09:09 |
| fijal | we have to share enough memory not to have to serialize stuff | 09:09 |
| arigato | of course with threads you don't *have* to share all the memory, you can keep some parts seen only by one thread | 09:09 |
| verte-wleslie | arigato: 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 |
| fijal | arigato: eh, maybe you don't understand me - do you run into "potential segfault" issues? yes | 09:10 |
| fijal | but you have interpreter state that's consistent | 09:10 |
| arigato | verte-wleslie: that's a problem in both models | 09:10 |
| fijal | so you can run it | 09:10 |
| antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) joined #pypy. | 09:10 | |
| fijal | and gc state that's consistent etc. | 09:10 |
| verte-wleslie | arigato: it's not a problem in the threads model. | 09:10 |
| fijal | you can make it a translation problem and not the interpreter problem | 09:10 |
| fijal | yes, you run into the "careful locking" problem | 09:10 |
| verte-wleslie | because the heap is its transitive closure, by construction. | 09:10 |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy. | 09:10 | |
| arigato | verte-wleslie: yes, it is, if threads think some objects are their own but that assumption is violated | 09:11 |
| fijal | arigato: ah, btw, there is a cool concept about threads coming from rust | 09:11 |
| fijal | so rust has this concept of "write permission" to an object | 09:11 |
| fijal | and only one thread can have write permission | 09:11 |
| fijal | everyone else can only read from that object | 09:11 |
| fijal | and by passing object over a channel, you pass the write bit | 09:12 |
| arigato | that's not enough in case of Python, because e.g. if you read lst[-1] while another thread is doing lst.pop(), segfault | 09:12 |
| arigato | (not to mention dictionaries) | 09:12 |
| fijal | ok, I think you really misunderstand my goals | 09:12 |
| fijal | my goal is how to make the translation parallelizable | 09:13 |
| fijal | if I have to write it as workers model it's fine | 09:13 |
| fijal | right now I can't have multiple processes, because serializing graphs is a slow mess | 09:13 |
| fijal | if I could (even by hand) have a fast way of serializing graphs, I'll be good to go | 09:13 |
| arigato | I think (but I may be wrong) that rewriting the whole translation process to fit into model X is a no-no | 09:14 |
| fijal | I'm not trying to say this is a working model for everyone to do everything | 09:14 |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Remote host closed the connection | 09:14 | |
| fijal | if we ever want it to be parallel we kind of have to | 09:14 |
| arigato | uh? | 09:15 |
| arigato | I've just argued the opposite in proposals/tm/ | 09:15 |
| arigato | and in my pypy-dev mails | 09:15 |
| verte-wleslie | you 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 |
| fijal | I 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-wleslie | arigato: 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 |
| arigato | feel free to, but note that my own laptop is a 2-CPUs, 4-core machine, so maybe you are wrong | 09:18 |
| fijal | we would need STM to be 2x slower at most for it to make sense | 09:18 |
| fijal | arigato: do you think it's feasible? | 09:18 |
| arigato | fijal: did you read proposals/tm/? I answer this question there | 09:19 |
| fijal | and besides - it's 4 core 1 CPU, but is it really 4 core or 2 x 2? | 09:19 |
| fijal | yes, I did | 09:19 |
| Action: fijal reads again | 09:19 | |
| arigato | I think it's feasible but a lot of work | 09:19 |
| verte-wleslie | hmm, I haven't. *looks* | 09:19 |
| arigato | verte-wleslie: no, GCC's libitm isn't really relevant, apart from inspiration | 09:19 |
| arigato | verte-wleslie: and, the proposals/tm/ I mention is in our private repository so far | 09:20 |
| verte-wleslie | ok | 09:20 |
| arigato | fijal: it's 2 x 2 | 09:20 |
| fijal | where 2 comes from hyperthreading? | 09:21 |
| arigato | yes | 09:21 |
| fijal | so that's 2 core really | 09:21 |
| fijal | anyway | 09:21 |
| fijal | 4 core laptops are getting kinda common | 09:21 |
| arigato | yes | 09:21 |
| arigato | I'm not saying that TM is the ultimate solution | 09:22 |
| fijal | ok | 09:22 |
| fijal | we don't have anything better in mind IMO :) | 09:22 |
| arigato | but that it may be better than retrofitting existing large programs | 09:22 |
| arigato | or even avoiding issues when designing new programs | 09:22 |
| arigato | we'll see | 09:25 |
| Action: arigato -> ski | 09:25 | |
| arigato (~arigo@adsl-89-217-237-16.adslplus.ch) left irc: Quit: See you | 09:26 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 09:37 | |
| CIA-17 | 03Garen 07roundup * 10#900/Using cProfile on Windows generates negative tottime values: | 09:37 |
| CIA-17 | The problem is still present as of 409a8b279f54 from the 1/10 nightly. | 09:37 |
| CIA-17 | I do see the affinity is set correctly (pypy.exe only shows CORE-0 act ... * 14https://bugs.pypy.org/issue900 | 09:37 |
| verte-wleslie | translation aspects implemented largely in C seems not-pypy-ish to me; I wonder how much backend support is really necessary for STM | 09:42 |
| fijal | verte-wleslie: how would that be a translation aspect? | 09:45 |
| verte-wleslie | in 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' instructions | 09:47 |
| fijal | that would not be C, why you think it'll? | 09:48 |
| G2P (~G2P@fw-asn1.ornis.com) joined #pypy. | 09:49 | |
| verte-wleslie | a big chunk of the transactional behaviour code currently is, https://bitbucket.org/pypy/pypy/src/1b1707eedf87/pypy/translator/stm/src_stm/et.c | 09:50 |
| fijal | that's different | 09:51 |
| fijal | anyway, I'm not up for discussion | 09:51 |
| verte-wleslie | ok | 09: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 | |
| Hodgestar | fijal: Is there a canonical way for code (e.g. setup.py) to check whether it's running under pypy? | 10:13 |
| timotimo | try importing __pypy__? | 10:14 |
| timotimo | there's also something in sys | 10:14 |
| timotimo | subversion = ('PyPy', '', '') | 10:15 |
| timotimo | that's in sys | 10:15 |
| mapis | Hei, 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.py | 10:16 |
| verte-wleslie | mapis: this is a demo of the thunk object space. | 10:17 |
| Hodgestar | timotimo: Thanks. Maybe hasattr(sys, 'pypy_version_info')? | 10:17 |
| pedronis (~pedronis@73-53.195-178.cust.bluewin.ch) joined #pypy. | 10:17 | |
| verte-wleslie | mapis: it's really just a demo, I wouldn't use this one as a performance test. | 10:18 |
| mapis | verte-wleslie: so a thunk is for something like lazy loading I read and it has nothing to do with performance :) well sorry about this one | 10:18 |
| mapis | I guess this is the fastest recursive fibonacci you can do on PyPy http://dpaste.com/685862/ ? | 10:19 |
| verte-wleslie | mapis: it's for lazy evaluation - similar to the way that generators are lazier than lists. | 10:19 |
| mapis | Besides adding cores or anything else | 10:19 |
| verte-wleslie | well, at 36 iterations you're probably not going to hit the jit for the outer loop | 10:20 |
| verte-wleslie | I guess there's not much you can do about that, though, fib(36) is big enough | 10:21 |
| mapis | verte-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 seconds | 10:22 | |
| verte-wleslie | excellent. 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-wleslie | I haven't had opportunity to look at the method jit, which is the only one that could work here | 10:28 |
| kennethreitz (~kennethre@173-13-176-158-sfba.hfc.comcastbusiness.net) left irc: Ping timeout: 252 seconds | 10:28 | |
| lucian | mapis: as you can imagine, recursive fib isn't exactly representative for production python code | 10:30 |
| mapis | yes I know that - I will try something more realistic in the future but it still proves a point | 10:30 |
| ThomasWaldmann | some stuff will be slower than expected and/or taking rather long until it gets up to speed | 10:31 |
| antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Quit: Leaving | 10:31 | |
| lucian | mapis: especially since, as verte-wleslie said, the tracing jit won't end up being involved at all | 10:33 |
| mapis | hmm, thats true - could you suggest a simple test that would use JIT as it should be used? | 10:33 |
| mikefc | mapis: https://bugs.pypy.org/file481/smallpt.py | 10:34 |
| lucian | mapis: a long enough loop | 10:34 |
| mikefc | i quite like that example. 16minutes on cpython. 1 minute on pypy. | 10:34 |
| mikefc | and it makes a pretty picture :) | 10:34 |
| mikefc | (as all good pypy code should) | 10:34 |
| lucian | mapis: i guess the simplest change would be to write fib iteratively | 10:34 |
| lucian | but again, that isn't so representative | 10:34 |
| lucian | mikefc's example is much better | 10:34 |
| lucian | it's also awesome | 10:35 |
| mapis | I 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 me | 10:36 |
| mikefc | it's on the bug tracker. which has a untrusted https cert. | 10:36 |
| mikefc | you'll have to load it in a browser | 10:36 |
| mapis | Yes I accepted that one | 10:36 |
| mapis | it just hangs | 10:36 |
| lucian | mikefc: i get an exception on pypy1.7, btw | 10:36 |
| mikefc | smallpy 640 480 4 | 10:37 |
| mapis | got it | 10:37 |
| lucian | mikefc: yes, i was just getting there :) | 10:37 |
| mikefc | i've run it on 1.6, 1.7 and nightlies | 10:37 |
| mapis | Yees - 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 | |
| mikefc | i compiled the c version. but get BusErrors | 10:43 |
| mikefc | when running | 10:43 |
| mapis | ok I'll try it also :) | 10:43 |
| mapis | this is a very nice example | 10:44 |
| mikefc | but a projected time of about 14 seconds. compared to 1min for pypy | 10:44 |
| mikefc | the code may benefit from some tweaking. | 10:44 |
| mapis | well thats not bad at all | 10:44 |
| mikefc | replacing vector class with numpy perhaps. | 10:44 |
| mapis | Yes I saw the first post about numpy today | 10:45 |
| fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Quit: fzzzy | 10:45 | |
| whyking (~quassel@p5B3DD7D5.dip.t-dialin.net) left irc: Ping timeout: 252 seconds | 10:46 | |
| anish_ (anish@nat/redhat/x-sehmgrtrefmvknse) left irc: Quit: Leaving | 10:47 | |
| Nick change: verte-wleslie -> oblong | 11:13 | |
| Nick change: oblong -> verte | 11:13 | |
| Nick change: verte -> verte-wleslie | 11: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 peer | 11:26 | |
| stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy. | 11:26 | |
| mapis | mikefc: 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 host | 12: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 seconds | 12:15 | |
| nshepperd (~asdfg@119.12.146.160) joined #pypy. | 12:16 | |
| mapis | I 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: Leaving | 12:18 | |
| antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Ping timeout: 252 seconds | 12: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-wleslie | mapis: pypy is an implementation of python, not of cpython | 12:27 |
| mapis | sorry | 12:27 |
| mapis | I'll fix it | 12:27 |
| mapis | fixed | 12:28 |
| verte-wleslie | also possibly 'if n <= 1:' | 12:28 |
| verte-wleslie | and of course the cases where python is faster than C are documented, so 'never faster than "compiled languages"' is only sort-of true | 12:30 |
| lesshaste (~lesshaste@87-194-206-189.bethere.co.uk) joined #pypy. | 12:33 | |
| mapis | Thats 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-wleslie | have you compared iterative fib implementations on haskell vs pypy ? | 12:34 |
| mapis | I was thinking about the wording of this - I will try to update it to a more correct wording. | 12:34 |
| mapis | I 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 post | 12:36 |
| lesshaste | fijal: hi | 12:37 |
| jell | mapis: such tests are really funy | 12:41 |
| lesshaste (~lesshaste@87-194-206-189.bethere.co.uk) left irc: Quit: Leaving | 12:41 | |
| jell | mapis: in taht fibonacci test - try some bigger numbers than 36, and in python try xrange, not range | 12:41 |
| jell | funny* | 12:42 |
| mapis | indeed 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 change | 12:42 |
| verte-wleslie | jell: much bigger and you'd be waiting days. | 12:42 |
| stakkars_ (~tismer@i59F72A11.versanet.de) left irc: Quit: hasta la vista | 12:43 | |
| verte-wleslie | and yes, the xrange/range distinction means little on pypy | 12:43 |
| verte-wleslie | I think | 12:43 |
| verte-wleslie | it's never made much of a difference on ranges of only 36 anyway | 12:43 |
| mapis | wow it does not - why does xrange make such a big difference? | 12:43 |
| mapis | with xrange I get 2,062 s with PyPy | 12:43 |
| mapis | this is great | 12:44 |
| mapis | greate i mean | 12:44 |
| jell | verte-wleslie: in pypy, true, but it's good habit to use xrange in py2.x | 12:44 |
| verte-wleslie | you're sure that's the change that makes the difference? | 12:45 |
| jell | in such small range - this difference should not be as big as this... | 12:46 |
| jell | strange... | 12:46 |
| mapis | updated it with xrange results - that seems imposible yes but true | 12:46 |
| verte-wleslie | there'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 seconds | 12:47 | |
| verte-wleslie | it's got to be at least half of the runtime. | 12:48 |
| mapis | something is off | 12:48 |
| mapis | I get it now without xrange also - how can this be | 12:48 |
| mapis | tests are stupid you are right - this is crapp | 12:48 |
| mapis | they are how to say - incomparable? | 12:49 |
| jell | this is very specifical case, so in other, bigger programs pypy can be faster than ghc | 12:50 |
| verte-wleslie | you've done all the usual setup for a benchmarking machine - eg, disabled adaptive CPU power management? | 12:51 |
| jell | power managment? you mean frequency scaling? | 12:51 |
| nshepperd | mapis: pypy does better than unoptimised ghc in my silly iterating test: http://paste.pocoo.org/show/533316/ | 12:52 |
| verte-wleslie | yes | 12:52 |
| mapis | I 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 difference | 12:53 |
| nshepperd | might be better to try it on a real benchmarking machine, though | 12:53 |
| mapis | nshepperd: yes pypy is better acording to my updated tests also | 12:53 |
| mapis | also | 12:53 |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) left irc: Ping timeout: 240 seconds | 12:54 | |
| jell | nshepperd: try that n <= 1 | 12:54 |
| jell | one test less in asm | 12:56 |
| mapis | I updated the table also so now PyPy comes before unoptimized GHC - thats just awesome | 12:56 |
| lucian | http://buildbot.pypy.org/nightly/trunk redirects to http://localhost:8099/nightly/trunk/ | 12:57 |
| jell | should be proxy, not redir | 12:57 |
| jell | mapis: also you should give a try to nightly pypy build - it's aroun 30% faster than 1.7 | 13:00 |
| jell | and in your table - haskle optimized should have 1x measurement ;) | 13:01 |
| jell | haskel* | 13:01 |
| timotimo | haskell :) | 13:02 |
| jell | :) | 13:02 |
| stakkars_ (~tismer@i59F72A11.versanet.de) joined #pypy. | 13:03 | |
| mapis | true: 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 with | 13:03 |
| gutworth (~benjamin@128.36.84.221) joined #pypy. | 13:05 | |
| stakkars_ (~tismer@i59F72A11.versanet.de) left irc: Client Quit | 13:06 | |
| kenaan | 12l.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 |
| kenaan | 12l.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 |
| kenaan | 12l.diekmann set-strategies 1129acb5e48ac9 15/pypy/objspace/std/: added fastpath for initialization of lists with iterables using int- or stringstrategy | 13: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 seconds | 13:21 | |
| mitsuhiko (~mitsuhiko@ubuntu/member/mitsuhiko) joined #pypy. | 13:23 | |
| kenaan | 12l.diekmann set-strategies 11b8be45d7d460 15/pypy/objspace/std/: (cfbolz, l.diekmann) added fastpath for dict.fromkeys with iterable using stringstrategy | 13:24 |
| kenaan | 12hager ppc-jit-backend 117ccc3bb51335 15/pypy/jit/backend/ppc/ppcgen/opassembler.py: use temporary scratch register in emit_getarrayitem_gc and emit_setarrayitem_gc | 13: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 | |
| kenaan | 12l.diekmann set-strategies 11b1a065c4225d 15/pypy/objspace/std/: (cfbolz, l.diekmann) implemented listview_str on dicts | 13:44 |
| kenaan | 12l.diekmann set-strategies 1119aec63fdbfe 15/pypy/objspace/std/: (cfbolz, l.diekmann): implemented listview_int for dicts | 13: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 seconds | 13:46 | |
| voidspace (~voidspace@python/psf/voidspace) left irc: Quit: Uhm... gotta go | 13:49 | |
| Nick change: mfoord -> voidspace | 13:49 | |
| kenaan | 12l.diekmann set-strategies 11243af83be4d9 15/pypy/objspace/std/test/test_liststrategies.py: added listview tests for listobject | 13:50 |
| kenaan | 12l.diekmann set-strategies 1144c5a3419379 15/pypy/objspace/std/: (cfbolz, l.diekmann): added listview_str for strings | 13:56 |
| kenaan | 12l.diekmann set-strategies 1128d2d9a61e5e 15/: merged with default | 13: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 host | 14:49 | |
| jimbaker (jbaker@canonical/jimbaker) joined #pypy. | 14:49 | |
| kenaan | 12l.diekmann set-strategies 1137da0bb1707e 15/pypy/objspace/std/test/test_liststrategies.py: fixed tests: stringobject has now a listview_str method, too | 14:55 |
| kenaan | 12l.diekmann set-strategies 11a26b3141a0d4 15/pypy/objspace/std/: (cfbolz, l.diekmann): added fastpath for dict.keys if keys are strings | 14:55 |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 15:04 | |
| kenaan | 12l.diekmann set-strategies 11aae0411e2217 15/pypy/objspace/std/test/test_liststrategies.py: fixed test: show that listview_str returns None for other objects | 15:07 |
| fijal | hi | 15:28 |
| craigkerstiens (~craigkers@c-76-126-162-38.hsd1.ca.comcast.net) left irc: Quit: craigkerstiens | 15:33 | |
| fermianyon (~lane@c-71-229-21-197.hsd1.al.comcast.net) joined #pypy. | 15:34 | |
| fijal | mapis: fibonacci is a really horrible benchmark | 15:36 |
| fijal | mapis: especially the recursive one | 15:37 |
| fermianyon (~lane@c-71-229-21-197.hsd1.al.comcast.net) left irc: Ping timeout: 240 seconds | 15: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 | |
| kenaan | 12l.diekmann set-strategies 117578dd73ccf8 15/pypy/objspace/std/: fixes | 15:53 |
| fijal | arigato: how was skiiing? | 15:54 |
| arigato | still tired :-) | 15:54 |
| arigato | but great | 15:54 |
| icrazyhack (~horieyui@114.119.1.1) joined #pypy. | 15:54 | |
| voidspace (~anonymous@python/psf/voidspace) left irc: Quit: voidspace | 16:01 | |
| fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy. | 16:07 | |
| CIA-17 | 03fijal 07roundup * 10#900/Using cProfile on Windows generates negative tottime values: | 16:08 |
| CIA-17 | QueryPerformanceCounter is definitely not the best. Right now we directly embed | 16:08 |
| CIA-17 | RTLD instruction in the assembler, which is much faster than hav ... * 14https://bugs.pypy.org/issue900 | 16:08 |
| lesshaste (~lesshaste@ikaris.cs.bris.ac.uk) joined #pypy. | 16:14 | |
| lesshaste | hi all | 16:16 |
| fijal | lesshaste: hi | 16:16 |
| lesshaste | just a quick note about numpypy... as someone who wrote a small script this morning :) | 16:16 |
| lesshaste | my script has its slow part functions that don't use numpy at all | 16:17 |
| lesshaste | is it plausible to pypy just certain functions? | 16:17 |
| lesshaste | this is a slightly silly question I realise | 16:17 |
| ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) left irc: Quit: Leaving... | 16:17 | |
| lesshaste | so perhaps I will change it to... | 16:18 |
| lesshaste | fijal, how is it goin? | 16:18 |
| lesshaste | going | 16:18 |
| fijal | good | 16:18 |
| fijal | lesshaste: why don't you want to use everything else under pypy? | 16:19 |
| lesshaste | fijal, I do.. I have just assumed that anything that needs scipy will fail | 16:19 |
| aleksi (~aleksi@85.235.191.82) left irc: Ping timeout: 240 seconds | 16:19 | |
| lesshaste | fijal, I don't fully follow your latest blog post. slow 2 python seems to be very fast compared to the C implementations | 16:20 |
| fijal | true :) | 16:20 |
| lesshaste | fijal, "slow 2 python" 14ms | 16:20 |
| lesshaste | fijal, what is going on there? The python versus C comparison is confusing | 16:21 |
| fijal | well apparently it's not slow :) | 16:21 |
| lesshaste | is it secretly pypy? | 16:21 |
| fijal | why is it confusing? | 16:21 |
| fijal | how is it secretly pypy? | 16:21 |
| fijal | it's openly pypy no? | 16:21 |
| lesshaste | no! | 16:21 |
| lesshaste | the table below says pypy | 16:21 |
| lesshaste | this table doesn;t | 16:21 |
| lesshaste | it says "A straightforward version of those in Python " | 16:21 |
| lesshaste | [..] | 16:21 |
| fijal | weeeel | 16:21 |
| fijal | python is a language | 16:22 |
| lesshaste | it needs to say these are pypy timings | 16:22 |
| fijal | cpython is an implementation | 16:22 |
| fijal | it does not say it's cpython either | 16:22 |
| lesshaste | right but below it does say pypy | 16:22 |
| lesshaste | so it's fair to assume the first table is 50% likely to be cpython :) | 16:22 |
| exarkun | yea, change the pypys to pythons | 16:22 |
| exarkun | Python should mean PyPy by default :) | 16:22 |
| lesshaste | I suggest more explicit boasting :) | 16:22 |
| fijal | lesshaste: it does say pypy in the analysis below | 16:22 |
| fijal | you should read the anlysis not only tables sorry :) | 16:23 |
| fijal | lesshaste: details are a bit buried but that's deliberate | 16:23 |
| whyking (~quassel@p50848714.dip0.t-ipconnect.de) left irc: Ping timeout: 268 seconds | 16:23 | |
| fijal | this is work-in-progress, we're only interested in people who read the entire thing | 16:23 |
| lucian | fijal: lesshaste is right that it's not immediately obvious that bit means pypy | 16:24 |
| arigato | fwiw, I agree with lesshaste and lucian | 16:24 |
| lesshaste | the explanation below also quotes a cpython number. It would be great to have that in the table | 16:24 |
| Action: lesshaste rarely agrees with himself :) | 16:24 | |
| fijal | lesshaste: no, because the cpython number is far less reliable | 16:25 |
| lesshaste | ok | 16:25 |
| fijal | but maybe I should say above | 16:25 |
| fijal | arigato: ok ok | 16:25 |
| arigato | :-) | 16:25 |
| fijal | arigato: I'll clarify a bit | 16:25 |
| arigato | it's enough to start the blog post with python | 16:25 |
| arigato | sorry | 16:25 |
| fijal | Table below compares running PyPy against C | 16:25 |
| fijal | does that clarify enough? | 16:26 |
| arigato | yes | 16:26 |
| lesshaste | cool | 16:26 |
| arigato | you can even point in the direction you argued for above | 16:26 |
| arigato | and say | 16:26 |
| arigato | "This table compares Python (run with PyPy) against C" | 16:26 |
| arigato | or even | 16:27 |
| arigato | "This table compares Python (run with PyPy) against C (with GCC 4.5.5)" | 16:27 |
| lesshaste | why is the number of iterations different for the inline versions? | 16:27 |
| fijal | done | 16:27 |
| arigato | :-) | 16:27 |
| fijal | lesshaste: it's also described isn't it? | 16:28 |
| fijal | did you read the entire blog? | 16:28 |
| fijal | it's not :( | 16:28 |
| fijal | it was supposed to be | 16:28 |
| lesshaste | I did read it | 16:28 |
| lesshaste | ah ok | 16:28 |
| arigato | (sorry, gcc 4.4.5) | 16:29 |
| lucian | fijal: your suspicious nature is suspicious :) | 16:29 |
| lesshaste | sorry 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 m | 16:30 |
| lesshaste | ore than the language." | 16:30 |
| fijal | yes? | 16:30 |
| lesshaste | what 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 version | 16:31 |
| lesshaste | but that isn't in the table | 16:31 |
| fijal | pypy is 15-170% slower than C | 16:31 |
| fijal | depending what you compare | 16:31 |
| dmalcolm (david@nat/redhat/x-pimpfrknvhqeturs) joined #pypy. | 16:32 | |
| fijal | dmalcolm: hi | 16:32 |
| dmalcolm | hi | 16:32 |
| lesshaste | ok.. I see what you are saying. You compare inline python only with inline C | 16:32 |
| lesshaste | so we just need an explanation of what the inline version is doing :) | 16:33 |
| fijal | dmalcolm: thanks for bringing sanity to hash discussions | 16:33 |
| dmalcolm | I did? | 16:33 |
| dmalcolm | oh, arguing for conservatism? | 16:34 |
| fijal | the option proposal is by far the best one I've seen | 16:34 |
| fijal | lesshaste: it could have been written better | 16:36 |
| fijal | lesshaste: where were you when I asked for reviews :) | 16:36 |
| fijal | but I won't majorly revamp it now | 16:36 |
| lesshaste | :) | 16:36 |
| fijal | mikefc: ping | 16:36 |
| Nisstyre (~yours@c-208-90-102-250.netflash.net) left irc: Ping timeout: 240 seconds | 16:42 | |
| kenaan | 12fijal better-jit-hooks 119892289121d2 15/: merge default | 16:44 |
| kenaan | 12fijal better-jit-hooks 11b53f0ac39e01 15/pypy/: be secure against not having any jit_merge_points found | 16:44 |
| Alex_Gaynor | fijal: how about instead of 'UNKOWN' just using None? | 16:44 |
| fijal | shouldn'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 host | 16:45 | |
| voidspace (~anonymous@python/psf/voidspace) joined #pypy. | 16:45 | |
| fijal | it's a description | 16:45 |
| fijal | but ok | 16:45 |
| Alex_Gaynor | it's a terrble API to just have that string there | 16:45 |
| fijal | it's not like you have only strings | 16:45 |
| fijal | you also have tuples | 16:45 |
| fijal | and I guess 'UNKNOWN' and None are as descriptive | 16:46 |
| kenaan | 12fijal better-jit-hooks 11d5efe4cff53d 15/pypy/module/pypyjit/interp_resop.py: use None here | 16:46 |
| Alex_Gaynor | except it's possible to interact with unkown as if it's a real value, and not realize it | 16:46 |
| fijal | I heavily doubt someone would ever interact with this value other than print it | 16:49 |
| fijal | Alex_Gaynor: I'll fix tests and merge it | 16:51 |
| fijal | maybe do some numpy work | 16:51 |
| fijal | Alex_Gaynor: feel like giving directions what would be cool? | 16:51 |
| fijal | maybe docs? | 16:51 |
| Alex_Gaynor | fijal: in numpy? review and work on the axis ops would be cool | 16:52 |
| Alex_Gaynor | fijal: if you could import numpy.testing that'd be very cool I guess | 16:52 |
| Alex_Gaynor | though we'll probably have like 100000x tests failing ATM | 16:52 |
| fijal | mikefc promised he'll send me a mail with dependencies | 16:53 |
| fijal | Alex_Gaynor: starting with the fact that we have no 'numpy' module | 16:53 |
| fijal | Alex_Gaynor: tutorial btw? | 16:53 |
| Alex_Gaynor | well, you know what I meant | 16:53 |
| Alex_Gaynor | fijal: 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 |
| fijal | ok | 16:53 |
| Alex_Gaynor | fijal: also, I'll ask jesse how we can contact teh people who signed up to ask for code samples | 16:53 |
| fijal | I have some ideas | 16:54 |
| fijal | if you want to brainstorm | 16:54 |
| Alex_Gaynor | fijal: also, we need to decide, are we going to demo tracebin or current jitviewer? | 16:54 |
| fijal | depends | 16:54 |
| JaRoel (~jaroel|4d@office.fourdigits.nl) left irc: Remote host closed the connection | 16:54 | |
| Nisstyre (~yours@c-208-90-102-250.netflash.net) joined #pypy. | 16:55 | |
| fijal | arigato: ping? | 16:57 |
| Alex_Gaynor | fijal: I'm interested in any ideas you have | 16:57 |
| fijal | arigato: http://paste.pocoo.org/show/533403/ | 16:57 |
| fijal | arigato: any ideas what are 00s? | 16:57 |
| Rhy0lite (dje@nat/ibm/x-zipjjfrpjpmypzvj) joined #pypy. | 16:59 | |
| arigato | fiajl: pong | 17:01 |
| arigato | fijal: yes, that's the continuation of the previous line | 17:01 |
| arigato | the number takes 8 bytes | 17:01 |
| fijal | arigato: so in this backend test assembler generated depends on the amount of tests run | 17:01 |
| fijal | L. | 17:01 |
| fijal | :/ | 17:01 |
| fijal | so there is no automatic way to say "give me the number of instructions"? | 17:02 |
| arigato | that's objdump doing too much formatting for you | 17:02 |
| arigato | you need to reverse it, e.g. by ignoring lines without an instruction | 17:03 |
| arigato | (which means, lines with less than 2 '\t') | 17:03 |
| fijal | ok | 17:03 |
| G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving. | 17:04 | |
| jimbaker (jbaker@canonical/jimbaker) left irc: Ping timeout: 252 seconds | 17:04 | |
| kenaan | 12fijal better-jit-hooks 11d1f73a4788a2 15/pypy/jit/backend/: fix test runner | 17:15 |
| Trundle (~andy@python/site-packages/trundle) left irc: Remote host closed the connection | 17:16 | |
| fijal | pffff | 17:17 |
| fijal | arigato: so test_zrpy_gc moves _descr up to AbstractResOperation | 17:17 |
| fijal | but not translation I think :/ | 17:17 |
| arigato | eh | 17:17 |
| craigkerstiens (~craigkers@50-78-100-242-static.hfc.comcastbusiness.net) joined #pypy. | 17:18 | |
| arigato | that's strange | 17:18 |
| Alex_Gaynor | fijal: add more asserts | 17:18 |
| Alex_Gaynor | it solves all problems | 17:18 |
| fijal | arigato: maybe even translation | 17:18 |
| fijal | I didn't get there in test fixes :) | 17:18 |
| fijal | anyway | 17:18 |
| fijal | is it fine to have descr on basic resop or is it not? | 17:19 |
| arigato | preferrably not | 17:19 |
| fijal | because there was nothing preventing it from happening :/ | 17:19 |
| arigato | look around at where it occurs, usually the error message is relatively direct | 17:19 |
| arigato | (relatively) | 17:19 |
| fijal | yes | 17:20 |
| fijal | someone is doing op._descr = None | 17:20 |
| fijal | instead of op.setdescr(None) | 17:20 |
| arigato | ah | 17:20 |
| arigato | bad someone | 17:20 |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Remote host closed the connection | 17:20 | |
| fijal | pyjitpl.py | 17:20 |
| fijal | record_loop_or_bridge | 17:20 |
| fijal | hardly a random someone | 17:20 |
| arigato | that's me I fear | 17:21 |
| arigato | pom pom pom | 17:21 |
| Alex_Gaynor | bad arigato, apparently :) | 17:22 |
| kenaan | 12fijal better-jit-hooks 11267e8180a342 15/pypy/jit/metainterp/compile.py: fix a translation problem | 17:22 |
| arigato | fijal: there is another one a few lines apart | 17:23 |
| arigato | and you should keep the comment | 17:23 |
| fijal | did I kill the comment? | 17:23 |
| arigato | yes | 17:23 |
| kenaan | 12fijal better-jit-hooks 116d90b9e1e3ab 15/pypy/jit/metainterp/compile.py: one more place | 17:24 |
| fijal | wasn't intentional | 17:24 |
| arigato | :-) | 17:24 |
| stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer | 17:24 | |
| Nick change: stakkars_ -> stakkars | 17:24 | |
| fijal | arigato: can you think about adding better support for detecting already compiled bridges? | 17:24 |
| arigato | yes | 17:24 |
| fijal | it should work now, but a bit by chance (again) | 17:24 |
| stakkars_ (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy. | 17:24 | |
| arigato | yes, I see | 17:25 |
| kenaan | 12fijal better-jit-hooks 117d78bb3e99e9 15/pypy/jit/metainterp/compile.py: oops bring back the comment | 17:26 |
| arigato | should I try to write a test and do fixes in better-jit-hooks? or just in default? | 17:26 |
| fijal | no, better-jit-hooks | 17:26 |
| fijal | because it would be a mess to merge | 17:26 |
| arigato | ok | 17:27 |
| fijal | I'm fine with delaying the merge for that btw | 17:27 |
| lesshaste (~lesshaste@ikaris.cs.bris.ac.uk) left irc: Quit: Leaving | 17:27 | |
| fijal | ok good | 17:27 |
| fijal | I should have fixed all the tests | 17:27 |
| fijal | arigato: should I kick buildbots now or wait for your changes? | 17:27 |
| arigato | dunno :-) | 17:27 |
| arigato | I should do the changes soonish, like in the next 3 hours | 17:28 |
| arigato | x86/test/test_basic fails | 17:28 |
| arigato | bah :-( | 17:28 |
| fijal | arigato: uh? | 17:30 |
| fijal | arigato: on the branch? | 17:30 |
| arigato | yes, you just broke it | 17:30 |
| `fox` (~fox@host130-111-dynamic.20-79-r.retail.telecomitalia.it) joined #pypy. | 17:30 | |
| fijal | pffff | 17:30 |
| fijal | ok | 17:30 |
| Last message repeated 1 time(s). | 17:30 | |
| arigato | yes :-( | 17:30 |
| arigato | add a different interface, like cleardescr()? | 17:30 |
| fijal | I can just add an assert? | 17:31 |
| arigato | well it's a bit of a mess | 17:31 |
| fijal | or should I make this an official interface? | 17:31 |
| fijal | ok | 17:31 |
| fijal | why it's a mess btw? | 17:31 |
| arigato | you need setdescr(None) to still work | 17:31 |
| fijal | at this point? | 17:31 |
| arigato | but you don't have 'self' in the "def setdescr()" patched in | 17:31 |
| arigato | yes | 17:31 |
| arigato | otherwise there is no point at all | 17:31 |
| fijal | no point at all of what? | 17:32 |
| fijal | I can do | 17:32 |
| arigato | of "op.setdescr(None)" | 17:32 |
| fijal | assert isinstance(op, ResOpWithDescr) | 17:32 |
| arigato | if it doesn't work, the tests like test_memmgr will fail | 17:32 |
| fijal | op._descr = None | 17:32 |
| fijal | no? | 17:32 |
| arigato | ah, you can, but better done in its own interface | 17:32 |
| fijal | ok | 17:32 |
| arigato | so that only resoperation.py has to worry about ResOpWithDescr | 17:32 |
| [Arfreve1] (~Arfrever@minotaur.apache.org) left irc: Quit: leaving | 17:33 | |
| Nisstyre (~yours@c-208-90-102-250.netflash.net) left irc: Ping timeout: 240 seconds | 17:33 | |
| fijal | http://paste.pocoo.org/show/533418/ | 17:34 |
| fijal | like this? | 17:34 |
| arigato | yes, looks nice | 17:34 |
| stakkars_ (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer | 17:35 | |
| kenaan | 12fijal better-jit-hooks 114dd1794b695d 15/pypy/jit/metainterp/: use a better interface to make tests pass | 17: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 | |
| arigato | test_runner.TestX86.test_compile_asmlen fails with KeyError: 'x86_32' here on linux32 | 17:38 |
| craigkerstiens (~craigkers@50-78-100-242-static.hfc.comcastbusiness.net) left irc: Quit: craigkerstiens | 17:39 | |
| voidspace (~anonymous@python/psf/voidspace) left irc: Quit: voidspace | 17:39 | |
| voidspace (~anonymous@python/psf/voidspace) joined #pypy. | 17:40 | |
| fijal | KeyError in....? | 17:40 |
| fijal | machine_code_dump? | 17:40 |
| arigato | yes | 17:40 |
| fijal | well, maybe add there the case | 17:41 |
| arigato | obscure, but ok, let me do it | 17:41 |
| fijal | well | 17:41 |
| fijal | maybe we should reuse the dictionary from cpu detection? | 17:41 |
| fijal | I've seen one more complete somewhere :) | 17:42 |
| `fox` (~fox@host130-111-dynamic.20-79-r.retail.telecomitalia.it) left irc: Ping timeout: 248 seconds | 17:42 | |
| arigato | yes, but it's based on something else | 17:42 |
| fijal | ffff | 17:42 |
| fijal | yes :/ | 17:42 |
| fijal | I suppose just add an entry and forget indeed | 17:42 |
| arigato | yes | 17:42 |
| fermianyon (~lane@wan-217-185.usouthal.edu) joined #pypy. | 17:43 | |
| arigato | well it fails anyway | 17:43 |
| mapis (c332cbfe@gateway/web/freenode/ip.195.50.203.254) left irc: | 17:45 | |
| arigato | this 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 services | 17:46 | |
| arigato | again..? | 17:46 |
| Nick change: fijal_ -> fijal | 17:46 | |
| fijal | yes :/ | 17:46 |
| arigato | so I was saying: http://paste.pocoo.org/show/533425/ | 17:47 |
| arigato | that's what I get with test_compile_asmlen | 17:48 |
| bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Read error: Operation timed out | 17:49 | |
| fijal | "nop"? | 17:50 |
| fijal | and why is the regalloc not using registers??? | 17:50 |
| fijal | this is all very confusing | 17:50 |
| stakkars (~tismer@i59F72A11.versanet.de) left irc: Quit: schnarch | 17:50 | |
| Nick change: stakkars_ -> stakkars | 17:50 | |
| arigato | ah, NOP comes from flush_loop() | 17:51 |
| fijal | 64 bit version is drastically more efficient | 17:51 |
| fijal | why does it spill a register? | 17:51 |
| arigato | I know, that doesn't make sense | 17:52 |
| fijal | I agree that I would like some other test to fail | 17:52 |
| fijal | rather than this one | 17:52 |
| fijal | m y fault I suppose | 17:53 |
| fijal | maybe we should start writing some tests "is this assembler efficiently compiled" or so | 17:53 |
| arigato | :-/ | 17:53 |
| fijal | arigato: 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 |
| fijal | and check against the arbitrary list of ops | 17:54 |
| fijal | or something | 17:55 |
| arigato | shave shave shave | 17:55 |
| arigato | for a bit | 17:55 |
| fijal | but arguably this assembler i heavy nonsense | 17:55 |
| arigato | note that test_compile_asmlen generates a slightly bogus sequence of instructions | 17:59 |
| arigato | guard_true() is supposed to be only used on values that are 0 or 1 | 17:59 |
| fijal | because it has no label? | 17:59 |
| fijal | oh ok | 17:59 |
| fijal | feel 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 seconds | 18:00 | |
| dmalcolm (david@nat/redhat/x-pimpfrknvhqeturs) left irc: Read error: Connection reset by peer | 18:01 | |
| dmalcolm (david@nat/redhat/x-kbkahqvpbgiyomza) joined #pypy. | 18:01 | |
| arigato | ah no | 18:02 |
| arigato | sorry, it's "obvious" | 18:02 |
| arigato | on x86-64, the variable is in edi, because that's where the first argument to a call goes | 18:02 |
| arigato | on x86-32, the variable is instead in [EBP+8] | 18:03 |
| arigato | we don't do more clever register analysis | 18:03 |
| fijal | hm :/ | 18:03 |
| fijal | ok | 18:03 |
| fijal | well, then just accept it? | 18:03 |
| Action: arigato fixes by adding a line before the label() | 18:03 | |
| fijal | is label loading stuff into registers? | 18:04 |
| arigato | yes | 18:04 |
| arigato | sorry | 18:04 |
| arigato | no | 18: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 | |
| arigato | hum | 18:05 |
| fijal | I would blame high energy particles | 18:05 |
| arigato | :-) | 18:05 |
| Trundle (~andy@82.113.98.164) joined #pypy. | 18:05 | |
| Trundle (~andy@82.113.98.164) left irc: Changing host | 18:05 | |
| Trundle (~andy@python/site-packages/trundle) joined #pypy. | 18:05 | |
| etrepum (~bob@75-101-96-144.dsl.static.sonic.net) left irc: Quit: etrepum | 18:05 | |
| arigato | how can I know where in the raw dump of assembler bytes is the label? | 18:05 |
| fijal | on x86 it's written in a descr | 18:06 |
| fijal | descr has target token which has an address | 18:06 |
| arigato | ok, but no official exported-at-applevel solution? | 18:06 |
| fijal | applevel? | 18:06 |
| fijal | no, not yet | 18:06 |
| arigato | ok | 18:06 |
| fijal | I did not add descrs exposure yet | 18:07 |
| fijal | (at all) | 18:07 |
| arigato | why is there a MOV in the bridge? | 18:09 |
| arigato | ah bah | 18:09 |
| fijal | yes :) | 18:09 |
| arigato | it's part of the following JMP on x86-64 | 18:09 |
| kenaan | 12arigo better-jit-hooks 117435bc0b9fa2 15/pypy/jit/backend/x86/tool/viewcode.py: Add an option to recognize "x86_32" too. | 18:12 |
| kenaan | 12arigo 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 |
| kenaan | 12arigo 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 seconds | 18: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 connection | 18:27 | |
| etrepum (~bob@accessnat4.mochimedia.net) joined #pypy. | 18:28 | |
| arigato (~arigo@adsl-89-217-237-16.adslplus.ch) left irc: Ping timeout: 252 seconds | 18: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 seconds | 18:35 | |
| arigato (~arigo@adsl-89-217-33-163.adslplus.ch) joined #pypy. | 18:41 | |
| arigato | fijal: ah, I've found some code in compile.py (written by me, of course) that prevents "Brdige was already compiled!" | 18:53 |
| arigato | there is even a test in test_recursive.py | 18:53 |
| voidspace (~anonymous@python/psf/voidspace) left irc: Quit: voidspace | 18:57 | |
| kenaan | 12arigo 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 peer | 18:59 | |
| stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy. | 18:59 | |
| Alex_Gaynor | arigato: can't that be written assert adr_jump_offset != 0 | 18:59 |
| arigato | yes | 19:00 |
| Alex_Gaynor | ok :) | 19:00 |
| umgeher | centos 6, anybody with pypy running ok? I've some problems here | 19:00 |
| arigato | I chose that way to keep the original syntax a bit more | 19:00 |
| arigato | and to put my longish comment | 19:00 |
| arigato | *and* to be sure that it remains even if some day we kill the asserts... | 19:01 |
| arigato | umgeher: which ones? | 19:02 |
| mikefc_ (9665bcc5@gateway/web/freenode/ip.150.101.188.197) left irc: Ping timeout: 258 seconds | 19:03 | |
| umgeher | arigato: ./pypy: /lib64/libcrypto.so.0.9.8: no version information available (required by ./pypy) | 19:03 |
| arigato | ah, ok | 19:03 |
| umgeher | with libssl too (same error) | 19:03 |
| arigato | it's "just" a warning I guess | 19:03 |
| fijal | arigato: cool :) | 19:03 |
| fijal | arigato: can you merge the branch then? | 19:04 |
| umgeher | and when I create virtualenv with pypy... let's get here.. | 19:04 |
| arigato | fijal: ok, I can do it, but let me build and try a full translation... | 19:04 |
| fijal | arigato: can you please not raise AssertionError though? | 19:04 |
| fijal | Exception is even better | 19:04 |
| arigato | er, why not? | 19:04 |
| fijal | because if you hit fatal rpython error: AssertionError | 19:04 |
| fijal | you're clueless | 19:04 |
| fijal | you also won't look for raise AssertionError | 19:04 |
| arigato | "fatal rpython error: Exception" looks even worse to me | 19:04 |
| fijal | no | 19:05 |
| fijal | because you look for 'raise Exception' | 19:05 |
| fijal | and not for 'assert Xxx' | 19:05 |
| arigato | eh | 19:05 |
| umgeher | arigato: OSError: Command /home/jenkins/env/bin/pypy -c "#!python | 19:05 |
| fijal | so raise something more specific | 19:05 |
| umgeher | \"\"\"Bootstrap setuptoo... | 19:05 |
| Alex_Gaynor | wouldn't it be better for RPython to just display the exception message? | 19:05 |
| umgeher | " --always-copy -U setuptools failed with error code 1 | 19:05 |
| arigato | fijal: I'll just replace it with "assert xyz" then | 19:05 |
| fijal | class BridgeAlreadyCompiled(Exception): pass | 19:05 |
| fijal | is much better | 19:05 |
| fijal | and not that verbose | 19:05 |
| fijal | arigato: can you do that? | 19:05 |
| arigato | yes, ok :-) | 19:05 |
| arigato | Alex_Gaynor: yes, I somehow agree | 19:07 |
| kenaan | 12arigo better-jit-hooks 11dcd30a900b17 15/pypy/jit/backend/x86/assembler.py: follow fijal's suggestion and raise an explicit exception instead. | 19:07 |
| arigato | umgeher: that's very uninformative | 19:08 |
| fijal | still | 19:08 |
| fijal | AssertionError is not fun | 19:08 |
| umgeher | mmm let me create a pastebin.... | 19:08 |
| arigato | umgeher: can you paste the complete log of what you are doing to a service like paste.poocoo.org? | 19:09 |
| umgeher | arigato: yeah, for sure | 19:09 |
| umgeher | arigato: http://pastebin.com/vmaQjuqa | 19:10 |
| stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) left irc: Read error: Connection reset by peer | 19:10 | |
| stakkars (~tismer@p5DDB7A14.dip.t-dialin.net) joined #pypy. | 19:10 | |
| Alex_Gaynor | umgeher: what versino of virtualenv do you have? | 19:10 |
| umgeher | Alex_Gaynor: 1.5.1 | 19:10 |
| Alex_Gaynor | you need 1.6.1 | 19:10 |
| Alex_Gaynor | (or newer) | 19:11 |
| umgeher | mmmm | 19:11 |
| umgeher | ok let me try it | 19:11 |
| arigato | for assert failures, alternatively we could try to capture the line number in the original .py source | 19:12 |
| umgeher | arigato / Alex_Gaynor: tks so much! it's working | 19:12 |
| arigato | :-) | 19:13 |
| fijal | arigato: message would already be awesome | 19: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: voidspace | 19: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 | |
| Rhy0lite | any pypy register allocator experts around? | 19:30 |
| rekamso (~textual@216.190.27.14) joined #pypy. | 19:30 | |
| fijal | "experts" | 19:31 |
| Rhy0lite | anyone who understands its limitations? | 19:35 |
| fijal | in what sense? | 19:38 |
| fijal | and I guess yes, I do | 19:38 |
| Rhy0lite | I'm trying to understand the limitations of the register allocator for PPC | 19:39 |
| Rhy0lite | currently there are some fixed uses of registers in PPC | 19:39 |
| fijal | same in x86 | 19:39 |
| Rhy0lite | some are completely dedicated, like stack pointer and thread local storage (even if not used) | 19:40 |
| Rhy0lite | and others are fixed for a particular sequence | 19:40 |
| Rhy0lite | so far David and Sven have removed the registers with fixed uses from the pool of managed registers | 19:40 |
| fijal | Rhy0lite: from our perspective bad register allocator would give you say 2x slowdowns and mostly in cases that are otherwise fast | 19:41 |
| zain (~textual@66.175.91.194) joined #pypy. | 19:41 | |
| Rhy0lite | is 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 |
| Rhy0lite | can the pypy RA handle allocating around that | 19:41 |
| fijal | yes | 19:42 |
| fijal | although it won't try to be very smart about that | 19:42 |
| Rhy0lite | or must it have the register in the managed pool for the entire sequence? | 19:42 |
| fijal | as in you can ask for a specific register, but it won't try to keep it free in advance | 19:42 |
| fijal | no, there is an argument selected_reg=xxx for most functions | 19:42 |
| fijal | or there are already args for groups of registers | 19:42 |
| fijal | Rhy0lite: we would end up with no registers on x86_32 that way :) | 19:43 |
| Rhy0lite | IA-32 gets what it deserves! :-) | 19:43 |
| fijal | so there is selected_reg=xxx and there is need_lower_byte=yyy I think | 19:43 |
| fijal | the latter meaning | 19:44 |
| fijal | "I want a register, but not arbitrary one, one from the group" | 19:44 |
| fijal | right now there is just one group, but feel free to create new ones | 19:44 |
| fijal | Rhy0lite: generally the register allocator interface has to be revamped at some point | 19:45 |
| Rhy0lite | okay | 19:45 |
| Rhy0lite | in one case I need a specific reg | 19:46 |
| Rhy0lite | in another case, I just need a scratch reg from managed regs | 19:46 |
| Rhy0lite | I don't know why get_scratch_reg() was not implemented for PPC | 19:46 |
| gtaylor (~gtaylor@68-115-251-182.static.gnvl.sc.charter.com) joined #pypy. | 19:48 | |
| fijal | don't ask me :) | 19:48 |
| fijal | so yes, seems the current API is just fine | 19:48 |
| nickik (~nick@194-29-23-82.static.cablecom.ch) left irc: Quit: Verlassend | 19:49 | |
| Rhy0lite | why shouldn't I ask you? you have an opinion about everything! ;-) | 19:49 |
| arigato | fijal: I translated a pypy-c on better-jit-hooks | 19:52 |
| arigato | and it fails tests from pypyjit/test_pypy_c | 19:52 |
| arigato | (on 32-bit) | 19:52 |
| arigato | (fails 48 of the 907 tests) | 19:53 |
| arigato | eh | 19:54 |
| arigato | sorry, ignore me :-) | 19:54 |
| arigato | it fails the test_pypy_c of some old checkout of "default" :-/ | 19:54 |
| arigato | yes, it works fine. merging time :-) | 19:55 |
| fijal | :) | 19:56 |
| mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 244 seconds | 19:56 | |
| arigato | can you do the merge after all? it has no conflict, but you know better what to write as a summary in the checkin message | 19: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 about | 20:01 | |
| Alex_Gaynor | amaury_: it's about allowing you to write a python hook for when something is compiled by the JIT | 20:02 |
| amaury_ | to print low-level opcodes for example? | 20:03 |
| Alex_Gaynor | (or other events( | 20:03 |
| Alex_Gaynor | to print them, to test new optimizations, to use them in a performance analysis tool, whatever :) | 20:04 |
| fijal | I'll write a blog post | 20:09 |
| fijal | arigato: some details are not exposed | 20:09 |
| fijal | but they're "easy" | 20:09 |
| fijal | ok, I'll merge and write a post then | 20:09 |
| fijal | arigato: can you think about an interesting optimization? | 20:09 |
| fijal | that we don't have :) | 20:09 |
| amaury_ | I suppose inner functions should not be used in jit hooks | 20:11 |
| Alex_Gaynor | amaury_: you mean a closure? | 20:11 |
| Alex_Gaynor | why not | 20:11 |
| amaury_ | otherwise they may generate another jit code | 20:11 |
| amaury_ | and call the hooks recursively | 20:11 |
| Alex_Gaynor | no, the JIT will compile it, but the hooks aren't called recursively | 20:11 |
| fijal | amaury_: yes :) | 20:12 |
| fijal | amaury_: 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 out | 20:13 | |
| fijal | there is a recursion control check | 20: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 seconds | 20: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 | |
| kenaan | 12mattip numpypy-axisops 115463174c165f 15/pypy/module/micronumpy/: separate AxisReduceSignature, does not solve bug | 20:35 |
| mattip (~chatzilla@bzq-79-182-116-64.red.bezeqint.net) joined #pypy. | 20:35 | |
| fijal | mattip: hi | 20:36 |
| mattip | fijal: rumor has it you're bored. | 20:36 |
| fijal | hehehe :) | 20:36 |
| mattip | Well, maybe it's just me spreading rumors :) | 20:36 |
| fijal | I was thinking about taking it over if you dont' mind | 20:36 |
| fijal | but I can explain what's wrong right now | 20:36 |
| mattip | both. Take it over and tell me what's wrong. | 20:37 |
| kenaan | 12fijal numpypy-axisops 11b906cc4a9740 15/pypy/module/micronumpy/interp_ufuncs.py: reindent the docstring | 20:37 |
| kenaan | 12fijal 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 |
| kenaan | 12fijal better-jit-hooks 114d9eda6790fd 15/: close merged branch | 20:37 |
| kenaan | 12fijal numpypy-axisops 119b14783334f5 15/pypy/module/micronumpy/: merge | 20:37 |
| fijal | wuhu! | 20:38 |
| fijal | mattip: ok | 20:38 |
| fijal | mattip: so, first of all signature should not call get_concrete | 20:38 |
| fijal | this is pointless | 20:38 |
| fijal | signature represents a structure that gets compiled to assembler | 20:38 |
| mattip | wow, did you just commit better-jit-hooks? cool! | 20:38 |
| mattip | (sorry, I'll listen now) | 20:38 |
| fijal | yes, will write a blog post tonight | 20:38 |
| fijal | if you call get_concrete signature no longer represents the assembler | 20:39 |
| Alex_Gaynor | fijal: cool, translating and will start on -client soon | 20:39 |
| fijal | cool | 20:39 |
| fijal | Alex_Gaynor: add hooks/let me know what you neded | 20:39 |
| mattip | the structure hold things inside it: array storage and iter. | 20:39 |
| Alex_Gaynor | fijal: uh, btw Field.__init__ why mess with __dict__, just do a normal assignment? | 20:39 |
| fijal | Alex_Gaynor: haha :) | 20:42 |
| fijal | mattip: you mean the signature? | 20:42 |
| fijal | Alex_Gaynor: feel like trying or should I tell you? | 20:42 |
| Alex_Gaynor | fijal: is it to avoid a property? | 20:43 |
| mattip | hg blame on signature: guess who put guess concrete into _invent_array_numbering, _create_iter? | 20:43 |
| fijal | there is __getattribute__ somewhere down | 20:43 |
| fijal | mattip: no, this is different :) | 20:44 |
| fijal | I guess no longer necessary | 20:44 |
| dracman (~draco@212.255.32.178) left irc: Quit: Konversation terminated! | 20:44 | |
| fijal | mattip: this is the case where you get array signature (because something has forced result) | 20:44 |
| fijal | but you know what get_concrete() would do | 20:44 |
| fijal | it definitely would not run the assembler | 20:44 |
| mattip | ok, with you so far. | 20:45 |
| fijal | I guess I could have created a ForcedSignature | 20:45 |
| fijal | or let me maybe document that | 20:45 |
| mattip | But I am also calling it in _create_iter | 20:46 |
| fijal | yes | 20:47 |
| kenaan | 12fijal default 1130e3fdc262ca 15/pypy/module/micronumpy/signature.py: document | 20:47 |
| fijal | but note that this is not create_iter of Call2 | 20:47 |
| fijal | this is create_iter of ArraySignature | 20:47 |
| fijal | which means we matched somehow against a structure that has a concrete array in this place | 20:47 |
| fijal | that's why you run into recursive problem | 20:48 |
| mattip | right. got it. | 20:48 |
| fijal | mattip: 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 | |
| fijal | you can't without obscuring or code duplication | 20:49 |
| fijal | but it's actually good | 20:49 |
| fijal | remember that the structure represents kind of assembler you want to compile | 20:50 |
| fijal | so it's not that relevant if you use: | 20:50 |
| fijal | a + b | 20:50 |
| fijal | or a + (c * d) | 20:50 |
| fijal | where c * d was forced | 20:50 |
| fijal | you still want to reuse the assembler | 20:50 |
| mattip | yes, I am a Call2 signature after all. | 20:50 |
| mattip | so no "concreting" the array at this point. | 20:51 |
| fijal | yes, you want to keep it virtual | 20:53 |
| fijal | Alex_Gaynor: we don't have an answer for the reference counting issue, do we? :/ | 20:53 |
| Alex_Gaynor | fijal: for subexpressions you mean? | 20:53 |
| Alex_Gaynor | fijal: I don't have one yet, but I'll chat with david about it tomorrow night | 20:54 |
| mattip | then where should the actual AxisIterator iterator be created? | 20:54 |
| fijal | mattip: it depends what your goal is | 20:55 |
| fijal | if your goal is to force the array, there is absolutely no point in having the Reduce class at all | 20:56 |
| fijal | you can as well write it in a function and be happy | 20:56 |
| fijal | if you want to be smarter (Which I think we do) | 20:56 |
| fijal | then you have to create an AxisIterator per concrete array you're actually using | 20:57 |
| fijal | think about it | 20:57 |
| Action: mattip thinking, need to connect the concrete array and a iter, hmm tastes like a signature | 20:58 | |
| mattip | in compute? | 21:00 |
| lizardo (~lizardo@189.2.128.130) left irc: Quit: Leaving | 21:00 | |
| Trundle (~andy@python/site-packages/trundle) left irc: Ping timeout: 240 seconds | 21:00 | |
| gtaylor_ (~gtaylor@68-115-251-182.static.gnvl.sc.charter.com) joined #pypy. | 21:00 | |
| fijal | well | 21:00 |
| fijal | there are various options | 21:00 |
| gtaylor (~gtaylor@68-115-251-182.static.gnvl.sc.charter.com) left irc: Quit: Konversation terminated! | 21:00 | |
| fijal | either you want to do that | 21:00 |
| fijal | or you want to just compute specific items from the underlaying array | 21:01 |
| Shrill (~shrill@ip98-167-237-72.ph.ph.cox.net) joined #pypy. | 21:02 | |
| fijal | generally you need to have an AxisIterator | 21:02 |
| fijal | but AxisIterator won't necesarilly correspond to an array | 21:02 |
| fijal | it's just a way to control the left hand side of the assignment | 21:02 |
| fijal | mattip: I'll write it, if you want | 21:03 |
| mattip | yes please | 21:03 |
| fijal | ok | 21:04 |
| mattip | I have learned alot but it's time to move on. | 21:04 |
| fijal | ok | 21:04 |
| fijal | mikefc: ping? | 21:04 |
| mattip | I'll just remove an assert I put in for debugging that breaks translation. | 21:05 |
| fijal | mattip: 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 | |
| mattip | ok. | 21:07 |
| fijal | mattip: is there anything else you would like working btw? | 21:08 |
| EvilBastid (~fedal@ip98-167-237-72.ph.ph.cox.net) left irc: Client Quit | 21:08 | |
| mattip | Christmas 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 Quit | 21:08 | |
| Shrill (~shrill@ip98-167-237-72.ph.ph.cox.net) left irc: Quit: Leaving | 21:08 | |
| Fedal (~fedal@ip98-167-237-72.ph.ph.cox.net) joined #pypy. | 21:09 | |
| mattip | I thought once I had axis iterators, I could make dot() work for multidimensional arrays | 21:09 |
| mikefc_ (9665bcc5@gateway/web/freenode/ip.150.101.188.197) joined #pypy. | 21:10 | |
| mattip | mreging frompyfunc would mean we could get things like round, floor, ceil to work from app level. | 21:11 |
| mattip | merging* | 21:11 |
| fijal | merging? | 21:11 |
| fijal | is it done? | 21:11 |
| fijal | well | 21:12 |
| fijal | frompyfunc always returns an array of objects | 21:12 |
| fijal | in numpy | 21:12 |
| fijal | what do we want? | 21:12 |
| Fedal (~fedal@ip98-167-237-72.ph.ph.cox.net) left irc: Client Quit | 21:13 | |
| mattip | I want round, floor, ceil | 21:14 |
| mattip | I could implement them as more descr_ ufuncs | 21:14 |
| fijal | that's probably better | 21:15 |
| fijal | frompyfunc is just a horrible unusable API | 21:16 |
| fijal | the way it is in numpy | 21:16 |
| Alex_Gaynor | fijal: yeah we discussed this, we agreed on numpypy.pypy.frompyufunc which takes a lambda *dtypes: dtype method which computes the result dtype | 21:18 |
| fijal | makes sense to me | 21:18 |
| fijal | and numpy.frompyfunc should raise a warning? | 21:18 |
| fijal | or an exception "don't use" | 21:18 |
| Alex_Gaynor | no, we should just not implement it | 21:18 |
| fijal | Alex_Gaynor: do we have a plan for arrays of objects? | 21:18 |
| Alex_Gaynor | since I don't think we'll ever do object arrays | 21:18 |
| Alex_Gaynor | fijal: ATM, no, do we have a usecase? | 21:19 |
| fijal | we should give a hint that there is a function that does what you want :) | 21:19 |
| fijal | at least | 21:19 |
| Alex_Gaynor | fijal: I mean, in theory you can do something with the new GC hook arigato wrote | 21:19 |
| fijal | is there a usecase? | 21:19 |
| Alex_Gaynor | providing a custom trace function for arrays, in practice I don't know if it's worth it | 21:19 |
| Alex_Gaynor | fijal: no idea | 21:19 |
| fijal | def frompyfunc(*args): raise NotImplementedError("Read the docstring of numpypy.pypy.frompyfunc isntead") | 21:19 |
| fijal | no, a usecase for object arrays | 21:20 |
| fijal | I heavily dislike _numpypy.pypy namespace btw | 21:20 |
| Alex_Gaynor | why? | 21:20 |
| lambacck (~chris@d24-150-124-118.home.cgocable.net) joined #pypy. | 21:20 | |
| mattip | fwiw I'm happy to kill the numpypy-frompyfunc branch | 21:22 |
| mattip | and reimplement it when there's a usecase | 21:22 |
| mattip | for frompyfunc | 21:22 |
| fijal | mattip: cool | 21:24 |
| fijal | mattip: kill it then :) | 21:24 |
| fijal | Alex_Gaynor: because it's a lot of typing and contains pypy twice | 21:24 |
| fijal | now that we have _numpypy | 21:24 |
| fijal | we can just have _numpypy.frompyfunc | 21:24 |
| fijal | and don't expose it via numpypy | 21:24 |
| Action: mattip confused. Was the death sentence stayed, at the price of a lambda dtypes function argument? | 21:26 | |
| fijal | mattip: it's a different thing | 21:28 |
| fijal | I mean in a different namespace | 21:28 |
| fijal | what's the branch status anyway? | 21:28 |
| Action: mattip checking | 21:31 | |
| fijal | Alex_Gaynor: someone should review hashes one day | 21:32 |
| fijal | they're sort of arbitrary | 21:32 |
| fijal | in signature.py | 21:32 |
| mattip | last 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 |
| fijal | mikefc_: 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 future | 21:47 |
| mikefc_ | Alex_Gaynor: I'll resubmit that patch with explicit relative imports | 21:48 |
| fijal | mikefc_: no | 21:48 |
| fijal | mikefc_: you messed stuff up :) | 21:48 |
| mikefc_ | ? | 21:48 |
| fijal | if you write a test in lib_pypy this *is* an applevel test | 21:48 |
| fijal | hm | 21:48 |
| fijal | actually, good point | 21:48 |
| fijal | mikefc_: scratch that | 21:49 |
| fijal | Alex_Gaynor: I claim it is, otherwise where? | 21:49 |
| fijal | module/micronumpy? | 21:49 |
| amaury_ | We have pypy/module/test_lib_pypy/ | 21:49 |
| amaury_ | for example, pwd.py is tested there | 21:49 |
| fijal | ah ok | 21: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 |
| fijal | mikefc_: so pypy/module/test_lib_pypy/numpypy | 21:50 |
| mikefc_ | ah | 21:50 |
| Action: mikefc_ looks at the dir tree | 21: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 |
| fijal | mikefc_: then they can be in lib_pypy | 21:52 |
| fijal | but 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 |
| fijal | AppTests are specific | 21:54 |
| fijal | or special | 21:54 |
| fijal | they run on untranslated interpreter | 21:54 |
| mikefc_ | right. so anything in lib_pypy is really not an AppTest. | 21:55 |
| mikefc_ | no? am I confused? | 21:57 |
| fijal | do you have AppTests there? | 21:58 |
| fijal | they'll be named AppTestXxx | 21:58 |
| fijal | :) | 21:58 |
| mikefc_ | well , they're only named that way because I copied the testing code from the mixed module. | 21:58 |
| fijal | no | 21:58 |
| mikefc_ | class AppTestFromNumeric(BaseNumpyAppTest): | 21:58 |
| fijal | their naming is significant | 21:58 |
| mikefc_ | dammit! | 21:58 |
| fijal | if the name of the test starts from AppTest it means stuff | 21:59 |
| fijal | try renaming it and see what occurs :) | 21:59 |
| fijal | meh :/ | 22:00 |
| mikefc_ | "no module names numpypy" | 22:00 |
| fijal | mikefc_: see? | 22:00 |
| fijal | now they're run on the host interpreter | 22:00 |
| fijal | there is magic involved | 22:00 |
| mikefc_ | so... I should move them to the moduel/test_lib_pypy dir? | 22:01 |
| fijal | yes | 22:01 |
| mikefc_ | ok. now... | 22:01 |
| fijal | lib_pypy should not import stuff from outside lib_pypy | 22:02 |
| fprimex (~fprimex@brent-macbook.sc.fsu.edu) left irc: Quit: http://www.fprimex.com | 22:02 | |
| fijal | precisely because you might not have it | 22: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 throb | 22:02 | |
| fijal | how smart do I want to be.... | 22:04 |
| fijal | mikefc_: either after translation or with crazy hacks or you have to convert them to apptests | 22:04 |
| fijal | I think it's fine to run them after translation for now | 22: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 havi | 22:12 |
| fijal | mikefc_: yes, they'll also automatically run after translation | 22:12 |
| fijal | this makes sense | 22:12 |
| fijal | say on a buildbot | 22:12 |
| fijal | and if we want to work on something, we port this particular one to apptest | 22: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 host | 22: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 seconds | 22:22 | |
| amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Ping timeout: 240 seconds | 22:24 | |
| dracman (~draco@212.255.32.178) joined #pypy. | 22:24 | |
| fijal | mikefc_: yes :) | 22:30 |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Quit: Leaving | 22:34 | |
| arigato (~arigo@adsl-89-217-33-163.adslplus.ch) left irc: Ping timeout: 252 seconds | 22:36 | |
| fijal | mattip: ping? | 22:36 |
| CIA-17 | 03mikefc 07roundup * 10#998/numpypy app level module layout fix (patch attached): | 22:36 |
| CIA-17 | A simple patch for the layout of the applevel numpypy module. Updated with Alex's | 22:36 |
| CIA-17 | suggestions. | 22:36 |
| CIA-17 | * move numpypy/fromnumeric.py to numpypy/core/ ... * 14https://bugs.pypy.org/issue998 | 22:36 |
| mattip | fijal: pong | 22:37 |
| fijal | mikefc_: can't you just get commit privs and work on a branch btw? | 22:37 |
| fijal | mattip: would you mind if I throw most of this stuff away? ;-) | 22:37 |
| mattip | of course not. The tests seem to be ok though. | 22:37 |
| fijal | yes, sure | 22:38 |
| fijal | but not performance wise | 22:38 |
| fijal | I mean right now it tries to be lazy but it's not | 22:38 |
| mikefc_ | fijal: how do i get commit privs? I guess a bitbucket account would be a good start. | 22:38 |
| fijal | I think I'll make it simply non-lazy | 22:38 |
| fijal | mikefc_: yes, and ask here | 22:38 |
| fijal | tell me your bitbucket name | 22:38 |
| fijal | mikefc_: you volunteer to have one pretty much | 22:38 |
| mikefc_ | just signed up. username 'mikefc' | 22:39 |
| Action: mikefc_ dreads learning another versioning system :( | 22:40 | |
| fijal | mikefc_: make sure your real name is there btw | 22:40 |
| fijal | mikefc_: where are you from btw? (I mean mostly timezone) | 22:42 |
| oakdog8 (~oakdog8@telsasoft-host81.dsl.visi.com) left irc: Ping timeout: 240 seconds | 22:42 | |
| mikefc_ | Brisbane, Austrlia. GMT+10 | 22:42 |
| fijal | cool | 22:42 |
| fijal | I think we have contributors really from all over the world | 22:42 |
| fijal | mikefc_: I was working against australians not so long ago btw ;-) | 22:43 |
| mattip | fijal: why wasn't it lazy, I thought that was the whole point of the virtual array and signature | 22:44 |
| mattip | I really must have missed the mark | 22:45 |
| fijal | mattip: because you wrote it so it forces it | 22:45 |
| fijal | yes :) | 22:45 |
| fijal | if something is lazy it means that you don't have to force it | 22:45 |
| fijal | so for example (assuming we were to implement lazy reduce) | 22:45 |
| fijal | sum(a, axis=1) + sum(a, axis=2) | 22:46 |
| fijal | would not create 2 intermediates | 22:46 |
| fijal | that is implemented by having a loop in +, and then using eval | 22:46 |
| fijal | so eval should return one value | 22:46 |
| fijal | which itself requires a loop - agreed | 22:46 |
| fijal | but only over the dimension where it was computed | 22:46 |
| fijal | so in principle you don't have the left array and the right array | 22:47 |
| fijal | you only have the right array (or values array) and the result you have to return | 22:47 |
| fijal | mattip: do I make any sense? | 22:49 |
| mattip | I thought I was on the right track to do that. | 22:49 |
| mattip | But it's hard to discuss with this irc internet lag | 22:49 |
| mattip | I mean | 22:50 |
| oakdog8 (~oakdog8@telsasoft-host81.dsl.visi.com) joined #pypy. | 22:50 | |
| fijal | mattip: ok, let me try to explain othewise | 22:50 |
| mattip | I had a ReduceSignature that definitely should not have had the get_concrete() | 22:50 |
| mattip | but did use the left and right as you said. | 22:51 |
| fijal | what sort of assembler would you like for sum(a, dim=1) + sum(a, dim=2) | 22:51 |
| mattip | yes, that kind of puts a chill on lazy evaluation. | 22:52 |
| mattip | If it was just (a+b)*(a-b) I could imagine the assembler. | 22:52 |
| mattip | hmm. | 22:52 |
| fijal | yes it's much easier to explain by challenging the listener instead of trying to explain how I see it :) | 22:53 |
| fijal | especially that I'm often wrong | 22:53 |
| asmeurer__ (~asmeurer@c-174-56-21-245.hsd1.nm.comcast.net) left irc: Quit: asmeurer__ | 22:53 | |
| mattip | I 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 |
| fijal | you can :) | 22:54 |
| fijal | but it won't be lazy how you think it would | 22:54 |
| fijal | mattip: FYI I just spent like an hour walking around the flat and thinking about it | 22:55 |
| mattip | let me guess | 22:55 |
| mattip | You could create some kind of operator that, say, for a given 2d array | 22:56 |
| mattip | would just calculate the sum of a particular column | 22:56 |
| fijal | yes good :) | 22:56 |
| fijal | that itself would be an assembler loop | 22:56 |
| fijal | and call it from the outer loop | 22:56 |
| fijal | I don't think we're quite ready to do that | 22:57 |
| mattip | I had a double-loop version a while ago | 22:57 |
| fijal | yes | 22:57 |
| fijal | but it wasn't the correct kind of double-loop | 22:57 |
| mattip | right. It was inside out. | 22:57 |
| fijal | because you would need to yield from the inner loop | 22:57 |
| fijal | no | 22:57 |
| fijal | because the outer loop is somewhere else | 22:58 |
| fijal | you don't know where yet | 22:58 |
| mattip | I still don't know where: how would the caller specify the loop to be called? | 22:58 |
| fijal | you would need to have the inner loop executed by eval | 22:58 |
| fijal | so eval would be called from the outer loop somewhere else | 22:59 |
| mattip | chunks? | 22:59 |
| fijal | in signature somehow | 22:59 |
| fijal | mattip: remember in eval we have the array | 22:59 |
| fijal | so it's not really a problem | 22:59 |
| fijal | anyway, can we shuffle this for "later" in terms of "performance optimizations"? | 22:59 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/773 | 23:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/201 | 23:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/1010 | 23:00 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64-2/builds/29 | 23:00 |
| fijal | mattip: ? | 23:00 |
| mattip | "correct, then fast later" | 23:00 |
| fijal | yes, precisely | 23:00 |
| fijal | mattip: note that this is already fast | 23:00 |
| fijal | just not "faster" :) | 23:00 |
| mattip | in most use cases that I can think of, you eventually want to do all the iterations anyway. | 23:01 |
| fijal | yes | 23:01 |
| fijal | but you're faster if you avoid allocating and walking the intermediate | 23:01 |
| fijal | because you trash caches | 23:02 |
| mattip | yes and no. | 23:02 |
| fijal | ? | 23:03 |
| mattip | non-lazy you run along the entire array sequentially | 23:03 |
| mattip | (unless you are using the "wrong" axis) | 23:04 |
| mattip | no? | 23:04 |
| dmalcolm (david@nat/redhat/x-kbkahqvpbgiyomza) left irc: Read error: Operation timed out | 23:04 | |
| mattip | I had a version that was not really creating an intermediate, but using the actual result array | 23:05 |
| mattip | ahh, hang on, forget all that. | 23:06 |
| mattip | It just seemed for a minute that by using an intermediate | 23:06 |
| mattip | for large input arrays | 23:06 |
| mattip | you could actually improve cache coherance (sp?) | 23:07 |
| mattip | but maybe not. | 23:07 |
| mattip | anyhow, I think I will be happier once this is out the door and into the wild | 23:09 |
| mattip | then someone else can make it faster | 23: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_Gaynor | fijal: ping | 23:13 |
| srin (srin@gateway/shell/devio.us/x-fzmywjuxszghmfeg) left irc: Client Quit | 23:13 | |
| mattip | hey, what happened to math.round? | 23:13 |
| mattip | or is it a problem with x86 and 32 bit linux? | 23:13 |
| Action: Rhy0lite -> home | 23:14 | |
| Rhy0lite (dje@nat/ibm/x-zipjjfrpjpmypzvj) left irc: Quit: Leaving | 23:14 | |
| mikefc_ | round is not in math (for whatever reason) | 23:17 |
| fijal | Alex_Gaynor: pong | 23:17 |
| Alex_Gaynor | fijal: nvm, I'm an idiot, I'll have round 1 of tracebin-client in 2 seconds | 23:18 |
| fijal | how does that prove you're an idiot? | 23:18 |
| fijal | it doesn't prove you're exceptionally smart either I guess | 23:18 |
| fijal | cool stuff ey? | 23:18 |
| fijal | :) | 23:18 |
| Alex_Gaynor | fijal: those two were unrelated :) | 23:18 |
| Alex_Gaynor | fijal: I'm an idiot because I forgot that the last section of a trace doesn't end in a label | 23:19 |
| fijal | ah :) | 23:19 |
| Alex_Gaynor | and I'll have round 1 in 2 seconds because I found that bug | 23:19 |
| fijal | there is stuff to slice and dice traces | 23:19 |
| fijal | feel free to reuse/refactor | 23:19 |
| fijal | I'm super proud about my hacks btw :) | 23:19 |
| Alex_Gaynor | fijal: 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 idea | 23:19 |
| fijal | you slice and dice on server side IMO | 23:19 |
| Alex_Gaynor | no, I want to do as much as possible on the client | 23:20 |
| fijal | requiring pypy checkout though defeats the point | 23:20 |
| Alex_Gaynor | you won't require a pypy checkout | 23:20 |
| fijal | Alex_Gaynor: remember one thing - the more you do on the client the less you can measure times | 23:20 |
| fijal | but if you're doing network you're kinda screwed anywya | 23:20 |
| fijal | or we need some way to actually remove the hooks times from counters or so | 23:21 |
| Alex_Gaynor | fijal: basically the idea is: hook just saves data, then after all execution you slice and dice and send over network | 23:21 |
| fijal | because it does not make sense | 23:21 |
| fijal | yes, good | 23:21 |
| fijal | but you need to get stats *at this point* | 23:21 |
| fijal | right? | 23:21 |
| Alex_Gaynor | fijal: ATM I'm being lazy and slicing and dicing in the hook | 23:21 |
| fijal | right, get_stats is not implemented | 23:21 |
| Alex_Gaynor | get_stats() is for later :) | 23:21 |
| Alex_Gaynor | ATM you can at least do traces compiled and traces aborted with hooks | 23:21 |
| fijal | also storing in memory might be prohibitevly expensive | 23:21 |
| fijal | (as uploading though) | 23:21 |
| Alex_Gaynor | yes, I'll think about buffering strategies later | 23:22 |
| Alex_Gaynor | one thing at a time | 23:22 |
| fijal | yes | 23:22 |
| Alex_Gaynor | fijal: anyway you can see my wonderful work here: https://bitbucket.org/alex_gaynor/tracebin-client/src | 23:22 |
| fijal | Alex_Gaynor: btw, please think from day one about poor soulds in africa and compress the stream :) | 23:22 |
| Alex_Gaynor | fijal: compressing is easy, just serialize and bz2. There's a stdlib for that! | 23:22 |
| fijal | Access denied | 23:22 |
| fijal | eh | 23:22 |
| Alex_Gaynor | eh, oh it's priavte | 23:23 |
| Alex_Gaynor | whoops | 23:23 |
| fijal | I guess I should log in as fijal instead of pypy | 23:23 |
| Alex_Gaynor | public now | 23:23 |
| fijal | but hey | 23:23 |
| antocuni | Alex_Gaynor: what is tracebin-client? | 23:23 |
| fijal | antocuni: our secret weapon :) | 23:23 |
| antocuni | whatever it does, I'm sure it's supercool :-) | 23:24 |
| Alex_Gaynor | antocuni: 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_Gaynor | antocuni: and it uses fijal's jithooks so it's all in memory | 23:24 |
| antocuni | oooh | 23:24 |
| antocuni | nice | 23:24 |
| Alex_Gaynor | now I have to go cook dinner, bbl | 23:24 |
| antocuni | why does it need jithooks? Can't it just use PYPYLOG? | 23:24 |
| fijal | antocuni: because jithooks are the future :) | 23:25 |
| kenaan | 12hager ppc-jit-backend 11a2005205886e 15/pypy/jit/backend/ppc/ppcgen/regalloc.py: remove unused code | 23:25 |
| kenaan | 12hager 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 |
| fijal | also would not work with -m without crazy hacks | 23:25 |
| antocuni | os.execve(sys.executable, ...) should work | 23:26 |
| antocuni | about jithooks, I'm not sure that they are preferable to the good old PYPYLOG if you just want to save the log | 23:26 |
| fijal | antocuni: yes they're | 23:30 |
| fijal | they're much easier to use | 23:30 |
| fijal | for starters | 23:30 |
| fijal | they also give you access to other stuff | 23:30 |
| antocuni | yes, but e.g. they screw the timings | 23:30 |
| fijal | you can write them in an efficient manner if you want to | 23:31 |
| fijal | creating a log screws the timing as well | 23:31 |
| antocuni | yes, but not as much as calling applevel hooks | 23:31 |
| fijal | [citation needed] | 23:31 |
| fijal | it's writing to disk for one | 23:31 |
| antocuni | ok, I don't feel like to argue about this right now :-) | 23:32 |
| fijal | good :) | 23:32 |
| fijal | jithooks give you few advantages | 23:32 |
| fijal | like it's much easier to find where the source is for one | 23:32 |
| fijal | you can selectively choose which ones are you interested in | 23:33 |
| antocuni | true | 23:33 |
| fijal | for example right now it's a little nightmare to select loops which are from the particular piece of code | 23:33 |
| fijal | I just think that they're more flexible | 23:33 |
| fijal | and I don't want to add finish_once any more | 23:34 |
| fijal | sort of hacks | 23:34 |
| antocuni | that's obvious | 23:34 |
| antocuni | what is finish_once? | 23:34 |
| fijal | the thing called on assembler just before the interpreter shutdown | 23:34 |
| fijal | so you can dump counters | 23:34 |
| fijal | antocuni: let's put it that way - I had quite a lot of issues with logs | 23:35 |
| antocuni | ok :-) | 23:35 |
| fijal | like jitviewer crashing because someone put a coma in code description | 23:35 |
| fijal | or someone made a typo in the way assembler address is dumped | 23:35 |
| fijal | (those are all real examples) | 23:35 |
| fijal | and armin constantly complaining "jitviewer never works" | 23:35 |
| fijal | so I guess a slightly more robust solution would not *really* hurt | 23:36 |
| fijal | and if you care about timings you should run without logging anyway | 23:36 |
| fijal | antocuni: jit-backend-counter makes our smallest possible loop quite a lot slower for example | 23:36 |
| fijal | antocuni: do I have to continue or am I good? :) | 23:36 |
| fijal | note that I don't want you to agree or anything, I want you to know my point ;-) | 23:37 |
| mattip | <spam> getting my honor back | 23:37 |
| jimbaker (jbaker@canonical/jimbaker) joined #pypy. | 23:37 | |
| kenaan | 12mattip numpypy-frompyfunc 11f36626591158 15/: reimplement when there is a usecase | 23:37 |
| kenaan | 12mattip numpypy-is_contiguous 11e5b79894ad1e 15/: no one really wanted this in the first place | 23:37 |
| kenaan | 12mattip numpypy-ufuncs 11f57dcc7ac95e 15/pypy/module/micronumpy/: add ceil | 23:37 |
| mattip | </spam> | 23:37 |
| antocuni | fijal: you didn't have to convince me that jithooks are good, but thanks for the explanation :-) | 23:38 |
| fijal | antocuni: explanation is mostly really how logging is horrible and unflexible :/ | 23:38 |
| fijal | and also requiring retranslation at single tweak | 23:39 |
| gmcabrita (gmc@slackwa.re) left #pypy. | 23:39 | |
| fijal | while I hope that some of the logic will stay applevel now | 23:39 |
| mattip (chatzilla@bzq-79-182-116-64.red.bezeqint.net) left #pypy. | 23:39 | |
| antocuni | fijal: logging has e.g. the advantage which can work for all the rpython vms | 23:39 |
| squiddy (~squiddy@g224197029.adsl.alicedsl.de) left irc: Quit: Leaving | 23:40 | |
| JaRoel|4d (~jaroel|4d@82.161.43.49) left irc: Remote host closed the connection | 23:41 | |
| Action: antocuni off | 23:43 | |
| antocuni | bye | 23:43 |
| fijal | well, hooks as well | 23:44 |
| whitelynx|work (~whitelynx@63.241.75.144) left irc: Quit: Ex-Chat | 23:44 | |
| fijal | not that I care... | 23:44 |
| fijal | antocuni: logging is there to stay btw | 23:45 |
| antocuni (~antocuni@host157-123-dynamic.2-87-r.retail.telecomitalia.it) left irc: Remote host closed the connection | 23:45 | |
| --- Thu Jan 12 2012 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!