| pyrony (~epic@office1.klout.com) left irc: | 00:02 | |
| dgl (~dgl@109.86.165.231) joined #pypy. | 00:05 | |
| ltbarcly (~Adium@67.228.133.35-static.reverse.softlayer.com) left irc: Ping timeout: 248 seconds | 00:10 | |
| Trundle (~andy@python/site-packages/trundle) left irc: Remote host closed the connection | 00:26 | |
| asabil (~asabil@48.249.16.62.customer.cdi.no) left irc: Read error: Operation timed out | 00:26 | |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) joined #pypy. | 00:37 | |
| daniloaf (~daniloaf@150.165.63.86) left irc: Quit: Saindo | 00:49 | |
| etrepum (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 248 seconds | 00:51 | |
| derdon (~derdon@p54A6D919.dip.t-dialin.net) left irc: Ping timeout: 276 seconds | 01:00 | |
| derdon (~derdon@p54A6D919.dip.t-dialin.net) joined #pypy. | 01:03 | |
| aat (~aat@rrcs-184-75-54-130.nyc.biz.rr.com) left irc: Quit: Computer has gone to sleep. | 01:30 | |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) left irc: Quit: Computer has gone to sleep. | 01:32 | |
| dgl (~dgl@109.86.165.231) left irc: Quit: Leaving... | 01:34 | |
| derdon (~derdon@p54A6D919.dip.t-dialin.net) left irc: Ping timeout: 248 seconds | 01:41 | |
| derdon (~derdon@p54A6D919.dip.t-dialin.net) joined #pypy. | 01:44 | |
| derdon (~derdon@p54A6D919.dip.t-dialin.net) left irc: Remote host closed the connection | 01:49 | |
| derdon (~derdon@p54A6D919.dip.t-dialin.net) joined #pypy. | 01:49 | |
| Nick change: Varriount -> Varraway | 01:53 | |
| whyking (~quassel@ip68-14-22-39.ri.ri.cox.net) left irc: Remote host closed the connection | 01:53 | |
| derdon (~derdon@p54A6D919.dip.t-dialin.net) left irc: Ping timeout: 276 seconds | 01:54 | |
| mcfletch (~mcfletch@CPE0014bf07ffd2-CM001ac30d4aca.cpe.net.cable.rogers.com) joined #pypy. | 01:58 | |
| nettok (~quassel@200.119.190.80) joined #pypy. | 01:58 | |
| Nick change: Varraway -> Varriount | 02:10 | |
| Nick change: Varriount -> Varraway | 02:11 | |
| nettok (~quassel@200.119.190.80) left irc: Remote host closed the connection | 02:19 | |
| nettok (~quassel@200.119.190.80) joined #pypy. | 02:19 | |
| nettok (~quassel@200.119.190.80) left irc: Client Quit | 02:23 | |
| nettok_ (~quassel@200.119.190.80) joined #pypy. | 02:23 | |
| bobbyz (~bobbyz@12.131.26.130) left irc: Ping timeout: 246 seconds | 02:24 | |
| diffoperator (cb6ef315@gateway/web/freenode/ip.203.110.243.21) joined #pypy. | 02:30 | |
| mcfletch (~mcfletch@CPE0014bf07ffd2-CM001ac30d4aca.cpe.net.cable.rogers.com) left irc: Read error: Connection reset by peer | 02:35 | |
| bobbyz (~bobbyz@c-24-14-151-193.hsd1.il.comcast.net) joined #pypy. | 02:36 | |
| mcfletch (~mcfletch@CPE0014bf07ffd2-CM001ac30d4aca.cpe.net.cable.rogers.com) joined #pypy. | 02:52 | |
| mcfletch (~mcfletch@CPE0014bf07ffd2-CM001ac30d4aca.cpe.net.cable.rogers.com) left irc: Client Quit | 02:55 | |
| verte (~verte@python/site-packages/verte) left irc: Quit: ~~~ Crash in JIT! | 02:55 | |
| etrepum (~bob@c-67-180-34-190.hsd1.ca.comcast.net) joined #pypy. | 03:05 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) joined #pypy. | 03:24 | |
| cafesofie (~cafesofie@ool-4a5a6ee5.dyn.optonline.net) left irc: Remote host closed the connection | 03:33 | |
| qbproger (~qbproger@184.91.177.52) left irc: Remote host closed the connection | 03:39 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) left irc: Quit: Ex-Chat | 04:19 | |
| zrbecker (~zrbecker@ip98-164-227-211.oc.oc.cox.net) joined #pypy. | 04:41 | |
| lac (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Read error: Connection reset by peer | 04:44 | |
| lac (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy. | 04:46 | |
| nettok_ (~quassel@200.119.190.80) left irc: Ping timeout: 248 seconds | 04:51 | |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) joined #pypy. | 05:18 | |
| ahmed-tux (~kvirc@41.140.47.12) left irc: Ping timeout: 246 seconds | 05:28 | |
| ahmed-tux (~kvirc@41.140.44.4) joined #pypy. | 05:41 | |
| mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 276 seconds | 05:50 | |
| sakesun (~sakesun@ppp-124-121-106-92.revip2.asianet.co.th) joined #pypy. | 05:53 | |
| antocuni (~antocuni@host188-86-dynamic.7-79-r.retail.telecomitalia.it) joined #pypy. | 05:55 | |
| verte (~verte@python/site-packages/verte) joined #pypy. | 06:08 | |
| kleptog (~kleptog@86.93.96.92) joined #pypy. | 06:27 | |
| antocuni | hi | 06:30 |
|---|---|---|
| kleptog | hoi | 06:30 |
| verte | Hi Anto! | 06:30 |
| kleptog | is afa == amuray? | 06:30 |
| antocuni | yes | 06:30 |
| kleptog | ok | 06:32 |
| kleptog | thanks | 06:32 |
| verte (~verte@python/site-packages/verte) left irc: Ping timeout: 258 seconds | 06:43 | |
| verte (~verte@python/site-packages/verte) joined #pypy. | 06:43 | |
| fijal | hi | 06:46 |
| antocuni | hi maciek | 06:48 |
| antocuni | pff, "hg pull failed" for nightly tests :-( | 06:48 |
| fijal | did it? | 06:49 |
| fijal | it run some | 06:49 |
| antocuni | ah no | 06:49 |
| antocuni | it's old | 06:49 |
| antocuni | I think that the summary page should start with all the "H" for old days turned on | 06:50 |
| fijal | I think it should not :) | 06:50 |
| kenaan | 12fijal default 113ecefd7254ef 15/pypy/rlib/rsre/test/test_zjit.py: fix the test | 06:51 |
| kenaan | 12fijal default 11661e61aa9cf2 15/: merge | 06:51 |
| fijal | antocuni: can we remove test_pypy_c now? | 06:51 |
| fijal | or does it merely run test_pypy_c_new? | 06:51 |
| antocuni | fijal: why not? Is it so important to know which tests failed 5 days ago? | 06:51 |
| antocuni | fijal: no, there are still tests which needs to be ported to test_pypy_c_new | 06:51 |
| fijal | ok | 06:52 |
| antocuni | even a lot of those, that's why I didn't feel like finishing the work :) | 06:52 |
| Action: antocuni should do it at some point | 06:52 | |
| fijal | what with those that are repeats | 06:53 |
| fijal | ? | 06:53 |
| antocuni | you mean the tests which have already been ported to test_pypy_c_new? | 06:54 |
| fijal | yes | 06:54 |
| antocuni | yes, I think we can individually kill thos | 06:54 |
| antocuni | those | 06:54 |
| fijal | cause we got double failures | 06:55 |
| fijal | one harder to understand than other | 06:55 |
| antocuni | I hope that the one in test_pypy_c is harder :-) | 06:56 |
| fijal | :] | 06:56 |
| kleptog (~kleptog@86.93.96.92) left irc: Ping timeout: 248 seconds | 06:58 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy. | 07:01 | |
| kenaan | 12antocuni default 1181e98ec04e5d 15/pypy/module/pypyjit/test/test_pypy_c.py: kill all these tests, which have already been ported to test_pypy_c_new | 07:03 |
| verte (~verte@python/site-packages/verte) left irc: Remote host closed the connection | 07:04 | |
| verte (~verte@python/site-packages/verte) joined #pypy. | 07:04 | |
| antocuni | yes, there are still 24 tests left in the old test_pypy_c | 07:05 |
| fijal | cool, thanks | 07:08 |
| fijal | I'll fix the failing one | 07:08 |
| fijal | (and unskip one) | 07:08 |
| antocuni | even more cool :-) | 07:08 |
| fijal | I wonder if we can have pypy run nightly translations | 07:09 |
| fijal | antocuni: how hard it is to fix all tests and release 1.5? | 07:11 |
| antocuni | no clue, I've not looked into the failing tests for a while | 07:12 |
| antocuni | I suppose that ctypes is a bit annoying | 07:12 |
| fijal | maybe we should? | 07:12 |
| fijal | yes, and distutils as well | 07:12 |
| antocuni | also, we should decide whether we want to include jitypes2 or not in 1.5 | 07:13 |
| antocuni | armin said he wants to review it before merging | 07:13 |
| fijal | what's the current status? | 07:14 |
| carljm | urg. i need to find some time to look at those failing distutils tests again (and the merge-stdlib branch) | 07:14 |
| fijal | carljm: hi | 07:15 |
| fijal | we didn't decide what to do with your branch did we? | 07:15 |
| fijal | or what's it's status anyway? | 07:15 |
| antocuni | fijal: it seems to be working, although the speedup is not as high as expected, because we need to allocate all the frames whenever we do an ffi call | 07:15 |
| carljm | fijal: status is i need to get back to it and figure out if it breaks anything or not | 07:15 |
| fijal | antocuni: and we do it because? | 07:16 |
| carljm | I was having confusing test-failures and trunk was a bit unstable during sprints so I wasn't sure if the failures were even my fault. | 07:16 |
| antocuni | fijal: because ffi calls are now call_release_gil, which has this effect | 07:16 |
| fijal | how call_release_gil forces frames? | 07:16 |
| antocuni | (because it might invoke callbacks) | 07:16 |
| fijal | yes, sure | 07:17 |
| fijal | how is different than call_may_force? | 07:17 |
| antocuni | fijal: they are not really forced, they are "just" allocated at the end of the loop | 07:17 |
| fijal | ok, but that has a solution | 07:18 |
| fijal | well, but those are virtual frames, not virtualizable frames, right? | 07:18 |
| antocuni | yes | 07:18 |
| fijal | do you happen to have exceptions? | 07:18 |
| fijal | handling of exceptions | 07:19 |
| fijal | because if not it's as simple as clearing the frame somewhere | 07:19 |
| fijal | in leave_frame or so | 07:19 |
| antocuni | actually, I don't know :-) | 07:20 |
| antocuni | what happens if you raise an exception inside a ctypes callback on CPython? | 07:20 |
| kenaan | 12fijal default 114be4cb558143 15/pypy/module/pypyjit/test_pypy_c/test_pypy_c_new.py: Unskip one test, keep one skipped until we merge quasi-immut fields and fix one 64bit test | 07:20 |
| kenaan | 12fijal default 117f8040abfc71 15/pypy/module/pypyjit/test/test_pypy_c.py: merge | 07:20 |
| fijal | it's caught, displayed and forgot | 07:20 |
| fijal | what else you can do? | 07:20 |
| fijal | anyway, I'm talking about different level of exceptions | 07:20 |
| antocuni | ah, you mean rpython exceptions | 07:21 |
| fijal | no | 07:21 |
| fijal | http://paste.pocoo.org/show/370820/ | 07:21 |
| fijal | this is the case for which you need to allocate this frame | 07:21 |
| antocuni | ok, but what has it to do with ffi calls? | 07:23 |
| fijal | that should be my question | 07:26 |
| fijal | if you don't do it you don't need to allocate the frame | 07:26 |
| fijal | find out why the reference survives and clear it then | 07:27 |
| fijal | call_release_gil has nothing to do with it | 07:27 |
| antocuni | uhm... what I can say is that before armin switched to call_release_gil, the frame was not created | 07:28 |
| antocuni | but maybe it's unrelated and there was some other change in between | 07:28 |
| fijal | it might be related | 07:32 |
| fijal | but it should not be a bit | 07:32 |
| fijal | I know, virtualrefs are working in strange ways | 07:32 |
| fijal | what I'm saying is that call_release_gil doesn't create a need for the frame to be allocated | 07:33 |
| fijal | if it does, it's accidental and should be addressed | 07:33 |
| antocuni | yes, makes sense | 07:33 |
| antocuni | I just did not investigate much | 07:33 |
| fijal | ok | 07:35 |
| fijal | need help? | 07:35 |
| fijal | well, in short all I'm saying is that it should not allocate the frame :) | 07:35 |
| fijal | so how does the trace look like? | 07:35 |
| antocuni | let me find an example | 07:37 |
| antocuni | fijal: this is the code | 07:39 |
| antocuni | http://paste.pocoo.org/show/370822/ | 07:39 |
| antocuni | and this is the trace: http://paste.pocoo.org/show/370823/ | 07:40 |
| fijal | p35 = new_with_vtable(19535888) | 07:42 |
| fijal | what's this? | 07:42 |
| antocuni | it's the virtualref | 07:42 |
| fijal | right | 07:43 |
| fijal | we don't even need this frame, it could be hidden ;-) | 07:43 |
| antocuni | hidden? | 07:43 |
| fijal | like not put on top of framestack | 07:44 |
| fijal | the way he hide frames of appcode | 07:44 |
| fijal | appexec | 07:44 |
| fijal | well, an obscure hack | 07:44 |
| antocuni | where is this hack, btw? | 07:45 |
| fijal | I'm not sure it even really prevents | 07:45 |
| fijal | anything | 07:46 |
| fijal | but there is hidden_applevel on code | 07:46 |
| fijal | (it could) | 07:46 |
| antocuni | ah, I see | 07:46 |
| antocuni | is it used to avoid to have them in the traceback | 07:47 |
| diffoperator (cb6ef315@gateway/web/freenode/ip.203.110.243.21) left irc: Ping timeout: 252 seconds | 07:47 | |
| fijal | yes | 07:48 |
| fijal | not sure if it's worth it, but then again we don't need them to be alive at the end of the loop | 07:49 |
| fijal | so it's a matter of careful cleaning of frame reference from *somewhere* | 07:49 |
| michaelh (c1beac85@gateway/web/freenode/ip.193.190.172.133) joined #pypy. | 08:02 | |
| Nick change: DasIch_ -> DasIch | 08:12 | |
| kirma | was the change for "branch unlikely taken" an assembler level hint or what? | 08:20 |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) left irc: Ping timeout: 246 seconds | 08:20 | |
| fijal | kirma: yop | 08:22 |
| fijal | didn't seem to work | 08:22 |
| kirma | assembler level hints are ignored by modern (intel) CPUs, I believe they are even in the random state they were left by previous branch predictor at that spot | 08:23 |
| kirma | also, branch direction (forward or backward) doesn't matter to the predictors nowadays if I remember right | 08:23 |
| kirma | only thing one can do is reduce amount of branches, and keep likely path executing in a "fall-through" manner, but I suppose those are pretty well taken care of with pypy jit... | 08:24 |
| kirma | some other architectures/microarchitectures might benefit from hinting, but intel core or newer certainly not. | 08:25 |
| fijal | I'm a bit afraid that our loops are too long | 08:26 |
| fijal | for branch predictors | 08:26 |
| kirma | I believe intel has thought out quite a bit before dropping branch predictor hinting from their hardware | 08:29 |
| kirma | when in doubt, first check http://www.agner.org/optimize/microarchitecture.pdf :) | 08:29 |
| fijal | well, yes | 08:29 |
| fijal | but they also usually have certain model in mind | 08:29 |
| kirma | true of course | 08:30 |
| kirma | I bet they also consider typical jvm/javascript JIT result code as a benchmark target | 08:30 |
| antocuni | probably not javascript benchmarks, they have been available only lately | 08:31 |
| antocuni | javascript JITs, I mean | 08:31 |
| asabil (~asabil@48.249.16.62.customer.cdi.no) joined #pypy. | 08:31 | |
| kirma | generating dynamic jumps could be much worse than having relatively large number of likely-not-taken conditional branches | 08:38 |
| kirma | if there are lots of them, or they are truly dynamic | 08:38 |
| fijal | we have lots of them | 08:40 |
| fijal | but they're very unlikely | 08:40 |
| fijal | all of them | 08:40 |
| fijal | or most | 08:40 |
| kirma | I've also felt despair of this... difficultatem facit doctrina | 08:43 |
| kirma | ignorance is bliss :) | 08:43 |
| jonanin (~jonanin@24-183-48-154.dhcp.mdsn.wi.charter.com) left irc: Ping timeout: 258 seconds | 08:44 | |
| antocuni | fijal: btw, even a blog post like "don't worry, we are working on pypy/numpy, but it takes time" would be useful, IMHO | 08:58 |
| antocuni | (re: your comment on the blog) | 08:59 |
| jonanin (~jonanin@24-183-48-154.dhcp.mdsn.wi.charter.com) joined #pypy. | 08:59 | |
| fijal | ok | 08:59 |
| fijal | I can even show some results | 08:59 |
| fijal | they're not as awesome though :) | 08:59 |
| antocuni | eh :-) | 08:59 |
| fijal | ok, I'll stop waiting for them to be more awesome | 08:59 |
| fijal | they can be 2x easily ;-) | 08:59 |
| antocuni | fijal: and you don't know how to make them better, or it's just that you didn't have time? | 09:00 |
| fijal | I was on holiday | 09:00 |
| fijal | to make them better is to use SSE | 09:00 |
| fijal | and I have a dayjob | 09:01 |
| fijal | it's kind of easy | 09:01 |
| antocuni | sure | 09:01 |
| fijal | but lots of work | 09:01 |
| antocuni | my question was "do you have a plan or not" | 09:01 |
| fijal | yeah | 09:01 |
| antocuni | cool | 09:01 |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 09:10 | |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) left irc: Client Quit | 09:11 | |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 09:13 | |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 09:18 | |
| Arnold (~Arnold@86.122.210.12) joined #pypy. | 09:18 | |
| asabil (~asabil@48.249.16.62.customer.cdi.no) left irc: Ping timeout: 276 seconds | 09:23 | |
| witulski (stupsi@fwstups.cs.uni-duesseldorf.de) left #pypy. | 09:30 | |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) joined #pypy. | 09:34 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Quit: Leaving | 09:44 | |
| efaust (~efaust@unaffiliated/efaust) joined #pypy. | 09:44 | |
| efaust (efaust@unaffiliated/efaust) left #pypy. | 09:45 | |
| verte (~verte@python/site-packages/verte) left irc: Ping timeout: 260 seconds | 09:52 | |
| squiddy (~squiddy@x027.wh17.tu-dresden.de) joined #pypy. | 09:54 | |
| verte (~verte@python/site-packages/verte) joined #pypy. | 09:58 | |
| voidspace_ (~voidspace@python/psf/voidspace) joined #pypy. | 10:08 | |
| voidspace (~voidspace@python/psf/voidspace) left irc: Quit: Uhm... gotta go | 10:08 | |
| Nick change: voidspace_ -> voidspace | 10:08 | |
| apoirier_away (~apoirier@sakura.nagare.org) joined #pypy. | 10:15 | |
| Nick change: apoirier_away -> apoirier | 10:15 | |
| antocuni | uhm, I wonder if using this could give any speedup to pypy | 10:30 |
| antocuni | http://google-opensource.blogspot.com/2011/04/introducing-cityhash.html | 10:30 |
| jcea_BT (~jcea@jabber.hst.ru) joined #pypy. | 10:31 | |
| ronny | antocuni: what for? | 10:31 |
| antocuni | ronny: the hashing functions for strings | 10:31 |
| Action: antocuni --> lunch | 10:31 | |
| fijal | easy to test :) | 10:32 |
| ronny | antocuni: looks only suitable for strings tho, and dont strings cache the hash anyway? | 10:32 |
| fijal | ronny: they do | 10:33 |
| Trundle (~andy@scc-wkit-clx-208-105.scc.kit.edu) joined #pypy. | 10:34 | |
| Trundle (~andy@scc-wkit-clx-208-105.scc.kit.edu) left irc: Changing host | 10:34 | |
| Trundle (~andy@python/site-packages/trundle) joined #pypy. | 10:34 | |
| lizardo (~lizardo@189.2.128.130) joined #pypy. | 10:35 | |
| kenaan | 12fijal out-of-line-guards-2 11bb74a3f1a9ae 15/pypy/jit/metainterp/quasiimmut.py: typo | 10:35 |
| fijal | eh | 10:45 |
| fijal | armin lied a bit | 10:45 |
| kenaan | 12fijal out-of-line-guards-2 11df9144938d0a 15/pypy/jit/metainterp/test/test_quasiimmut.py: write a failing test | 10:46 |
| cfbolz | antocuni: I fear that string hashing is very rare, most of the time it hits the cache | 10:48 |
| fijal | we can check how many times it's called | 10:49 |
| kenaan | 12fijal out-of-line-guards-2 11463f4df577de 15/pypy/jit/metainterp/test/test_quasiimmut.py: Write another failing test for missing piece of invalidating in the backend | 10:49 |
| fijal | it's easy by doing valgrind | 10:49 |
| fijal | you can't store the hash on char* | 10:49 |
| fijal | I wonder if a good benchmark can come out of this | 10:49 |
| cfbolz | fijal: you mean if you re-implement it in pure python? | 10:50 |
| fijal | "pypy is faster than c++" | 10:50 |
| cfbolz | no way | 10:50 |
| fijal | cfbolz: I meant a benchmark that shows our dictionaries are faster than c++ because we cache hashes | 10:50 |
| fijal | no? | 10:50 |
| cfbolz | ah | 10:50 |
| cfbolz | maybe | 10:50 |
| cfbolz | but well | 10:50 |
| cfbolz | apples and oranges | 10:51 |
| fijal | that's a valid usecase | 10:51 |
| fijal | yes and no | 10:51 |
| fijal | "how fast can you use a builtin dictionary" | 10:51 |
| fijal | is something pretty valid | 10:51 |
| verte | considering the way people worship STL, it would be interesting | 10:55 |
| squiddy (~squiddy@x027.wh17.tu-dresden.de) left irc: Remote host closed the connection | 10:56 | |
| fijal | cfbolz: we also win by the immutability of strings | 10:56 |
| fijal | but that's really our win | 10:57 |
| Trundle (~andy@python/site-packages/trundle) left irc: Remote host closed the connection | 11:34 | |
| Rhy0lite (~dje@nat/ibm/x-ibciptyegiabtcdp) joined #pypy. | 11:56 | |
| intgr_ (~ack@zombie.life.ee) joined #pypy. | 12:09 | |
| squiddy (~squiddy@x027.wh17.tu-dresden.de) joined #pypy. | 12:10 | |
| ousado | is that to say you can't do exactly the same thing in c++? | 12:10 |
| derdon (~derdon@p54A6EB22.dip.t-dialin.net) joined #pypy. | 12:11 | |
| fijal | ousado: not in STL at least | 12:12 |
| kenaan | 12fijal out-of-line-guards-2 116d4d86899596 15/pypy/jit/: Progress on out-of-line-guards-2. This is the poor-man's version, we can do better. * Record a guard ... | 12:12 |
| verte | sure you can. but it's effort. | 12:12 |
| intgr_ (~ack@zombie.life.ee) left irc: Remote host closed the connection | 12:12 | |
| verte | what you can't do is convince C++ people to pay for an extra int to store the precomputed hash! | 12:12 |
| fijal | verte: hey, mutable strings | 12:12 |
| intgr_ (~ack@zombie.life.ee) joined #pypy. | 12:12 | |
| Action: verte shudders | 12:13 | |
| intgr (~ack@zombie.life.ee) left irc: Ping timeout: 260 seconds | 12:13 | |
| fijal | ok, armin convinced me to do the simplest possible thing for out of line guards :) | 12:15 |
| fijal | 8G of RAM is awesome :) | 12:16 |
| whyking (~quassel@ip68-14-22-39.ri.ri.cox.net) joined #pypy. | 12:17 | |
| Da_Blitz | is there anyway to parallelize the initial build process and not the gcc compile? | 12:18 |
| antocuni | Da_Blitz: no, the initial phase of translation is inherently sequential | 12:19 |
| verte | there is not. | 12:19 |
| derdon (~derdon@p54A6EB22.dip.t-dialin.net) left irc: Remote host closed the connection | 12:19 | |
| Da_Blitz | in that case | 12:19 |
| Action: Da_Blitz adds another 8GB of ram to the list | 12:19 | |
| derdon (~derdon@p54A6EB22.dip.t-dialin.net) joined #pypy. | 12:19 | |
| fijal | well | 12:20 |
| fijal | not inherently, but with the GIL it's really hard to do something else | 12:20 |
| antocuni | fijal: well, annotation *is* sequential | 12:20 |
| ousado | yeah, the ugrade to 8G RAM is the best computer-related buy I ever did | 12:20 |
| fijal | antocuni: no, you have multiple pending blocks | 12:20 |
| antocuni | although with clever locks you could maybe parallelize it a bit | 12:21 |
| antocuni | yes ok | 12:21 |
| Da_Blitz | i just ahve a bunch of unused cores during compalation and unfortuantly a compile can use up to 4.5GB of ram | 12:21 |
| fijal | yes, there are mutable structures, true | 12:21 |
| Da_Blitz | will just upgrade the ram and do more translations at a time | 12:21 |
| antocuni | fijal: everything is parallelizable in some way or the other | 12:21 |
| antocuni | (sequentially is a special form of parallelization :-)) | 12:21 |
| fijal | antocuni: right, but translation is easier than a lot of other things | 12:21 |
| fijal | and harder than say raytracing | 12:22 |
| fijal | for example inlining and such is almost trivially parallelizable | 12:22 |
| Da_Blitz | out of intrest, how long does somthing like ./translate.py -O jit --make-jobs=9 ./targetpypystandalone.py --translationmodules take for you? | 12:22 |
| fijal | 30-40min on tannit I think | 12:23 |
| fijal | if you use pypy | 12:23 |
| Da_Blitz | i am, and that matches about what i am getting | 12:23 |
| Da_Blitz | i jsut saw mention of 20 minute translation times and i am now wondering if that info is out of date | 12:24 |
| Da_Blitz | i thought i had been doing somthing wrong | 12:24 |
| derdon (~derdon@p54A6EB22.dip.t-dialin.net) left irc: Ping timeout: 240 seconds | 12:24 | |
| fijal | annotation is taking a shitload of time these days | 12:24 |
| fijal | 55min on my laptop | 12:25 |
| Da_Blitz | cool so its not just me | 12:25 |
| verte | antocuni: it's really the opposite that is true. even if you generate each bit of output in parallel, as a big function of the input, the amount of time it takes for data to travel from source to destination makes it appear sequential. | 12:26 |
| Da_Blitz | one or two other quick questions while i am at it, does anyone know what the translation/build flags are for the interpreters on speed.pypy.org (for refrence) | 12:26 |
| Rhy0lite | do you assume you can write the output in parallel? | 12:26 |
| Da_Blitz | and is there a list of things done to package for a release | 12:26 |
| antocuni | Da_Blitz: I think that the standard time for a translation on tannit is ~2600 seconds, i.e. 43 minuts | 12:27 |
| antocuni | minutes | 12:27 |
| verte | antocuni: although there is a lot of parallelism there to extract, I think. (or, hope, because I've been working on extracting just that.) | 12:27 |
| antocuni | verte: are you talking in general or for the specific case of pypy translation? | 12:28 |
| fijal | Da_Blitz: -Ojit and yes | 12:28 |
| Da_Blitz | thanks and thanks | 12:28 |
| antocuni | Da_Blitz: re 4.5 GB of RAM | 12:28 |
| antocuni | by default, pypy reserves a fraction of the total ram available for its gc | 12:29 |
| Da_Blitz | thats peak usage during a translation | 12:29 |
| Da_Blitz | 64bit i7 box | 12:29 |
| antocuni | yes, but what I'm saying that you can translate it even with 4 GB of RAM | 12:30 |
| antocuni | and in that case, the peek usage is lower | 12:30 |
| antocuni | at the price of more frequent major collections | 12:30 |
| Da_Blitz | i tried running 2 builds in parralell and had the kernel OOM killer come in at one point | 12:30 |
| Da_Blitz | killed one build job | 12:30 |
| fijal | you have to pass GC flags by hand | 12:31 |
| fijal | otherwise it assumes it can have all the RAM | 12:31 |
| Da_Blitz | i actually use the RSS as a way to guage the status of the build job as it increases in a fairly liner manner | 12:31 |
| Da_Blitz | ah | 12:31 |
| verte | antocuni: in general | 12:31 |
| Da_Blitz | thats an intresting peice of info | 12:31 |
| Arnold (Arnold@86.122.210.12) left #pypy ("Leaving"). | 12:31 | |
| antocuni | Da_Blitz: you can try to use the PYPY_GC_MAX env variable | 12:32 |
| Da_Blitz | would be nice if i could pass that into pypy like in jvm | 12:32 |
| antocuni | like PYPY_GC_MAX=4GB | 12:32 |
| fijal | antocuni: less | 12:32 |
| fijal | 3 or 2G | 12:32 |
| Da_Blitz | --max-ram=4GB or somthing | 12:32 |
| Da_Blitz | and --reserve=128MB | 12:32 |
| fijal | you want | 12:33 |
| fijal | PYPY_GC_MAX_DELTA=500M | 12:33 |
| Da_Blitz | this is in the header of minimark.py correct? | 12:34 |
| fijal | you want to pass this as an evironment variable | 12:34 |
| antocuni | Da_Blitz: yes | 12:34 |
| fijal | antocuni: that was "yes" to what? | 12:35 |
| antocuni | <Da_Blitz> this is in the header of minimark.py correct? | 12:35 |
| fijal | well, so the answer is no | 12:36 |
| kkris (~kris@93-82-34-202.adsl.highway.telekom.at) joined #pypy. | 12:36 | |
| fijal | or the explanation is there, yes | 12:36 |
| Da_Blitz | i think that alone justifies pypy's use on servers | 12:38 |
| fijal | Da_Blitz: "that alone" being? | 12:39 |
| Da_Blitz | being able to enforce maximum memory usage | 12:39 |
| Da_Blitz | has a nicer failure mode than rlimits | 12:39 |
| fijal | I think a failure mode is MemoryError | 12:40 |
| fijal | unless you're unlucky, then it's a segfault | 12:40 |
| fijal | also, it's not a hard limit | 12:40 |
| fijal | it doesn't count all possible mem usages | 12:40 |
| fijal | only those tracked by the GC | 12:40 |
| Da_Blitz | well rlimit will just refuse a malloc, tends to crash most apps | 12:41 |
| Da_Blitz | too many programs not checking hte return value of malloc | 12:41 |
| fijal | not being able to allocate memory will also crash most python apps :) | 12:42 |
| fijal | although GC will try a bit harder if it's near it's limit | 12:42 |
| Da_Blitz | true, but i canmake the rlimit a couple MB higher than pypy's limit and let pypy deal with it | 12:42 |
| mvt (~mvantelli@53530442.cm-6-4a.dynamic.ziggo.nl) joined #pypy. | 12:42 | |
| Action: Da_Blitz comes from a web hosting background | 12:42 | |
| Da_Blitz | seen more than one fork bomb or person try and eat all the ram | 12:43 |
| fijal | ekhem | 12:45 |
| fijal | antocuni: I fear improvements to hash function would help, but that's because multimethods suck | 12:45 |
| squiddy (~squiddy@x027.wh17.tu-dresden.de) left irc: Remote host closed the connection | 12:46 | |
| fijal | I'm at 2e-9 characters considered in _hash_string | 12:47 |
| fijal | (running translate.py --annotate) | 12:47 |
| whyking__ (~quassel@ip68-14-22-39.ri.ri.cox.net) joined #pypy. | 12:47 | |
| fijal | crap I overflowed 32bit int | 12:48 |
| whyking (~quassel@ip68-14-22-39.ri.ri.cox.net) left irc: Ping timeout: 240 seconds | 12:48 | |
| DanielHolth (~dholth@ip98-180-34-112.ga.at.cox.net) joined #pypy. | 12:48 | |
| fijal | although currently hashing a character takes about 2 clock cycles | 12:52 |
| fijal | (almost exactly) | 12:52 |
| fijal | so I really wonder if we can win anything | 12:52 |
| verte | perhaps you could hash a word at a time? | 12:54 |
| fijal | I would kind of expect a smart enough compiler to do it | 12:55 |
| fijal | or even 128 bit | 12:55 |
| fijal | it's a very tight loop | 12:55 |
| kost-bebix (~kost-bebi@195.177.74.243) joined #pypy. | 12:55 | |
| verte | I wonder if gcc generates duff's device for such tight loops | 12:57 |
| fprimex (~fprimex@brent-macbook.sc.fsu.edu) joined #pypy. | 12:58 | |
| antocuni | fijal: 0.0000000002 characters? :-) | 12:58 |
| fijal | antocuni: ? | 13:10 |
| fijal | verte: is duff device faster than SSE? | 13:10 |
| antocuni | 2e-9 == 0.0000000002 | 13:10 |
| fijal | yeas | 13:10 |
| fijal | that' | 13:10 |
| verte | fijal: you could use the two together | 13:10 |
| fijal | and what's the unit? | 13:10 |
| fijal | verte: is it any faster though? | 13:11 |
| fijal | with branch prediction and whatnot I would think no | 13:11 |
| verte | yeah, you probably do get the increment for free | 13:11 |
| fijal | I'm unhappy with armin removing ropaque | 13:11 |
| fijal | and inventing hacks instead | 13:11 |
| verte | since most CPU are 2- or 3- issue | 13:12 |
| fijal | so hashing seems to take on the order of 9s during annotation | 13:21 |
| verte | :) | 13:23 |
| cfbolz | fijal: seems not a lot | 13:24 |
| fijal | cfbolz: well, it really takes little time to hash | 13:24 |
| kenaan | 12fijal out-of-line-guards-2 11d5cf3b70d497 15/pypy/jit/: write a test and note first problem | 13:24 |
| fijal | cfbolz: the simplest version of out of line guards seems to be done | 13:25 |
| fijal | except x86 backend | 13:25 |
| fijal | I'll try to finish maybe tonight, if not tomorrow | 13:25 |
| cfbolz | fijal: what is not measured now is how much time we lose due to hash collisions because of a bad hash function | 13:25 |
| fijal | yes | 13:25 |
| voidspace (~voidspace@python/psf/voidspace) left irc: Quit: voidspace | 13:28 | |
| squiddy (~squiddy@x027.wh17.tu-dresden.de) joined #pypy. | 13:30 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) joined #pypy. | 13:31 | |
| lucian (~lucian@78-86-217-168.zone2.bethere.co.uk) joined #pypy. | 13:34 | |
| Shanita (~John@osbk-4db06cfe.pool.mediaWays.net) joined #pypy. | 13:38 | |
| Moku (~John@osbk-4db0647a.pool.mediaWays.net) left irc: Ping timeout: 240 seconds | 13:39 | |
| aat (~aat@rrcs-184-75-54-130.nyc.biz.rr.com) joined #pypy. | 13:48 | |
| sakesun (~sakesun@ppp-124-121-106-92.revip2.asianet.co.th) left irc: Remote host closed the connection | 13:49 | |
| whyking__ (~quassel@ip68-14-22-39.ri.ri.cox.net) left irc: Ping timeout: 276 seconds | 13:53 | |
| derdon (~derdon@p54A6EE72.dip.t-dialin.net) joined #pypy. | 13:53 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 13:53 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) left irc: Changing host | 13:53 | |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 13:53 | |
| apoirier (apoirier@sakura.nagare.org) left #pypy ("Leaving..."). | 13:57 | |
| voidspace (~voidspace@python/psf/voidspace) left irc: Ping timeout: 252 seconds | 13:58 | |
| bobbyz_ (~bobbyz@12.131.26.130) joined #pypy. | 13:59 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 14:00 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) left irc: Changing host | 14:00 | |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 14:00 | |
| DasIch (~DasIch@p4FFDFF62.dip.t-dialin.net) left irc: Quit: Leaving | 14:11 | |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) joined #pypy. | 14:13 | |
| kenaan | 12cfbolz extradoc 11f563410ac3de 15/talk/icooolps2011/paper.tex: some comments from Peng Wu | 14:18 |
| lucian (~lucian@78-86-217-168.zone2.bethere.co.uk) left irc: Remote host closed the connection | 14:20 | |
| kenaan | 12cfbolz extradoc 11fd57ef390cb4 15/talk/icooolps2011/: comments by rhy0lite | 14:26 |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 14:30 | |
| Arfrever (~Arfrever@gentoo/developer/Arfrever) joined #pypy. | 14:32 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy. | 14:46 | |
| harrison (~sr@adsl-76-217-35-217.dsl.chcgil.sbcglobal.net) joined #pypy. | 14:48 | |
| verte | what is the easiest way to examine the output of test_all ? | 14:55 |
| cfbolz | verte: examine? | 14:59 |
| antocuni | pff, translation is broken on jitypes2: http://paste.pocoo.org/show/371020/ | 15:02 |
| verte | I'd really just like a list of the tests that failed. I haven't sat through the whole thing before, does it give you a neat list at the end, or a million tracebacks? | 15:02 |
| cfbolz | verte: the latter | 15:03 |
| cfbolz | verte: but there is a way to get more structured output | 15:03 |
| cfbolz | try --help | 15:03 |
| verte | will do. | 15:03 |
| verte | like right now I see test_zpy failing - probably for configuration reasons unrelated to my latest changes. | 15:04 |
| derdon (~derdon@p54A6EE72.dip.t-dialin.net) left irc: Remote host closed the connection | 15:07 | |
| derdon (~derdon@p54A6EE72.dip.t-dialin.net) joined #pypy. | 15:07 | |
| derdon (~derdon@p54A6EE72.dip.t-dialin.net) left irc: Ping timeout: 240 seconds | 15:12 | |
| verte | it segfaults with only 4 gig of ram anyway - hit 24 gig of virtual memory beforehand | 15:18 |
| cfbolz | verte: you need to run it per-dir | 15:18 |
| verte | is there an option for that, or manually? | 15:20 |
| cfbolz | no clue how the buildbots do it | 15:21 |
| kenaan | 12cfbolz extradoc 115ec3af1eeb7e 15/talk/icooolps2011/: change x = hint(x, promote=True) to just promote(x) to reduce confusion | 15:23 |
| kenaan | 12cfbolz extradoc 111f698977d63c 15/talk/icooolps2011/paper.tex: michael's notes | 15:23 |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) left irc: Ping timeout: 246 seconds | 15:30 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Ping timeout: 246 seconds | 15:34 | |
| verte (~verte@python/site-packages/verte) left irc: Quit: ~~~ Crash in JIT! | 15:36 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) joined #pypy. | 15:38 | |
| etrepum (~bob@c-67-180-34-190.hsd1.ca.comcast.net) left irc: Quit: etrepum | 15:43 | |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) left irc: Quit: Leaving. | 15:43 | |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 15:50 | |
| arigato (~arigo@82.113.98.162) joined #pypy. | 15:58 | |
| zrbecker (zrbecker@ip98-164-227-211.oc.oc.cox.net) left #pypy ("Leaving"). | 16:01 | |
| kost-bebix (~kost-bebi@195.177.74.243) left irc: Quit: kost-bebix | 16:05 | |
| kenaan | 12antocuni jitypes2 11489e9af0684e 15/pypy/module/pypyjit/test_pypy_c/test_pypy_c_new.py: add a test that fails if we do not emit CALL_RELEASE_GIL for _ffi calls | 16:23 |
| kenaan | 12antocuni jitypes2 114aa00ab09876 15/pypy/module/pypyjit/test_pypy_c/test_pypy_c_new.py: try not to have newlines, to make merging easier | 16:23 |
| kenaan | 12antocuni jitypes2 116ebb73be4f72 15/: merge heads | 16:23 |
| kenaan | 12antocuni jitypes2 1183bc8bc305fb 15/pypy/module/pypyjit/test_pypy_c/test_pypy_c_new.py: this test hangs :-( | 16:23 |
| antocuni | arigato: I wrote a test to CALL_RELEASE_GIL (in 489e9af0684e) | 16:24 |
| antocuni | however, it hangs :-( | 16:24 |
| arigato | :-/ | 16:24 |
| DasIch (~DasIch@p4FFDD7A8.dip.t-dialin.net) joined #pypy. | 16:24 | |
| arigato | does it help if you remove "import time" from the threads? | 16:25 |
| antocuni | arigato: uhm... maybe it's not related to CALL_RELEASE_GIL | 16:25 |
| arigato | (it shouldn't I hope) | 16:26 |
| antocuni | it also hangs with a pypy-c-13434937a514, which is just before your checkin | 16:26 |
| ronny | hmm, anything interesting about pypy i could show at the python barcamp in cologne this weekend? | 16:27 |
| antocuni | arigato: yes, it helps :-9 | 16:27 |
| antocuni | :-/ | 16:27 |
| antocuni | without "import time", it doesn't hangs | 16:27 |
| arigato | antocuni: ah | 16:27 |
| rguillebert (~hardshoot@089-101-122219.ntlworld.ie) left irc: Ping timeout: 246 seconds | 16:27 | |
| antocuni | but then I'm confused | 16:27 |
| antocuni | now even pypy-c-13434937a514 passes the test | 16:27 |
| arigato | note that the libc sleep() is maybe dangerous to use like this; it says in BUGS that it may be implemented using SIGALRM | 16:27 |
| arigato | I don't know exactly how this plays with signal processing of pypy | 16:27 |
| arigato | well I suppose it works as expected in this case, but it's still marginally strange | 16:28 |
| arigato | ...anyway, yes, I'm not surprized that you have this problem :-) | 16:29 |
| antocuni | ah no | 16:29 |
| antocuni | strange | 16:29 |
| antocuni | the program which didn't hang was a single script which is the same as the test | 16:30 |
| antocuni | but the test still hangs, even without "import time" :-( | 16:30 |
| antocuni | bah, I suppose I need to investigate further | 16:30 |
| arigato | run also with --threshold and --trace-eagerness? | 16:30 |
| antocuni | aah | 16:31 |
| antocuni | I ran it with a threshold which is too high | 16:31 |
| antocuni | indeed, it still hangs | 16:31 |
| antocuni | so, the import is harmless | 16:31 |
| arigato | ok | 16:32 |
| antocuni | ok, I'll investigate more later/tomorrow | 16:33 |
| harrison (~sr@adsl-76-217-35-217.dsl.chcgil.sbcglobal.net) left irc: Read error: Operation timed out | 16:33 | |
| Trundle (~andy@p5B13237F.dip.t-dialin.net) joined #pypy. | 16:36 | |
| Trundle (~andy@p5B13237F.dip.t-dialin.net) left irc: Changing host | 16:36 | |
| Trundle (~andy@python/site-packages/trundle) joined #pypy. | 16:36 | |
| rguillebert (~hardshoot@089-101-122219.ntlworld.ie) joined #pypy. | 16:40 | |
| hakanardo | rguillebert: have you reached some conclution about accommodation for the sprint? | 16:43 |
| asabil (~asabil@195.159.219.65) joined #pypy. | 16:44 | |
| etrepum (~bob@38.102.129.100) joined #pypy. | 16:49 | |
| ltbarcly (~Adium@67.228.133.35-static.reverse.softlayer.com) joined #pypy. | 16:59 | |
| mcfletch (~mcfletch@CPE0014bf07ffd2-CM001ac30d4aca.cpe.net.cable.rogers.com) joined #pypy. | 17:00 | |
| daniloaf (~daniloaf@189.71.125.49) joined #pypy. | 17:01 | |
| cfbolz | arigato: ping? | 17:07 |
| voidspace (~voidspace@python/psf/voidspace) left irc: Read error: Connection reset by peer | 17:07 | |
| arigato | pong | 17:07 |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) joined #pypy. | 17:07 | |
| voidspace (~voidspace@87-194-212-65.bethere.co.uk) left irc: Changing host | 17:07 | |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 17:07 | |
| cfbolz | arigato: one of the comments from somebody external who read the paper was that the usage of "pure" as a term is confusing | 17:07 |
| cfbolz | arigato: because it's a different definition than the usual one | 17:07 |
| arigato | which is...? | 17:08 |
| cfbolz | 1) only depends on input arguments 2) no side effects | 17:08 |
| cfbolz | so I am thinking of simply using a different term | 17:08 |
| arigato | ok | 17:08 |
| arigato | makes sense | 17:08 |
| cfbolz | would "trace-foldable" make sense to you? | 17:09 |
| voidspace (~voidspace@python/psf/voidspace) left irc: Client Quit | 17:09 | |
| voidspace_ (~voidspace@python/psf/voidspace) joined #pypy. | 17:09 | |
| cfbolz | or "trace-deterministic"? | 17:09 |
| ltbarcly (~Adium@67.228.133.35-static.reverse.softlayer.com) left irc: Quit: Leaving. | 17:09 | |
| arigato | once again, the precise definition is that two different actual calls return the same result if called with the same arguments | 17:11 |
| cfbolz | except that this is not true for the version usage | 17:12 |
| arigato | ? | 17:12 |
| cfbolz | if you call it after you changed the class, you get a different result | 17:12 |
| lac | how about a word like invariant? | 17:12 |
| JStoker (jstoker@unaffiliated/jstoker) left irc: Excess Flood | 17:12 | |
| arigato | cfbolz: yes, but the point is that there is no *actual* call | 17:12 |
| cfbolz | yes, but we don't explain that yet | 17:13 |
| cfbolz | lac: that's a possibility too | 17:13 |
| arigato | well, I'm trying to find the exact definition of what we have, in order to know how to call it | 17:13 |
| arigato | "invariant" makes sense to me, yes | 17:14 |
| cfbolz | arigato: wouldn't the definition be "if the call in the trace has constant argument, it is valid to reuse the result seen during tracing" | 17:14 |
| arigato | yes, but more generally, if we want a definition to make a bit more sense, it has to be independent of our details of tracing, | 17:15 |
| arigato | so that's why I proposed what I did | 17:15 |
| JStoker (jstoker@unaffiliated/jstoker) joined #pypy. | 17:15 | |
| cfbolz | arigato: ok | 17:15 |
| cfbolz | arigato: but I still have the fear that the getattr with versions doesn't really fit the definition | 17:16 |
| cfbolz | ah | 17:16 |
| arigato | :-/ | 17:16 |
| cfbolz | wait | 17:16 |
| cfbolz | I guess the important part is the "actual" | 17:16 |
| cfbolz | but that's rather subtle | 17:16 |
| arigato | yes | 17:16 |
| cfbolz | ok, I missed that on first reading | 17:16 |
| arigato | if, during the execution of the program, then two calls occur, and if the two calls have the same arguments, then they have the same results | 17:16 |
| cfbolz | that makes sense | 17:17 |
| cfbolz | and then "trace-invariant" sounds like a good name? | 17:17 |
| kenaan | 12hakanardo jit-short_from_state 1196c29f01f750 15/pypy/jit/metainterp/optimizeopt/unroll.py: produce a short preamble that is actualy usefull | 17:17 |
| arigato | invariant? | 17:17 |
| cfbolz | yes, though that's an overloaded term too? | 17:18 |
| arigato | I mean, I'm proposing just "invariant" | 17:18 |
| cfbolz | yes, I see | 17:18 |
| cfbolz | just saying that this word has meaning in other contexts | 17:19 |
| cfbolz | and I wonder whether this could confuse | 17:19 |
| arigato | ok, but it's a bit less clear what it could be confused with | 17:19 |
| cfbolz | absolutely | 17:19 |
| cfbolz | arigato: thanks for the definition, it's much more precise than what I came up with | 17:20 |
| arigato | maybe some obscure name like "execution invariant" | 17:20 |
| arigato | but I'm fine with just "invariant" | 17:20 |
| cfbolz | arigato: I think I will define a latex macro, so we can change it :) | 17:20 |
| arigato | :-) | 17:20 |
| lac | :-) | 17:21 |
| pedronis | jit terminology :) | 17:22 |
| cfbolz | heh | 17:22 |
| cfbolz | pedronis: invariant makes sense to you? | 17:22 |
| pedronis | yes, though indeed is used for other things | 17:23 |
| mat^2 (~mathias@212.130.113.35) left irc: Read error: Connection reset by peer | 17:35 | |
| [mat^2] (~mathias@212.130.113.35) joined #pypy. | 17:35 | |
| [mat^2] (~mathias@212.130.113.35) left irc: Read error: Connection reset by peer | 17:35 | |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 17:36 | |
| cfbolz | arigato: the definition is cool | 17:36 |
| cfbolz | it's quite subtle though, because "invariant" is not really only a property of a function | 17:37 |
| cfbolz | but also how it is used | 17:37 |
| antocuni | cfbolz: I don't like "trace-invariant", because it's a property which is not really related to tracing | 17:50 |
| cfbolz | yes, agreed | 17:50 |
| cfbolz | so it would have to be "execution invariant" | 17:50 |
| antocuni | yes, that one seems better | 17:50 |
| cfbolz | I will go with just "invariant" | 17:52 |
| cfbolz | unless michaeL complains | 17:52 |
| antocuni | what about "foldable"? | 17:53 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 17:54 | |
| cfbolz | they are not really | 17:54 |
| antocuni | why not? Fold them is exactly what we do | 17:54 |
| cfbolz | no, it's more subtle | 17:54 |
| cfbolz | we never call them during optimization | 17:54 |
| cfbolz | and that would be forbidden | 17:54 |
| antocuni | ah, I see the subtlety | 17:55 |
| kenaan | 12cfbolz extradoc 11b56ca2a0e014 15/talk/icooolps2011/: replace "pure" with "invariant", add a precise definition of the term | 17:55 |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 17:55 | |
| mattheww (~mjw@cpc3-cmbg10-0-0-cust455.5-4.cable.virginmedia.com) joined #pypy. | 17:57 | |
| zrbecker (~zrbecker@ip98-164-227-211.oc.oc.cox.net) joined #pypy. | 18:07 | |
| ronny | hum | 18:08 |
| cfbolz | ? | 18:11 |
| __name__ (~name@sburn/devel/name) joined #pypy. | 18:17 | |
| ronny (~ronny@pida/ronny) left irc: Ping timeout: 246 seconds | 18:17 | |
| ronny (~ronny@pida/ronny) joined #pypy. | 18:17 | |
| ronny | 24 hour i hate disconnects | 18:17 |
| ronny | cfbolz: i'd like to promote pypy a bit at the python barcamp in cologne, im just a bit clueless how to work that best | 18:18 |
| cfbolz | how long do you have? | 18:18 |
| ronny | cfbolz: its this weekend, nothing planned so far | 18:18 |
| cfbolz | pypy makes boring demos | 18:18 |
| cfbolz | "here it is slow" | 18:19 |
| arigato | :-) | 18:19 |
| cfbolz | "here the same behaviour, but fast" | 18:19 |
| kenaan | 12cfbolz extradoc 11f011879ee9ad 15/talk/icooolps2011/paper.tex: fix a typo and an XXX | 18:19 |
| kenaan | 12cfbolz extradoc 11a34441a3ce79 15/talk/icooolps2011/paper.tex: footnotize a paragraph | 18:19 |
| arigato | cfbolz: about {invariant}, how about a footnote saying something like "this is slightly more general than pure, because..." | 18:19 |
| cfbolz | and then killing the "observably pure functions"? | 18:20 |
| cfbolz | section | 18:20 |
| ronny | cfbolz: i suppose a practical session for proting apps to pypy that are problematic would be nice (so people get a hands on oh MY MY APP IS SOOO FAST) | 18:20 |
| ronny | *porting | 18:20 |
| arigato | cfbolz: ah | 18:21 |
| cfbolz | I renamed it to "observably invariant" | 18:21 |
| cfbolz | which makes a bit no sense | 18:21 |
| arigato | cfbolz: maybe too indeed, but I had in mind "...because it's only about actual calls during execution" | 18:21 |
| cfbolz | ah | 18:21 |
| Action: cfbolz tries a bit | 18:22 | |
| cfbolz | arigato: problem | 18:24 |
| cfbolz | arigato: what if a function prints? | 18:24 |
| cfbolz | is it invariant? | 18:24 |
| cfbolz | the current definition does not work | 18:27 |
| arigato | I suppose it needs to also have no observable side effect | 18:28 |
| cfbolz | yes, but then what is "observable" | 18:29 |
| cfbolz | how about the following: if a function is called with the same arguments a second time, it is correct to reuse the result of the previous call | 18:29 |
| arigato | I suppose, yes | 18:29 |
| michaelh (c1beac85@gateway/web/freenode/ip.193.190.172.133) left irc: Ping timeout: 252 seconds | 18:32 | |
| hakanardo | conserning boring demos for pypy: I actually got started on some simple realtime video processing | 18:40 |
| cfbolz | ! | 18:40 |
| hakanardo | that's not realtime at all when running cpython | 18:40 |
| hakanardo | not much to show yet but it's here: https://bitbucket.org/hakanardo/hakanardo | 18:41 |
| cfbolz | on pypy it's better? | 18:41 |
| hakanardo | well I can negate the image in realtime | 18:41 |
| hakanardo | a simple sobel edge detector does not become fast enough to be impressive | 18:41 |
| cfbolz | :-( | 18:42 |
| carrus85 (~carrus85@216.83.145.38) joined #pypy. | 18:44 | |
| hakanardo | looking back at the code it's a quite facy design, it might be possible to get it working with a more straigh forward design | 18:45 |
| cfbolz | hakanardo: nice code | 18:47 |
| cfbolz | hakanardo: I fear the generators kill pypy a bit | 18:47 |
| hakanardo | right, we should fix that :) | 18:47 |
| cfbolz | yes :-) | 18:47 |
| cfbolz | hakanardo: also, tests please :-) | 18:48 |
| hakanardo | yea, I know | 18:49 |
| antocuni (~antocuni@host188-86-dynamic.7-79-r.retail.telecomitalia.it) left irc: Ping timeout: 276 seconds | 18:50 | |
| cfbolz | hakanardo: can you see the jit warming up with this code? | 18:52 |
| cfbolz | I mean, does the video get less laggy? | 18:52 |
| hakanardo | nope | 18:53 |
| hakanardo | maybe if you use lower resolution | 18:53 |
| hakanardo | other wise you'll loop 640*480 time before showing first frame | 18:53 |
| cfbolz | oh, right | 18:53 |
| hakanardo | or increase threashold significantly | 18:53 |
| Action: cfbolz goes home | 18:54 | |
| cfbolz (~cfbolz@fwstups.cs.uni-duesseldorf.de) left irc: Quit: Leaving | 18:56 | |
| DanielHolth (~dholth@ip98-180-34-112.ga.at.cox.net) left irc: Ping timeout: 276 seconds | 18:57 | |
| DanielHolth (~dholth@ip98-180-34-112.ga.at.cox.net) joined #pypy. | 18:57 | |
| kenaan | 12cfbolz extradoc 1111b9039d379e 15/talk/icooolps2011/paper.tex: update definition, not too great and a bit circular | 18:57 |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 18:58 | |
| hakanardo | skipping all the fancy stuff did not increase speed... | 19:04 |
| voidspace (~voidspace@python/psf/voidspace) left irc: Quit: voidspace | 19:06 | |
| Nick change: voidspace_ -> voidspace | 19:06 | |
| Nick change: Varraway -> Varriount | 19:10 | |
| kenaan | 12hakanardo jit-short_from_state 112af533e2b048 15/pypy/jit/metainterp/optimizeopt/unroll.py: overflow support | 19:11 |
| kenaan | 12hakanardo jit-short_from_state 1114f72e53598a 15/: hg merge default | 19:11 |
| kenaan | 12hakanardo jit-short_from_state 114b26e5e188f5 15/pypy/jit/metainterp/: added test_loop_variant_mul1_ovf | 19:11 |
| fijal_ (~fijal@197.169.239.228) joined #pypy. | 19:16 | |
| fijal_ | hi | 19:17 |
| derdon (~derdon@p54A6DA6E.dip.t-dialin.net) joined #pypy. | 19:17 | |
| lac | fijal_: hi there | 19:17 |
| dmalcolm (~david@nat/redhat/x-hqfjhkbwycxwfuku) joined #pypy. | 19:19 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) left irc: Read error: Connection reset by peer | 19:21 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) joined #pypy. | 19:22 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) left irc: Remote host closed the connection | 19:22 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) joined #pypy. | 19:22 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) left irc: Client Quit | 19:25 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) joined #pypy. | 19:25 | |
| kkris (~kris@93-82-34-202.adsl.highway.telekom.at) left irc: Quit: Leaving. | 19:28 | |
| Nick change: Varriount -> Varraway | 19:31 | |
| mvt (~mvantelli@53530442.cm-6-4a.dynamic.ziggo.nl) left irc: Quit: This computer has gone to sleep | 19:32 | |
| shager (~shager@dslb-094-221-245-069.pools.arcor-ip.net) joined #pypy. | 19:39 | |
| Nick change: intgr_ -> intgr | 19:39 | |
| shager (~shager@dslb-094-221-245-069.pools.arcor-ip.net) left irc: Client Quit | 19:39 | |
| fijal_ (~fijal@197.169.239.228) left irc: Ping timeout: 240 seconds | 19:48 | |
| Taggnostr (~quassel@dyn57-215.yok.fi) left irc: Quit: No Ping reply in 180 seconds. | 19:51 | |
| Taggnostr (~quassel@dyn57-215.yok.fi) joined #pypy. | 19:53 | |
| asabil (~asabil@195.159.219.65) left irc: Ping timeout: 260 seconds | 19:56 | |
| hruske (~Gasper@188-230-156-183.dynamic.t-2.net) left irc: Ping timeout: 250 seconds | 19:58 | |
| Nick change: Varraway -> Varriount | 19:59 | |
| Rhy0lite (~dje@nat/ibm/x-ibciptyegiabtcdp) left irc: Quit: Leaving | 20:00 | |
| fijal_ (~fijal@41.48.27.6) joined #pypy. | 20:02 | |
| fijal_ | <fijal_> arigato: I got stopped because QuasiImmut instances are not nicely castable to int | 20:07 |
| fijal_ | <fijal_> for the purpose of the x86 backend | 20:07 |
| arigato | I'm not sure because I didn't look, but they were never meant to be cast to int... | 20:07 |
| arigato | the backend should handle Descrs, not QuasiImmut instances | 20:08 |
| fijal_ | the bh_setfield_r | 20:08 |
| fijal_ | casts a gc arg to int | 20:08 |
| fijal_ | (as a value) | 20:08 |
| arigato | hum, yes? | 20:08 |
| arigato | is bh_setfield_r somehow called with a QuasiImmut instance as argument? | 20:09 |
| fijal__ (~fijal@197.171.84.74) joined #pypy. | 20:10 | |
| arigato | is bh_setfield_r somehow called with a QuasiImmut instance as argument? | 20:10 |
| fijal__ | yes, the last argument | 20:10 |
| fijal__ | value of a field | 20:10 |
| arigato | that sounds bogus | 20:10 |
| fijal__ | it's in get_current_qmut_instance | 20:10 |
| fijal__ | qmut.hide() | 20:11 |
| fijal__ | is actually the arg | 20:11 |
| arigato | right | 20:11 |
| fijal_ (~fijal@41.48.27.6) left irc: Ping timeout: 252 seconds | 20:12 | |
| fijal__ | arigato: is it ok or bogus? | 20:13 |
| Nick change: fijal__ -> fijal_ | 20:13 | |
| arigato | no, it's ok I think now | 20:13 |
| arigato | cast_instance_to_base_ref() is a hack to start with, when untranslated | 20:13 |
| arigato | fwiw I've the same problem in the ptr32-on-64bit branch | 20:14 |
| fijal_ | but then we have to do stuff with x86 | 20:14 |
| fijal_ | I swear I did it with ropaque | 20:14 |
| arigato | because GcStructs containing fields of type HiddenGcRef32 are not handled by ll2ctypes at all | 20:14 |
| fijal_ | I see | 20:16 |
| fijal_ | I really swear ropaque could be casted nicely :) | 20:16 |
| arigato | I don't see how it helps, but I'm surely missing something | 20:16 |
| fijal_ | there is special code for ropaque in ll2ctypes | 20:17 |
| fijal_ | (I think) | 20:17 |
| fijal_ | abort: untracked file in working directory differs from file in requested revision: '.hgsubstate' | 20:18 |
| fijal_ | this is a terminal message about a repo? | 20:18 |
| arigato | rm .hgsubstate | 20:18 |
| fijal_ | hm | 20:20 |
| fijal_ | maybe not | 20:20 |
| Action: arigato -> sleep | 20:21 | |
| fijal_ | arigato: see yuo | 20:21 |
| arigato | bye | 20:22 |
| arigato (~arigo@82.113.98.162) left irc: Quit: See you | 20:22 | |
| fmilo (~mist0@64.17.253.218) joined #pypy. | 20:42 | |
| fprimex (~fprimex@brent-macbook.sc.fsu.edu) left irc: Quit: http://www.fprimex.com | 20:45 | |
| lac | fijal_: you get this message when you have a file in your working directory which hg is not tracking (.hgsubstate) and then somebody else has added a file by the same name. | 20:49 |
| fijal_ | yeah | 20:50 |
| fijal_ | but who creates .hgsubstate? | 20:50 |
| ronny | i suppose you guys merged a branch with a subrepo that got removed | 20:54 |
| ronny | rm + hg rm helps | 20:54 |
| ronny | hgsubstate is managed by hg | 20:54 |
| ronny | its content declares the exact state of the subrepos, | 20:55 |
| fijal_ | yeah, can hg manage it better so I don't have to worry about aborts? | 20:55 |
| ronny | what hg version? recent ones manage better i think | 20:56 |
| fijal_ | 1.7.2 | 20:56 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 21:02 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 21:02 | |
| lizardo (~lizardo@189.2.128.130) left irc: Quit: Leaving | 21:02 | |
| ronny | fijal_: try 1.8.3 i guess | 21:05 |
| ronny | fijal_: wha distro are you running? | 21:05 |
| fijal_ | ubuntu | 21:05 |
| ronny | you might want to add the ppa | 21:06 |
| ronny | (ubuntu ships notoriously outdated mercurial packages) | 21:06 |
| raymondh (~raymondhe@cpe-76-94-45-111.socal.res.rr.com) joined #pypy. | 21:06 | |
| DanielHolth (~dholth@ip98-180-34-112.ga.at.cox.net) left irc: Quit: Ex-Chat | 21:08 | |
| xorAxAx | lol, http://vimeo.com/22360540 | 21:19 |
| cafesofie (~cafesofie@ool-4a5a6ee5.dyn.optonline.net) joined #pypy. | 21:20 | |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) left irc: Quit: Ex-Chat | 21:24 | |
| fijal_ (~fijal@197.171.84.74) left irc: Quit: Leaving | 21:24 | |
| mcfletch (~mcfletch@CPE0014bf07ffd2-CM001ac30d4aca.cpe.net.cable.rogers.com) left irc: Quit: Leaving. | 21:26 | |
| qbproger (~qbproger@184.91.177.52) joined #pypy. | 21:29 | |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) joined #pypy. | 21:31 | |
| harrison (~sr@adsl-69-209-208-65.dsl.chcgil.ameritech.net) joined #pypy. | 21:33 | |
| mat^2 (~mathias@212.130.113.35) left irc: | 21:34 | |
| qbproger | Alex_Gaynor: ping | 21:38 |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 21:38 | |
| qbproger | damn | 21:45 |
| etrepum (~bob@38.102.129.100) left irc: Quit: etrepum | 21:50 | |
| etrepum (~bob@accessnat4.mochimedia.net) joined #pypy. | 21:50 | |
| qbproger_ (~qbproger@52.177.91.184.cfl.res.rr.com) joined #pypy. | 21:51 | |
| qbproger (~qbproger@184.91.177.52) left irc: Ping timeout: 246 seconds | 21:52 | |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) joined #pypy. | 21:53 | |
| gtaylor (~gtaylor@99-5-124-9.lightspeed.gnvlsc.sbcglobal.net) left irc: Quit: Ex-Chat | 21:59 | |
| Arfrever (~Arfrever@gentoo/developer/Arfrever) left irc: Quit: Ex+re (KVIrc 4) | 22:01 | |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) left irc: Quit: Ex-Chat | 22:03 | |
| Nick change: Varriount -> Varraway | 22:06 | |
| Ademan (~dan@74.95.2.225) joined #pypy. | 22:12 | |
| Nick change: Varraway -> Varriount | 22:13 | |
| Nick change: qbproger_ -> qbproger | 22:21 | |
| Nick change: daniloaf -> daniloafk | 22:21 | |
| bobbyz_ (~bobbyz@12.131.26.130) left irc: Ping timeout: 248 seconds | 22:22 | |
| mwhudson (~mwh@linaro/mwhudson) left irc: Ping timeout: 258 seconds | 22:22 | |
| mat^2 (~mathias@212.130.113.35) left irc: | 22:27 | |
| mwhudson (~mwh@linaro/mwhudson) joined #pypy. | 22:31 | |
| ivan (~ivan@unaffiliated/ivan/x-000001) left irc: Quit: ERC Version 5.3 (IRC client for Emacs) | 22:34 | |
| ivan (~ivan@unaffiliated/ivan/x-000001) joined #pypy. | 22:34 | |
| kenneth_reitz (~kenneth_r@c-24-127-96-129.hsd1.va.comcast.net) left irc: Read error: Connection reset by peer | 22:42 | |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 22:43 | |
| Ademan | am I crazy? is -0x80000000 == 0x80000000 ? | 22:43 |
| qbproger | >>> -0x80000000 == 0x80000000 | 22:46 |
| qbproger | False | 22:46 |
| mwhudson | Ademan: in 32 bit arithmetic yes | 22:46 |
| Ademan | qbproger: python will use longs | 22:47 |
| Ademan | mwhudson: ah thanks | 22:47 |
| qbproger | ah ok | 22:47 |
| mattheww (~mjw@cpc3-cmbg10-0-0-cust455.5-4.cable.virginmedia.com) left irc: Quit: Leaving | 22:55 | |
| Nick change: Varriount -> Varraway | 22:59 | |
| raymondh (~raymondhe@cpe-76-94-45-111.socal.res.rr.com) left irc: Quit: This computer has gone to sleep | 23:01 | |
| Action: Ademan away | 23:02 | |
| Ademan (~dan@74.95.2.225) left irc: Quit: leaving | 23:02 | |
| Nick change: Varraway -> Varriount | 23:03 | |
| dmalcolm (~david@nat/redhat/x-hqfjhkbwycxwfuku) left irc: Quit: Leaving | 23:06 | |
| etrepum (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 240 seconds | 23:26 | |
| carrus85 (~carrus85@216.83.145.38) left irc: Read error: Connection reset by peer | 23:31 | |
| carrus85 (~carrus85@216.83.145.38) joined #pypy. | 23:31 | |
| squiddy (~squiddy@x027.wh17.tu-dresden.de) left irc: Quit: Leaving | 23:33 | |
| Alex_Gaynor | qbproger: pong | 23:38 |
| __name__ (~name@sburn/devel/name) left irc: Remote host closed the connection | 23:42 | |
| carrus85 (~carrus85@216.83.145.38) left irc: Read error: Connection reset by peer | 23:46 | |
| carrus85 (~carrus85@216.83.145.38) joined #pypy. | 23:47 | |
| carrus85 (~carrus85@216.83.145.38) left irc: Client Quit | 23:47 | |
| qbproger | Alex_Gaynor: hey want to work on sqrt? ;) | 23:50 |
| Alex_Gaynor | qbproger: I'm around and can answer questions, not working ATM though (just got up from a nap) | 23:50 |
| Alex_Gaynor | how did I get 40+ emails while napping :/ | 23:50 |
| qbproger | wow | 23:51 |
| qbproger | dinner is almost done anyway, so it might be better to resume another time | 23:51 |
| harrison (~sr@adsl-69-209-208-65.dsl.chcgil.ameritech.net) left irc: Ping timeout: 240 seconds | 23:57 | |
| --- Thu Apr 14 2011 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!