| gutworth | at least they're funny | 00:39 |
|---|---|---|
| gutworth | though usually one explains what the hack is | 00:40 |
| gutworth | and how many millions of lines would have to be refactored to avoid it :) | 00:40 |
| Alex_Gaynor | gutworth: there's a reason I haven't checked it in :) | 00:41 |
| Alex_Gaynor | gutworth: I assume armin will know some way around it | 00:41 |
| Alex_Gaynor | gutworth: I mean the whole thing is kind of a hack that could be replaced by @inline_if_virtual; which unfortunately doesn't exist because it would require moving optimizations to the frontend; which armin says is hard | 00:42 |
| Alex_Gaynor | (and I agree with him after he explained why) | 00:42 |
| gutworth | and if armin says it's hard... | 00:43 |
| Alex_Gaynor | the issue isn't doing optimizations in the frontend itself, the issue is you don't know where the trace starts until you're done tracing | 00:44 |
| gutworth | ah, yes | 00:45 |
| Alex_Gaynor | gutworth: and of course where a loop starts rather heavily influences whether or not something is virtual :) | 00:47 |
| whitelynx (~whitelynx@75.110.189.230) left irc: Ping timeout: 244 seconds | 00:47 | |
| etrepum (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 240 seconds | 01:03 | |
| etrepum (~bob@accessnat4.mochimedia.net) joined #pypy. | 01:04 | |
| etrepum (~bob@accessnat4.mochimedia.net) left irc: Client Quit | 01:07 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 01:08 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 01:08 | |
| ousado (~ousado@188-192-13-103-dynip.superkabel.de) left irc: Remote host closed the connection | 01:22 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 01:23 | |
| ousado (~ousado@188-192-13-103-dynip.superkabel.de) joined #pypy. | 01:24 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 01:24 | |
| Vorpal (~AnMaster@unaffiliated/anmaster) left irc: Ping timeout: 248 seconds | 01:34 | |
| kenaan | 12berdario extradoc 11fb84f809eccb 15/sprintinfo/genova-pegli-2011/people.txt: Added myself | 01:39 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 01:43 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 01:45 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 02:08 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 02:08 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 02:32 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 02:33 | |
| Trundle (~andy@python/site-packages/trundle) left irc: Remote host closed the connection | 02:40 | |
| Sentynel (~sentynel@unaffiliated/sentynel) left irc: Quit: Lightly Seared on the Reality Grill | 02:42 | |
| pingveno (~pingveno@c-98-246-133-8.hsd1.or.comcast.net) left irc: Read error: Operation timed out | 03:26 | |
| Ademan (~dan@adsl-71-141-231-167.dsl.snfc21.pacbell.net) joined #pypy. | 03:27 | |
| mat^2 (~mathias@212.130.113.35) left irc: Read error: Connection reset by peer | 03:28 | |
| mat^2 (~mathias@212.130.113.35) joined #pypy. | 03:28 | |
| pingveno (~pingveno@c-98-246-133-8.hsd1.or.comcast.net) joined #pypy. | 03:29 | |
| Alex_Gaynor | what is wrong with fannkuch, it keeps getting slower with no changes | 03:42 |
| gutworth | Alex_Gaynor: want to fix the unclosed file in django.views.static? | 03:51 |
| Alex_Gaynor | gutworth: happilly | 03:52 |
| Alex_Gaynor | what function? | 03:52 |
| Alex_Gaynor | oh, I see it | 03:53 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 03:53 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 03:54 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy. | 03:55 | |
| Alex_Gaynor | gutworth: fix pushed | 03:56 |
| gutworth (~benjamin@64-131-13-109.usfamily.net) left irc: Ping timeout: 246 seconds | 03:56 | |
| gutworth (~benjamin@64-131-13-109.usfamily.net) joined #pypy. | 03:58 | |
| iori (~iori@gateway.plus21.net) joined #pypy. | 04:20 | |
| gutworth (~benjamin@64-131-13-109.usfamily.net) left irc: Ping timeout: 250 seconds | 04:25 | |
| Alex_Gaynor | fijal: django no longer has the import in escape(); enjoy | 04:27 |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Quit: Computer has gone to sleep. | 04:29 | |
| nirbheek (~nirbheek@gentoo/developer/flyingspaghettimonster/nirbheek) joined #pypy. | 04:36 | |
| hpk (~hpk@HSI-KBW-109-193-198-175.hsi7.kabel-badenwuerttemberg.de) joined #pypy. | 04:45 | |
| whitelynx (~whitelynx@75.111.197.204) joined #pypy. | 04:51 | |
| mat^2 (~mathias@212.130.113.35) left irc: Read error: Connection reset by peer | 04:58 | |
| [mat^2] (~mathias@212.130.113.35) joined #pypy. | 04:58 | |
| Moku (~John@osbk-4db1642b.pool.mediaWays.net) left irc: Remote host closed the connection | 04:59 | |
| Moku (~John@osbk-4db1642b.pool.mediaWays.net) joined #pypy. | 05:02 | |
| etrepum (~bob@75-101-96-144.dsl.static.sonic.net) joined #pypy. | 05:13 | |
| etrepum (~bob@75-101-96-144.dsl.static.sonic.net) left irc: Client Quit | 05:17 | |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) joined #pypy. | 05:37 | |
| amaury_ (~amaury_@33-56.3-85.cust.bluewin.ch) joined #pypy. | 05:37 | |
| mvt (~mvantelli@87.213.45.85) joined #pypy. | 06:15 | |
| antocuni (~antocuni@host102-122-dynamic.14-87-r.retail.telecomitalia.it) joined #pypy. | 06:31 | |
| kost-bebix (~kost@195.177.74.243) joined #pypy. | 06:32 | |
| nekto0n (c397cf21@gateway/web/freenode/ip.195.151.207.33) joined #pypy. | 06:32 | |
| fijal | Alex_Gaynor: meh | 06:33 |
| amaury_ | Some functions missing in cpyext to support the gevent module: http://paste.pocoo.org/show/396025/ | 06:40 |
| iori (~iori@gateway.plus21.net) left irc: Ping timeout: 276 seconds | 06:41 | |
| nekto0n | hi there! has anyone tried building pypy on Fedora? got in trouble with static libffi - liffi.rpm doesn't have libffi.a file | 06:41 |
| fijal | libffi-dev? | 06:42 |
| fijal | new fedora has pypy package even | 06:42 |
| iori (~iori@gateway.plus21.net) joined #pypy. | 06:44 | |
| nekto0n | fijal: libffi-dev has only headers, libffi.rpm spec file has --disable-static option to ./configure script | 06:48 |
| amaury_ (~amaury_@33-56.3-85.cust.bluewin.ch) left irc: Read error: Operation timed out | 06:50 | |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) left irc: Ping timeout: 246 seconds | 06:53 | |
| whitelynx (~whitelynx@75.111.197.204) left irc: Quit: Leaving | 06:53 | |
| kost-bebix (~kost@195.177.74.243) left irc: Ping timeout: 260 seconds | 06:59 | |
| Nick change: guibou -> guibouGuestBook | 07:01 | |
| nekto0n | is there any guide or someone who can point on how to build pypy with rpython version of cx_Oracle? | 07:02 |
| guibouGuestBook (guibou@88.191.92.192) left #pypy. | 07:03 | |
| fijal (~fijal@41-134-41-226.dsl.mweb.co.za) left irc: Ping timeout: 240 seconds | 07:10 | |
| fijal (~fijal@41.134.41.226) joined #pypy. | 07:12 | |
| kost-bebix (~kost@195.95.210.249) joined #pypy. | 07:13 | |
| raymondh (~raymondhe@cpe-76-94-45-111.socal.res.rr.com) joined #pypy. | 07:17 | |
| bobbyz (~bobbyz@c-24-14-151-193.hsd1.il.comcast.net) left irc: Ping timeout: 240 seconds | 07:19 | |
| kost-bebix (~kost@195.95.210.249) left irc: Ping timeout: 240 seconds | 07:20 | |
| fijal | hi | 07:21 |
| fijal | help | 07:21 |
| antocuni | hi | 07:21 |
| fijal | antocuni: feel like helping with RPython? | 07:22 |
| antocuni | maybe :-) | 07:22 |
| antocuni | what's the problem? | 07:22 |
| fijal | jit-applevel-hook | 07:23 |
| dgl (~dgl@109.86.165.231) joined #pypy. | 07:23 | |
| fijal | http://paste.pocoo.org/show/396039/ | 07:23 |
| fijal | the problem is once I do pair(s_oldarg, s_newarg).union() it's fine | 07:24 |
| antocuni | you mean that after the call to union() then the contains() return True? | 07:25 |
| fijal | yes | 07:25 |
| fijal | I can't quite see what's up | 07:25 |
| fijal | it's really better if you start translation and help me in 30min probably :) | 07:26 |
| antocuni | yes, probably | 07:26 |
| antocuni | or, do you maybe have a pdb++ prompt on tannit? | 07:26 |
| fijal | no, on my machine | 07:26 |
| antocuni | ok, I start a new one then | 07:27 |
| antocuni | any specific option I should pass to translate.py? | 07:27 |
| fijal | note that once you run union it changes s_oldarg | 07:27 |
| fijal | irreversibly | 07:27 |
| fijal | -Ojit on jit-applevel-hook | 07:27 |
| antocuni | and the annotation problem is during the first phase or during the annotation of the jit? | 07:28 |
| fijal | annotation of the jit | 07:28 |
| antocuni | pff | 07:28 |
| fijal | (it's late-binding thing) | 07:28 |
| fijal | yes :( | 07:28 |
| fijal | pff | 07:28 |
| Action: antocuni started a translation on tannit | 07:30 | |
| raymondh | what is pff? | 07:33 |
| fijal | raymondh: a sound of disgust | 07:33 |
| raymondh | onomatopoeia then, not an acronym :-) | 07:34 |
| antocuni | annoyance, rather | 07:34 |
| fijal | it can be pfffffff | 07:34 |
| fijal | as well | 07:34 |
| raymondh | looks a bit like hex. | 07:34 |
| antocuni | p(f*10) | 07:34 |
| kenaan | 12cfbolz default 11bdcc660412a1 15/pypy/: kill more remnants of resume points | 07:34 |
| kenaan | 12cfbolz default 1159811eab0998 15/pypy/rlib/rbigint.py: the JIT cannot deal with this function (pyrolog has this problem) | 07:34 |
| kost-bebix (~kost@195.177.74.243) joined #pypy. | 07:35 | |
| raymondh | when super() is called in a loop, does pypy recognize the computed next-in-mro class and its looked-up attribute are contant? | 07:36 |
| fijal | raymondh: even if it does not it should | 07:36 |
| fijal | (since types are known statically) | 07:36 |
| raymondh | I thought as much but wasn't sure. | 07:37 |
| fijal | I think Alex is right that right now it's not ideal | 07:37 |
| fijal | but it should be fixed | 07:37 |
| fijal | it's just append-to-a-list-of-stuff-to-be-fixed | 07:37 |
| fijal | python is a large language :/ | 07:37 |
| raymondh | it used to be small | 07:38 |
| fijal | yeah | 07:38 |
| fijal | when I was 12... | 07:38 |
| raymondh | the blog post on super() was a hit | 07:39 |
| fijal | yeah, grats :) | 07:39 |
| fijal | sorry for not being a better reviewer | 07:39 |
| kost-bebix (~kost@195.177.74.243) left irc: Ping timeout: 246 seconds | 07:39 | |
| fijal | things gone hectic on this side | 07:39 |
| raymondh | 12,000+ page views | 07:39 |
| raymondh | in less than a full day. | 07:39 |
| fijal | that's better than any pypy blog post I think :) | 07:40 |
| antocuni | raymondh: where is the blog post? | 07:40 |
| raymondh | http://rhettinger.wordpress.com/2011/05/26/super-considered-super/ | 07:40 |
| antocuni | thanks | 07:40 |
| raymondh | You can comment and/or vote on it a hackernews. It is still on the front page. | 07:41 |
| raymondh | http://www.google.com/url?sa=D&q=http://news.ycombinator.com/item%3Fid%3D2588262 | 07:42 |
| raymondh | rather: http://news.ycombinator.com/item?id=2588262 | 07:42 |
| Nick change: [mat^2] -> mat^2 | 07:52 | |
| kost-bebix (~kost@195.95.210.249) joined #pypy. | 07:53 | |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 07:54 | |
| witulski (stupsi@fwstups.cs.uni-duesseldorf.de) left #pypy. | 07:55 | |
| fijal | antocuni: any look | 07:55 |
| fijal | luck | 07:55 |
| antocuni | ah, got it | 07:55 |
| antocuni | (the error I mean, not the solution :-)) | 07:55 |
| lac | nekto0n: let dmalcolm at redhat.com know about any problems you have with fedora builds | 07:56 |
| lac | raymondh: wow with the page views | 07:56 |
| bivab (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 07:56 | |
| lac | nekto0n: for Oracle, you want to talk with amaury_ who isn't around right now | 07:57 |
| lac | fijal: antocuni: any clue why fankuch keeps getting slower and slower? | 07:57 |
| G2P (~G2P@fw-asn1.ornis.com) joined #pypy. | 08:00 | |
| antocuni | fijal: I lost my pdb prompt due to a pdb+ crash :-/ | 08:01 |
| antocuni | lac: fijal investigated and discovered that basically we had the same problem also before | 08:05 |
| antocuni | only, now it seems to show up more frequently | 08:05 |
| lac | ah. grumble, grumble, grumble | 08:05 |
| nekto0n | lac: thank you! | 08:11 |
| lac | nekto0n: you are most welcome | 08:12 |
| verte (~verte@python/site-packages/verte) joined #pypy. | 08:13 | |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) joined #pypy. | 08:15 | |
| Nick change: verte -> { | 08:17 | |
| Nick change: { -> {verte} | 08:17 | |
| raymondh (~raymondhe@cpe-76-94-45-111.socal.res.rr.com) left irc: Quit: Leaving | 08:18 | |
| kkris (~kris@80-123-39-45.adsl.highway.telekom.at) joined #pypy. | 08:27 | |
| fijal | antocuni: :-/ | 08:31 |
| kenaan | 12antocuni default 112f018cf95032 15/pypy/translator/cli/: implement debug_flush and debug_offset for the CLI backend; fixes test_debug_print_start_stop | 08:36 |
| antocuni | fijal: I don't get it | 08:36 |
| fijal | antocuni: welcome to the club? | 08:36 |
| antocuni | you said that if you do pair(s_old, s_new).union(), then contains() return True | 08:36 |
| fijal | yeah | 08:37 |
| antocuni | but if you look at the implementation of contains, it does exactly this! | 08:37 |
| fijal | yeah :) | 08:37 |
| antocuni | would be nice to use the "debug" command in pdb, but it crashes | 08:38 |
| Action: antocuni tries to dynamically transform (Pdb+ on Pdb++) into (Pdb++) | 08:39 | |
| fijal | note that union() modifies the original one | 08:40 |
| fijal | s_newarg I think | 08:40 |
| antocuni | wow, "sys._getframe(1).f_locals['self'].__class__ = pdb.Pdb" seems to do the trick :-) | 08:41 |
| {verte} (~verte@python/site-packages/verte) left irc: Quit: :$ | 08:43 | |
| verte (~verte@58.171.158.49) joined #pypy. | 08:44 | |
| verte (~verte@58.171.158.49) left irc: Changing host | 08:44 | |
| verte (~verte@python/site-packages/verte) joined #pypy. | 08:44 | |
| antocuni | fijal: ah ok, from within "contains" it fails because TLS.no_side_effects_in_union is 1 | 08:44 |
| antocuni | which makes sense, because you cannot change the annotation of the parameter so late | 08:45 |
| mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) left irc: Ping timeout: 258 seconds | 08:45 | |
| antocuni | fijal: did you try to make the listdef of s_newarg exactly the same as s_oldarg? | 08:47 |
| antocuni | I mean, making sure that it contains both the 'm' and the '!R' | 08:47 |
| fijal | so I have to modify the list and call make_sure_not_resize on it? | 08:50 |
| fijal | that's silly | 08:50 |
| antocuni | fijal: it's not enough :-/ | 08:51 |
| antocuni | http://paste.pocoo.org/show/396064/ | 08:51 |
| fijal | anyway it is silly | 08:53 |
| pedronis | fijal, antocuni: what are you trying to do? | 08:54 |
| antocuni | pedronis: it's fijal's jit-applevel-hook branch, which tries to call back to applevel when we are about to compile a loop: http://paste.pocoo.org/show/396067/ | 08:56 |
| verte (~verte@python/site-packages/verte) left irc: Ping timeout: 240 seconds | 08:57 | |
| pedronis | antocuni, and it's annotated to late and wants to change prexisting annotations? | 08:58 |
| pedronis | s/to/too/ | 08:58 |
| antocuni | yes, seems so | 08:58 |
| pedronis | always fun that | 08:58 |
| fijal | no | 08:59 |
| fijal | it's more complex | 08:59 |
| fijal | the annotation later on tries to change "current" annotation | 08:59 |
| fijal | but since we're not changing any of them | 08:59 |
| pedronis | fijal, the annotation on_compile or of something else? | 09:00 |
| fijal | yes | 09:00 |
| fijal | I think tuple or something | 09:00 |
| fijal | newtuple | 09:00 |
| arigato (~arigo@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 09:01 | |
| antocuni | btw, the list of operations does not seem to make any sense: http://paste.pocoo.org/show/396069/ | 09:01 |
| antocuni | v2 = simple_call(v0, v1) | 09:01 |
| antocuni | v0 is "getattr(space_0, ('newtuple'))" | 09:02 |
| antocuni | and v1 is "newlist(v4, v12, v14)" | 09:02 |
| antocuni | ah no, it does make sense | 09:02 |
| antocuni | sorry for confusion | 09:02 |
| pedronis | fijal, do you know about _annenforceargs_ ? | 09:02 |
| Action: fijal does | 09:03 | |
| pedronis | maybe you need that or something like that | 09:03 |
| fijal | weeeel | 09:04 |
| fijal | I have some opinions | 09:04 |
| nekto0n | how can I "make install" pypy-c built from sources? any script or something? | 09:06 |
| antocuni | nekto0n: no, but you can just move the compiled pypy-c to pypy/translator/goal | 09:06 |
| antocuni | if you invoke it from there, it just works | 09:06 |
| antocuni | if you want to install it system-wide, you can run tool/release/package.py, which makes a tarball (but you need to have pypy-c in the goal/ directory first) | 09:07 |
| nekto0n | antocuni: ok, I'll try right now | 09:08 |
| fijal | pedronis: it's more complex | 09:10 |
| fijal | because it makes sense to modify the annotation that we just created | 09:10 |
| nekto0n | antocuni: package.py works, thanks | 09:15 |
| antocuni | you're welcome | 09:15 |
| pedronis | fijal, if you are exploding in the contains check something is wrong, you need some nudging somewhere else, it's a bit too late there | 09:18 |
| kenaan | 12antocuni invalidate-virtualrefs 11f4a05ed5eeb9 15/pypy/jit/backend/x86/test/test_zrpy_gc.py: fix test_zrpy_gc tests | 09:19 |
| nekto0n | how can I make oracle module translated with the rest of pypy (I guest I should provide config option to translate.py)? | 09:22 |
| kenaan | 12arigo default 11aadddddc702d 15/pypy/: Make sys.setrecursionlimit() have an effect again: now, setting it to a value N sets the low-level maximum to N/100... | 09:24 |
| kenaan | 12arigo default 11e4f57b789ca5 15/pypy/: merge heads | 09:24 |
| kenaan | 12arigo closed-branches 11ab7d80eb6cb8 15/: Merge closed head 678364e9998b on branch mapdict-interp | 09:25 |
| kenaan | 12arigo closed-branches 11bc30a2c82b85 15/: re-close this branch | 09:25 |
| fijal | nekto0n: --withmod-oracle? | 09:26 |
| fijal | nekto0n: --help | grep oracle | 09:26 |
| nekto0n | fijal: oh... there's help page... sorry to bother and thanks! | 09:27 |
| nekto0n | help doesn't work without --opt=* option :) | 09:28 |
| kenaan | 12cfbolz dict-strategies 11669b808e8825 15/pypy/objspace/std/dictmultiobject.py: rpython fix | 09:29 |
| kenaan | 12cfbolz dict-strategies 11b77aacded28e 15/pypy/objspace/std/: rpython fixes | 09:29 |
| kenaan | 12cfbolz dict-strategies 114a6f53750fdd 15/pypy/objspace/std/: test and fix | 09:29 |
| kenaan | 12cfbolz dict-strategies 1154ab8ba3844d 15/lib-python/modified-2.7/: remove CALL_LIKELY_BUILTIN in the list of opcodes. also, no reason anymore to modify test_dis.py | 09:29 |
| arigato | nekto0n: oups :-) thanks | 09:30 |
| nekto0n | --withmod-oracle fails: http://pastebin.com/0EZwunas | 09:31 |
| fijal | nekto0n: translate.py -Ojit targetpypystandalone --withmod-oracle | 09:32 |
| fijal | I think | 09:32 |
| nekto0n | oh | 09:33 |
| kenaan | 12arigo default 1146ab4f9f3876 15/pypy/translator/goal/targetpypystandalone.py: make --help work even without --opt=. Thanks nekto0n. | 09:33 |
| nekto0n | fijal: thanks, i wonder how is it going to find my oracle headers and libs... | 09:34 |
| Vorpal (~AnMaster@unaffiliated/anmaster) joined #pypy. | 09:36 | |
| nekto0n | looking through sources tells me that ORACLE_HOME should be enough :) | 09:43 |
| voidspace (~voidspace@python/psf/voidspace) left irc: Read error: Connection reset by peer | 09:47 | |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 09:49 | |
| antocuni | arigato: so, I ran tests on the vref branch: http://buildbot.pypy.org/summary?branch=invalidate-virtualrefs | 09:56 |
| antocuni | (hi) | 09:56 |
| antocuni | we have a segfault in test_cpickle | 09:56 |
| witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy. | 09:57 | |
| antocuni | and also, we have problems with transparent proxies, because in that case _application_traceback is not a PyTraceback, and it does not have a frame | 09:57 |
| witulski (stupsi@fwstups.cs.uni-duesseldorf.de) left #pypy. | 09:57 | |
| Action: arigato starts a translation on invalidate-virtualrefs and goes to lunch | 10:07 | |
| fijal (~fijal@41.134.41.226) left irc: Ping timeout: 264 seconds | 10:15 | |
| fijal (~fijal@41.134.41.226) joined #pypy. | 10:27 | |
| voidspace (~voidspace@python/psf/voidspace) left irc: Quit: Uhm... gotta go | 10:28 | |
| iori (~iori@gateway.plus21.net) left irc: Remote host closed the connection | 10:28 | |
| voidspace (~voidspace@python/psf/voidspace) joined #pypy. | 10:28 | |
| kost-bebix (~kost@195.95.210.249) left irc: Ping timeout: 264 seconds | 10:34 | |
| lizardo (~lizardo@189.2.128.130) joined #pypy. | 10:38 | |
| asabil (~asabil@195.159.219.65) joined #pypy. | 10:40 | |
| kost-bebix (~kost@195.177.74.243) joined #pypy. | 10:48 | |
| ousado (~ousado@188-192-13-103-dynip.superkabel.de) left irc: Remote host closed the connection | 10:49 | |
| iori (~iori@gateway.plus21.net) joined #pypy. | 10:49 | |
| kenaan | 12stepahn lang-js 1141173b2794c7 15/js/: replaces implementation of Stack() | 10:59 |
| kenaan | 12stepahn lang-js 112b700db2bfa5 15/js/: added jit and annotations | 10:59 |
| kenaan | 12stepahn lang-js 11bceed779ab95 15/js/jscode.py: added repr for Stack | 10:59 |
| kenaan | 12stepahn lang-js 115ccdfbf67821 15/js/operations.py: added some reprs for operations | 10:59 |
| kenaan | 12stepahn lang-js 117becdec85414 15/js/: removed STORE_<OPERATION> bytecodes and unified assignment handling | 10:59 |
| hakanardo__ (~ardo@putten.maths.lth.se) left irc: Quit: Leaving | 11:13 | |
| kost-bebix (~kost@195.177.74.243) left irc: Read error: Operation timed out | 11:14 | |
| nekto0n | failed to translate todays tip with oracle module: http://pastebin.com/ML5hbjds | 11:15 |
| kenaan | 12bivab arm-backed-float 114c1023f3e79e 15/pypy/jit/backend/arm/assembler.py: (arigo, bivab) store all vfp registers arround the malloc slowpath call | 11:16 |
| kenaan | 12bivab arm-backed-float 1114dafdf29372 15/pypy/jit/backend/arm/regalloc.py: (arigo, bivab) correctly calculate the offset of the variables spilled on the stack | 11:16 |
| kenaan | 12arigo default 11aea2449cf67c 15/pypy/module/oracle/interp_variable.py: Untested: fix to make sure we pass a signed value to charpsize2str(). | 11:21 |
| arigato | nekto0n: fixed, maybe. can you try again? | 11:21 |
| Action: nekto0n started hg pull and new translation | 11:22 | |
| arigato | antocuni: I'll look at the segfault if you don't want to, but a bit later | 11:22 |
| antocuni | arigato: ok, thanks. I'm looking at the transparent proxy thing now | 11:24 |
| arigato | ok, should be easy | 11:24 |
| arigato | basically you have nothing to do if it's not a PyTraceback | 11:25 |
| antocuni | yes, that's what I thought | 11:27 |
| antocuni | but I wanted to check better | 11:27 |
| arigato | :-) | 11:28 |
| arigato | (I'm not completely sure either :-) | 11:28 |
| nekto0n | arigato: translation in progress... don't quite remember what part of mandelbrot was right before that traceback, but seems to work fine :) | 11:30 |
| arigato | good :-) | 11:30 |
| kost-bebix (~kost@195.95.210.249) joined #pypy. | 11:31 | |
| nekto0n | arigato: another one bites the dust: http://pastebin.com/pDUEtsxu | 11:36 |
| ousado (~ousado@188-192-13-103-dynip.superkabel.de) joined #pypy. | 11:37 | |
| arigato | nekto0n: http://paste.pocoo.org/show/396134/ | 11:44 |
| arigato | I don't really want to check in possibly bogus code, and we may need yet more fixes left and right | 11:45 |
| arigato | so please, start again and tell me ... | 11:45 |
| iori (~iori@gateway.plus21.net) left irc: Read error: Operation timed out | 11:47 | |
| nekto0n | arigato: give me a minute... | 11:49 |
| arigato | sure | 11:49 |
| ousado_ (~ousado@188-192-13-103-dynip.superkabel.de) joined #pypy. | 11:50 | |
| ousado (~ousado@188-192-13-103-dynip.superkabel.de) left irc: Ping timeout: 248 seconds | 11:52 | |
| kenaan | 12stepahn lang-js 11fecdd3a25f53 15/js/: moved opcodes from jscode to opcodes | 11:53 |
| Sentynel (~sentynel@unaffiliated/sentynel) joined #pypy. | 11:56 | |
| ousado__ (~ousado@188-192-13-103-dynip.superkabel.de) joined #pypy. | 11:58 | |
| ousado_ (~ousado@188-192-13-103-dynip.superkabel.de) left irc: Ping timeout: 260 seconds | 12:00 | |
| kenaan | 12antocuni invalidate-virtualrefs 11346184ef2476 15/pypy/interpreter/error.py: _application_traceback might be a transparent proxy; in this case, we don't need to mark the fram... | 12:00 |
| kenaan | 12antocuni invalidate-virtualrefs 1112bef2e010d2 15/pypy/objspace/trace.py: fix the trace objspace | 12:02 |
| WildChild (~wildchild@modemcable102.12-179-173.mc.videotron.ca) left irc: Read error: Connection reset by peer | 12:04 | |
| nekto0n | arigato: another one http://pastebin.com/F3GWQkxR | 12:05 |
| arigato | nekto0n: can you run the tests inside module/oracle/test ? | 12:06 |
| arigato | python pypy/test_all.py pypy/module/oracle | 12:06 |
| nekto0n | arigato: sure | 12:07 |
| arigato | antocuni: I'm getting an RPython-level ValueError in test_cpickle | 12:08 |
| arigato | I don't manage to find out where it comes from | 12:08 |
| antocuni | uhm, that's a bit unexpected | 12:08 |
| antocuni | arigato: what happens if somehow a vref is not invalidated and we try to force it when the C stack is gone? It just builds the frame picking nonsense from the stack? | 12:09 |
| arigato | yes, but that should not occur because virtual_ref_finish() removes the stack address from vref.virtual_token | 12:10 |
| WildChild (~wildchild@modemcable102.12-179-173.mc.videotron.ca) joined #pypy. | 12:10 | |
| antocuni | right | 12:11 |
| kenaan | 12DasIch buildbot 110167bdeb76a0 15/bot2/pypybuildbot/: Remove trailing whitespace | 12:12 |
| antocuni | uhm, the test passes for me with the executable I built yesterday | 12:12 |
| arigato | :-( | 12:13 |
| antocuni | ah no | 12:13 |
| antocuni | if passes only if I use "--filter recursive_instance" | 12:13 |
| antocuni | probably because in that case the JIT does not even run | 12:13 |
| antocuni | arigato: you get the ValueError with a lldebug pypy? | 12:14 |
| arigato | yes | 12:15 |
| antocuni | is it on tannit? | 12:15 |
| arigato | yes | 12:15 |
| arigato | /home/arigo/pypysrc/32compiled/c-r44531-jit-invvref | 12:17 |
| arigato | (warning, currently built with "make debug_exc") | 12:17 |
| antocuni | pff, permission defined | 12:17 |
| antocuni | ah no | 12:17 |
| antocuni | it's a directory :-) | 12:17 |
| arigato | .-) | 12:17 |
| nekto0n | arigato: how can I skip some tests? it hangs on pypy/module/oracle/test/test_connect.py | 12:18 |
| nekto0n | oh... here you go... timeouts seem to be not so big... FF..F.FF | 12:19 |
| fijal | -k -name | 12:19 |
| nekto0n | or should I provide URL to oracle instance? don't know how... | 12:20 |
| antocuni | arigato: for me, it crashes with an rpython AssertionError | 12:22 |
| antocuni | (I think) | 12:22 |
| antocuni | and it seems to be related to a StackOverflow | 12:23 |
| fijal | antocuni: did you come up to any conclusion? | 12:25 |
| antocuni | fijal: about what? | 12:25 |
| fijal | jit-applevel-hook | 12:25 |
| antocuni | sorry, no idea :-( | 12:25 |
| arigato | antocuni: uh, now in debug_exc, for me too | 12:25 |
| kenaan | 12arigo default 114424a9909ba1 15/pypy/: Improve test_set_length_fraction. Fix it and simplify the code to assume that the stack grows downward, which is t... | 12:25 |
| kenaan | 12arigo invalidate-virtualrefs 1153e7325b1075 15/pypy/jit/metainterp/optimizeopt/virtualize.py: Fix the comment. | 12:25 |
| kenaan | 12arigo invalidate-virtualrefs 11d5fe549a13ea 15/pypy/: merge heads | 12:25 |
| fijal | antocuni: I have an idea, but I don't know how to attack it | 12:26 |
| arigato | antocuni: hum, I guess it's really a case of StackOverflow that is being tested | 12:26 |
| fijal | so the idea is that you have a more general list and a new list, which is less general | 12:26 |
| fijal | and now you can't generalize the less general one, because it's generally too late | 12:26 |
| fijal | but the less general one is coming from the new operations | 12:26 |
| antocuni | arigato: ah indeed, it's possible | 12:27 |
| apoirier_away (~apoirier@sakura.nagare.org) joined #pypy. | 12:27 | |
| Nick change: apoirier_away -> apoirier | 12:27 | |
| arigato | anyway, it shows an assert failing in cpu.force() | 12:28 |
| arigato | indeed, the force_index is zero | 12:28 |
| etrepum (~bob@75-101-96-144.dsl.static.sonic.net) joined #pypy. | 12:29 | |
| antocuni | arigato: where do you see that it's in cpu.force()? | 12:29 |
| arigato | no, confused | 12:29 |
| arigato | antocuni: well, in gdb | 12:29 |
| arigato | all "make *debug*" are playing nicely with gdb when raising assertionerrors | 12:29 |
| antocuni | good to know | 12:30 |
| gutworth (~benjamin@64-131-13-109.usfamily.net) joined #pypy. | 12:30 | |
| arigato | ah, it seems that you are right | 12:33 |
| arigato | it's in cpu.force() trying to read data out of a stack frame that is gone | 12:33 |
| Moku (~John@osbk-4db1642b.pool.mediaWays.net) left irc: Ping timeout: 246 seconds | 12:33 | |
| Moku (~John@osbk-4db174a9.pool.mediaWays.net) joined #pypy. | 12:33 | |
| antocuni | :-/ | 12:34 |
| antocuni | why it doesn't raise InvalidVirtualRef then? | 12:35 |
| fijal | arigato: do I make any sense? | 12:35 |
| arigato | fijal: sorry, I didn't read you actually :-/ | 12:35 |
| arigato | antocuni: it may be related to the StackOverflow that we are getting: | 12:35 |
| arigato | it's being raised in the middle of pyjitpl.py | 12:36 |
| arigato | ah no | 12:36 |
| arigato | in the middle of the blackhole interp actually | 12:36 |
| fijal | arigato: eh that was mis-tab | 12:36 |
| fijal | meant to say antocuni: | 12:36 |
| kenaan | 12cfbolz dict-strategies 11e7904f828000 15/pypy/objspace/std/: name consistently | 12:36 |
| antocuni | arigato: blackholing because of which guard? | 12:37 |
| arigato | this means that the StackOverflow interrupts the blackholing of the current frame | 12:37 |
| arigato | antocuni: I don't know | 12:37 |
| arigato | it means in turn that virtual_ref_finish() is never called | 12:37 |
| arigato | hum no, it should have no effect | 12:38 |
| antocuni | arigato: yes, the "normal" virtual_ref_finish is a noop | 12:38 |
| arigato | ah oh | 12:38 |
| arigato | the StackOverflow interrupts the blackhole interp early: | 12:38 |
| antocuni | the actual invalidation is done by optimizeopt | 12:38 |
| arigato | it's still in the process of rebuilding data | 12:39 |
| arigato | so it means it didn't finish to rebuild data | 12:39 |
| antocuni | fijal: no, it's the opposite. In the old code you have a less general list, so you cannot pass a more general one | 12:39 |
| fijal | antocuni: can you tell me which part creates a more general list? | 12:39 |
| fijal | one is modified and make_sure_not_resides | 12:40 |
| fijal | the other is with no flags | 12:40 |
| arigato | antocuni: my guess is that vrefinfo.continue_tracing() has not been called | 12:40 |
| fijal | but the thing is they're not the same | 12:40 |
| arigato | antocuni: yes, exactly | 12:40 |
| arigato | the crash's traceback contains a line just before the call to vrefinfo.continue_tracing() | 12:41 |
| antocuni | fijal: not sure to understand what you mean; the "new" list is the argument you pass to newtuple | 12:42 |
| arigato | which means we are left with a vref whose .virtual_token field is not reset to TOKEN_NONE | 12:42 |
| arigato | and when we access it later, crash | 12:42 |
| fijal | antocuni: yes, it's non-modifiable | 12:42 |
| fijal | and that's the problem | 12:42 |
| fijal | if I modify the list passed to newtuple, it would be fine | 12:42 |
| arigato | antocuni: fwiw, it's a bug that also exists in trunk, as far as I can tell | 12:42 |
| Action: antocuni cannot handle two conversations at the same time :-( | 12:42 | |
| arigato | antocuni: sorry :-) feel free to ignore me and re-read me later | 12:43 |
| antocuni | arigato: no, actually this conversation I managed to follow, more or less :-) | 12:43 |
| antocuni | makes sense | 12:43 |
| fijal | ok | 12:43 |
| fijal | register_callback() then :) | 12:43 |
| antocuni | fijal: thanks | 12:43 |
| arigato | the same problem exists in theory with MemoryErrors | 12:45 |
| antocuni | yes | 12:45 |
| antocuni | but I don't see an easy way to solve it | 12:46 |
| arigato | let's think about StackOverflow only | 12:47 |
| mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Ping timeout: 252 seconds | 12:48 | |
| arigato | it's a crash that is likely to be reproduced by just def f(): f() | 12:48 |
| cloudfirsh (u1308@gateway/web/irccloud.com/x-vfklqcvgyzmudiku) joined #pypy. | 12:48 | |
| arigato | well def f(): for i in range(2): f() | 12:48 |
| arigato | because it's an all-assembler recursion, but when it raises StackOverflow, it fails a guard, and must run the blackhole interp | 12:49 |
| arigato | but has almost no stack at this point | 12:49 |
| antocuni | nice theory, but it correctly raises RuntimeError in that case | 12:50 |
| arigato | yes, I guess so | 12:50 |
| arigato | I suppose it's harder to show the problem | 12:50 |
| antocuni | arigato: well, we also need to force the vref after the stackoverflow | 12:50 |
| antocuni | to show the problem | 12:50 |
| arigato | maybe you need to inspect sys.last_traceback, or something | 12:50 |
| arigato | yes, I'm very unsure that we'll manage to reproduce the problem, but it's here :-) | 12:51 |
| fijal | eh.... | 12:51 |
| arigato | it may also require a frame with more complicated stuff in it | 12:52 |
| arigato | in the example we're debugging, it crashes with StackOverflow because the frame contains a virtual that contains a virtual that needs to be forced | 12:52 |
| arigato | this is forced with recursive calls, so it eventually reaches the limit again | 12:53 |
| arigato | I'd even say that if it was not forced with recursive calls, no stack check would be inserted, so at least in this case, we would be fine | 12:55 |
| antocuni | right | 12:55 |
| nekto0n | arigato: eventually I got the tests running, results will be soon | 12:55 |
| DasIch_ | i'd like to change the buildbot configuration so that there is url always pointing to the latest nightly | 13:00 |
| DasIch_ | how would I go about that? add a ShellCommand that creates a symlink with ln? | 13:00 |
| etrepum (~bob@75-101-96-144.dsl.static.sonic.net) left irc: Quit: etrepum | 13:00 | |
| arigato | DasIch_: isn't the url http://buildbot.pypy.org/nightly/trunk/ enough? | 13:01 |
| antocuni | arigato: this program still does not crash: http://paste.pocoo.org/show/396175/ | 13:02 |
| DasIch_ | arigato: you still have to select the right url by hand or parse the page | 13:03 |
| arigato | antocuni: I wasn't too serious in proposing that we write such an example | 13:03 |
| mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) joined #pypy. | 13:03 | |
| DasIch_ | arigato: if you want to download the latest version with a script that's inconvenient | 13:04 |
| arigato | antocuni: it's rather pointless as a test, because (assuming we manage) it will fail, we will fix it, and then it will not test anything any more tomorrow because something shifted just a little bit | 13:04 |
| nekto0n | arigato: here you go: http://pastebin.com/NKMDPygS danger - it's huge | 13:05 |
| antocuni | right, but I took it as a personal challenge :-) | 13:05 |
| arigato | DasIch_: as you like, but it's also nice to making it just a bit harder for people to download all our nightly builds --- if everybody did that, the university of Düsseldorf would complain to us :-) | 13:06 |
| fijal | arigato: I still think "last nightly has this URL" | 13:07 |
| fijal | makes sense | 13:07 |
| fijal | then we can do things like not update the URL if tests fail for example | 13:07 |
| antocuni | which they always do | 13:07 |
| DasIch_ | arigato: if traffic spikes the change can always be reversed | 13:08 |
| arigato | well, feel free | 13:08 |
| arigato | I don't think there is a serious risk for the university anyway | 13:08 |
| Action: fijal gives up on rpython | 13:08 | |
| fijal | arigato: universities tend to have huuuuge pipelines | 13:09 |
| fijal | for prices on something like 1/100 of commercial one | 13:09 |
| fijal | I worked on a backbone department at one :) | 13:09 |
| fijal | I don't think we can even compete with dangers like "student's dorm" | 13:09 |
| arigato | nekto0n: I'm unsure I can tell you more than: "indeed, it seems that the oracle module is a bit broken here and there" | 13:10 |
| arigato | probably some changes we did over time to the rest of the interpreter | 13:10 |
| arigato | and nobody noticed because the tests are not run by default | 13:10 |
| nekto0n | arigato: i understand that, a module that is never built will be broken | 13:11 |
| nekto0n | should we create a ticket to fix that? cause your random fixes aren't enough :) | 13:11 |
| arigato | it depends: we should decide if we care or not. if we do, then it's probably enough to install some packages on tannit | 13:12 |
| arigato | and then they will be tested nightly | 13:12 |
| arigato | and we'll see and have to fix the failures | 13:12 |
| Trundle (~andy@python/site-packages/trundle) joined #pypy. | 13:12 | |
| antocuni | arigato: does oracle offer a free version? | 13:12 |
| arigato | well, if it doesn't, then the answer is obviously "no", I fear | 13:13 |
| nekto0n | client is free to download, there should be a kind of express edition | 13:14 |
| nekto0n | http://www.oracle.com/technetwork/database/express-edition/downloads/102xelinsoft-102048.html - there it is! | 13:15 |
| Nick change: DasIch_ -> DasIch | 13:15 | |
| arigato | nekto0n: it only needs a client installation? | 13:16 |
| nekto0n | arigato: oracle module needs client + sdk to compile and working database for tests | 13:17 |
| arigato | so I should be fine with installing Oracle Database 10g Express Edition (Universal) | 13:18 |
| arigato | (argh, it's 262MB) | 13:18 |
| fijal | of course :) | 13:18 |
| fijal | it's enterprise ready | 13:18 |
| fijal | do you still have to agree you're not from somalia? | 13:19 |
| arigato | pypy is laughably tiny in comparison | 13:19 |
| Sho_ (~EHS1@kde/hein) joined #pypy. | 13:19 | |
| fijal | we can make pypy enterprise edition | 13:20 |
| fijal | that will contain movies pictures, music etc. | 13:20 |
| fijal | it'll be at least 2G | 13:20 |
| arigato | :-) | 13:20 |
| Action: fijal is in mood of unproductive pointless comments | 13:21 | |
| fijal | sorry, RPython failure really got me :-/ | 13:21 |
| nekto0n | sorry, got to go | 13:22 |
| nekto0n (c397cf21@gateway/web/freenode/ip.195.151.207.33) left #pypy. | 13:22 | |
| fijal | arigato: if you feel at some point like not doing anything else, feel free to try translation on jit-applevel-hook | 13:23 |
| arigato | I'll wait for nekto0n to continue; I wanted to ask him if he has a login/password on the oracle web site | 13:23 |
| gutworth | try bugmetnot.com | 13:23 |
| arigato | good, sys.setrecursionlimit() now has at least an approximate effect on pypy | 13:31 |
| kenaan | 12arigo invalidate-virtualrefs 11d137cfdd7a93 15/pypy/translator/c/src/debug_traceback.h: When compiling with "make lldebug", increase the number of RPython traceback entries recorded. | 13:32 |
| kenaan | 12arigo invalidate-virtualrefs 11ce4527cbcb3d 15/pypy/: merge heads | 13:32 |
| CIA-19 | 03arigo 07roundup * 10#715/maximum recursion depth exceeded: | 13:34 |
| CIA-19 | [resolved] Fixed like this: | 13:34 |
| CIA-19 | """setrecursionlimit() sets the maximum number of nested calls that | 13:34 |
| CIA-19 | can occur before a RuntimeError is raised. On ... * 14https://bugs.pypy.org/issue715 | 13:34 |
| fijal (~fijal@41.134.41.226) left irc: Quit: Leaving | 13:35 | |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy. | 13:37 | |
| arigato | antocuni: I don't have a good solution :-( but I can think of complete hacks | 13:38 |
| arigato | maybe we should just tell the automatic-stack-check-inserter that it shouldn't put any in the relevant code in resume.py | 13:38 |
| aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Client Quit | 13:38 | |
| antocuni | yes, it looks like a hack | 13:39 |
| antocuni | but I see that it should just work | 13:39 |
| arigato | we can also disable and re-enable stack checking dynamically, but that's just as much a hack | 13:39 |
| antocuni | yes, it doesn't change much | 13:40 |
| WildChild (~wildchild@modemcable102.12-179-173.mc.videotron.ca) left irc: Ping timeout: 260 seconds | 13:45 | |
| michaelh (c1beac85@gateway/web/freenode/ip.193.190.172.133) left irc: Quit: Page closed | 13:45 | |
| Sho_ (~EHS1@kde/hein) left irc: Quit: Stop leaking memory like it's going out of fashion. | 13:47 | |
| Action: antocuni afk | 13:48 | |
| whitelynx (~whitelynx@li117-47.members.linode.com) joined #pypy. | 13:49 | |
| Sho_ (~EHS1@kde/hein) joined #pypy. | 13:52 | |
| mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Remote host closed the connection | 14:01 | |
| WildChild (~wildchild@modemcable102.12-179-173.mc.videotron.ca) joined #pypy. | 14:07 | |
| __name__ (~name@chello080108038152.1.11.vie.surfer.at) joined #pypy. | 14:13 | |
| __name__ (~name@chello080108038152.1.11.vie.surfer.at) left irc: Changing host | 14:13 | |
| __name__ (~name@sburn/devel/name) joined #pypy. | 14:13 | |
| aat (~aat@rrcs-184-75-54-130.nyc.biz.rr.com) joined #pypy. | 14:13 | |
| gutworth | can one get the buildbot to build a hg branch or clone? | 14:14 |
| arigato | yes, there is a "branch name" field | 14:15 |
| arigato | but not a different clone | 14:15 |
| kenaan | 12arigo invalidate-virtualrefs 11e2a55b8f245b 15/pypy/translator/transform.py: Kill old unused function. | 14:19 |
| kenaan | 12arigo invalidate-virtualrefs 11f2e0d3fa5162 15/: hg merge default | 14:20 |
| gutworth | how can find how the buildbot invokes py.test? | 14:21 |
| exarkun | look at one of the old build logs | 14:21 |
| gutworth | oh, I see, it's testrunner | 14:22 |
| michaelh_ (c1beac85@gateway/web/freenode/ip.193.190.172.133) joined #pypy. | 14:26 | |
| Ademan (~dan@adsl-71-141-231-167.dsl.snfc21.pacbell.net) left irc: Quit: Lost terminal | 14:28 | |
| harrison (~sr@adsl-69-209-211-40.dsl.chcgil.ameritech.net) joined #pypy. | 14:30 | |
| DasIch | how do i test whether this change to the buildbot works as intended? http://paste.pocoo.org/show/396230/ | 14:40 |
| kenaan | 12arigo invalidate-virtualrefs 11973208656591 15/pypy/: A quick hack as a workaround for the current (hard) issue: introduce "stack-critical code", enabled ... | 14:43 |
| arigato | DasIch: does it? I would say that it will run "ln" on the buildslave, which is not what you want | 14:43 |
| arigato | DasIch: instead, you should hack in PyPyUpload.start, to make a symlink there, I think | 14:45 |
| arigato | hum, no | 14:46 |
| arigato | I'm unsure when PyPyUpload.start() is called | 14:46 |
| arigato | maybe there is a method stop() that you can override, which would be called (on the master side) when the upload is finished | 14:48 |
| arigato | maybe it should also remove the uploaded file if it turns out to be 0 bytes in length, as pypy-c-xyz-stackless do right now :-/ | 14:49 |
| antocuni | arigato: ah cool, I was about to code the hack for the stackoverflow problem, but it seems you already did it :-) | 14:51 |
| arigato | ah, sorry :-) | 14:51 |
| antocuni | nothing to be sorry, I'd say :-) | 14:52 |
| antocuni | are you running a translation now? | 14:52 |
| arigato | yes | 14:52 |
| antocuni | ok | 14:52 |
| arigato | I also merged "default" first, because I also played with rstack.py and stack.h there | 14:52 |
| arigato | (to fix the "sys.setrecursionlimit() is ignored" issue) | 14:52 |
| antocuni | so, after that we should be fine with the branch, I think | 14:52 |
| arigato | if everythink goes fine, then yes | 14:53 |
| antocuni | ah, I can maybe try to run jinja2, as it plays with tracebacks AFAIK | 14:53 |
| Alex_Gaynor | yes, it uses transparent proxies on pypy | 14:54 |
| Alex_Gaynor | and ctypes hacks on cpython | 14:54 |
| Alex_Gaynor | :) | 14:54 |
| Alex_Gaynor | mitsuhiko I assume the jinja2 tests test that traceback stuff? | 14:55 |
| antocuni | uhm, then the binary I have right now will probably crash, because it's broken with transparent proxies | 14:55 |
| arigato | lib-python's test_array is *again* failing | 14:56 |
| antocuni | uhm, jinja2 tests with my old invalidate-vref binary fail with "out of memory (from JITted code)" | 14:58 |
| antocuni | but they work with pypy1.5 (apart one failure) | 14:58 |
| Alex_Gaynor | arigato: did you see my question about descrs in the optimizers from last night? | 14:59 |
| arigato | no | 14:59 |
| Alex_Gaynor | arigato: basically I want to do http://paste.pocoo.org/show/395927/ , but without the hack :) | 15:00 |
| antocuni | arigato: can you tell me the path to the binary once it finishes to compile, please? | 15:01 |
| arigato | ok | 15:01 |
| mitsuhiko | Alex_Gaynor: that ugly patching? yes | 15:01 |
| arigato | Alex_Gaynor: it doesn't look like a too evil hack | 15:02 |
| mitsuhiko | but jinja2 has a special path for pypy | 15:02 |
| Alex_Gaynor | mitsuhiko: right, tproxy right? | 15:02 |
| mitsuhiko | aye | 15:02 |
| mitsuhiko | and it shows a bug/limitation in tproxy :) | 15:02 |
| Alex_Gaynor | arigato: well I suppose the whole thing is a "hack" for not having @inline_if_virtualizable, but you don't think using that _sorted_descr method is a hack? | 15:02 |
| gutworth | where's the code that prevents pylib's AssertionError from getting annotated? | 15:03 |
| arigato | Alex_Gaynor: which _sorted_descr? | 15:03 |
| Alex_Gaynor | arigato: "_get_field_descr_list" | 15:03 |
| arigato | Alex_Gaynor: and, which @inline_if_virtualizable, for that matter | 15:03 |
| Alex_Gaynor | arigato: I'm saying hypothetically if that decorator existed you could just apply it to the resize_ge/resize_le and it would just work | 15:04 |
| Alex_Gaynor | arigato: but that leads us to the whole optimizers in the fronend mess of course | 15:04 |
| arigato | sorry, I'm not following | 15:05 |
| gutworth | mitsuhiko: if tracebacks where made mutable, we could save you about 100 lines of hideous code :) | 15:05 |
| Alex_Gaynor | arigato: well I'm just saying *if* such a thing existed we wouldn't need a special optimization for resize_ge | 15:05 |
| mitsuhiko | gutworth: i know :) | 15:05 |
| mitsuhiko | i was actually consider writing a pep for that, but somehow got distracted | 15:06 |
| arigato | Alex_Gaynor: do you mean @inline_if_virtual? | 15:06 |
| arigato | it has nothing to do with virtualizables, right? | 15:06 |
| arigato | I see what you meant now | 15:07 |
| Alex_Gaynor | arigato: bah, yes | 15:07 |
| gutworth | ah ha! "self.obj is py.code.AssertionError" | 15:08 |
| arigato | ah, I get your code now | 15:08 |
| arigato | indeed, it's an evil hack | 15:09 |
| antocuni | mitsuhiko: the code in _init_ugly_crap is scary. It's a cool hack, though :-) | 15:09 |
| Alex_Gaynor | :) | 15:09 |
| arigato | indeed, it relies on sort_descrs() to get them in that order | 15:10 |
| mitsuhiko | antocuni: i was surprised that it did not cause any problems | 15:10 |
| mitsuhiko | it did show up a bug in python's __basicsize__ on some obscure cpu architecture though | 15:10 |
| Alex_Gaynor | mitsuhiko: it was a bigendian system right? | 15:11 |
| mitsuhiko | yes | 15:11 |
| Alex_Gaynor | Dave Malcolm is a beat at debugging? | 15:11 |
| arigato | if we're grading hacks, "arrayitems._items.extend(" is not bad either | 15:11 |
| Alex_Gaynor | arigato: well, we could make a public API for it though | 15:12 |
| arigato | maybe "arrayitems._items = arrayitems._items + [" would be better, by not forcing the list to be resizable | 15:12 |
| arigato | yes | 15:12 |
| Alex_Gaynor | then it magically becomes less of a hack | 15:12 |
| arigato | yes :-) | 15:12 |
| mvt (~mvantelli@87.213.45.85) left irc: Quit: Leaving | 15:13 | |
| arigato | "arrayitems.source_op.setarg(0, newsize_box)" is even more hackish in a way :-/ | 15:13 |
| Alex_Gaynor | well, the _really_force emits source_op directly, rather than reconstruct it | 15:14 |
| arigato | yes, but still | 15:14 |
| arigato | I think it should reconstruct it then, just for this case | 15:14 |
| arigato | you don't want to mutate a random pre-existing operation | 15:14 |
| Alex_Gaynor | ok | 15:14 |
| antocuni | didn't we have proper support for virtual resizable lists at some point? Or was it in some old version of the jit? | 15:15 |
| Alex_Gaynor | older version of the JIT I think, I don't remember ever having seen them | 15:15 |
| arigato | "list_value.setfield(length_descr, newsize_value)" <- this line is wrong, no? | 15:15 |
| Alex_Gaynor | how? | 15:15 |
| arigato | ah no, I see | 15:16 |
| arigato | I suppose it could check somewhere if really newsize > arrayitems.getlength() | 15:17 |
| arigato | I expect that it can be often < | 15:18 |
| arigato | then [None]*(negative number) works fine in RPython, but I had to check rlist.py to make sure :-) | 15:18 |
| Alex_Gaynor | really, when would it be lt? | 15:18 |
| arigato | in case of over-allocation (unsure how to get it while still being a virtual array) | 15:19 |
| Alex_Gaynor | won't resize_le be used in those cases? | 15:19 |
| Alex_Gaynor | you're right it should still handle those cases :) | 15:20 |
| arigato | no | 15:20 |
| qbproger (~qbproger@105.70.8.67.cfl.res.rr.com) joined #pypy. | 15:20 | |
| arigato | it probably does just fine :-) | 15:20 |
| qbproger | why is the pypy 1.5 win32 binary considered beta? | 15:20 |
| Alex_Gaynor | no, _items will be too long | 15:20 |
| Alex_Gaynor | that could mess up ARRAYLEN_GC | 15:20 |
| arigato | _resize_le() just means "maybe you need to shrink" | 15:20 |
| arigato | _resize_ge() just means "maybe you need to expand" | 15:20 |
| arigato | Alex_Gaynor: that's fine: len(list) is implemented as returning "list.length", not "len(list.items)" | 15:21 |
| arigato | in general, len(list.items) >= list.length | 15:21 |
| etrepum (~bob@12.130.118.4) joined #pypy. | 15:21 | |
| arigato | (I mean that's always true) | 15:21 |
| antocuni | qbproger: in general, windows it's a bit less tested than linux, because most of us don't use it | 15:21 |
| antocuni | that's the only reason, AFAIK | 15:22 |
| Alex_Gaynor | arigato: yes, but look at ARRAYLEN_GC on a virtual array, it's the "wrong" answer IMO | 15:22 |
| arigato | ARRAYLEN_GC is generated for len(list.items) | 15:22 |
| qbproger | ah ok, but it mostly works just as well? | 15:22 |
| antocuni | yes, I think so | 15:22 |
| antocuni | (although I never ran it :-)) | 15:22 |
| arigato | Alex_Gaynor: the RPython code len(resizable_list) turns into GETFIELD_GC(resizable_list, 'length') | 15:23 |
| Alex_Gaynor | sure | 15:23 |
| antocuni | qbproger: btw, if I ssh buildslave@tannit and type "32bit" to enter the 32 bit chroot, I get "(qbproger)buildslave@tannit:~$" as the bash prompt | 15:24 |
| arigato | I don't understand what is wrong with ARRAYLEN_GC on a virtual array | 15:24 |
| qbproger | antocuni: i'm not sure what that means | 15:24 |
| Alex_Gaynor | arigato: there's nothing wrong ATM, I'm saying with my patch it returns a different answer is the array is shrunk with this function, it might not break anything for all I know | 15:24 |
| arigato | qbproger, antocuni: that's just an accident | 15:24 |
| Alex_Gaynor | but it could I guess if the length is gotten, the array is forced, and then you try to do a setitem | 15:25 |
| qbproger | i'm on my laptop now though (windows), and I don't have the username/password with me | 15:25 |
| antocuni | arigato: caused by what? | 15:25 |
| Last message repeated 1 time(s). | 15:26 | |
| antocuni | sorry :-) | 15:26 |
| arigato | antocuni: /etc/debian_chroot | 15:26 |
| arigato | antocuni: it contains "qbproger" probably because he's the last one that started a 32bit chroot | 15:26 |
| antocuni | ah ok | 15:27 |
| antocuni | just curious | 15:27 |
| qbproger | i have some project euler stuff on my laptop i was going to try out with pypy, but i guess a lot of other people have done that | 15:27 |
| Action: antocuni just edits /etc/debian_chroot | 15:28 | |
| arigato | Alex_Gaynor: I think it's fine as long as you only hack with _items in case it's really a virtual | 15:28 |
| bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Quit: bivab | 15:29 | |
| qbproger | i'm not sure if you should say the windows release is 'beta' I thought Mac OS X was in the same state as win32 | 15:29 |
| Alex_Gaynor | arigato: any suggestions for the sorted_descr list hack? | 15:31 |
| arigato | I fear not | 15:31 |
| arigato | qbproger: it's at least a bit more tested | 15:32 |
| arigato | qbproger: for Windows, we had for months no buildbot at all | 15:32 |
| qbproger | ah ok | 15:33 |
| qbproger | maybe you should do a blog post stating what resources are needed... people would probably chip in | 15:34 |
| arigato | antocuni: /home/arigo/hg/pypy/trunk/32compiled/c-r44551-jit-invvref | 15:34 |
| antocuni | thanks | 15:34 |
| antocuni | arigato: uhm, no binary there | 15:34 |
| arigato | and ../pypy-c-r44551-jit-invvref is the binary | 15:34 |
| antocuni | ok :-) | 15:35 |
| arigato | crash anyway | 15:36 |
| arigato | argh | 15:37 |
| arigato | it's not the latest version :-( | 15:37 |
| arigato | it's ce4527cbcb3d | 15:37 |
| Action: arigato builds a 973208656591 | 15:37 | |
| antocuni | pff | 15:38 |
| Action: arigato suspects he did "hg pull" and forgot "hg up" | 15:38 | |
| antocuni | we should maybe issue a warning if we start translate.py and the current revision is not the only head of the current branch | 15:39 |
| Alex_Gaynor | does that happen often? | 15:40 |
| arigato | antocuni: in this case, it's not a head at all | 15:44 |
| antocuni | yes, this also falls in the "not the only head" case | 15:44 |
| arigato | ah ok :-) | 15:44 |
| qbproger | does pypy on windows work with virtualenv? | 15:58 |
| stb (~stb@74.113.152.17) left irc: Remote host closed the connection | 16:04 | |
| antocuni | qbproger: I suppose it should, not sure if anybody ever tried | 16:05 |
| qbproger | antocuni: i got an error message about a missing libpypy.dll | 16:05 |
| antocuni | then it doesn't work :-/ | 16:06 |
| qbproger | antocuni: yea, i asking mostly to see if it was supposed to work | 16:06 |
| arigato | probably easy to fix, at least manually: copy libpypy.dll together with pypy.exe | 16:09 |
| apoirier (apoirier@sakura.nagare.org) left #pypy ("Leaving..."). | 16:10 | |
| CIA-19 | 03chortos 07roundup * 10#730/resource.timeval has a wrong size in 64-bit builds on Mac OS X: | 16:13 |
| CIA-19 | [new] In the 64-bit environment on Mac OS X, the long type takes 8 bytes but the | 16:13 |
| CIA-19 | tv_usec field of struct timeval still takes only 4 bytes. ... * 14https://bugs.pypy.org/issue730 | 16:13 |
| G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving. | 16:14 | |
| arigato | antocuni: /home/arigo/hg/pypy/trunk/32compiled/c-r44554-jit-invvref | 16:14 |
| antocuni | arigato: does it pass the cpickle test now? | 16:16 |
| arigato | yes | 16:16 |
| antocuni | cool | 16:16 |
| arigato | :-) | 16:16 |
| antocuni | good, jinja2 tests also work | 16:16 |
| arigato | good | 16:17 |
| gutworth | tannit has a load higher than 1!? | 16:17 |
| Action: arigato -> dinner | 16:17 | |
| antocuni | ("work" as in "fail in the same way as pypy1.5) | 16:17 |
| arigato | tannit is busy with buildslave right now | 16:17 |
| antocuni | yes, I kicked one run | 16:17 |
| arigato | but "busy" as in "it's fine to run even more stuff" | 16:17 |
| arigato (~arigo@fwstups.cs.uni-duesseldorf.de) left irc: Quit: See you | 16:18 | |
| Action: gutworth finds a rather embarassing bug | 16:20 | |
| Alex_Gaynor | gutworth: in what? | 16:22 |
| kkris1 (~kris@188-22-115-34.adsl.highway.telekom.at) joined #pypy. | 16:28 | |
| kkris (~kris@80-123-39-45.adsl.highway.telekom.at) left irc: Ping timeout: 244 seconds | 16:29 | |
| asabil (~asabil@195.159.219.65) left irc: Ping timeout: 246 seconds | 16:33 | |
| CIA-19 | 03agaynor 07roundup * 10#730/resource.timeval has a wrong size in 64-bit builds on Mac OS X: | 16:42 |
| CIA-19 | [chatting] According to my system's manfile the correct layout for the struct is: | 16:42 |
| CIA-19 | struct timeval { | 16:42 |
| CIA-19 | time_t tv_se ... * 14https://bugs.pypy.org/issue730 | 16:42 |
| harrison (~sr@adsl-69-209-211-40.dsl.chcgil.ameritech.net) left irc: Ping timeout: 255 seconds | 16:42 | |
| Vorpal (~AnMaster@unaffiliated/anmaster) left irc: Ping timeout: 248 seconds | 16:43 | |
| ousado__ (~ousado@188-192-13-103-dynip.superkabel.de) left irc: Read error: Operation timed out | 16:46 | |
| ousado__ (~ousado@188-192-13-103-dynip.superkabel.de) joined #pypy. | 16:46 | |
| Vorpal (~AnMaster@unaffiliated/anmaster) joined #pypy. | 16:46 | |
| romao (~romao@unaffiliated/errado) joined #pypy. | 16:47 | |
| Alex_Gaynor | http://paste.pocoo.org/show/396308/ new version of this patch, removes all the hacks except for the main one :) | 16:50 |
| antocuni | bah, invalidate-virtualrefs tests fail in module/thread/test :-( | 16:52 |
| antocuni | http://buildbot.pypy.org/summary?builder=own-linux-x86-32&branch=invalidate-virtualrefs | 16:52 |
| antocuni | Alex_Gaynor: shouldn't you also write tests in test_optimizeopt? | 16:53 |
| Alex_Gaynor | antocuni: perhaps, but it's a pain to write stuff for a specific descr there | 16:53 |
| antocuni | still | 16:54 |
| qbproger | who would work on improving the assembly? | 16:55 |
| Alex_Gaynor | is there some reason that the test_list test isn't appropriate? | 16:55 |
| antocuni | Alex_Gaynor: yes, that if it later fails, I won't have a clue about what the resulting code was supposed to look like | 16:56 |
| qbproger | I found this: http://thecodecavern.co.uk/ might be able to produce better assembly | 16:56 |
| antocuni | Alex_Gaynor: also, I don't think it's so hard to write a test | 16:57 |
| Alex_Gaynor | test_optimizeopt should really be split up :) | 16:58 |
| antocuni | since to get the descrs you use _get_field_descr_list, you can probably just write a test over a structure which happens to have length and items as fields | 16:58 |
| antocuni | Alex_Gaynor: yes, splitting test_optimizeopt is also on my todo list (although I admit not at the top) | 16:58 |
| antocuni | but feel free to do it, I won't take offense :-) | 16:59 |
| Alex_Gaynor | :D | 17:00 |
| [Loughes!Jonathan_@c-98-240-32-27.hsd1.ms.comcast.net] howghdy | 17:01 | |
| DasIch_ (~DasIch@p4FFDC69B.dip.t-dialin.net) joined #pypy. | 17:03 | |
| DasIch (~DasIch@93.216.64.136) left irc: Ping timeout: 240 seconds | 17:07 | |
| santagada (~user@200.175.214.154.dynamic.adsl.gvt.net.br) joined #pypy. | 17:08 | |
| __name__ (~name@sburn/devel/name) left irc: Ping timeout: 260 seconds | 17:10 | |
| __name__ (~name@sburn/devel/name) joined #pypy. | 17:13 | |
| CIA-19 | 03jamartinh 07roundup * 10#731/Problem handling set operations: | 17:15 |
| CIA-19 | [new] for b in ( G.Neighborhood(a) - G.Neighborhood(x) - {x} ): | 17:15 |
| CIA-19 | TypeError ... * 14https://bugs.pypy.org/issue731 | 17:15 |
| CIA-19 | 03agaynor 07roundup * 10#731/Problem handling set operations: | 17:18 |
| CIA-19 | [chatting] Can we get a slightly more complete example? Preferable a test case we can | 17:18 |
| CIA-19 | actually execute. * 14https://bugs.pypy.org/issue731 | 17:18 |
| pybot joined #pypy. | 17:30 | |
| -ChanServ (ChanServ@services.)- [#pypy] Welcome! | 17:30 | |
| -ChanServ (ChanServ@services.)- [#stackless] Welcome to #stackless. This channel is for the discussion of matters relating to Stackless Python. Remember that others in this channel may not be in the same timezone as you, so stick around for an answer (even if only in your channel history) if you ask a question. The mailing list is also recommended as being a faster place to get help (http://www.stackless.com/mailman/listinfo/stackless). | 17:31 | |
| CIA-19 | 03jamartinh 07roundup * 10#731/Problem handling set operations: Hi Alex, try the attached script in python27 python GraphLib.py runs without errors However pypy GraphLib.py after about 10 iterations give ... * 14https://bugs.pypy.org/issue731 | 17:43 |
| Alex_Gaynor | oooh, this bug looks hard | 17:48 |
| iori (~iori@110-133-45-54.rev.home.ne.jp) joined #pypy. | 17:53 | |
| antocuni | Alex_Gaynor: in which context? | 17:56 |
| Alex_Gaynor | antocuni: #731 | 17:58 |
| Alex_Gaynor | antocuni: here's what I just found with the debugger: http://paste.pocoo.org/show/396326/ | 17:58 |
| antocuni | Alex_Gaynor: no, mine was a reply to "what is the difference between a vstruct and a virtual"? | 17:58 |
| Alex_Gaynor | antocuni: I figured that out I think, it looks like it' sjust a case of what information that resop has | 17:59 |
| antocuni | ok | 17:59 |
| antocuni | Alex_Gaynor: does the bug 731 happen also without the jit? | 18:00 |
| Alex_Gaynor | antocuni: excellent question | 18:00 |
| Alex_Gaynor | that's --jit threshold=-1 right? | 18:00 |
| Alex_Gaynor | holy crap this is slow without the JIT | 18:00 |
| antocuni | yes | 18:01 |
| Alex_Gaynor | I fear I'll be eating lucnh before this is finished :/ | 18:01 |
| Alex_Gaynor | it hasn't crashed yet, I'll keep you apprised | 18:01 |
| Alex_Gaynor | antocuni: at a minimum it's running for longer than any of the JIT versions did, I'm guessing this is a JIT bug (the crash happens at a more or less random point since this program is more or less random) | 18:03 |
| antocuni | yes, I'm running it as well | 18:04 |
| antocuni | would be nice to have a more reproducible/fast test case :-( | 18:04 |
| Alex_Gaynor | yes, this is a lot of code, if nothing else | 18:04 |
| Alex_Gaynor | (if you try to run with PYPYLOG=jit-log-opt:- it starts spewing traces left and right) | 18:04 |
| antocuni | http://paste.pocoo.org/show/396328/ | 18:05 |
| antocuni | Alex_Gaynor: ^^^ this fails at iteration 1000 | 18:05 |
| antocuni | so yes, it's a jit bug | 18:05 |
| Alex_Gaynor | antocuni: hah, nice | 18:11 |
| dmalcolm (~david@nat/redhat/x-jmywzdftnhjwgbio) joined #pypy. | 18:14 | |
| Alex_Gaynor | dmalcolm: you have amazing debugging skills? | 18:15 |
| Alex_Gaynor | err no ? | 18:15 |
| Alex_Gaynor | antocuni: I haven't a clue what the bug is though | 18:16 |
| antocuni | I did not investigate further | 18:16 |
| Alex_Gaynor | BUILD_SET should probably be @jit.unroll_safe | 18:17 |
| antocuni | well, looking at the trace, there is a call_may_force to BUILD_SET | 18:17 |
| Alex_Gaynor | but I hope that's not the source of a bug | 18:17 |
| Alex_Gaynor | that should never effect correctness | 18:17 |
| antocuni | maybe instead of building the set, it does nothing | 18:17 |
| antocuni | so the int remains on the valuestack, and the rest of the interpreter thinks it's the return value | 18:18 |
| antocuni | Alex_Gaynor: sure, we should first understand the source of the error | 18:18 |
| antocuni | then, we can talk about unroll_safe | 18:18 |
| dmalcolm | Alex_Gaynor: eh? | 18:18 |
| Alex_Gaynor | dmalcolm: the crasher bug that was filed | 18:19 |
| dmalcolm | rhbz#707707 ? | 18:19 |
| Alex_Gaynor | antocuni: indeed, I'm just saying I think they're connected, even though they shouldn't be | 18:19 |
| Alex_Gaynor | dmalcolm: yes | 18:19 |
| dmalcolm | Alex_Gaynor: yeah, bad compilation flags, I think. I think I'm gonna need to dive into the gc root asm thingy, but I'm in another deep dive on another project right now | 18:20 |
| dmalcolm | Secret Project (TM) | 18:21 |
| Alex_Gaynor | dmalcolm: with 1.5 it's also possible to use shadowstack with the JIT, which shouldn't require specific complication flags, it's ~10% slower though I think | 18:21 |
| CIA-19 | 03antocuni 07roundup * 10#731/Problem handling set operations: (log message trimmed) | 18:21 |
| CIA-19 | This smaller test case shows the bug as well. I did not investigate further, though. | 18:21 |
| CIA-19 | def foo(): | 18:21 |
| CIA-19 | for i in range(2000): | 18:21 |
| CIA-19 | x = {i} * 14https://bugs.pypy.org/issue731 | 18:21 |
| Alex_Gaynor | antocuni: replacing type(x) is set with `i in x` gives a slightly simpler trace | 18:22 |
| Alex_Gaynor | and you can see you end up with: p31 = new_with_vtable(ConstClass(W_IntObject)) | 18:22 |
| Alex_Gaynor | setfield_gc(p31, i19, descr=<SignedFieldDescr pypy.objspace.std.intobject.W_IntObject.inst_intval 8>) | 18:22 |
| Alex_Gaynor | p33 = call_may_force(ConstClass(contains), p31, p31, descr=<GcPtrCallDescr>) | 18:22 |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 18:23 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 18:24 | |
| lucian (~lucian@78-86-217-168.zone2.bethere.co.uk) joined #pypy. | 18:27 | |
| Alex_Gaynor | antocuni: I think their must be a bug in the virtualizable code | 18:28 |
| jokey (~jokey@gentoo/developer/jokey) left irc: Remote host closed the connection | 18:31 | |
| Alex_Gaynor | reading jit-log-noopt is hilarious | 18:35 |
| Alex_Gaynor | antocuni: so reading jit-log-noopt the bug occurs before the optimizers ever occur, the bug is in the frontned | 18:37 |
| Alex_Gaynor | antocuni: I suppose it's possible the bug is even in codewriter, I suppose the next step is to try to write a test | 18:39 |
| antocuni | Alex_Gaynor: uh? So you are saying that the set is not constructed at all in the jit-log-noopt? | 18:42 |
| Alex_Gaynor | antocuni: no the set is constructed, but the call to contains looks the same as in -opt, it has p31 for both params | 18:43 |
| antocuni | ah, I see it now | 18:43 |
| antocuni | yes, it looks like a bug in the frontend | 18:44 |
| Alex_Gaynor | this is why I think it's a codewriter/virtualizable bug | 18:44 |
| antocuni | Alex_Gaynor: I think that pypyjit.py might be useful to debug this | 18:46 |
| Action: antocuni going out very soon | 18:46 | |
| Alex_Gaynor | good idea, not sure how long I can spend on debugging this ATM, but I'll try | 18:47 |
| __name__ (~name@sburn/devel/name) left irc: Read error: Operation timed out | 18:48 | |
| Alex_Gaynor | antocuni: how does one run pypyjit_demo again? | 18:48 |
| antocuni | Alex_Gaynor: py.test -s --pdb pypyjit.py | 18:48 |
| antocuni | pypyjit_demo is run automatically by it | 18:49 |
| Alex_Gaynor | antocuni: can you use pytest.py instead of py.test? | 18:49 |
| antocuni | I think so | 18:49 |
| antocuni | note that it might be broken | 18:49 |
| antocuni | it's not tested nighlty :-( | 18:49 |
| Alex_Gaynor | ok | 18:49 |
| Action: antocuni off | 18:50 | |
| antocuni | bye | 18:50 |
| Alex_Gaynor | bye | 18:50 |
| __name__ (~name@chello080108038152.1.11.vie.surfer.at) joined #pypy. | 18:53 | |
| __name__ (~name@chello080108038152.1.11.vie.surfer.at) left irc: Changing host | 18:53 | |
| __name__ (~name@sburn/devel/name) joined #pypy. | 18:53 | |
| antocuni (~antocuni@host102-122-dynamic.14-87-r.retail.telecomitalia.it) left irc: Ping timeout: 276 seconds | 18:55 | |
| etrepum (~bob@12.130.118.4) left irc: Quit: etrepum | 18:55 | |
| santagada (~user@200.175.214.154.dynamic.adsl.gvt.net.br) left irc: Remote host closed the connection | 18:56 | |
| CIA-19 | 03chortos 07roundup * 10#730/resource.timeval has a wrong size in 64-bit builds on Mac OS X: | 19:02 |
| CIA-19 | Yes. On Linux, both time_t and suseconds_t are typedef'ed to long, but on | 19:02 |
| CIA-19 | Mac OS X time_t is typedef'ed to long but suseconds_t to int. * 14https://bugs.pypy.org/issue730 | 19:02 |
| CIA-19 | 03agaynor 07roundup * 10#730/resource.timeval has a wrong size in 64-bit builds on Mac OS X: | 19:04 |
| CIA-19 | Since ctypes doesn't provide an alias for suseconds_t or time_t for that matter, | 19:04 |
| CIA-19 | does someone want to write a patch that does the appropriate log ... * 14https://bugs.pypy.org/issue730 | 19:04 |
| exarkun | Alex_Gaynor: what's the right thing to use for that now? | 19:10 |
| exarkun | rffi_platform? | 19:10 |
| Alex_Gaynor | exarkun: it's pure python code, so the right thing is really just special case it I guess | 19:12 |
| Alex_Gaynor | exarkun: we can't assume a compiler | 19:12 |
| exarkun | Alex_Gaynor: that doesn't sound very cool. | 19:12 |
| exarkun | if you don't have a compiler, then you can't do it right. | 19:12 |
| exarkun | (otherwise rffi_platform wouldn't exist right?) | 19:12 |
| Alex_Gaynor | rffi_platform is for RPython | 19:13 |
| Alex_Gaynor | we can assume a compiler then | 19:13 |
| exarkun | that doesn't change the other thing I said | 19:14 |
| Alex_Gaynor | I don't disgaree, but that's life | 19:15 |
| exarkun | maybe at least put all of the insane subtly wrong size and alignment detection logic into a single place | 19:17 |
| exarkun | instead of spreading it out over the whole library | 19:17 |
| exarkun | so there's one place for someone to look at to have a heart attack | 19:18 |
| jokey (~jokey@gentoo/developer/jokey) joined #pypy. | 19:19 | |
| whitelynx (~whitelynx@li117-47.members.linode.com) left irc: Quit: Ex-Chat | 19:25 | |
| FAF (~FAF@dhcp-32-219.gel.ulaval.ca) joined #pypy. | 19:28 | |
| qbproger (~qbproger@105.70.8.67.cfl.res.rr.com) left irc: Quit: Leaving | 19:29 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 19:31 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 19:31 | |
| FAF | I have a question regarding PyPy dictionary behavior compared to its CPython equivalent. | 19:34 |
| kenaan | 12arigo default 116279f4f07ceb 15/pypy/translator/c/src/debug_print.c: A missing #include means that CLOCK_THREAD_CPUTIME_ID is not defined, even on Linux. Bad fijal, no cookie. But it... | 19:40 |
| kenaan | 12arigo default 116077f634e2eb 15/pypy/translator/c/src/debug_print.h: Found where the #includes come from. Remove them; they belong to debug_print.c. Give up writing a test, given tha... | 19:40 |
| kenaan | 12arigo default 113992786f8966 15/pypy/: merge heads | 19:40 |
| gutworth | FAF: sure | 19:43 |
| FAF | gutworth : Ok here is what I obseverd. | 19:43 |
| FAF | with CPython, if we create a dictionary with keys and values and then retrieves the keys, we get : | 19:43 |
| FAF | >>> d = {1:1, 100:0, 101:0, -12:1} | 19:43 |
| FAF | >>> d.keys() | 19:43 |
| FAF | [1, -12, 100, 101] | 19:43 |
| FAF | with PyPy : | 19:44 |
| FAF | >>>> d = {1:1, 100:0, 101:0, -12:1} | 19:44 |
| FAF | >>>> d.keys() | 19:44 |
| FAF | [1, 100, 101, -12] | 19:44 |
| gutworth | yes, dictionary order is undefined | 19:44 |
| FAF | ok | 19:44 |
| FAF | And since it is undefined, the order in CPython and in PyPy doesn't have to concord. | 19:46 |
| gutworth | right | 19:46 |
| FAF | Ok, that might cause some problems when trying to compare results with CPython and PyPy, but I guess I'll just have to deal with it :P | 19:48 |
| Sho_ | FAF: If you need a reliable key order you probably want OrderedDict (new in 2.7/3.2) | 19:48 |
| gutworth | FAF: just sort them | 19:48 |
| gutworth | and dictionary comparisons don't care about order | 19:48 |
| gutworth | a better way to think of it is they have no order | 19:49 |
| gutworth | repr() just spits out some arbitrary order | 19:49 |
| Action: gutworth reflects on how dictionaries are like complex numbers | 19:49 | |
| Alex_Gaynor | grump, where is arigato! | 19:50 |
| FAF | Ok, I get there is no order. We just had some algorithm which used the pop function of set. | 19:51 |
| FAF | The retrieve an arbitrary number from the set | 19:51 |
| Alex_Gaynor | yes, it really is arbitrary :) | 19:51 |
| Action: Sho_ thinks of today's xkcd | 19:52 | |
| FAF | Yeah, I think the guy who wrote the algorithm just confound arbitrary with random... | 19:52 |
| aat (~aat@rrcs-184-75-54-130.nyc.biz.rr.com) left irc: Remote host closed the connection | 19:53 | |
| FAF | Well, thanks guy for your lights | 19:55 |
| Alex_Gaynor | FAF: an excellent point! you can probably also "break" it by running on: different OS, different endianness, different integer width | 19:55 |
| Alex_Gaynor | :) | 19:55 |
| Alex_Gaynor | gutworth: do you know much about how virtualizables work? | 19:57 |
| gutworth | I suppose you're trying to recruit me to debug them? :) | 20:00 |
| Alex_Gaynor | gutworth: weeeel, yes :) | 20:00 |
| whitelynx (~whitelynx@75.110.189.230) joined #pypy. | 20:02 | |
| davisagli (~davisagli@davisagli.com) left irc: Excess Flood | 20:02 | |
| davisagli (~davisagli@davisagli.com) joined #pypy. | 20:03 | |
| amaury_ (~amaury_@56.197.69.86.rev.sfr.net) joined #pypy. | 20:03 | |
| jimbaker (~jbaker@canonical/jimbaker) left irc: Ping timeout: 246 seconds | 20:09 | |
| bobbyz (~bobbyz@c-24-14-151-193.hsd1.il.comcast.net) joined #pypy. | 20:12 | |
| jimbaker (~jbaker@c-24-8-39-78.hsd1.co.comcast.net) joined #pypy. | 20:13 | |
| jimbaker (~jbaker@c-24-8-39-78.hsd1.co.comcast.net) left irc: Changing host | 20:13 | |
| jimbaker (~jbaker@canonical/jimbaker) joined #pypy. | 20:13 | |
| whitelynx (~whitelynx@75.110.189.230) left irc: Read error: Connection reset by peer | 20:38 | |
| Alex_Gaynor | gutworth: so there is a bug in virtualizable, given http://paste.pocoo.org/show/396377/ this pypyjit_demo blows up with an assertion without the unroll_safe, but passes without it | 20:39 |
| Alex_Gaynor | given unroll_safe is supposed to be just for performance, Bug! | 20:39 |
| whitelynx (~whitelynx@75.110.189.230) joined #pypy. | 20:40 | |
| gutworth | bingo! | 20:42 |
| Alex_Gaynor | gutworth: I have no idea how to fix/debug this, and I would feel like an awful human being if I fixed it with unroll_safe (even though that should be done) | 20:43 |
| Action: gutworth is now tempted to investigate | 20:45 | |
| romao (~romao@unaffiliated/errado) left irc: Quit: WeeChat 0.3.6-dev | 20:47 | |
| lizardo (~lizardo@189.2.128.130) left irc: Quit: Leaving | 20:54 | |
| whitelynx (~whitelynx@75.110.189.230) left irc: Read error: Connection reset by peer | 20:59 | |
| Alex_Gaynor | gutworth: so I just speant some time trying to build a test case, and failed :( | 21:07 |
| Alex_Gaynor | http://paste.pocoo.org/show/396394/ | 21:08 |
| Alex_Gaynor | it passes :( | 21:09 |
| gutworth | that's always annoying | 21:12 |
| Alex_Gaynor | I'm sure I've failed to make my test sufficiently obscure | 21:12 |
| Alex_Gaynor | any suggestions? | 21:12 |
| gutworth | ha, I haven't even got the demo to translate | 21:13 |
| gutworth | what's the symtom even? :) | 21:13 |
| Alex_Gaynor | you saw the ticket right? | 21:13 |
| Alex_Gaynor | the symptom in real code is any time you have a BUILD_SET nonsense happens | 21:14 |
| Alex_Gaynor | the symptom in the demo thing is an assertion is failed inside some runtime checks that only happen when not translated | 21:14 |
| whitelynx (~whitelynx@75.110.189.230) joined #pypy. | 21:14 | |
| gutworth | ah | 21:15 |
| Alex_Gaynor | the runtime checks have a nice like check_virtualizable_synced or something | 21:15 |
| Alex_Gaynor | and they appear to check that the array of virtualizable values on the frame match the attributes on the vable object | 21:15 |
| Alex_Gaynor | gutworth: the assertion failed is https://bitbucket.org/pypy/pypy/src/default/pypy/jit/metainterp/virtualizable.py#cl-157 L163 | 21:19 |
| Alex_Gaynor | err1 69 | 21:19 |
| gutworth | does it make a difference if you turn opts off? | 21:19 |
| Alex_Gaynor | which is called from https://bitbucket.org/pypy/pypy/src/default/pypy/jit/metainterp/pyjitpl.py#cl-2212 | 21:20 |
| Alex_Gaynor | gutworth: make a difference where? | 21:20 |
| gutworth | does it fail without opts? | 21:20 |
| Alex_Gaynor | pypyjit_demo you mean? | 21:20 |
| gutworth | yeah | 21:20 |
| Alex_Gaynor | ugh, that takes like 20 minutes, you really want me to run that? | 21:21 |
| gutworth | well, run it in the background | 21:21 |
| gutworth | that would disqualify quite a lot of code :) | 21:21 |
| lucian (~lucian@78-86-217-168.zone2.bethere.co.uk) left irc: Ping timeout: 240 seconds | 21:21 | |
| Alex_Gaynor | :D | 21:21 |
| gutworth | but how can check_boxes be called? | 21:22 |
| Alex_Gaynor | gutworth: it already has backendopt=False | 21:22 |
| gutworth | it's guarded by "not we_are_translated()" | 21:22 |
| gutworth | I meant jit opts | 21:22 |
| whitelynx (~whitelynx@75.110.189.230) left irc: Read error: Connection reset by peer | 21:23 | |
| Alex_Gaynor | gutworth: I think we_are_translated() is false in pypyjit_demo I guess | 21:23 |
| gutworth | ? | 21:23 |
| gutworth | how can that possible work | 21:23 |
| Alex_Gaynor | gutworth: it's not a JIT opt issue, you can see the problem in the unoptimized traces | 21:23 |
| gutworth | ah | 21:23 |
| Alex_Gaynor | it uses llgrpah doesn't? | 21:23 |
| gutworth | yeah | 21:24 |
| Action: gutworth hasn't used pypyjit_demo in a while | 21:24 | |
| Alex_Gaynor | LLGraph is a CPU too :) | 21:24 |
| rguillebert (~hardshoot@46.7.246.58) joined #pypy. | 21:25 | |
| FAF (~FAF@dhcp-32-219.gel.ulaval.ca) left irc: Quit: FAF | 21:28 | |
| amaury_ (~amaury_@56.197.69.86.rev.sfr.net) left irc: Ping timeout: 244 seconds | 21:40 | |
| whitelynx (~whitelynx@75.110.189.230) joined #pypy. | 21:50 | |
| Alex_Gaynor | gutworth: ok I ahve something strange: http://paste.pocoo.org/show/396420/ fails, but http://paste.pocoo.org/show/396421/ passes | 21:58 |
| Alex_Gaynor | gutworth: the only difference is the j opcode | 21:59 |
| gutworth | fail as in? | 22:02 |
| Alex_Gaynor | gutworth: as in AssertionError 34 != 37 | 22:02 |
| gutworth | ah | 22:03 |
| whitelynx (~whitelynx@75.110.189.230) left irc: Quit: Leaving | 22:04 | |
| Alex_Gaynor | gutworth: I still get that if I take away the dont_look_inside on build dict through | 22:04 |
| Alex_Gaynor | through* | 22:04 |
| Alex_Gaynor | I'm so confused, seems like there's 20 false trails | 22:05 |
| gutworth | virtualizable tests are hard :) | 22:05 |
| Alex_Gaynor | gutworth: and if I move the can_enter_jit before changing PC it passes | 22:06 |
| Alex_Gaynor | should have waited for armin :/ | 22:06 |
| gutworth | jit hint placement is subtle | 22:07 |
| Alex_Gaynor | should it effect correctness though? | 22:07 |
| gutworth | I wouldn't be suprised :) | 22:07 |
| Alex_Gaynor | strictly speaking I suppose those are bugs though? | 22:08 |
| gutworth | well, it's done afterwards in the python interp | 22:09 |
| Alex_Gaynor | what do you mean? | 22:09 |
| Alex_Gaynor | you mean the modification of pc? | 22:10 |
| gutworth | there might be a right way | 22:10 |
| Sho_ (~EHS1@kde/hein) left irc: Read error: Connection reset by peer | 22:10 | |
| gutworth | yes | 22:10 |
| Alex_Gaynor | the can_enter_jit comes first in th epython one | 22:10 |
| Alex_Gaynor | since the pc doesn't get set on self until that method returns | 22:10 |
| Alex_Gaynor | AFAIK | 22:10 |
| Sho_ (~EHS1@kde/hein) joined #pypy. | 22:11 | |
| gutworth | Alex_Gaynor: I think I found it | 22:23 |
| gutworth | the trace is calling BUILD_SET__AccessDirect_None | 22:24 |
| gutworth | but it shouldn't be accessing directly | 22:24 |
| Alex_Gaynor | gutworth: oh yeah? I rewrote this "interp" to be closer to the python one for this example, but it's giving my obscure errors | 22:24 |
| gutworth | so it updates the frame | 22:24 |
| gutworth | directly | 22:24 |
| Alex_Gaynor | LLInterpException is the worst thing ever | 22:24 |
| gutworth | and the metainterp never finds out about it | 22:24 |
| gutworth | and the virtualizable frame is out of sync! | 22:25 |
| Alex_Gaynor | gutworth: Ah! why is it doing that? because it's self? | 22:25 |
| gutworth | no, the annotator is wonrg | 22:25 |
| gutworth | wrong | 22:25 |
| gutworth | lemme figure out how to fix this | 22:26 |
| kost-bebix (~kost@195.95.210.249) left irc: Ping timeout: 258 seconds | 22:27 | |
| Alex_Gaynor | gutworth: first figure out how to test it! | 22:27 |
| kost-bebix (~kost@195.177.74.243) joined #pypy. | 22:27 | |
| gutworth | well, that's implied | 22:27 |
| Alex_Gaynor | hehe | 22:28 |
| Alex_Gaynor | exarkun would be pleased | 22:28 |
| gutworth | exarkun shaped my testing philosphy | 22:28 |
| Alex_Gaynor | always write a test? | 22:28 |
| gutworth | at least one :) | 22:28 |
| kkris1 (~kris@188-22-115-34.adsl.highway.telekom.at) left irc: Quit: Leaving. | 22:29 | |
| Alex_Gaynor | :) | 22:31 |
| kost-bebix (~kost@195.177.74.243) left irc: Client Quit | 22:32 | |
| whitelynx (~whitelynx@75.111.197.204) joined #pypy. | 22:44 | |
| Alex_Gaynor | gutworth: in LLInterp how can I see what a variable's value is? | 22:44 |
| gutworth | I think stuff is in llframe.bindings | 22:46 |
| Alex_Gaynor | bah, I can't find what I'm looking for | 22:48 |
| Alex_Gaynor | gutworth: not to distract you from the question to test and fix this, but any idea why the hell http://paste.pocoo.org/show/396435/ raises a KeyError | 22:55 |
| gutworth | Alex_Gaynor: uhm, look at _virtualizable2_ = [... line | 22:56 |
| Alex_Gaynor | gutworth: haha, holy crap that's an obscure error | 22:58 |
| gutworth | doubtless | 22:58 |
| exarkun | The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information. | 23:01 |
| Alex_Gaynor | exarkun: that's cool, patches welcome :D | 23:03 |
| bobbyz (~bobbyz@c-24-14-151-193.hsd1.il.comcast.net) left irc: Read error: Connection reset by peer | 23:04 | |
| Alex_Gaynor | gutworth: hmmm, having fixed that (and a following obscure error), it's now raising in the same place again (although I changed the exception to IndexError, for no reason): http://paste.pocoo.org/show/396442/ | 23:10 |
| Alex_Gaynor | (as usual, don't want to distract you from your bug fixing) | 23:12 |
| kisielk (~kamil@zymeworks.com) left irc: Remote host closed the connection | 23:17 | |
| gutworth | where's the "same place"? | 23:19 |
| Alex_Gaynor | gutworth: it's coming from the unkown opcode branch | 23:19 |
| gutworth | wow, that's weird | 23:23 |
| Alex_Gaynor | gutworth: indeed, you making progress on your test/fix? | 23:24 |
| gutworth | yes, I fixed it with a hack | 23:25 |
| gutworth | and got the example to work | 23:25 |
| Alex_Gaynor | heh, paste it? | 23:25 |
| gutworth | I might have to consult with armin for a proper fix | 23:25 |
| Alex_Gaynor | Armin: keeper of the obscure knowledge | 23:26 |
| gutworth | s/keeper/creator | 23:26 |
| Alex_Gaynor | :D | 23:26 |
| Alex_Gaynor | can you paste the patch though, I'm curious where the issue was | 23:26 |
| gutworth | http://paste.pocoo.org/show/396443/ | 23:26 |
| Alex_Gaynor | ah thanks | 23:26 |
| Alex_Gaynor | hahaha | 23:27 |
| Alex_Gaynor | hack indeed | 23:27 |
| Alex_Gaynor | gutworth: if you want to go this approach the fix is simply to put the @unroll_safe on BUILD_SET and be done with it | 23:28 |
| gutworth | yes, that will be the solution | 23:28 |
| gutworth | the fix is to have something explode in translation if something like this happens again, though | 23:28 |
| gutworth | armin might have a better idea, though | 23:29 |
| Alex_Gaynor | it sounds like it's not fixable, but should error out | 23:29 |
| Alex_Gaynor | rather than break at runtime | 23:29 |
| gutworth | naturally | 23:29 |
| Alex_Gaynor | gutworth: it sounds like the error is just you can't have dont_look_inside function that is access_directly | 23:31 |
| gutworth | I have to see if anything else has this problem :) | 23:31 |
| Alex_Gaynor | I suppose we'll find out if we write a real fix (aka Error) :) | 23:31 |
| Alex_Gaynor | I guess the issue is the annotator doesn't see BUILD_SET as don't_look_inside, but it is because it's got a loop | 23:32 |
| gutworth | this is going to need a long comment... | 23:33 |
| Alex_Gaynor | haha, probably | 23:33 |
| Alex_Gaynor | it'll hardly be the first | 23:34 |
| Alex_Gaynor | hell I've got a 4-5 line comment in Django explaining why you can't use functools.partial for somethign | 23:34 |
| Alex_Gaynor | there may in fact be a law of triviality or something for code comments | 23:35 |
| ronny (~ronny@pida/ronny) left irc: Ping timeout: 250 seconds | 23:37 | |
| Alex_Gaynor | gutworth: I think the problem is that you want to have some sort of check for loops there, but you can't because I don't think you have a graph that you can send to the find_backedges func yet | 23:42 |
| ronny (~ronny@pida/ronny) joined #pypy. | 23:42 | |
| gutworth | ah, and indeed, that's others | 23:46 |
| Alex_Gaynor | "that's others"? | 23:47 |
| gutworth | mm, I meant there's | 23:48 |
| Alex_Gaynor | what other functions? | 23:48 |
| gutworth | fast2locals | 23:50 |
| gutworth | hopefully no one is jitting that... | 23:50 |
| Alex_Gaynor | hehe | 23:51 |
| Alex_Gaynor | is it even possible? the only way to get to that is exec isn't it? | 23:51 |
| Alex_Gaynor | gutworth: are there any others? | 23:51 |
| gutworth | locals2fast :) | 23:52 |
| __name__ (~name@sburn/devel/name) left irc: Remote host closed the connection | 23:52 | |
| Alex_Gaynor | aaand, any others? :D | 23:52 |
| gutworth | we'll see if translation finishes :) | 23:53 |
| gutworth | (while I eat...) | 23:53 |
| Alex_Gaynor | gutworth: I suppose you could raise an error later in the process, even if you can't now? | 23:54 |
| Alex_Gaynor | enjoy dinner | 23:54 |
| --- Sat May 28 2011 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!