| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy. | 00:00 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Quit: Computer has gone to sleep. | 00:05 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy. | 00:10 | |
| fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy. | 00:20 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Quit: Computer has gone to sleep. | 00:20 | |
| fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Client Quit | 00:21 | |
| fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy. | 00:21 | |
| etrepum_ (~bob@accessnat4.mochimedia.net) joined #pypy. | 00:30 | |
| tav (~tav@host-92-20-26-15.as13285.net) left irc: Ping timeout: 240 seconds | 00:32 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy. | 00:32 | |
| etrepum (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 255 seconds | 00:33 | |
| maxyz (~maxy@186.23.74.228) left irc: Ping timeout: 252 seconds | 00:33 | |
| etrepum_ (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 245 seconds | 00:34 | |
| dmalcolm (david@nat/redhat/x-aryquvcngwunikfv) left irc: Quit: Leaving | 00:34 | |
| maxyz (~maxy@186.23.74.228) joined #pypy. | 00:34 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Client Quit | 00:36 | |
| fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Quit: fzzzy | 00:37 | |
| tav (~tav@host-2-99-72-126.as13285.net) joined #pypy. | 00:37 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy. | 00:47 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Client Quit | 00:49 | |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1803 | 00:50 |
|---|---|---|
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/249 | 00:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/537 | 00:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/590 | 00:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1065 | 00:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/776 | 00:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/1408 | 00:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/669 | 00:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/240 | 00:50 |
| DasIch (~dasich@p4FFDFEA7.dip.t-dialin.net) left irc: Ping timeout: 256 seconds | 01:02 | |
| kenaan | 12alex_gaynor virtual-dicts 11912afce3954e 15/pypy/jit/metainterp/: it... all seems to work | 01:09 |
| etrepum (~bob@75-101-96-144.dsl.static.sonic.net) joined #pypy. | 01:09 | |
| kenaan | 12alex_gaynor virtual-dicts 118cae4e3f42e9 15/pypy/jit/metainterp/optimizeopt/virtualstate.py: fix translation | 01:26 |
| Remilia_Scarlet (~proton@124.131.64.28) joined #pypy. | 01:39 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/918 [12alex] | 01:44 |
| Vorpal (~AnMaster@unaffiliated/anmaster) left irc: Ping timeout: 252 seconds | 01:44 | |
| Moku (~John@osbk-4d08744c.pool.mediaWays.net) joined #pypy. | 01:54 | |
| Guest28331 (~John@osbk-4db06492.pool.mediaWays.net) left irc: Ping timeout: 240 seconds | 01:54 | |
| Nick change: Moku -> Guest12557 | 01:55 | |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Ping timeout: 240 seconds | 01:56 | |
| DasIch (~dasich@p4FFDF277.dip.t-dialin.net) joined #pypy. | 02:06 | |
| Arfrever (~Arfrever@apache/committer/Arfrever) left irc: Quit: Ex+re | 02:12 | |
| fzzzy_ (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy. | 02:13 | |
| Remilia_Scarlet (~proton@124.131.64.28) left irc: Quit: leaving | 02:14 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 02:38 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 02:39 | |
| crakdmirror (~crakdmirr@174.127.114.26) left irc: Quit: ZNC - http://znc.sourceforge.net | 02:40 | |
| Transformer (~Transform@ool-4a59e397.dyn.optonline.net) joined #pypy. | 02:45 | |
| Transformer (~Transform@ool-4a59e397.dyn.optonline.net) left irc: Excess Flood | 02:46 | |
| crakdmirror (~crakdmirr@174.127.114.26) joined #pypy. | 02:49 | |
| mcdonc (~mcdonc@cabana.palladion.com) left irc: Ping timeout: 258 seconds | 02:53 | |
| [mat^2] (~mathias@212.130.113.35) joined #pypy. | 02:55 | |
| mat^2 (~mathias@212.130.113.35) left irc: Ping timeout: 276 seconds | 02:55 | |
| lac_ (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy. | 02:55 | |
| lac (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Ping timeout: 240 seconds | 02:56 | |
| canta (~canta@77-20-123-240-dynip.superkabel.de) joined #pypy. | 02:59 | |
| fzzzy_ (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) left irc: Quit: fzzzy_ | 03:07 | |
| [mat^2] (~mathias@212.130.113.35) left irc: Ping timeout: 260 seconds | 03:13 | |
| mwhudson (~mwh@linaro/mwhudson) left irc: Ping timeout: 240 seconds | 03:16 | |
| bbot2 | 3Success: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/115 [12alex] | 03:19 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 03:46 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 03:47 | |
| mitchellh (~mitchellh@c-71-202-125-40.hsd1.ca.comcast.net) joined #pypy. | 03:52 | |
| bogner (~bogner@2600:3c03::f03c:91ff:fedf:7ef4) left irc: Quit: Coyote finally caught me | 03:54 | |
| Transformer (~Transform@ool-4a59e397.dyn.optonline.net) joined #pypy. | 03:55 | |
| mcdonc (~mcdonc@cabana.palladion.com) joined #pypy. | 03:55 | |
| bogner (~bogner@li325-42.members.linode.com) joined #pypy. | 03:56 | |
| Transformer (~Transform@ool-4a59e397.dyn.optonline.net) left irc: Excess Flood | 03:56 | |
| mwhudson (~mwh@linaro/mwhudson) joined #pypy. | 03:58 | |
| tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) joined #pypy. | 04:00 | |
| tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) left irc: Changing host | 04:00 | |
| tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy. | 04:00 | |
| mitchellh (~mitchellh@c-71-202-125-40.hsd1.ca.comcast.net) left irc: Quit: Computer has gone to sleep | 04:07 | |
| kenaan | 12alex_gaynor virtual-dicts 11fd60bd44e563 15/pypy/jit/metainterp/: next test that I need to pass. for virtual dicts to be useful in python they need to work through opaq... | 04:12 |
| Alex_Gaynor | Anyone feel like teaching a dog new tricks? | 04:15 |
| Alex_Gaynor | hakanardo: ping | 04:20 |
| mitchellh (~mitchellh@c-71-202-125-40.hsd1.ca.comcast.net) joined #pypy. | 04:25 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1803 | 04:25 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1804 [12alex, virtual-dicts] | 04:25 |
| kushal (kdas@nat/redhat/x-icsdmhjdtzmcfdla) joined #pypy. | 04:29 | |
| kushal (kdas@nat/redhat/x-icsdmhjdtzmcfdla) left irc: Changing host | 04:29 | |
| kushal (kdas@fedora/kushal) joined #pypy. | 04:29 | |
| PiotrSikora (~none@nginx/adept/piotrsikora) left irc: Excess Flood | 04:33 | |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Ping timeout: 252 seconds | 04:34 | |
| PiotrSikora (~none@nginx/adept/piotrsikora) joined #pypy. | 04:35 | |
| tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy. | 04:40 | |
| kenaan | 12alex_gaynor virtual-dicts 1156876d48b184 15/pypy/jit/: replace cast_opaque_ptr resop, which never did anything except be used to mark its argument with mark_o... | 04:45 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-macosx-x86-64/builds/249 | 04:51 |
| kvda (~kvda@124-149-101-221.dyn.iinet.net.au) joined #pypy. | 05:07 | |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 05:10 | |
| canta (~canta@77-20-123-240-dynip.superkabel.de) left irc: Ping timeout: 240 seconds | 05:13 | |
| kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Ping timeout: 240 seconds | 05:16 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-32/builds/1408 | 05:25 |
| mat^2 (~mathias@212.130.113.35) left irc: | 05:26 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-Ojit-no-jit-linux-x86-32/builds/776 | 05:28 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-app-level-linux-x86-64/builds/590 | 05:38 |
| Alex_Gaynor | Does anyone around understand why the final p61 = isn't folded by the frontend heapcache? http://paste.pocoo.org/show/497770/ | 05:41 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1065 | 05:43 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1066 [12alex, virtual-dicts] | 05:43 |
| lmoura (~lmoura@186.215.206.130) left irc: Ping timeout: 245 seconds | 05:47 | |
| lmoura (~lmoura@186.215.206.130) joined #pypy. | 05:48 | |
| Ademan (~dan@adsl-71-141-242-47.dsl.snfc21.pacbell.net) joined #pypy. | 05:52 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-win-x86-32/builds/240 | 05:54 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/537 | 06:04 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/538 [12alex, virtual-dicts] | 06:04 |
| hakanardo | Alex_Gaynor: pong | 06:11 |
| mvt (~mvantelli@87.213.45.85) joined #pypy. | 06:26 | |
| mitchellh (~mitchellh@c-71-202-125-40.hsd1.ca.comcast.net) left irc: Quit: Computer has gone to sleep | 06:33 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1066 [12alex, virtual-dicts] | 06:48 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/538 [12alex, virtual-dicts] | 06:59 |
| JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy. | 07:03 | |
| Trundle (~andy@p578bfdcf.dip0.t-ipconnect.de) joined #pypy. | 07:13 | |
| Trundle (~andy@p578bfdcf.dip0.t-ipconnect.de) left irc: Changing host | 07:13 | |
| Trundle (~andy@python/site-packages/trundle) joined #pypy. | 07:13 | |
| antocuni (~antocuni@host152-120-dynamic.11-79-r.retail.telecomitalia.it) joined #pypy. | 07:37 | |
| kenaan | 12hager ppc-jit-backend 117c2f8272c677 15/pypy/jit/backend/ppc/ppcgen/: Implemented STRLEN, STRGETITEM, STRSETITEM. | 07:37 |
| bivab (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 07:42 | |
| fijal (~fijal@78.9.163.32) joined #pypy. | 07:46 | |
| fijal | morning | 07:47 |
| teknico (~quassel@88-149-209-131.dynamic.ngi.it) joined #pypy. | 07:57 | |
| amaury_ (~amaury_@74.125.57.34) joined #pypy. | 08:01 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/669 | 08:04 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/670 [12alex, virtual-dicts] | 08:04 |
| fijal | Alex_Gaynor: had a busy day ;-) | 08:05 |
| lucian_ (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 08:09 | |
| fijal | Alex_Gaynor: is justin's branch ready to be merged? | 08:11 |
| arigato (~arigo@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 08:13 | |
| fijal | arigato: morning | 08:14 |
| arigato | hi! | 08:14 |
| Action: fijal ponders what he can measures lightweight-finalizers on | 08:15 | |
| fijal | http://paste.pocoo.org/show/497810/ | 08:17 |
| fijal | ^^^ this is significantly faster | 08:17 |
| stakkars_ (~tismer@89.204.153.112) joined #pypy. | 08:17 | |
| arigato | good :-) | 08:18 |
| fijal | 60% faster | 08:18 |
| bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Remote host closed the connection | 08:18 | |
| bivab (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 08:18 | |
| fijal | 2.4 vs 3.8s | 08:18 |
| arigato | success, I suppose | 08:18 |
| fijal | I suppose | 08:18 |
| fijal | but it adds complexity for a corner case really | 08:18 |
| fijal | but maybe a significant corner case | 08:18 |
| arigato | ah, digging into why rbigint is slow: it seems that the slow-down-compared-to-CPython-using-exactly-the-same-algo comes from two factors: | 08:19 |
| fijal | arigato: there is one more issue btw | 08:19 |
| arigato | one is just general RPythonicity, the other is... "assert" statements | 08:19 |
| fijal | pffff | 08:19 |
| fijal | clear_all_weakrefs is not lightweight at all | 08:20 |
| fijal | how can we make only the subclass calling clear_all_weakrefs? | 08:20 |
| fijal | and not have it in the base __del__? | 08:20 |
| arigato | the bsae has a __del__ or not? | 08:20 |
| fijal | the base has a __del__ | 08:21 |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Ping timeout: 252 seconds | 08:21 | |
| lucian_ (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Read error: Connection reset by peer | 08:21 | |
| fijal | can't we put another del on UserObjectArrayWithDel | 08:21 |
| fijal | or however it is called | 08:21 |
| fijal | that would call clear_all_weakrefs and the base __del__ | 08:21 |
| fijal | sounds less error prone as well | 08:22 |
| tlynn (~tlynn@cpc6-cmbg14-2-0-cust121.5-4.cable.virginmedia.com) joined #pypy. | 08:22 | |
| arigato | something like that, yes | 08:22 |
| fijal | ok | 08:22 |
| arigato | feel free to reorganize a bit | 08:22 |
| fijal | ok | 08:22 |
| arigato | this part is waiting for a clean-up | 08:23 |
| Action: fijal runs away scared | 08:23 | |
| arigato | it's delicate to get right :-( | 08:23 |
| arigato | but with the right approach it would be better | 08:23 |
| stakkars_ (~tismer@89.204.153.112) left irc: Quit: schnarch | 08:24 | |
| fijal | arigato: it's still checking flags instead of keeping old objects with light finalizers list | 08:25 |
| fijal | but I'm a bit pondering on what I can measure the impact | 08:25 |
| fijal | would gcbench be good? | 08:25 |
| arigato | fijal: I suppose, but checking flags should not be costly if done "right" | 08:28 |
| fijal | ok, but then why we keep a list of objects with finalizers instead of checking flags of everything? | 08:29 |
| fijal | or weakrefs | 08:29 |
| arigato | weakrefs you need anyway, and finalizers too | 08:30 |
| arigato | because they both require you to do something more complicated elsewhere | 08:31 |
| amaury (amaury_@nat/google/x-kzewsvakmaubjerj) joined #pypy. | 08:31 | |
| fijal | ok | 08:31 |
| arigato | but I see the point | 08:31 |
| fijal | I see | 08:31 |
| fijal | you could in theory gather the list on the fly | 08:31 |
| fijal | probably not really interesting | 08:31 |
| arigato | no, how? | 08:31 |
| arigato | if it involves making an extra pass over all objects, then it's terribly slow | 08:32 |
| arigato | anyway, it's not like it's hard to keep a list of objects with lightweight finalizers | 08:33 |
| amaury_ (~amaury_@74.125.57.34) left irc: Ping timeout: 240 seconds | 08:33 | |
| arigato | so feel free to do that instead, to get an extra X% of performance (for X probably smallish) | 08:33 |
| fijal | it's ok either way, I'm just pondering how to make it measurable | 08:34 |
| fijal | I'm not going to run around doing changes if I can't measure them | 08:34 |
| fijal | arigato: anyway, lightweight-finalizers is ready for the review as it is | 08:34 |
| fijal | I can improve what's lightweight independently | 08:35 |
| arigato | ok | 08:35 |
| arigato | er, is it? | 08:35 |
| arigato | what about clear_all_weakrefs? | 08:35 |
| fijal | this means that some stuff that should be lightweight is not | 08:36 |
| fijal | but it still works for other things | 08:36 |
| fijal | like W_Hash | 08:36 |
| fijal | if it belongs to the same branch then ok | 08:36 |
| arigato | why is W_Hash not calling clear_all_weakrefs?... | 08:37 |
| jonanin (~jonanin@24-183-50-140.dhcp.mdsn.wi.charter.com) left irc: Ping timeout: 252 seconds | 08:37 | |
| kenaan | 12fijal benchmarks 1105f934e964ab 15/savecpython.py: improve cpython saver | 08:37 |
| fijal | good question :) | 08:38 |
| fijal | arigato: that's why we should do the calling automatically because we forget :) | 08:38 |
| fijal | ok, I'll do the clear_all_weakrefs | 08:38 |
| arigato | well that's why we should refactor the whole thing a bit more than I did last time... :-) | 08:39 |
| fijal | precisely | 08:39 |
| tlynn (~tlynn@cpc6-cmbg14-2-0-cust121.5-4.cable.virginmedia.com) left irc: Ping timeout: 240 seconds | 08:44 | |
| canta (~canta@77-20-123-240-dynip.superkabel.de) joined #pypy. | 08:48 | |
| fijal | http://speed.pypy.org/comparison/?exe=1%2BL%2Bdefault%2C2%2B35%2C2%2B472&ben=1%2C34%2C27%2C2%2C25%2C3%2C4%2C5%2C22%2C6%2C39%2C7%2C8%2C23%2C24%2C9%2C10%2C11%2C12%2C13%2C14%2C15%2C35%2C36%2C37%2C38%2C16%2C28%2C30%2C32%2C29%2C33%2C31%2C17%2C18%2C19%2C20&env=1&hor=true&bas=2%2B472&chart=normal+bars | 08:49 |
| fijal | ^^^ uploaded 2.7.2 numbers | 08:49 |
| ojii (~ojii@40-34.60-188.cust.bluewin.ch) joined #pypy. | 08:49 | |
| fijal | I broke the main speed.pypy.org though | 08:49 |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 08:50 | |
| kenaan | 12fijal benchmarks 11354e7ef9ccde 15/savecpython.py: finish fighting | 08:50 |
| kenaan | 12fijal benchmarks 119cd4b2c5429c 15/savecpython.py: clarify comment | 08:50 |
| fijal | so besides json (and translation which I did not have heart to run) | 08:50 |
| fijal | 2.7 is not much faster than 2.6 | 08:50 |
| lucian | cpython? | 08:54 |
| kenaan | 12bivab arm-backend-2 1145d7621d2e2a 15/pypy/jit/backend/test/runner_test.py: extend call_assembler tests to check the fail_descr_number and ensure it is non-zero in the tests | 08:58 |
| kenaan | 12bivab arm-backend-2 11f534b61e5913 15/: merge default | 08:58 |
| kenaan | 12bivab arm-backend-2 11beae95ba795c 15/pypy/jit/backend/arm/assembler.py: there was a word missing here | 08:58 |
| kenaan | 12bivab arm-backend-2 11744854db4b1c 15/pypy/jit/backend/arm/assembler.py: (arigo, bivab) refactor a bit and fix decode_inputargs when checking spilled floating point values | 08:58 |
| kenaan | 12bivab arm-backend-2 11411d754b81a2 15/pypy/jit/backend/arm/: set the name of generated functions for floatint point operations | 08:58 |
| kenaan | 12bivab arm-backend-2 111aeb2c211a8a 15/pypy/jit/backend/arm/opassembler.py: update comment | 08:58 |
| kenaan | 12bivab arm-backend-2 11310898482c7b 15/: merge default | 08:58 |
| kenaan | 12bivab arm-backend-2 116d558e62094e 15/pypy/jit/backend/arm/: implement getinteriorfield_gc and setinteriorfield_gc | 08:58 |
| kenaan | 12bivab arm-backend-2 113bae2cc9ba15 15/pypy/jit/backend/arm/opassembler.py: add cast_ptr_to_int and cast_int_to_ptr | 08:58 |
| kenaan | 12bivab arm-backend-2 118754b1a53808 15/pypy/jit/backend/arm/: add some asserts | 08:58 |
| kenaan | 12bivab arm-backend-2 110dc87b084c4a 15/pypy/jit/backend/arm/: fix an error when setting and reading float fields from an object with a large offset | 08:58 |
| kenaan | 12bivab arm-backend-2 110868f9fb2793 15/pypy/jit/backend/arm/regalloc.py: forgot to add these methods | 08:58 |
| kenaan | 12bivab arm-backend-2 11f29ee3944161 15/pypy/jit/backend/arm/: implement merging of comparison operations with following guards | 08:58 |
| kenaan | 12bivab arm-backend-2 117b6405557495 15/pypy/jit/backend/arm/: merge guards with cmp ops for floats | 08:58 |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 08:58 | |
| G2P (~G2P@fw-asn1.ornis.com) joined #pypy. | 08:59 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1804 [12alex, virtual-dicts] | 09:01 |
| kenaan | 12hager ppc-jit-backend 11ef1c13357210 15/pypy/jit/backend/: Implemented UNICODEGETITEM, UNICODESETITEM, UNICODELEN. | 09:16 |
| Action: arigato sometimes wonder why x86 assembler doesn't have an instruction "clear memory from X to Y" that would use whatever is the most efficient way to do so on the CPU | 09:20 | |
| arigato | in particular, in an algo that does "stuff; clear mem; use mem" or "clear mem; stuff; use mem" | 09:22 |
| arigato | the 2nd is probably a bit worse because the cleared memory might no longer be in caches | 09:22 |
| arigato | but what about "stuff; use mem" in one thread, and "clear mem" on another CPU? | 09:23 |
| arigato | I guess I have to measure | 09:23 |
| antocuni (~antocuni@host152-120-dynamic.11-79-r.retail.telecomitalia.it) left irc: Ping timeout: 260 seconds | 09:25 | |
| canta | why would you want memory to be cleared by the cpu? | 09:30 |
| arigato | because if the memory size is greater than the caches, you end up sending and reloading from main memory null bytes | 09:32 |
| arigato | whereas with a small cache on the CPU it could remember that "page N" is fully zeroed, so it doesn't need to reload it | 09:32 |
| kenaan | 12hager ppc-jit-backend 112aa87669180f 15/pypy/jit/backend/ppc/ppcgen/opassembler.py: Removed unnecessary operations in emit_unicodegetitem and emit_unicodesetitem. | 09:37 |
| arigato | ok, on a modern laptop it makes no difference in real time, and uses 5% more CPU time, to use the multithreaded approach | 09:43 |
| kenaan | 12hager ppc-jit-backend 1152d3d714f611 15/pypy/jit/backend/ppc/ppcgen/opassembler.py: Removed unnecessary operations from emit_strgetitem and emit_strsetitem. | 09:44 |
| arigato | well less than 5%, but more than 2% | 09:44 |
| arigato | in other words the time saved not doing the clearing on CPU 1 is lost sending stuff over to CPU 2 | 09:46 |
| arigato | (or in this case from CPU 2) | 09:46 |
| arigato | makes me wonder if a simple non-multithreaded marksweep gc wouldn't be the best, with no write barrier and no moving | 09:47 |
| arigato | ah wait, you need a write barrier | 09:47 |
| kvda (~kvda@124-149-101-221.dyn.iinet.net.au) left irc: Quit: x___x | 09:48 | |
| lucian | linus had some interesting comments on caches and gcs | 09:49 |
| arigato | yes? | 09:50 |
| arigato | my problem right now is that I can think of 42 different approaches and have no clue which one is best... | 09:50 |
| arigato | maybe I need to invest more time building general support functions | 09:51 |
| arigato | so that they can be tried out more quickly | 09:51 |
| lucian | linus's argument was that gcs were inherently bad with space locality, as opposed to reference counting | 09:53 |
| lucian | but yeah, it's hard to find the best way, since it's not exactly known. especially with NUMA in the picture | 09:54 |
| lucian | hmm | 09:54 |
| antocuni (~antocuni@host152-120-dynamic.11-79-r.retail.telecomitalia.it) joined #pypy. | 09:56 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/670 [12alex, virtual-dicts] | 10:05 |
| witulski (~stupsi@134.99.16.23) joined #pypy. | 10:09 | |
| witulski (stupsi@134.99.16.23) left #pypy. | 10:10 | |
| kenaan | 12hager ppc-jit-backend 11be68ff457064 15/pypy/jit/backend/ppc/ppcgen/: Implemented SAME_AS operation. | 10:10 |
| kenaan | 12bivab arm-backend-2 11fccb38718397 15/pypy/jit/backend/arm/assembler.py: add missing not_implemented implementation | 10:11 |
| kenaan | 12bivab arm-backend-2 112df0dec0a518 15/pypy/jit/backend/arm/test/test_runner.py: fix test | 10:11 |
| JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Ping timeout: 258 seconds | 10:14 | |
| kenaan | 12cfbolz int-tag-untag-as-operations 110ed5fb78f4be 15/pypy/jit/metainterp/optimizeopt/: woops | 10:18 |
| stakkars_ (~tismer@82.113.121.177) joined #pypy. | 10:27 | |
| derdon (~derdon@p5DE89ED9.dip.t-dialin.net) joined #pypy. | 10:28 | |
| jimbaker (~jbaker@canonical/jimbaker) left irc: Ping timeout: 256 seconds | 10:33 | |
| jimbaker (~jbaker@c-75-71-80-146.hsd1.co.comcast.net) joined #pypy. | 10:36 | |
| jimbaker (~jbaker@c-75-71-80-146.hsd1.co.comcast.net) left irc: Changing host | 10:36 | |
| jimbaker (~jbaker@canonical/jimbaker) joined #pypy. | 10:36 | |
| JaRoel|4d (~jaroel|4d@office.fourdigits.nl) joined #pypy. | 10:45 | |
| arigato (~arigo@fwstups.cs.uni-duesseldorf.de) left irc: Ping timeout: 244 seconds | 10:45 | |
| stakkars_ (~tismer@82.113.121.177) left irc: Ping timeout: 240 seconds | 10:45 | |
| khs (~khs@2001:700:300:2120:725a:b6ff:fee5:a44) joined #pypy. | 11:05 | |
| jacob22 (~jacob@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Quit: Konversation terminated! | 11:12 | |
| kvda (~kvda@124-149-101-221.dyn.iinet.net.au) joined #pypy. | 11:14 | |
| jacob22 (~jacob@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy. | 11:15 | |
| derdon (~derdon@p5DE89ED9.dip.t-dialin.net) left irc: Remote host closed the connection | 11:22 | |
| dgl (~dgl@109.86.165.231) joined #pypy. | 11:24 | |
| witulski (~stupsi@134.99.16.23) joined #pypy. | 11:28 | |
| lizardo (~lizardo@189.2.128.130) joined #pypy. | 11:31 | |
| kvda (~kvda@124-149-101-221.dyn.iinet.net.au) left irc: Quit: x___x | 11:31 | |
| witulski (stupsi@134.99.16.23) left #pypy. | 11:31 | |
| lucian_ (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 11:33 | |
| arigato (~arigo@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 11:33 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy. | 11:33 | |
| dgl (~dgl@109.86.165.231) left irc: Read error: Operation timed out | 11:33 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Ping timeout: 258 seconds | 11:34 | |
| lucian_ (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Remote host closed the connection | 11:51 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 11:55 | |
| khs (~khs@2001:700:300:2120:725a:b6ff:fee5:a44) left irc: Quit: Leaving | 11:57 | |
| CIA-25 | 03arigo 07roundup * 10#907/Stacklets running out of memory on higher optimisation levels: It seems I need to have Stdlib.cvl and possibly others. How do I build them? * 14https://bugs.pypy.org/issue907 | 11:59 |
| ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) joined #pypy. | 12:03 | |
| dgl (~dgl@109.86.165.231) joined #pypy. | 12:08 | |
| dgl (~dgl@109.86.165.231) left irc: Client Quit | 12:08 | |
| lac (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy. | 12:09 | |
| Gonsor (~quassel@p548A9C3F.dip0.t-ipconnect.de) joined #pypy. | 12:10 | |
| lac_ (~quassel@c-c4c4e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Ping timeout: 276 seconds | 12:10 | |
| aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy. | 12:11 | |
| kushal (kdas@fedora/kushal) left irc: Ping timeout: 258 seconds | 12:12 | |
| CIA-25 | 03ltratt 07roundup * 10#907/Stacklets running out of memory on higher optimisation levels: | 12:13 |
| CIA-25 | The best option for you to test this problem will be to roll back to an older | 12:13 |
| CIA-25 | commit, as a few other things have changed and expanded in the inte ... * 14https://bugs.pypy.org/issue907 | 12:13 |
| dgl (~dgl@109.86.165.231) joined #pypy. | 12:15 | |
| Taggnostr (~quassel@dyn57-215.yok.fi) left irc: Read error: Connection reset by peer | 12:18 | |
| Taggnostr (~quassel@dyn57-215.yok.fi) joined #pypy. | 12:23 | |
| fijal | arigato: ping? | 12:24 |
| santagada (~leonardo@201.86.242.147.dynamic.adsl.gvt.net.br) joined #pypy. | 12:28 | |
| gnuvince (~vince@ip-50-21-130-139.dsl.netrevolution.com) left irc: Read error: Operation timed out | 12:34 | |
| Vorpal (~AnMaster@unaffiliated/anmaster) joined #pypy. | 12:40 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Quit: Computer has gone to sleep. | 12:44 | |
| fijal | Alex_Gaynor: ping | 12:45 |
| Gonsor (~quassel@p548A9C3F.dip0.t-ipconnect.de) left irc: Remote host closed the connection | 12:46 | |
| Rhy0lite (dje@nat/ibm/x-tzwteopzbvqrjzar) joined #pypy. | 12:55 | |
| fijal | Rhy0lite: hi | 13:00 |
| Rhy0lite | hi, fijal | 13:00 |
| Rhy0lite | good afternoon | 13:00 |
| fijal | 15:10, train to yuma leaves | 13:01 |
| Rhy0lite | where are you? Yuma, AZ? | 13:02 |
| kenaan | 12hager ppc-jit-backend 1123ce29218564 15/: (arigo, hager): merge with branch arm-backend-2 | 13:06 |
| exarkun | isn't that a movie | 13:06 |
| exarkun | _15:10 Train To Yuma_ | 13:06 |
| fijal | even 2 movies | 13:07 |
| tav (~tav@host-2-99-72-126.as13285.net) left irc: Ping timeout: 256 seconds | 13:09 | |
| arigato | fijal: pong | 13:10 |
| fijal | arigato: eh, I kinda desperately need an explanation about clear_all_weakrefs | 13:10 |
| arigato | yes? | 13:10 |
| fijal | because from what I can tell the __del__ on UserSubclassWithDel already calls it | 13:10 |
| arigato | ah right | 13:10 |
| fijal | but if you don't have __del__ on a subclass it's not called | 13:11 |
| fijal | is it ok? | 13:11 |
| fijal | I have a test: http://paste.pocoo.org/show/497919/ | 13:11 |
| arigato | so it's not needed on W_Hash because W_Hash objects are not weakreferenceable | 13:11 |
| fijal | and I tried with __del__ | 13:11 |
| fijal | arrays are weakreferencable | 13:11 |
| arigato | ah | 13:11 |
| fijal | but I'm unable to provide a failing test | 13:11 |
| fijal | arigato: I would at the very least want to know the explanation why and how this should be called | 13:12 |
| arigato | confused: array.__del__ calls clear_all_weakrefs() | 13:12 |
| fijal | yes I know | 13:12 |
| fijal | the question is can I remove it | 13:12 |
| fijal | and if not why not | 13:12 |
| fijal | and if not what's the failing test | 13:13 |
| arigato | I think clear_all_weakrefs() is only about clearing the weakrefs before doing del'ish stuff | 13:13 |
| arigato | so it is only needed if you do enough del'ish stuff | 13:13 |
| arigato | like resurrecting the object | 13:14 |
| fijal | just freeing the underlaying raw memory is ok? | 13:14 |
| arigato | yes I think so | 13:14 |
| arigato | because normal instances don't have a del anyway | 13:14 |
| arigato | so no place to call clear_all_weakrefs() | 13:15 |
| fijal | and if you have an applevel __del__ it would call clear_all_weakrefs early enough | 13:15 |
| arigato | yes | 13:15 |
| fijal | ok | 13:15 |
| fijal | so I just remove it then :) | 13:15 |
| kushal (~kdas@fedora/kushal) joined #pypy. | 13:15 | |
| arigato | now why is there clear_all_weakrefs() in array.... | 13:16 |
| fijal | from what you have told me before I understood you have to call it on each __del__ on a subclassable type | 13:16 |
| arigato | this is seriously missing tests | 13:17 |
| fijal | I'm a bit unable to provide a test that would make a difference | 13:18 |
| arigato | it needs a bit of chance | 13:18 |
| fijal | ok | 13:19 |
| fijal | so you claim it's useful or not? | 13:19 |
| arigato | for example if you don't call clear_all_weakrefs() in array, then it's fine, because at worst if you see the array after __del__ was called, you see an empty but valid array | 13:19 |
| fijal | how can you even see that? | 13:20 |
| arigato | similarly, in module/_file, you see a closed but valid file | 13:20 |
| fijal | if you mean "in a weakref callback" then I don't think so | 13:20 |
| fijal | because you can't resurrect | 13:20 |
| arigato | if you don't call clear_all_weakrefs(), then what occurs is: | 13:20 |
| arigato | x = ref(my_array) | 13:20 |
| arigato | [here my_array is __del__ed] | 13:21 |
| arigato | a = x() | 13:21 |
| fijal | then it's None | 13:21 |
| arigato | if you don't call clear_all_weakrefs(), then a might not be None | 13:21 |
| fijal | but it's None on cpython as well | 13:21 |
| fijal | pom pom pom | 13:21 |
| fijal | "might not be"? | 13:21 |
| fijal | because you did not reach gc.collect correctly? | 13:22 |
| arigato | uh? no | 13:22 |
| arigato | x = ref(my_array) | 13:22 |
| arigato | del my_array | 13:22 |
| arigato | gc.collect() | 13:22 |
| arigato | a = x() | 13:22 |
| arigato | in this example, a will not be None | 13:22 |
| arigato | but if you do two gc.collect(), then it will be None | 13:22 |
| arigato | see? | 13:22 |
| fijal | and of course you can't simulate it on top of CPython? | 13:23 |
| arigato | well no | 13:23 |
| fijal | no as in... | 13:23 |
| arigato | no | 13:23 |
| arigato | basically our GCs don't clear the weakrefs to x before calling x.__del__ | 13:24 |
| fijal | for extra complexity this is no longer true for the case of lightweight finalizers... | 13:24 |
| arigato | yes | 13:24 |
| fijal | ok | 13:24 |
| fijal | so it's safe to remove :) | 13:24 |
| arigato | it means that for lightweight finalizers you can ignore clear_all_weakrefs() completely, in summary | 13:25 |
| fijal | in the case your del is simple enough | 13:25 |
| arigato | yes | 13:25 |
| fijal | we should be slightly skeptical because we don't require GCs to implement lightweight finalizers | 13:26 |
| arigato | :-/ of course | 13:26 |
| arigato | the whole issue is not completely well thought-out too | 13:26 |
| arigato | e.g. what if you have a weakref to b, and a has a destructor, and there is a link a->b | 13:26 |
| arigato | or b->a | 13:26 |
| kenaan | 12hager ppc-jit-backend 11c00c0dca8cfc 15/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py: (bivab, hager): fix interface access after merge | 13:26 |
| fijal | arigato: from what I can see if buffer is null you would explode | 13:27 |
| fijal | ah no | 13:28 |
| fijal | wrong wrong, you set length to 0 | 13:28 |
| arigato | possibly what we need is to define a precise policy that we would have to implement in the GCs | 13:29 |
| fijal | yes | 13:29 |
| fijal | we have a lot of half-assed features | 13:29 |
| fijal | that have unclear win | 13:29 |
| arigato | like: if any object is only reachable from dead objects with finalizers, then of course it's kept alive, but all weakrefs to it are cleared | 13:29 |
| fijal | like malloc_nonmovable, array_resize etc. | 13:29 |
| arigato | :-) | 13:29 |
| fijal | I would like to experiment with pinning one day | 13:30 |
| fijal | and a different write barrier, but that's a mess | 13:30 |
| arigato | and I'm busy playing with non-moving GCs | 13:30 |
| fijal | yes | 13:30 |
| fijal | so my plans are on hold a bit | 13:30 |
| arigato | because of me playing with non-moving GCs? | 13:31 |
| fijal | arigato: do you feel like reviewing lightweight-finalizers in the light of this discussion? | 13:31 |
| fijal | for one, but also because I'm playing with other stuff ;-) | 13:31 |
| kenaan | 12fijal default 119079d6cb7394 15/pypy/module/array/: (fijal, arigo) Remove call to clear_all_weakrefs with an explanation. A test that might potentially fail with -A if... | 13:32 |
| kenaan | 12fijal default 11f5825eff38c3 15/pypy/jit/: merge default | 13:32 |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Ping timeout: 240 seconds | 13:32 | |
| arigato | still a bit confused --- we didn't decide anything that would mean that lightweight-finalizers is fine, I think | 13:32 |
| fijal | you mean with regard to clear_all_weakrefs or with what? | 13:33 |
| arigato | yes | 13:33 |
| fijal | http://paste.pocoo.org/show/497927/ | 13:33 |
| fijal | those are all people that call it | 13:33 |
| fijal | it seems that you can just remove those calls | 13:33 |
| fijal | anyway, they already help W_Hash and now array | 13:33 |
| fijal | and numpy.array | 13:34 |
| fijal | arigato: or what precisely we think is not fine :) | 13:35 |
| arigato | but it seems that removing those calls will have some possibly strange consequences in corner cases | 13:35 |
| arigato | and we didn't decide to ignore it (I'm fine if we do it right now, but it needs at least one bug tracker entry, or something) | 13:35 |
| fijal | I'm fine with creating a bug tracker entry on which we'll decide what we require from GCs | 13:36 |
| fijal | and then look how they look like | 13:36 |
| fijal | because admitedly it's a mess right now | 13:36 |
| arigato | :-) | 13:36 |
| fijal | I don't think lightweight finalizers make things worse though | 13:37 |
| fijal | if anything they reduce the number of corner cases | 13:37 |
| fijal | but that's not enough to not have a bug tracker issue | 13:37 |
| Alex_Gaynor | fijal: pong | 13:37 |
| fijal | Alex_Gaynor: what's the status of various numpy branches any clue? | 13:38 |
| Alex_Gaynor | fijal: nope, the only branches I know about ATM are mine | 13:38 |
| fijal | uh we should have a look | 13:38 |
| Alex_Gaynor | on that note, Does anyone by chance feel like reviewing virtual-dicts, I think it needs more tests, but suggestions on where to write tests would be nice. | 13:38 |
| fijal | what's multidim status? | 13:38 |
| Alex_Gaynor | fijal: barely started, I haven't seen that guy on IRC in a bit | 13:42 |
| Alex_Gaynor | fijal: btw someone should write a response to http://tech.dropbox.com/?p=89 | 13:43 |
| fijal | yes | 13:43 |
| fijal | but they did not provide a test case | 13:43 |
| Alex_Gaynor | yes, that's super stupid, I guess I'll leave a comment as such | 13:43 |
| Alex_Gaynor | oh someone else did, me likes it | 13:44 |
| Alex_Gaynor | clearly the best approach is two passes, one to sum the length, and the second to create a UnicodeBuilder and combine them | 13:44 |
| Alex_Gaynor | fijal: do you see why in http://paste.pocoo.org/show/497770/ the final p61 = getfield isn't remove by the frontend heapcache? | 13:45 |
| arigato | fijal: can you comment about the #XXX you added to rlib.rmmap? | 13:47 |
| fijal | arigato: yes, in general RPython level dels should not raise exceptions | 13:49 |
| fijal | while if we call os.close it checks the result value and raises OSError | 13:49 |
| fijal | there is more than one thing that does it | 13:49 |
| fijal | we should call the equivalent, but without checking the return code | 13:51 |
| tav (~tav@host-92-20-11-103.as13285.net) joined #pypy. | 13:51 | |
| arigato | ah ha | 13:53 |
| arigato | indeed, it's what CPython does | 13:53 |
| fijal | I was staring at graphs | 13:53 |
| whitelynx (~whitelynx@li117-47.members.linode.com) joined #pypy. | 13:53 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 13:54 | |
| arigato | there are some changes left over that you should revert, about raw_mem_attr_name | 13:54 |
| fijal | uh | 13:54 |
| fijal | indeed | 13:55 |
| arigato | you added op_track_alloc_stop(addr) to opimpl.py, but it's already in llinterp.py, so now it's defined in two places | 13:55 |
| arigato | you didn't fix all GCs, some of them are broken now I assume? | 13:57 |
| fijal | no, they just don't support light finalizers | 13:57 |
| kenaan | 12fijal lightweight-finalizers 110554cbf80d3c 15/pypy/rpython/: remove traces of previous approach | 13:57 |
| fijal | I think | 13:58 |
| arigato | where is it written that they don't support them? usually it's done with flags in the same file | 13:58 |
| fijal | if you don't do anything special, they're treated as normal finalizers | 13:58 |
| arigato | ah, then you need to rename a few arguments :-) | 13:58 |
| fijal | which ones? | 13:58 |
| arigato | like malloc_fixedsize_clear(): I guess that "has_light_finalizer" really means "the_finalizer_is_light" | 13:59 |
| fijal | yes | 13:59 |
| fijal | sorry | 13:59 |
| fijal | which gcs I did not fix? | 13:59 |
| arigato | none, sorry | 14:00 |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Ping timeout: 240 seconds | 14:00 | |
| fijal | anyway | 14:01 |
| fijal | renaming is a good idea :) | 14:01 |
| fijal | uh | 14:02 |
| kenaan | 12fijal lightweight-finalizers 11cde38a4297fc 15/pypy/rpython/memory/: rename argument to malloc_fixedsize_clear to reflect what it really means (it implies has_finalizer) | 14:02 |
| fijal | hm | 14:02 |
| fijal | so do I just remove op_track_alloc_stop from llinterp? | 14:02 |
| fijal | Alex_Gaynor: probably because it's an argument to some guard? | 14:03 |
| fijal | uh no | 14:03 |
| Alex_Gaynor | fijal: uh, and why can't you just reuse teh value from the previous setfield? | 14:03 |
| fijal | Alex_Gaynor: copystrcontent is kosher? | 14:04 |
| Alex_Gaynor | fijal: it should be, I don't know maybe it blows up caches | 14:04 |
| Alex_Gaynor | seems like a silly reason to do so :) | 14:04 |
| arigato | fijal: you missed the call to SemiSpaceGC.malloc_fixedsize_clear() | 14:06 |
| kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #pypy. | 14:06 | |
| arigato | you have to add the flag there too | 14:06 |
| arigato | (at some point we should clean this and pass a single integer containing flags, instead of N boolean variables) | 14:06 |
| fijal | where is it? | 14:07 |
| arigato | in generation.py | 14:07 |
| kenaan | 12alex_gaynor virtual-dicts 11ef72b02f3457 15/pypy/jit/: translation fixes for some tests, fix x86 tests | 14:07 |
| arigato | in semispace.py:deal_with_objects_with_light_finalizers: | 14:08 |
| arigato | missing self.objects_with_light_finalizers.delete() | 14:08 |
| Action: fijal fixes | 14:09 | |
| fijal | this is AddressStack | 14:09 |
| fijal | not AddressDict | 14:09 |
| arigato | so? | 14:09 |
| arigato | this part of the interface is the same | 14:09 |
| Action: fijal looks | 14:10 | |
| arigato | also, I would not mind if lightweight finalizers were a bit more explicit: at least we should be able to add an attribute that says "assert that this finalizer is lightweight" | 14:11 |
| fijal | ok | 14:12 |
| arigato | (or a decorator) | 14:12 |
| arigato | (as you prefer) | 14:12 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1067 [12alex, virtual-dicts] | 14:13 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1805 [12alex, virtual-dicts] | 14:13 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/539 [12alex, virtual-dicts] | 14:13 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/671 [12alex, virtual-dicts] | 14:13 |
| santagada (~leonardo@201.86.242.147.dynamic.adsl.gvt.net.br) left irc: Ping timeout: 240 seconds | 14:13 | |
| arigato | ah, yes, you should probably have a list of old objects with lightweight finalizers, instead of checking the flag of all objects, | 14:13 |
| fijal | well sure | 14:13 |
| arigato | because it requires going from the object's typeid to the typeinfo table | 14:13 |
| fijal | but I would like to have a benchmark that shows this is a problem | 14:13 |
| fijal | as I said before | 14:14 |
| arigato | so it's (slightly) more involved than I thought | 14:14 |
| fijal | would gcbench do? | 14:14 |
| arigato | yes, I think so | 14:14 |
| arigato | check that it does enough major collections | 14:14 |
| fijal | ok | 14:15 |
| arigato | what I imagined was that you decide based on flags in the header | 14:15 |
| arigato | which you need to read anyway 3 lines ago | 14:15 |
| kenaan | 12fijal lightweight-finalizers 11fadf05e6c02a 15/pypy/rpython/memory/gc/generation.py: a missed call | 14:16 |
| fijal | yes, I can add that as a flag in the header as well | 14:16 |
| fijal | we do still have flags left | 14:16 |
| arigato | yes, but it's probably better to just have a list | 14:16 |
| arigato | and not really more complicated | 14:16 |
| fijal | yes, agreed | 14:16 |
| fijal | no, not at all | 14:16 |
| fijal | it's also easier because we don't have to inspect objects in 3 places | 14:16 |
| fijal | instead we have 1 | 14:16 |
| arigato | yes | 14:17 |
| fijal | what does the delete do? | 14:17 |
| fijal | and why do I need it? | 14:17 |
| fijal | ah in semispace | 14:17 |
| arigato | self.AddressStack() makes a new raw-malloced structure, so you must also delete another one somewhere, otherwise leak | 14:18 |
| fijal | yes yes | 14:18 |
| fijal | I thought you're talking about minimark where I have just one stack | 14:18 |
| fijal | (I don't have to create a new one) | 14:18 |
| arigato | ah, sorry | 14:18 |
| fijal | no, you said so :) | 14:19 |
| kenaan | 12fijal lightweight-finalizers 1198da45c0aeb5 15/pypy/rpython/memory/gc/semispace.py: add a delete here | 14:19 |
| stakkars_ (~tismer@p5DDB5E98.dip.t-dialin.net) joined #pypy. | 14:19 | |
| stakkars__ (~tismer@dslb-088-074-058-015.pools.arcor-ip.net) joined #pypy. | 14:19 | |
| stakkars (~tismer@p5DDB5E98.dip.t-dialin.net) left irc: Read error: Connection reset by peer | 14:20 | |
| Nick change: stakkars_ -> stakkars | 14:20 | |
| fijal | on gcbench it's not measurable | 14:20 |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 14:20 | |
| arigato | test_rclass.py should also be reverted | 14:20 |
| arigato | how many major collections? | 14:21 |
| Ademan (~dan@adsl-71-141-242-47.dsl.snfc21.pacbell.net) left irc: Quit: leaving | 14:21 | |
| fijal | http://paste.pocoo.org/show/497952/ | 14:21 |
| fijal | this is measurable | 14:21 |
| arigato | ah :-) | 14:21 |
| fijal | what in test_rclass? | 14:22 |
| kenaan | 12bivab arm-backend-2 11e9b9f641f506 15/pypy/jit/backend/arm/: add names to the functions generated to emit code in the assembler | 14:22 |
| kenaan | 12bivab arm-backend-2 113c00e205750e 15/pypy/jit/backend/arm/: add functions to merge unary cmp operatios with guards | 14:22 |
| arigato | all the changes? | 14:22 |
| fijal | how do I create a diff of a single file between 2 branches? | 14:22 |
| arigato | you do this: | 14:23 |
| arigato | in your branch: | 14:23 |
| arigato | hg merge default | 14:23 |
| arigato | hg diff -r default | 14:23 |
| fijal | ah yes, I know that | 14:23 |
| arigato | (and then probably "hg up --clean" to cancel the hg merge) | 14:23 |
| stakkars_ (~tismer@p5DDB5E98.dip.t-dialin.net) joined #pypy. | 14:24 | |
| fijal | weeeeelll | 14:24 |
| fijal | those changes remove assignment to an unused variable | 14:24 |
| fijal | I know it's irrelevant to the branch but well | 14:24 |
| arigato | as you like --- but at least the "import" can be killed | 14:25 |
| lucian_ (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 14:25 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Read error: Connection reset by peer | 14:25 | |
| mcdonc (~mcdonc@cabana.palladion.com) left irc: Ping timeout: 258 seconds | 14:25 | |
| fijal | it's just that my emacs colors such stuff red :) | 14:25 |
| kenaan | 12fijal lightweight-finalizers 11e916dec7191d 15/pypy/rpython/test/test_rclass.py: remove unused imports | 14:25 |
| santagada (~leonardo@177.18.63.32) joined #pypy. | 14:25 | |
| arigato | fijal: ah, also, FinalizerAnalyzer: | 14:27 |
| stakkars__ (~tismer@dslb-088-074-058-015.pools.arcor-ip.net) left irc: Ping timeout: 244 seconds | 14:28 | |
| arigato | I think you should swap its meaning, with top_result() meaning "oups, I lost track" and bottom_result() meaning "ok so far" | 14:28 |
| arigato | that's what the generic functions do | 14:28 |
| arigato | e.g. if you have some strange indirect_call to an unknown graph, the generic code will return top_result() | 14:28 |
| arigato | ah oups, sorry | 14:29 |
| fijal | yes I was confused as well :) | 14:29 |
| arigato | ok, it's already in the "correct" way :-) | 14:29 |
| arigato | "bottom" and "top" are too much "computer sciency" for us | 14:30 |
| fijal | yes | 14:31 |
| arigato | ok, I just wrote here my comments, please make sure you didn't skip any :-) | 14:32 |
| arigato | the branch looks fine otherwise | 14:32 |
| fijal | I've just finished the last one | 14:32 |
| fijal | the list vs checking typeid one | 14:32 |
| fijal | so I would run some tests and then merge | 14:33 |
| fijal | ah one more | 14:33 |
| fijal | you didn't answer - do I just kill op_track_alloc_stop on the llinterp and be happy? | 14:33 |
| arigato | probably not | 14:33 |
| arigato | note that it's not doing tracking | 14:33 |
| fijal | that's a bit of a problem | 14:33 |
| fijal | only if you write some kind of test though | 14:34 |
| fijal | so maybe not any more | 14:34 |
| arigato | why did you need to make it "canrun", but not the track_alloc_start? | 14:34 |
| fijal | I think those are leftovers from the previous approach really | 14:34 |
| fijal | we don't have a test any more that directly manipulates low-level memory | 14:34 |
| fijal | so "fine" I guess to remove this support | 14:34 |
| Nick change: lucian_ -> lucian | 14:35 | |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Quit: Leaving | 14:35 | |
| arigato | ok | 14:35 |
| lucian__ (~lucian@93-97-174-114.zone5.bethere.co.uk) joined #pypy. | 14:35 | |
| Nick change: lucian__ -> lucian | 14:35 | |
| fijal | arigato: if you want to look for some work targets, we loose on ai with cpython these days | 14:38 |
| fijal | ah\ | 14:38 |
| fijal | arigato: I have an idea about improving frames in case of call_assembler | 14:38 |
| Alex_Gaynor | arigato: there is something *too* computer sciency for us? | 14:40 |
| Action: fijal booked his sprint ticket | 14:42 | |
| dgl (~dgl@109.86.165.231) left irc: Quit: Leaving... | 14:43 | |
| Unhelpful | Surely not, for you ivory-tower academics? ;) | 14:43 |
| Alex_Gaynor | fijal: pff, you were right, copystrcontent does indeed clear frontend heap caches | 14:43 |
| fijal | Alex_Gaynor: :) | 14:44 |
| arigato | Alex_Gaynor: if you think pypy is anywhere near computer-sciency in style, you don't know computer science :-) | 14:44 |
| kenaan | 12fijal extradoc 111fc0097464a4 15/sprintinfo/gothenburg-2011-2/people.txt: add myself | 14:44 |
| fijal | or pypy | 14:44 |
| Alex_Gaynor | arigato: all the computer scientists I know left academia to do real work :) | 14:44 |
| arigato | :-) | 14:44 |
| fijal | tests pass | 14:46 |
| Action: fijal merges lightweight-finalizers | 14:46 | |
| arigato | :-) | 14:47 |
| fijal | Alex_Gaynor: do you know the status of justin's branch? | 14:47 |
| Alex_Gaynor | fijal: his gc branch? | 14:47 |
| Alex_Gaynor | no idea | 14:47 |
| Alex_Gaynor | I thought he said it was close though | 14:47 |
| fijal | yeah | 14:47 |
| fijal | it has implications with lightweight finalizers | 14:47 |
| fijal | since if the stuff was malloced in the nursery, adding pressure makes no sense | 14:48 |
| fijal | so maybe we need to reorganize the interface a bit ;-) | 14:48 |
| kenaan | 12fijal lightweight-finalizers 11d80d4e3f457a 15/pypy/rpython/lltypesystem/: remove track_alloc_stop support, not needed any more | 14:49 |
| kenaan | 12fijal lightweight-finalizers 11e09c7b3e1296 15/pypy/rpython/memory/gc/minimark.py: Use a list instead of checking each time the type id data | 14:49 |
| kenaan | 12fijal lightweight-finalizers 11630cc8b2cb4c 15/: close merged branch | 14:52 |
| kenaan | 12fijal default 11b3d0ebe10a5d 15/pypy/: (fijal, arigo reviewing) Merge lightweight-finalizers branch. This branch adds a possitibility for a finalizer to b... | 14:52 |
| fijal | oops | 14:52 |
| fijal | I guess I forgot a decorator | 14:52 |
| fijal | Alex_Gaynor: so what's up with multidim arrays? | 14:58 |
| matehat (~matehat@modemcable015.90-176-173.mc.videotron.ca) joined #pypy. | 15:05 | |
| Alex_Gaynor | fijal: not much ATM | 15:06 |
| fijal | can I finish it somehow? | 15:07 |
| Alex_Gaynor | fijal: tehre isn't a ton of progress, if you want to take it and finish it that would be good I think | 15:10 |
| fijal | I guess we can | 15:10 |
| fijal | if for nothing else, then for "yes we can" campaign | 15:10 |
| ojii (~ojii@40-34.60-188.cust.bluewin.ch) left irc: Remote host closed the connection | 15:11 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/539 [12alex, virtual-dicts] | 15:12 |
| fijal | boom | 15:12 |
| mvt (~mvantelli@87.213.45.85) left irc: Quit: Leaving | 15:12 | |
| ojii (~ojii@40-34.60-188.cust.bluewin.ch) joined #pypy. | 15:12 | |
| Alex_Gaynor | fijal: any idea what could cause http://buildbot.pypy.org/summary/longrepr?testname=unmodified&builder=pypy-c-jit-linux-x86-64&build=539&mod=lib-python.2.7.test.test_xrange ? I'm seeing it on my virtual-dict branch | 15:13 |
| fijal | you mean anything other than a bug in the backend? | 15:13 |
| Alex_Gaynor | fijal: yes, like some API I implemented wrong on my virtual or resume data or some such | 15:14 |
| fijal | Alex_Gaynor: I know how to fix that though | 15:14 |
| Alex_Gaynor | fijal: fix what? a KeyError? | 15:14 |
| fijal | add set/getinteriorfield to test_zrandom | 15:14 |
| fijal | and fix the bug there | 15:14 |
| fijal | feel like doing it? | 15:15 |
| Alex_Gaynor | I gotta go to class in a minute, so not ATM :) | 15:15 |
| Alex_Gaynor | fijal: btw, I think we generate resume data for zeroing a field on a virtual, that's a bit stupid no? | 15:15 |
| fijal | after class | 15:15 |
| Alex_Gaynor | fijal: maybe, I also need to teach frontend heapcache about strcopycontent, and I don't know anything about test_zrandom anyways | 15:17 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1067 [12alex, virtual-dicts] | 15:18 |
| arigato | yes, adding new operations to test_random is a good idea generally speaking | 15:18 |
| Alex_Gaynor | arigato: do you have an idea about resume data for zeroing fields on virtuals? | 15:19 |
| arigato | yes, it's likely that indeed you are right | 15:19 |
| arigato | we should assume that upon resuming, we start with zero-killed structures, so that we don't have to specify it again | 15:20 |
| arigato | zero-filled | 15:20 |
| Alex_Gaynor | we could even branch on if gc_ll_descr.malloc_zerofilled | 15:20 |
| Alex_Gaynor | I guess that's a useful optimization, especially for virtual-dicts, which hvae tons of fields but usually only a few are set | 15:20 |
| arigato | it's probably even better to really assume it's zero-filled, and fill it if necessary | 15:21 |
| arigato | good point | 15:21 |
| amaury (amaury_@nat/google/x-kzewsvakmaubjerj) left irc: Remote host closed the connection | 15:21 | |
| Alex_Gaynor | pff, my branch doesn't seem to work with app-level dicts yet for some reason | 15:21 |
| Action: Alex_Gaynor -> class | 15:22 | |
| mcdonc (~mcdonc@cabana.palladion.com) joined #pypy. | 15:25 | |
| aleksi (~aleksi@85.235.191.82) joined #pypy. | 15:28 | |
| fijal | Alex_Gaynor: this is probably a bug in the implementation somehow, seriously add it to test_zrandom | 15:30 |
| fijal | even if it's a pain | 15:30 |
| fijal | I can do it if you don't like the idea | 15:30 |
| dmalcolm (david@nat/redhat/x-lgpbojqechtdfhst) joined #pypy. | 15:31 | |
| arigato | fijal: ah, you talked about call_assembler earlier | 15:31 |
| fijal | arigato: yes | 15:31 |
| arigato | I also have ideas for it | 15:31 |
| fijal | ok :) | 15:31 |
| fijal | my goal would be to reduce amount of stuff we store on frame before finish() | 15:32 |
| fijal | because we can pass a flag "did frame escape" | 15:32 |
| arigato | ah, what I have in mind is unrelated then: it's about reducing the amount of stuff we pass *into* the call | 15:33 |
| fijal | related, but not | 15:34 |
| arigato | :-) | 15:34 |
| arigato | so far we stupidly pass every virtualizable2 field of the frame twice: | 15:35 |
| fijal | yes | 15:35 |
| arigato | in the frame itself, and as argument | 15:35 |
| Action: fijal is kinda amazed how zen pypy is | 15:35 | |
| fijal | it does not seem to be ever finishable | 15:35 |
| arigato | :-) | 15:36 |
| arigato | I think the sanest is to pass it only on the frame, and keep the number of arguments down | 15:36 |
| arigato | it would mean that all our call_assembler have a known number of arguments, too | 15:36 |
| arigato | so it would speed up the normal calls to execute_token() too | 15:37 |
| kushal (~kdas@fedora/kushal) left irc: Quit: This computer has gone to sleep | 15:38 | |
| arigato | in fact set_future_value_xx() and execute_token() are probably not needed any more, | 15:38 |
| arigato | and instead we just need an execute_token(looptoken, *args) | 15:38 |
| arigato | and the machine code backends can be simplified to not make two entry points everywhere | 15:41 |
| arigato | instead they can have just the version that accepts arguments | 15:41 |
| arigato | not the version that reads them out of "set_future_value" storage | 15:41 |
| arigato | ...I only need a reasonable name for that branch now :-) | 15:43 |
| JaRoel|4d (~jaroel|4d@office.fourdigits.nl) left irc: Remote host closed the connection | 15:44 | |
| fijal | execute_assembler goes where? | 15:44 |
| fijal | always to the entry bridge or to the normal loop as well? | 15:44 |
| arigato | call_assembler? | 15:45 |
| fijal | yes | 15:45 |
| arigato | to the entry bridge | 15:45 |
| fijal | sorry | 15:45 |
| fijal | always? | 15:45 |
| arigato | I think so | 15:45 |
| fijal | I think not | 15:45 |
| arigato | ah | 15:45 |
| fijal | then it would be utter nonsense | 15:46 |
| fijal | since entry bridges have fixed number of args | 15:46 |
| fijal | I claim it goes to the loop as well | 15:46 |
| Action: fijal checks | 15:46 | |
| arigato | it seems to go only on "jit_cell_at_key()" | 15:47 |
| lambacck (~chris@d24-150-124-118.home.cgocable.net) joined #pypy. | 15:48 | |
| arigato | which has a method get_entry_loop_token() | 15:48 |
| arigato | so unless the naming is not correct any more | 15:48 |
| arigato | then it goes to an entry bridge | 15:48 |
| fijal | ah ok | 15:48 |
| fijal | but then it only unpacks the virtualizable it does not have virtuals right? | 15:48 |
| arigato | yes | 15:48 |
| fijal | ok | 15:48 |
| fijal | then it's indeed nonsense | 15:49 |
| arigato | yes yes, there is code that takes the red args + the virtualizable stuff | 15:49 |
| kkris (~kris@93-82-44-187.adsl.highway.telekom.at) joined #pypy. | 15:49 | |
| fijal | hm | 15:49 |
| arigato | but the virtualizable stuff is always the same as what is found on the frame | 15:49 |
| fijal | I *think* the original idea was that we don't have to store it on the frame in the first place | 15:49 |
| arigato | yes | 15:49 |
| arigato | but anyway we do it too | 15:50 |
| fijal | yes | 15:50 |
| arigato | and the original idea would not really work anyway because we can't pass virtuals | 15:50 |
| fijal | maybe we can think about a way to do it though? | 15:50 |
| arigato | that's a bit hard, but also it would not really invalidate the simplification I'm doing now | 15:51 |
| Action: fijal cooked himself a fairly disgusting dinner | 15:51 | |
| arigato | because what I'm going to assume is that on execute_token() we have a known number of args | 15:51 |
| fijal | ok | 15:51 |
| fijal | just don't make it any harder :) | 15:51 |
| fijal | what I had in mind was a step in the other direction | 15:51 |
| arigato | but generating CALL_ASSEMBLERs with different signatures should be possible later | 15:52 |
| arigato | yes? | 15:52 |
| lucian (~lucian@93-97-174-114.zone5.bethere.co.uk) left irc: Ping timeout: 256 seconds | 15:53 | |
| Trundle (~andy@python/site-packages/trundle) left irc: Remote host closed the connection | 15:54 | |
| fijal | by the time we do CALL_ASSEMBLER we generally know whether the frame escaped or not | 15:54 |
| fijal | so we can mark it as "not escaped" | 15:54 |
| fijal | and on the lower level the optimizer can be smarter because it does know the frame did not escape | 15:55 |
| fijal | maybe causing a retrace | 15:55 |
| arigato | ah | 15:55 |
| fijal | we do lots of nonsense just because it might have escaped | 15:55 |
| fijal | but it usually does not and by the time we call it we know it | 15:56 |
| arigato | I think even that we should not reach CALL_ASSEMBLER if the frame escaped, bcause a GUARD_NOT_FORCED would trigger | 15:57 |
| fijal | even better :) | 15:57 |
| Gonsor (~quassel@134.76.63.190) joined #pypy. | 15:57 | |
| mitchellh (~mitchellh@c-71-202-125-40.hsd1.ca.comcast.net) joined #pypy. | 15:57 | |
| fijal | even from the interpreter the frame escaped only if a couple of things were called | 15:57 |
| fijal | it doesn't escape "just because" | 15:57 |
| fijal | so we can keep a flag on frame "did it escape?" | 15:57 |
| fijal | admittedly it's very hand-wavy | 15:57 |
| arigato | it's a bit annoying, it seems to require us to compile two versions of everything | 15:58 |
| fijal | no | 15:58 |
| fijal | because we usually don't call the JIT if stuff escaped anyway | 15:58 |
| arigato | ah | 15:58 |
| mitchellh (~mitchellh@c-71-202-125-40.hsd1.ca.comcast.net) left irc: Client Quit | 15:58 | |
| arigato | I see | 15:58 |
| fijal | good:) | 15:58 |
| arigato | you want a flag on the PyFrame class | 15:59 |
| fijal | yes | 15:59 |
| arigato | seems to make sense | 15:59 |
| fijal | it's obviously not as good idea in general, for any interpreter | 15:59 |
| fijal | but in practice it's good enough for python and virtualrefs are an obscure python-only hack anyway | 15:59 |
| arigato | well so far we just generate GUARD_NOT_FORCED everywhere too | 15:59 |
| arigato | we can even use the same fields checked by GUARD_NOT_FORCED, instead of adding our own | 16:00 |
| fijal | ah | 16:00 |
| fijal | it's possible to do the same trick for GUARD_NOT_FORCED as for GUARD_NOT_INVALIDATED | 16:01 |
| fijal | you just have to carefully patch the assembler back ;-) | 16:01 |
| Action: fijal hides his evil grin | 16:01 | |
| arigato | ah sorry, I meant GUARD_NOT_INVALIDATED everywhere | 16:01 |
| fijal | no, I think you meant GUARD_NOT_FORCED | 16:01 |
| fijal | the one about virtualizables right? | 16:01 |
| arigato | er yes :-) | 16:01 |
| fijal | GUARD_NOT_INVALIDATED is about quasi immutable hints | 16:01 |
| arigato | yes, I'm confusing the two now .-) | 16:02 |
| fijal | ok | 16:02 |
| fijal | but indeed, we already have necessary mechanisms I think | 16:02 |
| fijal | on virtualrefs | 16:02 |
| arigato | this should not be about virtualrefs, though | 16:02 |
| fijal | no no no | 16:03 |
| fijal | but virtualrefs already keep track of which stuff has escaped | 16:03 |
| fijal | I think | 16:03 |
| fijal | I might be wrong though | 16:03 |
| fijal | arigato: do I make any sense? | 16:03 |
| arigato | yes, mostly :-) | 16:03 |
| fijal | good :) | 16:04 |
| fijal | I was merely trying to poke some neurons in your head since I only *think* it's possible | 16:04 |
| arigato | yes, I also *think* it is | 16:04 |
| arigato | basically you would do the equivalent of GUARD_NOT_FORCED manually just before calling execute_token() | 16:04 |
| arigato | and also just before tracing | 16:05 |
| fijal | yes | 16:05 |
| arigato | but what about generators? | 16:05 |
| fijal | as in their frames escape? | 16:07 |
| arigato | yes, we need to sort out what occurs with app-level generators | 16:07 |
| fijal | you can have a hint like one we had for inlining | 16:07 |
| fijal | if the code is generators, do what we have now | 16:07 |
| fijal | otherwise optimize slightly better | 16:08 |
| fijal | a bit of a mess, but still you don't need two copies of everything | 16:08 |
| asmeurer (~asmeurer@dhcp-baca-230.resnet.nmt.edu) joined #pypy. | 16:11 | |
| kenaan | 12fijal default 119d13b202cb4b 15/pypy/: Provide a hint that can be specified as a decorator - @rgc.is_light_finalizer | 16:11 |
| fijal | we should come back to the idea of light virtualizables btw ;-) | 16:11 |
| fijal | precisely for generators | 16:11 |
| fijal | where you copy a virtualizable stack -> heap but without forcing it | 16:12 |
| Action: arigato -> away | 16:14 | |
| G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving. | 16:15 | |
| arigato (~arigo@fwstups.cs.uni-duesseldorf.de) left irc: Quit: See you | 16:18 | |
| bivab_ (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 16:23 | |
| bivab_ (~david@fwstups.cs.uni-duesseldorf.de) left irc: Client Quit | 16:23 | |
| kushal (~kdas@114.143.161.251) joined #pypy. | 16:24 | |
| kushal (~kdas@114.143.161.251) left irc: Changing host | 16:24 | |
| kushal (~kdas@fedora/kushal) joined #pypy. | 16:24 | |
| bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Read error: Operation timed out | 16:25 | |
| exarkun | http://speed.pypy.org/ :/ | 16:26 |
| fijal | exarkun: yes, a bug | 16:26 |
| fijal | I poked miquel and it'll be fixed | 16:26 |
| fijal | hopefully tonight | 16:26 |
| Ibison_ (~Ibison@c-83-233-136-34.cust.bredband2.com) joined #pypy. | 16:30 | |
| k_bx (~k_bx@94.244.19.62) joined #pypy. | 16:32 | |
| MjrTom (MjrTom@azureus/MjrTom) left #pypy. | 16:38 | |
| aleksi (~aleksi@85.235.191.82) left irc: Remote host closed the connection | 16:44 | |
| ojii | fijal, what i was talking about in #epio: https://gist.github.com/1313493 | 16:50 |
| ojii | using the code from here: https://github.com/ojii/gitstats.ep.io | 16:51 |
| kenaan | 12fijal default 112612cae35357 15/lib-python/modified-2.7/urllib2.py: I swear I did that change before - remove the incorrect usage of close introduced by chance when experimenting with... | 16:51 |
| fijal | what's dulwich? | 16:52 |
| ojii | pure-python git implementation | 16:52 |
| fijal | ojii: why does it compile C if it's pure python? | 16:52 |
| ojii | oh should mention, the first argument to run.py should be a path to a git repository | 16:53 |
| ojii | fijal, o.O? | 16:53 |
| fijal | yes, that's precisely what I mean | 16:53 |
| ojii | "Dulwich is a pure-Python implementation of the Git file formats and protocols." | 16:53 |
| ojii | from their website | 16:53 |
| fijal | I don't want to care *which* git repository is good enough | 16:53 |
| ojii | the hell? | 16:53 |
| fijal | well, that's a lie | 16:53 |
| ojii | heh "Dulwich has been tested on CPython 2.X where >= 4 and on recent versions of pypy." | 16:53 |
| fijal | maybe it works on pypy | 16:53 |
| fijal | first it should not compile C extensions on pypy | 16:54 |
| Nick change: Guest98764 -> Arach | 16:54 | |
| fijal | what's dateutil? | 16:54 |
| ojii | aha "All functionality is available in pure Python, but (optional) C extensions are also available for better performance." | 16:54 |
| ojii | dateutil are utilities for datetime | 16:54 |
| ojii | using the 'loop over all months between those two dates' helper | 16:54 |
| fijal | how do I install dateutil? | 16:54 |
| ojii | pip install -r requirements doesn't work? | 16:55 |
| ojii | it's called 'python-dateutil' on pypi | 16:55 |
| fijal | so what did you use for your git repo? | 16:55 |
| ojii | django-cms repo | 16:55 |
| ojii | https://github.com/divio/django-cms | 16:55 |
| fijal | ok | 16:56 |
| fijal | if I remove the optional C extension it goes 2x faster | 16:57 |
| fijal | for example | 16:57 |
| fzzzy (~donovan@nat/mozilla/x-cvyhclmvhexdyqkg) joined #pypy. | 16:58 | |
| ojii | interesting | 16:58 |
| fijal | ojii: complain and tell them to remove compilation on pypy and then make python version better optimized | 16:58 |
| fijal | well, it's known | 16:58 |
| ojii | how did you do that? | 16:58 |
| fijal | rm <some-path>/*.so | 16:58 |
| ojii | ah | 16:58 |
| ojii | smart | 16:58 |
| fijal | not a very advanced way admittedly | 16:58 |
| fijal | I should charge by an hour ;-) | 16:58 |
| ojii | heh | 16:59 |
| ojii | rm'ing them removed a second from runtime | 16:59 |
| ojii | I'll just start doing this with everything. Removing random files to speed up my computer :D | 17:00 |
| fijal | :] | 17:00 |
| matehat (~matehat@modemcable015.90-176-173.mc.videotron.ca) left irc: Quit: Leaving... | 17:01 | |
| tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) joined #pypy. | 17:02 | |
| tilgovi (~randall@c-98-210-155-124.hsd1.ca.comcast.net) left irc: Changing host | 17:02 | |
| tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy. | 17:02 | |
| mtigas (~Adium@users.spokesman.com) joined #pypy. | 17:03 | |
| ojii | fijal, https://bugs.launchpad.net/dulwich/+bug/881546 | 17:03 |
| ojii | it is still massively slower than python 2.7 though | 17:03 |
| fijal | less massively so, no? | 17:03 |
| ojii | yes | 17:03 |
| ojii | it's only twice as slow now | 17:03 |
| ojii | instead of 4 times as slow | 17:03 |
| fijal | remember we're fighting now with a C extension ;-) | 17:04 |
| fijal | but yes, not good enough | 17:04 |
| ojii | it's weird, for some reason i've yet to write code that runs faster under pypy than 'normal python', maybe my code is just too weird/bad :D | 17:05 |
| fijal | well, in this particular example it uses pure python vs C extensions | 17:05 |
| fijal | and there is another obscure reason | 17:06 |
| fijal | which is that structseq is written badly in pypy | 17:06 |
| ojii | ah of course, i had an idea it would be that | 17:07 |
| teknico (~quassel@88-149-209-131.dynamic.ngi.it) left irc: Remote host closed the connection | 17:07 | |
| fijal | and stuff like this :) | 17:09 |
| fijal | no pypy does not win for everything | 17:09 |
| fijal | but has a much better curve than cpython | 17:09 |
| fijal | ;-) | 17:09 |
| kushal (kdas@fedora/kushal) left #pypy ("Leaving"). | 17:09 | |
| ojii | but i want pypy to be that magical silver bullet that makes all the things faster | 17:10 |
| fijal | I know | 17:10 |
| fijal | we'll get there | 17:11 |
| fijal | ;-) | 17:11 |
| ronny | ojii: fyi i just made a commit to dulwich disabling the extensions on pypy, should be accepted soon | 17:14 |
| ojii | ronny, nice | 17:14 |
| ojii | wow launchpad is confusing | 17:17 |
| ronny | yes | 17:18 |
| ojii | anyway i'll need to grab a beer, when i come back this is super fast, right? :D | 17:19 |
| ojii (~ojii@40-34.60-188.cust.bluewin.ch) left irc: Remote host closed the connection | 17:23 | |
| jerryluc (~Havar@bl252a.studby.ntnu.no) left irc: Read error: Connection reset by peer | 17:28 | |
| mitchellh (~mitchellh@c-69-181-107-107.hsd1.ca.comcast.net) joined #pypy. | 17:29 | |
| ramusara (~ramusara@220.156.210.236.user.e-catv.ne.jp) left irc: Quit: Leaving... | 17:34 | |
| mitchellh (~mitchellh@c-69-181-107-107.hsd1.ca.comcast.net) left irc: Quit: Computer has gone to sleep | 17:38 | |
| fijal | Alex_Gaynor: mess.... | 17:44 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1805 [12alex, virtual-dicts] | 17:48 |
| CIA-25 | 03fijal 07roundup * 10#921/_structseq is a slow mess: [new] http://paste.pocoo.org/show/498047/ is 2x slower under pypy than cpython * 14https://bugs.pypy.org/issue921 | 17:50 |
| fijal | ok, "for later" | 17:50 |
| arigato (~arigo@82.113.121.195) joined #pypy. | 17:57 | |
| Alex_Gaynor | fijal: what is? | 17:57 |
| Alex_Gaynor | fijal: btw do you feel like doing test_zrandom? | 17:58 |
| fijal | I can I guess, it's me who introduced problems | 17:58 |
| fijal | Alex_Gaynor: structseq is a mess | 17:59 |
| Alex_Gaynor | fijal: well, I still think it might be a bug in my virtuals, since it doesn't error on trunk, but yes please do write the test :) | 17:59 |
| fijal | ok, so numpy-comparisons is by far unfinished | 17:59 |
| fijal | http://paste.pocoo.org/show/498055/ | 18:00 |
| fijal | an example | 18:00 |
| Alex_Gaynor | fijal: one thing at a tiem | 18:00 |
| voidspace (~voidspace@python/psf/voidspace) left irc: Quit: voidspace | 18:00 | |
| fijal | yes right | 18:00 |
| fijal | I was just looking, since snus-mumrik did new checkins I believe | 18:00 |
| fijal | we should start looking into numpy tests I believe | 18:01 |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 18:02 | |
| fijal | Alex_Gaynor: but make structseq nicer | 18:06 |
| Alex_Gaynor | fijal: first virtual dicts for me | 18:06 |
| antocuni (~antocuni@host152-120-dynamic.11-79-r.retail.telecomitalia.it) left irc: Ping timeout: 260 seconds | 18:08 | |
| santagada (leonardo@177.18.63.32) left #pypy. | 18:11 | |
| Trundle (~andy@python/site-packages/trundle) joined #pypy. | 18:11 | |
| pjenvey | structseq is a subclass of tuple in 3.3 | 18:12 |
| pjenvey | could skipping ahead to that change maybe do enough for structseq's speed? | 18:13 |
| fzzzy (~donovan@nat/mozilla/x-cvyhclmvhexdyqkg) left irc: Quit: fzzzy | 18:15 | |
| fzzzy (~donovan@nat/mozilla/x-qqdmamnpfemtujsl) joined #pypy. | 18:16 | |
| pjenvey | it's just basically a namedtuple impl right, why did it not totally consolidate with namedtuple, i don't know | 18:17 |
| ronny | pjenvey: names and indexes dont map propperly with structseq | 18:20 |
| ronny | pjenvey: in particular differen ways to access give different types for some backward compatibility things | 18:21 |
| rekamso (~textual@67.51.82.66) joined #pypy. | 18:23 | |
| kenaan | 12alex_gaynor virtual-dicts 11d58706c7bdb6 15/pypy/jit/metainterp/: make the heapcache a bit smarter about how stuff escaped | 18:23 |
| fijal | it's not like we have arrays of pointers in test_random either | 18:24 |
| kenaan | 12alex_gaynor virtual-dicts 11c1dbbe1bd86e 15/pypy/jit/metainterp/: add a unittest for the previous commit | 18:26 |
| Alex_Gaynor | fijal: I suppose the conclusion is we should add them | 18:27 |
| Action: Alex_Gaynor teaches the frontend heapcache random tricks | 18:27 | |
| kenaan | 12alex_gaynor virtual-dicts 11d876b901547e 15/: merged default | 18:28 |
| fijal | Alex_Gaynor: how about the other kind of heapcache | 18:28 |
| fijal | the optimizeopt one? | 18:28 |
| Alex_Gaynor | fijal: it already knows these tricks :) | 18:28 |
| fijal | including copystrcontent? | 18:28 |
| Alex_Gaynor | I haven't taught it copystrcontent yet | 18:29 |
| Alex_Gaynor | I just taught it that if you put a virtual inside a virtual array then the box doesn't escape until either it or the array escapes | 18:29 |
| Alex_Gaynor | this is useful since tons of stuff "escapes" to locals_Stack in python | 18:30 |
| mabbikeel (~mabbikeel@cpc4-duns7-2-0-cust218.9-3.cable.virginmedia.com) joined #pypy. | 18:31 | |
| CIA-25 | 03agaynor 07roundup * 10#921/_structseq is a slow mess: | 18:31 |
| CIA-25 | [chatting] I guess it'd be nice if this was a more unittest type thing, without needing | 18:31 |
| CIA-25 | random IO. Can we write a benchmark that just construct ... * 14https://bugs.pypy.org/issue921 | 18:31 |
| fijal | Alex_Gaynor: yop we can | 18:32 |
| fijal | it was just faster that way | 18:32 |
| Alex_Gaynor | fijal: put it on the TODO list ;) | 18:32 |
| CIA-25 | 03afa 07roundup * 10#921/_structseq is a slow mess: os.stat_result((None,) * 10) * 14https://bugs.pypy.org/issue921 | 18:42 |
| Alex_Gaynor | fijal: hehe, amaury is smarter than us | 18:42 |
| fijal | :] | 18:43 |
| arigato | fijal: arrays of pointers in test_random: that's not too important | 18:47 |
| arigato | because for a low-level backend, that's the same as array of integers | 18:47 |
| fijal | ok | 18:47 |
| arigato | similarly, you should add arrays of structs containing a few ints of various sizes, but not pointers | 18:47 |
| amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) joined #pypy. | 18:48 | |
| arigato | bah, I may give up already on the branch "jit-simplify-backendintf" | 18:49 |
| Alex_Gaynor | what branch was that? | 18:49 |
| kenaan | 12arigo jit-simplify-backendintf 1126419ef5e993 15/: A branch to simplify the backend interface, killing set_future_value_xx(). | 18:51 |
| kenaan | 12arigo jit-simplify-backendintf 116e1590cee5e1 15/pypy/jit/backend/: Change the interface and fix the llgraph backend. | 18:51 |
| arigato | ^^^ for reference | 18:51 |
| Alex_Gaynor | ah | 18:51 |
| arigato | I don't know what to do in the one case in which the front-end calls a loop that's not an entry bridge | 18:51 |
| arigato | it's after tracing, when it has traced one iteration | 18:53 |
| arigato | ah, maybe I can instead abort | 18:53 |
| arigato | and let it reach the loop normally later | 18:53 |
| arigato | it would kill a bit more code | 18:53 |
| kenaan | 12arigo default 119a4ee13149cd 15/pypy/jit/backend/llsupport/test/test_gc.py: Make this test closer to what was intended. | 18:55 |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/671 [12alex, virtual-dicts] | 18:56 |
| tilgovi (~randall@couchdb/developer/tilgovi) left irc: Ping timeout: 240 seconds | 18:57 | |
| amaury_ | FYI, I don't plan to work alone in the py3k branch anymore | 18:58 |
| arigato | amaury_: that's fine, there are people that are supposed to be paid for it :-) | 18:58 |
| amaury_ | indeed | 18:58 |
| arigato | we're probably going to quick-start it at the Gothenburg sprint | 18:59 |
| amaury_ | very good | 18:59 |
| amaury_ | the py3k branch probably needs some review, otherwise it seems to be a good start | 19:00 |
| arigato | ok | 19:00 |
| amaury_ | the most disturbing changes are already in: unicode identifiers, and open=io.open | 19:01 |
| amaury_ | and yet the CPython test suite runs correctly for many files | 19:02 |
| arigato | on py.py, or translated already? | 19:03 |
| amaury_ | translated | 19:03 |
| amaury_ | I had to remove _rawffi and cpyext | 19:03 |
| amaury_ | because they segfault during translation | 19:03 |
| amaury_ | (both pypy-c and python2.6) | 19:04 |
| Alex_Gaynor | pff, 30 minutes translating just to find out I'm missing some frontend op which is needed :/ | 19:04 |
| arigato | wow | 19:04 |
| amaury_ | probably a misguided call to ll2ctypes | 19:04 |
| amaury_ | ccharp on a unicode string | 19:04 |
| arigato | Alex_Gaynor: which one? | 19:05 |
| Alex_Gaynor | arigato: I haven't a clue, I just know that http://paste.pocoo.org/show/498087/ still generates a CALL for the dict lookup | 19:05 |
| arigato | :-/ | 19:07 |
| arigato | if you can't find it out, try the example on pypyjit.py | 19:07 |
| Alex_Gaynor | that'd be the smart idea | 19:08 |
| arigato | you can also use the (Linux-only) backend/x86/tool/viewcode.py | 19:08 |
| arigato | it should be able to map the address of the called function back to its name | 19:09 |
| Alex_Gaynor | I don't need that, this problem is evident at the resop level | 19:09 |
| arigato | ah | 19:09 |
| fijal | amaury_: I don't think anyone expected you to work on py3k branch at all :) | 19:12 |
| fijal | if you ask me | 19:12 |
| fijal | arigato: gdb is useful as well :) | 19:12 |
| fijal | viewcode does not always work, gdb always | 19:13 |
| Alex_Gaynor | gdb isn't quite useful for why the frontend optimizer missed something | 19:14 |
| fijal | I hate test_zrandom | 19:14 |
| kenaan | 12edelsoh ppc-jit-backend 11d4c1290fd460 15/pypy/jit/backend/ppc/ppcgen/opassembler.py: More PPC64 support for arraylen_gc, setarrayitem_gc, getarrayitem_gc | 19:14 |
| mwhudson (~mwh@linaro/mwhudson) left irc: Ping timeout: 252 seconds | 19:16 | |
| k_bx (~k_bx@94.244.19.62) left irc: Remote host closed the connection | 19:16 | |
| amaury_ | fijal: It's probably a way for me to compensate for my absence from the sprints | 19:18 |
| fijal | amaury_: I'm not that judgmental | 19:19 |
| tilgovi (~randall@75.101.111.78) joined #pypy. | 19:20 | |
| tilgovi (~randall@75.101.111.78) left irc: Changing host | 19:20 | |
| tilgovi (~randall@couchdb/developer/tilgovi) joined #pypy. | 19:20 | |
| bgola (~bgola@c95185bc.virtua.com.br) left irc: Ping timeout: 260 seconds | 19:21 | |
| bgola (~bgola@c95185bc.virtua.com.br) joined #pypy. | 19:27 | |
| Rhy0lite (dje@nat/ibm/x-tzwteopzbvqrjzar) left irc: Quit: Leaving | 19:27 | |
| Alex_Gaynor | arigato, fijal: you know what's screwing this up? a ptr_eq. | 19:35 |
| fijal | Alex_Gaynor: uh? | 19:35 |
| fijal | what's screwing what up? | 19:36 |
| Alex_Gaynor | fijal: it's causing the frame to "escape" in the frontend, which escapes the locals, which escapes the W_MultiDict, which esapes the rdict, whih auses something not to get unrolled | 19:36 |
| fijal | pfff | 19:37 |
| fijal | the famous ptr_eq between frames? | 19:37 |
| fijal | nonstd_virtualizable or so? | 19:37 |
| Alex_Gaynor | fijal: yup | 19:37 |
| Alex_Gaynor | fijal: optimizeopt of course removes it becaues one is virtual and the other isn't | 19:37 |
| arigato | ah | 19:37 |
| Alex_Gaynor | it's easy to fix, but I have to go for a few minutes now :) | 19:37 |
| ojii (~ojii@154-60.3-85.cust.bluewin.ch) joined #pypy. | 19:38 | |
| fijal | arigato: http://paste.pocoo.org/show/498103/ | 19:39 |
| fijal | does that make any sense to you? | 19:39 |
| arigato | self._obj is seriously nonsense | 19:40 |
| arigato | you messed up a pointer vs what is being pointed to somewhere | 19:40 |
| mabbikeel (~mabbikeel@cpc4-duns7-2-0-cust218.9-3.cable.virginmedia.com) left irc: Ping timeout: 258 seconds | 19:42 | |
| pjenvey | did we ever have that more detailed discussion about how to best maintain py3k support? | 19:45 |
| fijal | pjenvey: nope | 19:45 |
| fijal | pjenvey: not really at least | 19:45 |
| mabbikeel (~mabbikeel@cpc4-duns7-2-0-cust218.9-3.cable.virginmedia.com) joined #pypy. | 19:45 | |
| fijal | meh :/ | 19:47 |
| fijal | arigato: test_random is a mess :/ | 19:47 |
| arigato | yup | 19:48 |
| mwhudson (~mwh@linaro/mwhudson) joined #pypy. | 19:48 | |
| Ibison_ (~Ibison@c-83-233-136-34.cust.bredband2.com) left irc: Ping timeout: 240 seconds | 19:51 | |
| fijal | arigato: how do I get stuff out of _opaque? | 19:53 |
| arigato | in RPython code, or in tests? | 19:53 |
| fijal | in tests | 19:54 |
| fijal | in RPython code I can't without knowing type | 19:54 |
| fijal | what the fuck | 19:54 |
| fijal | arigato: operations look valid to me, feel like giving a go? | 19:55 |
| arigato | fijal: fwiw http://paste.pocoo.org/show/498103/ shows that the _ptr's _obj contains complete nonsense | 19:55 |
| arigato | it contains another _ptr | 19:55 |
| arigato | which contains another _ptr etc. | 19:55 |
| arigato | until after 50 times you eventually reach a real "struct" | 19:56 |
| fijal | it's a prebuilt thing that looks sane to me | 19:56 |
| arigato | well, I'm just saying that it *is* complete nonsense for a _ptr's _obj to contain another _ptr | 19:57 |
| fijal | ah | 19:57 |
| fijal | how do we get prebuilt stuff passed to the backend? | 19:58 |
| fijal | as just an array of constants or we do stuff with them? | 19:58 |
| arigato | sorry, missing context | 19:58 |
| Action: fijal as well | 19:59 | |
| fijal | we create there a list of prebuilt constants | 19:59 |
| fijal | does the backend to anything special with them? | 19:59 |
| fijal | or just takes a list? | 20:00 |
| fijal | or we just pass Consts there? | 20:00 |
| fijal | that seems to be more likely | 20:01 |
| fijal | maybe just llbackend does not deal that well with prebuilt arrays of structs | 20:01 |
| Alex_Gaynor | fijal: are you working on test_zrandom? | 20:04 |
| fijal | "working" is a bit too much to say | 20:04 |
| Alex_Gaynor | heh | 20:04 |
| arigato | we create there a list of prebuilt constants => I don't know where "there" is | 20:04 |
| arigato | no, the backend isn't sent any list of prebuilt constants | 20:05 |
| fijal | arigato: the obj seems sane to me at the point of creation | 20:06 |
| fijal | but then someone at the other end receives something broken | 20:06 |
| fijal | i31 = getinteriorfield_gc(Const(* GCREF hidden), Const(0), descr=<Descr "9, 'i', 'f2', E">), | 20:06 |
| fijal | this is how the operation looks like when printed | 20:06 |
| fijal | (Pdb++) subloop.operations[-4].getarg(0).value._obj.container | 20:07 |
| fijal | <array [ S5 {f0='\x02', f1='\xf5', f2=216L}, S5 {f0='+', f1='\x0e', f2=255L}, S5 {f0='\x07', f1='\xec', f2=2L}, S5 {f0='G', f1='\xda', f2=152L}, S5 {f0='\xe9', f1='\t', f2=195L}, S5 {f0='\xe9', f1='$', f2=19L}, S5 {f0='\x0b', f1='>', f2=249L}, S5 {f0='\x06', f1='\xee', f2=11L}, S5 {f0='U', f1='\xdb', f2=30L}, S5 {f0='\xe9', f1='\x0e', f2=239L}, S5 {f0='\xca', f1='\xed', f2=162L}, S5 {f0='\xfe', f1='\xe2', f2=6L}, (...), S5 {f0='\xfb', f1='\xeb', f2=9L}, S5 {f0='\ | 20:07 |
| fijal | xfd', f1='\xf5', f2=7L}, S5 {f0='\x07', f1='\x0e', f2=250L}, S5 {f0='\xf6', f1='\xf3', f2=1L}, S5 {f0='\xdd', f1='\x05', f2=48L} ]> | 20:07 |
| fijal | (Pdb++) | 20:07 |
| mwhudson (~mwh@linaro/mwhudson) left irc: Ping timeout: 240 seconds | 20:07 | |
| fijal | looks sane to me | 20:07 |
| Alex_Gaynor | I lost track, are you claiming it's sane or broken? | 20:08 |
| fijal | this one seems sane | 20:08 |
| fijal | but then the llgraph backend gets something obscure | 20:08 |
| kenaan | 12alex_gaynor virtual-dicts 116283d742ab74 15/pypy/jit/metainterp/test/test_ajit.py: fix a really emberassing typo | 20:10 |
| mwhudson (~mwh@120.136.5.22) joined #pypy. | 20:12 | |
| mwhudson (~mwh@120.136.5.22) left irc: Changing host | 20:12 | |
| mwhudson (~mwh@linaro/mwhudson) joined #pypy. | 20:12 | |
| mabbikeel (~mabbikeel@cpc4-duns7-2-0-cust218.9-3.cable.virginmedia.com) left irc: Ping timeout: 240 seconds | 20:13 | |
| fijal | yes, it's llgraph backend not dealing with PBCs that are arrays of structs :/ | 20:15 |
| fijal | ok | 20:17 |
| fijal | arigato: how do I check when it gets modified? | 20:17 |
| fijal | :/ | 20:17 |
| fijal | it's ok when I pass it to llgraph backend | 20:17 |
| fijal | but then it gets corrupted | 20:17 |
| arigato | llimpl.py should probably use the official interface of lltype, and not _obj | 20:17 |
| fijal | :/ | 20:18 |
| fijal | it's a mess to fight with | 20:18 |
| Alex_Gaynor | lltype has an official interface? ;) | 20:18 |
| arigato | I can't guess why it's corrupted, but the official interface wouldn't let you build such nonsense | 20:18 |
| arigato | Alex_Gaynor: yes: don't use any '_attribute' | 20:19 |
| fijal | arigato: it's still ok at the moment when I call compile_add_ref_const | 20:20 |
| Alex_Gaynor | :) | 20:20 |
| arigato | I can fix it if you want | 20:20 |
| arigato | well, "fix" | 20:20 |
| arigato | because it's probably unrelated to what fijal is fighting | 20:21 |
| fijal | arigato: please, I'm 7 yaks away | 20:21 |
| fijal | can I push my stuff? | 20:21 |
| arigato | sure | 20:21 |
| kenaan | 12fijal default 11de02b302dd89 15/pypy/jit/backend/test/test_ll_random.py: progress towards get/set interiorfield in test_ll_random | 20:24 |
| kenaan | 12fijal default 1113932f534c82 15/pypy/jit/backend/llsupport/test/test_gc.py: merge default | 20:24 |
| fijal | arigato: you can get it to crash by doing | 20:24 |
| fijal | py.test test/test_ll_random.py -s -x --pdb --repeat 10000 --random-seed=6858 | 20:24 |
| canta | to translate the py3k branch just do "hg up -C py3k" and then translate like you would do usually? or is there anythin more specific? | 20:24 |
| aboudreault (~alanb@osgeo/member/aboudreault) left irc: Quit: Leaving | 20:25 | |
| kenaan | 12edelsohn ppc-jit-backend 11c58fa0a4d970 15/pypy/jit/backend/ppc/ppcgen/opassembler.py: Add PPC64 support for strlen | 20:27 |
| Action: arigato -> good night | 20:28 | |
| kenaan | 12arigo jit-simplify-backendintf 11cce408b68723 15/pypy/jit/metainterp/: Fix the front-end. Some reduction in the total number of lines, but due to a change --- when trac... | 20:28 |
| kenaan | 12arigo default 1189631bbf04fe 15/pypy/jit/backend/test/test_ll_random.py: Typo | 20:28 |
| Alex_Gaynor | Rhyolite: should the PPC backend maybe he using some inheritance, rather than if IS_PPC_32 everywhere? | 20:29 |
| arigato | canta: yes, that should be it | 20:29 |
| Rhyolite | Alex_Gaynor: yes, but I have asked Sven and Carl about this multiple times | 20:29 |
| canta | arigato: splendid, thanks | 20:29 |
| Alex_Gaynor | fijal, arigato: I claim victory! http://paste.pocoo.org/show/498149/ now generates http://paste.pocoo.org/show/498150/ | 20:32 |
| fijal | canta: it's very unfinished though | 20:32 |
| kenaan | 12alex_gaynor virtual-dicts 118dfa8646de2c 15/pypy/jit/metainterp/heapcache.py: ptr_eq and ptr_ne don't escape things. | 20:32 |
| canta | fijal: I hope I can find something that i might be able to fix :) | 20:33 |
| fijal | canta: cool | 20:34 |
| Alex_Gaynor | canta: if you want a good beginner task, I think amaury_ hasn't done the conversion for dict.{items,keys,values} to return the views, instead of lists | 20:34 |
| fijal | Alex_Gaynor: a lot of debug_merge_points :) | 20:34 |
| canta | when there is a lot that could be fixed, the probabilty is much higher to find something that i am actually able to fix :p | 20:34 |
| Alex_Gaynor | fijal: somewhere we have "5 resops per bytecode" as a goal. I claim we're doing good ;) | 20:35 |
| fijal | Alex_Gaynor: that's super cool btw | 20:37 |
| Alex_Gaynor | fijal: we have kinda good infrastructure :) | 20:38 |
| mabbikeel (~mabbikeel@cpc4-duns7-2-0-cust218.9-3.cable.virginmedia.com) joined #pypy. | 20:38 | |
| amaury_ | canta: Also, support for sys.hash_info is needed to import decimal.py | 20:40 |
| amaury_ | this one is even simpler | 20:42 |
| fijal | Alex_Gaynor: yop | 20:42 |
| amaury_ | What is a resop? | 20:43 |
| canta | Taking some notes for the mentioned tasks | 20:43 |
| danchr (danchr@cl-848.chi-02.us.sixxs.net) left #pypy. | 20:43 | |
| danchr (~danchr@cl-848.chi-02.us.sixxs.net) joined #pypy. | 20:43 | |
| derdon (~derdon@pD9E1D174.dip.t-dialin.net) joined #pypy. | 20:43 | |
| Alex_Gaynor | amaury_: they're the operations used in the JIT optimizers and backends | 20:45 |
| fijal | amaury_: ? | 20:45 |
| amaury_ | like a jit opcode? | 20:46 |
| Alex_Gaynor | amaury_: basically | 20:46 |
| arigato | amaury_: a resop is an operation in the traces produced by the JIT | 20:50 |
| arigato | as opposed to a "jit opcode" which means an opcode that is used as input to the tracer | 20:51 |
| arigato | "resop" is the intermediate format used everywhere in the JIT, basically | 20:52 |
| timonator | a finalizer as relevant to "lightweight-finalizers" is a __del__ method in an applevel object? | 20:53 |
| Alex_Gaynor | no, it's an __del__ at interp level | 20:53 |
| mabbikeel (~mabbikeel@cpc4-duns7-2-0-cust218.9-3.cable.virginmedia.com) left irc: Ping timeout: 260 seconds | 20:54 | |
| amaury_ | arigato: ok thanks | 20:54 |
| fijal | arigato: any idea? | 20:58 |
| lizardo (~lizardo@189.2.128.130) left irc: Quit: Leaving | 20:58 | |
| timonator | ah, ok | 21:00 |
| timonator | i think i should, rather than try to explode my brain with the separate-applevel-numpy branch merging, re-do the changes i made onto the "regular" micronumpy structure | 21:07 |
| timonator | and do the renaming "instantaneously" when the amount of other numpy branches is 0 | 21:07 |
| fijal | timonator: I don't think there is ever going to be such time | 21:07 |
| fijal | timonator: what's wrong now? | 21:07 |
| timonator | i capitulate, my diff/merge-fu is not near strong enough to figure out what i did wrong | 21:08 |
| timonator | if someone else did it, okay, that would be fine | 21:08 |
| fijal | why do you want to? | 21:08 |
| Arfrever (~Arfrever@apache/committer/Arfrever) joined #pypy. | 21:09 | |
| kenaan | 12fijal releasegil-effectinfo 11ce357df2a5c2 15/pypy/jit/metainterp/test/test_ajit.py: Initial JIT test for the manifestation of this issue. | 21:10 |
| kenaan | 12fijal default 11fc37961a668f 15/pypy/module/pypyjit/policy.py: look into mmap | 21:10 |
| fijal | timonator: I can do it if you don't feel like it | 21:10 |
| fijal | timonator: however, maybe add at least docstrings for things yuo've added? | 21:11 |
| arigato (~arigo@82.113.121.195) left irc: Quit: See you | 21:11 | |
| timonator | sure, that i can definitely do | 21:12 |
| fijal | eh | 21:15 |
| fijal | Alex_Gaynor: if I change genexpr into list comprehensions in ai I speed it up 7x | 21:16 |
| fijal | we have to do something, this is insane | 21:16 |
| Alex_Gaynor | fijal: this is set(...)? | 21:16 |
| fijal | and two others above | 21:16 |
| fijal | maybe 6x | 21:16 |
| Alex_Gaynor | fijal: but they're all to set, or list, or some other function with intep leve loop? | 21:17 |
| Alex_Gaynor | fijal: also, wtf at ce357df2a5c2? isn't that something we committed ages ago? | 21:17 |
| fijal | uh | 21:18 |
| kenaan | 12alex_gaynor virtual-dicts 1190eed59807bd 15/pypy/jit/metainterp/: copy{str,unicode}content can't affect heap caches | 21:18 |
| fijal | that was some irrelevant checkin laying on tannit | 21:18 |
| Alex_Gaynor | fijal: anyway, so the slowness are all interp level loops? | 21:18 |
| fijal | [x86/asm] not implemented operation (guard): instance_ptr_eq | 21:19 |
| fijal | Alex_Gaynor: hey you broke my tools | 21:19 |
| fijal | CRASH | 21:19 |
| Alex_Gaynor | fijal: pull, I fixed that ages ago | 21:19 |
| fijal | puh | 21:19 |
| fijal | did I translate in the middle of something then? | 21:19 |
| Alex_Gaynor | no idea? | 21:19 |
| Alex_Gaynor | fijal: about the slowness? | 21:20 |
| kenaan | 12fijal releasegil-effectinfo 1148639d927f25 15/: close long abandoned branch | 21:20 |
| Alex_Gaynor | abandoned? it was merged :) | 21:20 |
| fijal | well whatever | 21:21 |
| fijal | ok, I guess I gonna go sleep then | 21:21 |
| fijal | slightly worried about genexprs | 21:21 |
| Alex_Gaynor | fijal: can you please answer my question about the slowness? | 21:21 |
| fijal | what about the slowness? | 21:22 |
| fijal | yes, they're all to tuple or set why? | 21:22 |
| Alex_Gaynor | fijal: all the places genexprs are slow are where they're passed to a builtin function? | 21:22 |
| fijal | yes | 21:22 |
| Alex_Gaynor | move them to app level ;) | 21:22 |
| fijal | I'm not sure you can move list to applevel | 21:23 |
| fijal | or tuple | 21:23 |
| Alex_Gaynor | uh, tuple might be hard, but list shouldn't be, I don't think | 21:23 |
| fijal | why are multimethods so slow anyway | 21:24 |
| fijal | meh, I should start removing more of them I guess | 21:25 |
| Alex_Gaynor | dunno, change next() to not be a multimethod | 21:25 |
| Alex_Gaynor | then it should be fine I guess | 21:25 |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 21:26 | |
| Alex_Gaynor | fijal: well, list.__init__ has to lookup GeneratorIterator.__next__ on each iteration | 21:26 |
| fijal | yes, that is silly | 21:26 |
| Alex_Gaynor | that's python for you | 21:27 |
| Alex_Gaynor | that's why we have a JIT that removes such things | 21:27 |
| amaury_ (~amaury_@46-127-23-192.dynamic.hispeed.ch) left irc: Ping timeout: 240 seconds | 21:28 | |
| pjenvey | need moar app level | 21:32 |
| Alex_Gaynor | pjenvey: pretty much :) | 21:33 |
| timonator | app level ALL THE THINGS | 21:34 |
| Alex_Gaynor | that too :D | 21:34 |
| timonator | someone could shop cfb's terminator-head onto that haah picture | 21:34 |
| timonator | .o(i just made up an acronym for hyperbole and a half!) | 21:34 |
| timonator | still waiting for that book to come out :( | 21:35 |
| tlynn (~tlynn@cpc6-cmbg14-2-0-cust121.5-4.cable.virginmedia.com) joined #pypy. | 21:37 | |
| ojii (~ojii@154-60.3-85.cust.bluewin.ch) left irc: Quit: Leaving | 21:46 | |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/116 | 21:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/692 | 21:50 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/jit-benchmark-linux-x86-32/builds/919 | 21:50 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 21:53 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 21:53 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 21:54 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 21:54 | |
| canta | Is it expected that cpython runs the tests much faster than pypy? (14 to 40 seconds in one example) | 21:57 |
| Alex_Gaynor | canta: tests are usually a bad case for the JIT, because you tend to run a lto of code only a few times each | 21:58 |
| exarkun | is this in the FAQ yet? :) | 21:59 |
| canta | makes sense, could have thought of that | 21:59 |
| antocuni (~antocuni@host152-120-dynamic.11-79-r.retail.telecomitalia.it) joined #pypy. | 22:09 | |
| Nick change: TkTech -> TkTech|Train | 22:11 | |
| kvda (~kvda@124-149-101-221.dyn.iinet.net.au) joined #pypy. | 22:13 | |
| k_bx (~k_bx@94.244.19.62) joined #pypy. | 22:13 | |
| fijal | exarkun: no, feel like putting it there? | 22:14 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/540 [12alex, virtual-dicts] | 22:14 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-32/builds/1806 [12alex, virtual-dicts] | 22:14 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/own-linux-x86-64/builds/672 [12alex, virtual-dicts] | 22:14 |
| bbot2 | Started: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1068 [12alex, virtual-dicts] | 22:14 |
| aboudreault (~alanb@osgeo/member/aboudreault) joined #pypy. | 22:19 | |
| dmalcolm (david@nat/redhat/x-lgpbojqechtdfhst) left irc: Quit: Leaving | 22:22 | |
| Sho_ (~EHS1@kde/hein) joined #pypy. | 22:30 | |
| kvda (~kvda@124-149-101-221.dyn.iinet.net.au) left irc: Quit: x___x | 22:34 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 22:35 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 22:36 | |
| kkris (~kris@93-82-44-187.adsl.highway.telekom.at) left irc: Remote host closed the connection | 22:44 | |
| whitelynx (~whitelynx@li117-47.members.linode.com) left irc: Quit: Ex-Chat | 22:58 | |
| CIA-25 | 03awsum 07roundup * 10#922/1.6 crashes with time.sleep(negative_number): [new] cpython just throws IOError: Invalid argument * 14https://bugs.pypy.org/issue922 | 23:03 |
| Transformer (~Transform@ool-4a59e397.dyn.optonline.net) joined #pypy. | 23:09 | |
| Transformer (Transform@ool-4a59e397.dyn.optonline.net) left #pypy. | 23:11 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/540 [12alex, virtual-dicts] | 23:17 |
| Trundle (~andy@python/site-packages/trundle) left irc: Ping timeout: 248 seconds | 23:20 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-32/builds/1068 [12alex, virtual-dicts] | 23:22 |
| rekamso (~textual@67.51.82.66) left irc: Ping timeout: 260 seconds | 23:24 | |
| derdon (~derdon@pD9E1D174.dip.t-dialin.net) left irc: Remote host closed the connection | 23:29 | |
| bbot2 | 4Failure: 15http://buildbot.pypy.org/builders/own-macosx-x86-32/builds/692 | 23:36 |
| fzzzy (~donovan@nat/mozilla/x-qqdmamnpfemtujsl) left irc: Quit: fzzzy | 23:36 | |
| kvda (~kvda@124-149-101-221.dyn.iinet.net.au) joined #pypy. | 23:36 | |
| Gonsor (~quassel@134.76.63.190) left irc: Remote host closed the connection | 23:47 | |
| fzzzy (~donovan@76-198-130-19.lightspeed.mtvwca.sbcglobal.net) joined #pypy. | 23:53 | |
| Sho_ (~EHS1@kde/hein) left irc: Quit: Stop leaking memory like it's going out of fashion. | 23:56 | |
| Sho_ (~EHS1@kde/hein) joined #pypy. | 23:56 | |
| --- Wed Oct 26 2011 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!