#pypy IRC log for Friday, 2011-05-27

gutworthat least they're funny00:39
gutworththough usually one explains what the hack is00:40
gutworthand how many millions of lines would have to be refactored to avoid it :)00:40
Alex_Gaynorgutworth: there's a reason I haven't checked it in :)00:41
Alex_Gaynorgutworth: I assume armin will know some way around it00:41
Alex_Gaynorgutworth: 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 hard00:42
Alex_Gaynor(and I agree with him after he explained why)00:42
gutworthand if armin says it's hard...00:43
Alex_Gaynorthe issue isn't doing optimizations in the frontend itself, the issue is you don't know where the trace starts until you're done tracing00:44
gutworthah, yes00:45
Alex_Gaynorgutworth: 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 seconds00:47
etrepum (~bob@accessnat4.mochimedia.net) left irc: Ping timeout: 240 seconds01:03
etrepum (~bob@accessnat4.mochimedia.net) joined #pypy.01:04
etrepum (~bob@accessnat4.mochimedia.net) left irc: Client Quit01:07
davisagli (~davisagli@davisagli.com) left irc: Excess Flood01:08
davisagli (~davisagli@davisagli.com) joined #pypy.01:08
ousado (~ousado@188-192-13-103-dynip.superkabel.de) left irc: Remote host closed the connection01:22
davisagli (~davisagli@davisagli.com) left irc: Excess Flood01: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 seconds01:34
kenaan12berdario extradoc 11fb84f809eccb 15/sprintinfo/genova-pegli-2011/people.txt: Added myself01:39
davisagli (~davisagli@davisagli.com) left irc: Excess Flood01:43
davisagli (~davisagli@davisagli.com) joined #pypy.01:45
davisagli (~davisagli@davisagli.com) left irc: Excess Flood02:08
davisagli (~davisagli@davisagli.com) joined #pypy.02:08
davisagli (~davisagli@davisagli.com) left irc: Excess Flood02:32
davisagli (~davisagli@davisagli.com) joined #pypy.02:33
Trundle (~andy@python/site-packages/trundle) left irc: Remote host closed the connection02:40
Sentynel (~sentynel@unaffiliated/sentynel) left irc: Quit: Lightly Seared on the Reality Grill02:42
pingveno (~pingveno@c-98-246-133-8.hsd1.or.comcast.net) left irc: Read error: Operation timed out03: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 peer03: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_Gaynorwhat is wrong with fannkuch, it keeps getting slower with no changes03:42
gutworthAlex_Gaynor: want to fix the unclosed file in django.views.static?03:51
Alex_Gaynorgutworth: happilly03:52
Alex_Gaynorwhat function?03:52
Alex_Gaynoroh, I see it03:53
davisagli (~davisagli@davisagli.com) left irc: Excess Flood03: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_Gaynorgutworth: fix pushed03:56
gutworth (~benjamin@64-131-13-109.usfamily.net) left irc: Ping timeout: 246 seconds03: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 seconds04:25
Alex_Gaynorfijal: django no longer has the import in escape(); enjoy04: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 peer04: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 connection04: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 Quit05: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
fijalAlex_Gaynor: meh06: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 seconds06:41
nekto0nhi there! has anyone tried building pypy on Fedora? got in trouble with static libffi - liffi.rpm doesn't have libffi.a file06:41
fijallibffi-dev?06:42
fijalnew fedora has pypy package even06:42
iori (~iori@gateway.plus21.net) joined #pypy.06:44
nekto0nfijal: libffi-dev has only headers, libffi.rpm spec file has --disable-static option to ./configure script06:48
amaury_ (~amaury_@33-56.3-85.cust.bluewin.ch) left irc: Read error: Operation timed out06:50
mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) left irc: Ping timeout: 246 seconds06:53
whitelynx (~whitelynx@75.111.197.204) left irc: Quit: Leaving06:53
kost-bebix (~kost@195.177.74.243) left irc: Ping timeout: 260 seconds06:59
Nick change: guibou -> guibouGuestBook07:01
nekto0nis 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 seconds07: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 seconds07:19
kost-bebix (~kost@195.95.210.249) left irc: Ping timeout: 240 seconds07:20
fijalhi07:21
fijalhelp07:21
antocunihi07:21
fijalantocuni: feel like helping with RPython?07:22
antocunimaybe :-)07:22
antocuniwhat's the problem?07:22
fijaljit-applevel-hook07:23
dgl (~dgl@109.86.165.231) joined #pypy.07:23
fijalhttp://paste.pocoo.org/show/396039/07:23
fijalthe problem is once I do pair(s_oldarg, s_newarg).union() it's fine07:24
antocuniyou mean that after the call to union() then the contains() return True?07:25
fijalyes07:25
fijalI can't quite see what's up07:25
fijalit's really better if you start translation and help me in 30min probably :)07:26
antocuniyes, probably07:26
antocunior, do you maybe have a pdb++ prompt on tannit?07:26
fijalno, on my machine07:26
antocuniok, I start a new one then07:27
antocuniany specific option I should pass to translate.py?07:27
fijalnote that once you run union it changes s_oldarg07:27
fijalirreversibly07:27
fijal-Ojit on jit-applevel-hook07:27
antocuniand the annotation problem is during the first phase or during the annotation of the jit?07:28
fijalannotation of the jit07:28
antocunipff07:28
fijal(it's late-binding thing)07:28
fijalyes :(07:28
fijalpff07:28
Action: antocuni started a translation on tannit07:30
raymondhwhat is pff?07:33
fijalraymondh: a sound of disgust07:33
raymondhonomatopoeia then, not an acronym :-)07:34
antocuniannoyance, rather07:34
fijalit can be pfffffff07:34
fijalas well07:34
raymondhlooks a bit like hex.07:34
antocunip(f*10)07:34
kenaan12cfbolz default 11bdcc660412a1 15/pypy/: kill more remnants of resume points07:34
kenaan12cfbolz 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
raymondhwhen super() is called in a loop, does pypy recognize the computed next-in-mro class and its looked-up attribute are contant?07:36
fijalraymondh: even if it does not it should07:36
fijal(since types are known statically)07:36
raymondhI thought as much but wasn't sure.07:37
fijalI think Alex is right that right now it's not ideal07:37
fijalbut it should be fixed07:37
fijalit's just append-to-a-list-of-stuff-to-be-fixed07:37
fijalpython is a large language :/07:37
raymondhit used to be small07:38
fijalyeah07:38
fijalwhen I was 12...07:38
raymondhthe blog post on super() was a hit07:39
fijalyeah, grats :)07:39
fijalsorry for not being a better reviewer07:39
kost-bebix (~kost@195.177.74.243) left irc: Ping timeout: 246 seconds07:39
fijalthings gone hectic on this side07:39
raymondh12,000+ page views07:39
raymondhin less than a full day.07:39
fijalthat's better than any pypy blog post I think :)07:40
antocuniraymondh: where is the blog post?07:40
raymondhhttp://rhettinger.wordpress.com/2011/05/26/super-considered-super/07:40
antocunithanks07:40
raymondhYou can comment and/or vote on it a hackernews.  It is still on the front page.07:41
raymondhhttp://www.google.com/url?sa=D&q=http://news.ycombinator.com/item%3Fid%3D258826207:42
raymondhrather: http://news.ycombinator.com/item?id=258826207:42
Nick change: [mat^2] -> mat^207: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
fijalantocuni: any look07:55
fijalluck07:55
antocuniah, got it07:55
antocuni(the error I mean, not the solution :-))07:55
lacnekto0n:  let dmalcolm at redhat.com know about any problems you have with fedora builds07:56
lacraymondh: wow with the page views07:56
bivab (~david@fwstups.cs.uni-duesseldorf.de) joined #pypy.07:56
lacnekto0n: for Oracle, you want to talk with amaury_ who isn't around right now07:57
lacfijal: antocuni: any clue why fankuch keeps getting slower and slower?07:57
G2P (~G2P@fw-asn1.ornis.com) joined #pypy.08:00
antocunifijal: I lost my pdb prompt due to a pdb+ crash :-/08:01
antocunilac: fijal investigated and discovered that basically we had the same problem also before08:05
antocunionly, now it seems to show up more frequently08:05
lacah.  grumble, grumble, grumble08:05
nekto0nlac: thank you!08:11
lacnekto0n: you are most welcome08: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: Leaving08:18
kkris (~kris@80-123-39-45.adsl.highway.telekom.at) joined #pypy.08:27
fijalantocuni: :-/08:31
kenaan12antocuni default 112f018cf95032 15/pypy/translator/cli/: implement debug_flush and debug_offset for the CLI backend; fixes test_debug_print_start_stop08:36
antocunifijal: I don't get it08:36
fijalantocuni: welcome to the club?08:36
antocuniyou said that if you do pair(s_old, s_new).union(), then contains() return True08:36
fijalyeah08:37
antocunibut if you look at the implementation of contains, it does exactly this!08:37
fijalyeah :)08:37
antocuniwould be nice to use the "debug" command in pdb, but it crashes08:38
Action: antocuni tries to dynamically transform (Pdb+ on Pdb++) into (Pdb++)08:39
fijalnote that union() modifies the original one08:40
fijals_newarg I think08:40
antocuniwow, "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 host08:44
verte (~verte@python/site-packages/verte) joined #pypy.08:44
antocunifijal: ah ok, from within "contains" it fails because TLS.no_side_effects_in_union is 108:44
antocuniwhich makes sense, because you cannot change the annotation of the parameter so late08:45
mwhudson_ (~mwh@121-73-77-183.cable.telstraclear.net) left irc: Ping timeout: 258 seconds08:45
antocunifijal: did you try to make the listdef of s_newarg exactly the same as s_oldarg?08:47
antocuniI mean, making sure that it contains both the 'm' and the '!R'08:47
fijalso I have to modify the list and call make_sure_not_resize on it?08:50
fijalthat's silly08:50
antocunifijal: it's not enough :-/08:51
antocunihttp://paste.pocoo.org/show/396064/08:51
fijalanyway it is silly08:53
pedronisfijal, antocuni: what are you trying to do?08:54
antocunipedronis: 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 seconds08:57
pedronisantocuni, and it's annotated to late and wants to change prexisting annotations?08:58
pedroniss/to/too/08:58
antocuniyes, seems so08:58
pedronisalways fun that08:58
fijalno08:59
fijalit's more complex08:59
fijalthe annotation later on tries to change "current" annotation08:59
fijalbut since we're not changing any of them08:59
pedronisfijal, the annotation on_compile or of something else?09:00
fijalyes09:00
fijalI think tuple or something09:00
fijalnewtuple09:00
arigato (~arigo@fwstups.cs.uni-duesseldorf.de) joined #pypy.09:01
antocunibtw, the list of operations does not seem to make any sense: http://paste.pocoo.org/show/396069/09:01
antocuniv2 = simple_call(v0, v1)09:01
antocuniv0 is "getattr(space_0, ('newtuple'))"09:02
antocuniand v1 is "newlist(v4, v12, v14)"09:02
antocuniah no, it does make sense09:02
antocunisorry for confusion09:02
pedronisfijal, do you know about _annenforceargs_ ?09:02
Action: fijal does09:03
pedronismaybe you need that or something like that09:03
fijalweeeel09:04
fijalI have some opinions09:04
nekto0nhow can I "make install" pypy-c built from sources? any script or something?09:06
antocuninekto0n: no, but you can just move the compiled pypy-c to pypy/translator/goal09:06
antocuniif you invoke it from there, it just works09:06
antocuniif 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
nekto0nantocuni: ok, I'll try right now09:08
fijalpedronis: it's more complex09:10
fijalbecause it makes sense to modify the annotation that we just created09:10
nekto0nantocuni: package.py works, thanks09:15
antocuniyou're welcome09:15
pedronisfijal, if you are exploding in the contains check something is wrong, you need some nudging somewhere else, it's a bit too late there09:18
kenaan12antocuni invalidate-virtualrefs 11f4a05ed5eeb9 15/pypy/jit/backend/x86/test/test_zrpy_gc.py: fix test_zrpy_gc tests09:19
nekto0nhow can I make oracle module translated with the rest of pypy (I guest I should provide config option to translate.py)?09:22
kenaan12arigo 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
kenaan12arigo default 11e4f57b789ca5 15/pypy/: merge heads09:24
kenaan12arigo closed-branches 11ab7d80eb6cb8 15/: Merge closed head 678364e9998b on branch mapdict-interp09:25
kenaan12arigo closed-branches 11bc30a2c82b85 15/: re-close this branch09:25
fijalnekto0n: --withmod-oracle?09:26
fijalnekto0n: --help | grep oracle09:26
nekto0nfijal: oh... there's help page... sorry to bother and thanks!09:27
nekto0nhelp doesn't work without --opt=* option :)09:28
kenaan12cfbolz dict-strategies 11669b808e8825 15/pypy/objspace/std/dictmultiobject.py: rpython fix09:29
kenaan12cfbolz dict-strategies 11b77aacded28e 15/pypy/objspace/std/: rpython fixes09:29
kenaan12cfbolz dict-strategies 114a6f53750fdd 15/pypy/objspace/std/: test and fix09:29
kenaan12cfbolz 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.py09:29
arigatonekto0n: oups :-)  thanks09:30
nekto0n--withmod-oracle fails: http://pastebin.com/0EZwunas09:31
fijalnekto0n: translate.py -Ojit targetpypystandalone --withmod-oracle09:32
fijalI think09:32
nekto0noh09:33
kenaan12arigo default 1146ab4f9f3876 15/pypy/translator/goal/targetpypystandalone.py: make --help work even without --opt=.  Thanks nekto0n.09:33
nekto0nfijal: thanks, i wonder how is it going to find my oracle headers and libs... 09:34
Vorpal (~AnMaster@unaffiliated/anmaster) joined #pypy.09:36
nekto0nlooking through sources tells me that ORACLE_HOME should be enough :)09:43
voidspace (~voidspace@python/psf/voidspace) left irc: Read error: Connection reset by peer09:47
voidspace (~voidspace@python/psf/voidspace) joined #pypy.09:49
antocuniarigato: so, I ran tests on the vref branch: http://buildbot.pypy.org/summary?branch=invalidate-virtualrefs09:56
antocuni(hi)09:56
antocuniwe have a segfault in test_cpickle09:56
witulski (~stupsi@fwstups.cs.uni-duesseldorf.de) joined #pypy.09:57
antocuniand also, we have problems with transparent proxies, because in that case _application_traceback is not a PyTraceback, and it does not have a frame09:57
witulski (stupsi@fwstups.cs.uni-duesseldorf.de) left #pypy.09:57
Action: arigato starts a translation on invalidate-virtualrefs and goes to lunch10:07
fijal (~fijal@41.134.41.226) left irc: Ping timeout: 264 seconds10:15
fijal (~fijal@41.134.41.226) joined #pypy.10:27
voidspace (~voidspace@python/psf/voidspace) left irc: Quit: Uhm... gotta go10:28
iori (~iori@gateway.plus21.net) left irc: Remote host closed the connection10:28
voidspace (~voidspace@python/psf/voidspace) joined #pypy.10:28
kost-bebix (~kost@195.95.210.249) left irc: Ping timeout: 264 seconds10: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 connection10:49
iori (~iori@gateway.plus21.net) joined #pypy.10:49
kenaan12stepahn lang-js 1141173b2794c7 15/js/: replaces implementation of Stack()10:59
kenaan12stepahn lang-js 112b700db2bfa5 15/js/: added jit and annotations10:59
kenaan12stepahn lang-js 11bceed779ab95 15/js/jscode.py: added repr for Stack10:59
kenaan12stepahn lang-js 115ccdfbf67821 15/js/operations.py: added some reprs for operations10:59
kenaan12stepahn lang-js 117becdec85414 15/js/: removed STORE_<OPERATION> bytecodes and unified assignment handling10:59
hakanardo__ (~ardo@putten.maths.lth.se) left irc: Quit: Leaving11:13
kost-bebix (~kost@195.177.74.243) left irc: Read error: Operation timed out11:14
nekto0nfailed to translate todays tip with oracle module: http://pastebin.com/ML5hbjds11:15
kenaan12bivab arm-backed-float 114c1023f3e79e 15/pypy/jit/backend/arm/assembler.py: (arigo, bivab) store all vfp registers arround the malloc slowpath call11:16
kenaan12bivab arm-backed-float 1114dafdf29372 15/pypy/jit/backend/arm/regalloc.py: (arigo, bivab) correctly calculate the offset of the variables spilled on the stack11:16
kenaan12arigo default 11aea2449cf67c 15/pypy/module/oracle/interp_variable.py: Untested: fix to make sure we pass a signed value to charpsize2str().11:21
arigatonekto0n: fixed, maybe.  can you try again?11:21
Action: nekto0n started hg pull and new translation11:22
arigatoantocuni: I'll look at the segfault if you don't want to, but a bit later11:22
antocuniarigato: ok, thanks. I'm looking at the transparent proxy thing now11:24
arigatook, should be easy11:24
arigatobasically you have nothing to do if it's not a PyTraceback11:25
antocuniyes, that's what I thought11:27
antocunibut I wanted to check better11:27
arigato:-)11:28
arigato(I'm not completely sure either :-)11:28
nekto0narigato: translation in progress... don't quite remember what part of mandelbrot was right before that traceback, but seems to work fine :)11:30
arigatogood :-)11:30
kost-bebix (~kost@195.95.210.249) joined #pypy.11:31
nekto0narigato: another one bites the dust: http://pastebin.com/pDUEtsxu11:36
ousado (~ousado@188-192-13-103-dynip.superkabel.de) joined #pypy.11:37
arigatonekto0n:  http://paste.pocoo.org/show/396134/11:44
arigatoI don't really want to check in possibly bogus code, and we may need yet more fixes left and right11:45
arigatoso please, start again and tell me ...11:45
iori (~iori@gateway.plus21.net) left irc: Read error: Operation timed out11:47
nekto0narigato: give me a minute...11:49
arigatosure11: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 seconds11:52
kenaan12stepahn lang-js 11fecdd3a25f53 15/js/: moved opcodes from jscode to opcodes11: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 seconds12:00
kenaan12antocuni 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
kenaan12antocuni invalidate-virtualrefs 1112bef2e010d2 15/pypy/objspace/trace.py: fix the trace objspace12:02
WildChild (~wildchild@modemcable102.12-179-173.mc.videotron.ca) left irc: Read error: Connection reset by peer12:04
nekto0narigato: another one http://pastebin.com/F3GWQkxR12:05
arigatonekto0n: can you run the tests inside module/oracle/test ?12:06
arigatopython pypy/test_all.py pypy/module/oracle12:06
nekto0narigato: sure12:07
arigatoantocuni: I'm getting an RPython-level ValueError in test_cpickle12:08
arigatoI don't manage to find out where it comes from12:08
antocuniuhm, that's a bit unexpected12:08
antocuniarigato: 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
arigatoyes, but that should not occur because virtual_ref_finish() removes the stack address from vref.virtual_token12:10
WildChild (~wildchild@modemcable102.12-179-173.mc.videotron.ca) joined #pypy.12:10
antocuniright12:11
kenaan12DasIch buildbot 110167bdeb76a0 15/bot2/pypybuildbot/: Remove trailing whitespace12:12
antocuniuhm, the test passes for me with the executable I built yesterday12:12
arigato:-(12:13
antocuniah no12:13
antocuniif passes only if I use "--filter recursive_instance"12:13
antocuniprobably because in that case the JIT does not even run12:13
antocuniarigato: you get the ValueError with a lldebug pypy?12:14
arigatoyes12:15
antocuniis it on tannit?12:15
arigatoyes12:15
arigato/home/arigo/pypysrc/32compiled/c-r44531-jit-invvref12:17
arigato(warning, currently built with "make debug_exc")12:17
antocunipff, permission defined12:17
antocuniah no12:17
antocuniit's a directory :-)12:17
arigato.-)12:17
nekto0narigato: how can I skip some tests? it hangs on pypy/module/oracle/test/test_connect.py12:18
nekto0noh... here you go... timeouts seem to be not so big... FF..F.FF12:19
fijal-k -name12:19
nekto0nor should I provide URL to oracle instance? don't know how...12:20
antocuniarigato: for me, it crashes with an rpython AssertionError12:22
antocuni(I think)12:22
antocuniand it seems to be related to a StackOverflow12:23
fijalantocuni: did you come up to any conclusion?12:25
antocunifijal: about what?12:25
fijaljit-applevel-hook12:25
antocunisorry, no idea :-(12:25
arigatoantocuni: uh, now in debug_exc, for me too12:25
kenaan12arigo 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
kenaan12arigo invalidate-virtualrefs 1153e7325b1075 15/pypy/jit/metainterp/optimizeopt/virtualize.py: Fix the comment.12:25
kenaan12arigo invalidate-virtualrefs 11d5fe549a13ea 15/pypy/: merge heads12:25
fijalantocuni: I have an idea, but I don't know how to attack it12:26
arigatoantocuni: hum, I guess it's really a case of StackOverflow that is being tested12:26
fijalso the idea is that you have a more general list and a new list, which is less general12:26
fijaland now you can't generalize the less general one, because it's generally too late12:26
fijalbut the less general one is coming from the new operations12:26
antocuniarigato: ah indeed, it's possible12:27
apoirier_away (~apoirier@sakura.nagare.org) joined #pypy.12:27
Nick change: apoirier_away -> apoirier12:27
arigatoanyway, it shows an assert failing in cpu.force()12:28
arigatoindeed, the force_index is zero12:28
etrepum (~bob@75-101-96-144.dsl.static.sonic.net) joined #pypy.12:29
antocuniarigato: where do you see that it's in cpu.force()?12:29
arigatono, confused12:29
arigatoantocuni: well, in gdb12:29
arigatoall "make *debug*" are playing nicely with gdb when raising assertionerrors12:29
antocunigood to know12:30
gutworth (~benjamin@64-131-13-109.usfamily.net) joined #pypy.12:30
arigatoah, it seems that you are right12:33
arigatoit's in cpu.force() trying to read data out of a stack frame that is gone12:33
Moku (~John@osbk-4db1642b.pool.mediaWays.net) left irc: Ping timeout: 246 seconds12:33
Moku (~John@osbk-4db174a9.pool.mediaWays.net) joined #pypy.12:33
antocuni:-/12:34
antocuniwhy it doesn't raise InvalidVirtualRef then?12:35
fijalarigato: do I make any sense?12:35
arigatofijal: sorry, I didn't read you actually :-/12:35
arigatoantocuni: it may be related to the StackOverflow that we are getting:12:35
arigatoit's being raised in the middle of pyjitpl.py12:36
arigatoah no12:36
arigatoin the middle of the blackhole interp actually12:36
fijalarigato: eh that was mis-tab12:36
fijalmeant to say antocuni: 12:36
kenaan12cfbolz dict-strategies 11e7904f828000 15/pypy/objspace/std/: name consistently12:36
antocuniarigato: blackholing because of which guard?12:37
arigatothis means that the StackOverflow interrupts the blackholing of the current frame12:37
arigatoantocuni: I don't know12:37
arigatoit means in turn that virtual_ref_finish() is never called12:37
arigatohum no, it should have no effect12:38
antocuniarigato: yes, the "normal" virtual_ref_finish is a noop12:38
arigatoah oh12:38
arigatothe StackOverflow interrupts the blackhole interp early:12:38
antocunithe actual invalidation is done by optimizeopt12:38
arigatoit's still in the process of rebuilding data12:39
arigatoso it means it didn't finish to rebuild data12:39
antocunifijal: no, it's the opposite. In the old code you have a less general list, so you cannot pass a more general one12:39
fijalantocuni: can you tell me which part creates a more general list?12:39
fijalone is modified and make_sure_not_resides12:40
fijalthe other is with no flags12:40
arigatoantocuni: my guess is that vrefinfo.continue_tracing() has not been called12:40
fijalbut the thing is they're not the same12:40
arigatoantocuni: yes, exactly12:40
arigatothe crash's traceback contains a line just before the call to vrefinfo.continue_tracing()12:41
antocunifijal: not sure to understand what you mean; the "new" list is the argument you pass to newtuple12:42
arigatowhich means we are left with a vref whose .virtual_token field is not reset to TOKEN_NONE12:42
arigatoand when we access it later, crash12:42
fijalantocuni: yes, it's non-modifiable12:42
fijaland that's the problem12:42
fijalif I modify the list passed to newtuple, it would be fine12:42
arigatoantocuni: fwiw, it's a bug that also exists in trunk, as far as I can tell12:42
Action: antocuni cannot handle two conversations at the same time :-(12:42
arigatoantocuni: sorry :-)  feel free to ignore me and re-read me later12:43
antocuniarigato: no, actually this conversation I managed to follow, more or less :-)12:43
antocunimakes sense12:43
fijalok12:43
fijalregister_callback() then :)12:43
antocunifijal: thanks12:43
arigatothe same problem exists in theory with MemoryErrors12:45
antocuniyes12:45
antocunibut I don't see an easy way to solve it12:46
arigatolet's think about StackOverflow only12:47
mcdonc (~mcdonc@ip72-209-213-54.dc.dc.cox.net) left irc: Ping timeout: 252 seconds12:48
arigatoit'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
arigatowell def f(): for i in range(2): f()12:48
arigatobecause it's an all-assembler recursion, but when it raises StackOverflow, it fails a guard, and must run the blackhole interp12:49
arigatobut has almost no stack at this point12:49
antocuninice theory, but it correctly raises RuntimeError in that case12:50
arigatoyes, I guess so12:50
arigatoI suppose it's harder to show the problem12:50
antocuniarigato: well, we also need to force the vref after the stackoverflow12:50
antocunito show the problem12:50
arigatomaybe you need to inspect sys.last_traceback, or something12:50
arigatoyes, I'm very unsure that we'll manage to reproduce the problem, but it's here :-)12:51
fijaleh....12:51
arigatoit may also require a frame with more complicated stuff in it12:52
arigatoin the example we're debugging, it crashes with StackOverflow because the frame contains a virtual that contains a virtual that needs to be forced12:52
arigatothis is forced with recursive calls, so it eventually reaches the limit again12:53
arigatoI'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 fine12:55
antocuniright12:55
nekto0narigato: eventually I got the tests running, results will be soon12:55
DasIch_i'd like to change the buildbot configuration so that there is url always pointing to the latest nightly13: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: etrepum13:00
arigatoDasIch_: isn't the url  http://buildbot.pypy.org/nightly/trunk/  enough?13:01
antocuniarigato: 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 page13:03
arigatoantocuni: I wasn't too serious in proposing that we write such an example13: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 inconvenient13:04
arigatoantocuni: 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 bit13:04
nekto0narigato: here you go: http://pastebin.com/NKMDPygS danger - it's huge13:05
antocuniright, but I took it as a personal challenge :-)13:05
arigatoDasIch_: 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
fijalarigato: I still think "last nightly has this URL"13:07
fijalmakes sense13:07
fijalthen we can do things like not update the URL if tests fail for example13:07
antocuniwhich they always do13:07
DasIch_arigato: if traffic spikes the change can always be reversed13:08
arigatowell, feel free13:08
arigatoI don't think there is a serious risk for the university anyway13:08
Action: fijal gives up on rpython13:08
fijalarigato: universities tend to have huuuuge pipelines13:09
fijalfor prices on something like 1/100 of commercial one13:09
fijalI worked on a backbone department at one :)13:09
fijalI don't think we can even compete with dangers like "student's dorm"13:09
arigatonekto0n: 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
arigatoprobably some changes we did over time to the rest of the interpreter13:10
arigatoand nobody noticed because the tests are not run by default13:10
nekto0narigato: i understand that, a module that is never built will be broken13:11
nekto0nshould we create a ticket to fix that? cause your random fixes aren't enough :)13:11
arigatoit depends: we should decide if we care or not.  if we do, then it's probably enough to install some packages on tannit13:12
arigatoand then they will be tested nightly13:12
arigatoand we'll see and have to fix the failures13:12
Trundle (~andy@python/site-packages/trundle) joined #pypy.13:12
antocuniarigato: does oracle offer a free version?13:12
arigatowell, if it doesn't, then the answer is obviously "no", I fear13:13
nekto0nclient is free to download, there should be a kind of express edition13:14
nekto0nhttp://www.oracle.com/technetwork/database/express-edition/downloads/102xelinsoft-102048.html - there it is!13:15
Nick change: DasIch_ -> DasIch13:15
arigatonekto0n: it only needs a client installation?13:16
nekto0narigato: oracle module needs client + sdk to compile and working database for tests13:17
arigatoso I should be fine with installing Oracle Database 10g Express Edition (Universal)13:18
arigato(argh, it's 262MB)13:18
fijalof course :)13:18
fijalit's enterprise ready13:18
fijaldo you still have to agree you're not from somalia?13:19
arigatopypy is laughably tiny in comparison13:19
Sho_ (~EHS1@kde/hein) joined #pypy.13:19
fijalwe can make pypy enterprise edition13:20
fijalthat will contain movies pictures, music etc.13:20
fijalit'll be at least 2G13:20
arigato:-)13:20
Action: fijal is in mood of unproductive pointless comments13:21
fijalsorry, RPython failure really got me :-/13:21
nekto0nsorry, got to go13:22
nekto0n (c397cf21@gateway/web/freenode/ip.195.151.207.33) left #pypy.13:22
fijalarigato: if you feel at some point like not doing anything else, feel free to try translation on jit-applevel-hook13:23
arigatoI'll wait for nekto0n to continue; I wanted to ask him if he has a login/password on the oracle web site13:23
gutworthtry bugmetnot.com13:23
arigatogood, sys.setrecursionlimit() now has at least an approximate effect on pypy13:31
kenaan12arigo 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
kenaan12arigo invalidate-virtualrefs 11ce4527cbcb3d 15/pypy/: merge heads13:32
CIA-1903arigo 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 that13:34
CIA-19can occur before a RuntimeError is raised. On ... * 14https://bugs.pypy.org/issue71513:34
fijal (~fijal@41.134.41.226) left irc: Quit: Leaving13:35
aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) joined #pypy.13:37
arigatoantocuni: I don't have a good solution :-(  but I can think of complete hacks13:38
arigatomaybe we should just tell the automatic-stack-check-inserter that it shouldn't put any in the relevant code in resume.py13:38
aat (~aat@cpe-72-225-174-173.nyc.res.rr.com) left irc: Client Quit13:38
antocuniyes, it looks like a hack13:39
antocunibut I see that it should just work13:39
arigatowe can also disable and re-enable stack checking dynamically, but that's just as much a hack13:39
antocuniyes, it doesn't change much13:40
WildChild (~wildchild@modemcable102.12-179-173.mc.videotron.ca) left irc: Ping timeout: 260 seconds13:45
michaelh (c1beac85@gateway/web/freenode/ip.193.190.172.133) left irc: Quit: Page closed13:45
Sho_ (~EHS1@kde/hein) left irc: Quit: Stop leaking memory like it's going out of fashion.13:47
Action: antocuni afk13: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 connection14: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 host14: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
gutworthcan one get the buildbot to build a hg branch or clone?14:14
arigatoyes, there is a "branch name" field14:15
arigatobut not a different clone14:15
kenaan12arigo invalidate-virtualrefs 11e2a55b8f245b 15/pypy/translator/transform.py: Kill old unused function.14:19
kenaan12arigo invalidate-virtualrefs 11f2e0d3fa5162 15/: hg merge default14:20
gutworthhow can find how the buildbot invokes py.test?14:21
exarkunlook at one of the old build logs14:21
gutworthoh, I see, it's testrunner14: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 terminal14:28
harrison (~sr@adsl-69-209-211-40.dsl.chcgil.ameritech.net) joined #pypy.14:30
DasIchhow do i test whether this change to the buildbot works as intended? http://paste.pocoo.org/show/396230/14:40
kenaan12arigo invalidate-virtualrefs 11973208656591 15/pypy/: A quick hack as a workaround for the current (hard) issue: introduce "stack-critical code", enabled ...14:43
arigatoDasIch: does it?  I would say that it will run "ln" on the buildslave, which is not what you want14:43
arigatoDasIch: instead, you should hack in PyPyUpload.start, to make a symlink there, I think14:45
arigatohum, no14:46
arigatoI'm unsure when PyPyUpload.start() is called14:46
arigatomaybe there is a method stop() that you can override, which would be called (on the master side) when the upload is finished14:48
arigatomaybe 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
antocuniarigato: ah cool, I was about to code the hack for the stackoverflow problem, but it seems you already did it :-)14:51
arigatoah, sorry :-)14:51
antocuninothing to be sorry, I'd say :-)14:52
antocuniare you running a translation now?14:52
arigatoyes14:52
antocuniok14:52
arigatoI also merged "default" first, because I also played with rstack.py and stack.h there14:52
arigato(to fix the "sys.setrecursionlimit() is ignored" issue)14:52
antocuniso, after that we should be fine with the branch, I think14:52
arigatoif everythink goes fine, then yes14:53
antocuniah, I can maybe try to run jinja2, as it plays with tracebacks AFAIK14:53
Alex_Gaynoryes, it uses transparent proxies on pypy14:54
Alex_Gaynorand ctypes hacks on cpython14:54
Alex_Gaynor:)14:54
Alex_Gaynormitsuhiko I assume the jinja2 tests test that traceback stuff?14:55
antocuniuhm, then the binary I have right now will probably crash, because it's broken with transparent proxies14:55
arigatolib-python's test_array is *again* failing14:56
antocuniuhm, jinja2 tests with my old invalidate-vref binary fail with "out of memory (from JITted code)"14:58
antocunibut they work with pypy1.5 (apart one failure)14:58
Alex_Gaynorarigato: did you see my question about descrs in the optimizers from last night?14:59
arigatono14:59
Alex_Gaynorarigato: basically I want to do http://paste.pocoo.org/show/395927/ , but without the hack :)15:00
antocuniarigato: can you tell me the path to the binary once it finishes to compile, please?15:01
arigatook15:01
mitsuhikoAlex_Gaynor: that ugly patching? yes15:01
arigatoAlex_Gaynor: it doesn't look like a too evil hack15:02
mitsuhikobut jinja2 has a special path for pypy15:02
Alex_Gaynormitsuhiko: right, tproxy right?15:02
mitsuhikoaye15:02
mitsuhikoand it shows a bug/limitation in tproxy :)15:02
Alex_Gaynorarigato: 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
gutworthwhere's the code that prevents pylib's AssertionError from getting annotated?15:03
arigatoAlex_Gaynor: which _sorted_descr?15:03
Alex_Gaynorarigato: "_get_field_descr_list"15:03
arigatoAlex_Gaynor: and, which @inline_if_virtualizable, for that matter15:03
Alex_Gaynorarigato: I'm saying hypothetically if that decorator existed you could just apply it to the resize_ge/resize_le and it would just work15:04
Alex_Gaynorarigato: but that leads us to the whole optimizers in the fronend mess of course15:04
arigatosorry, I'm not following15:05
gutworthmitsuhiko: if tracebacks where made mutable, we could save you about 100 lines of hideous code :)15:05
Alex_Gaynorarigato: well I'm just saying *if* such a thing existed we wouldn't need a special optimization for resize_ge15:05
mitsuhikogutworth: i know :)15:05
mitsuhikoi was actually consider writing a pep for that, but somehow got distracted15:06
arigatoAlex_Gaynor: do you mean @inline_if_virtual?15:06
arigatoit has nothing to do with virtualizables, right?15:06
arigatoI see what you meant now15:07
Alex_Gaynorarigato: bah, yes15:07
gutworthah ha! "self.obj is py.code.AssertionError"15:08
arigatoah, I get your code now15:08
arigatoindeed, it's an evil hack15:09
antocunimitsuhiko: the code in _init_ugly_crap is scary. It's a cool hack, though :-)15:09
Alex_Gaynor:)15:09
arigatoindeed, it relies on sort_descrs() to get them in that order15:10
mitsuhikoantocuni: i was surprised that it did not cause any problems15:10
mitsuhikoit did show up a bug in python's __basicsize__ on some obscure cpu architecture though15:10
Alex_Gaynormitsuhiko: it was a bigendian system right?15:11
mitsuhikoyes15:11
Alex_GaynorDave Malcolm is a beat at debugging?15:11
arigatoif we're grading hacks, "arrayitems._items.extend(" is not bad either15:11
Alex_Gaynorarigato: well, we could make a public API for it though15:12
arigatomaybe "arrayitems._items = arrayitems._items + [" would be better, by not forcing the list to be resizable15:12
arigatoyes15:12
Alex_Gaynorthen it magically becomes less of a hack15:12
arigatoyes :-)15:12
mvt (~mvantelli@87.213.45.85) left irc: Quit: Leaving15:13
arigato"arrayitems.source_op.setarg(0, newsize_box)" is even more hackish in a way :-/15:13
Alex_Gaynorwell, the _really_force emits source_op directly, rather than reconstruct it15:14
arigatoyes, but still15:14
arigatoI think it should reconstruct it then, just for this case15:14
arigatoyou don't want to mutate a random pre-existing operation15:14
Alex_Gaynorok15:14
antocunididn'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_Gaynorolder version of the JIT I think, I don't remember ever having seen them15:15
arigato"list_value.setfield(length_descr, newsize_value)" <- this line is wrong, no?15:15
Alex_Gaynorhow?15:15
arigatoah no, I see15:16
arigatoI suppose it could check somewhere if really newsize > arrayitems.getlength()15:17
arigatoI expect that it can be often <15:18
arigatothen [None]*(negative number) works fine in RPython, but I had to check rlist.py to make sure :-)15:18
Alex_Gaynorreally, when would it be lt?15:18
arigatoin case of over-allocation (unsure how to get it while still being a virtual array)15:19
Alex_Gaynorwon't resize_le be used in those cases?15:19
Alex_Gaynoryou're right it should still handle those cases :)15:20
arigatono15:20
qbproger (~qbproger@105.70.8.67.cfl.res.rr.com) joined #pypy.15:20
arigatoit probably does just fine :-)15:20
qbprogerwhy is the pypy 1.5 win32 binary considered beta?15:20
Alex_Gaynorno, _items will be too long15:20
Alex_Gaynorthat could mess up ARRAYLEN_GC15: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
arigatoAlex_Gaynor: that's fine: len(list) is implemented as returning "list.length", not "len(list.items)"15:21
arigatoin general, len(list.items) >= list.length15:21
etrepum (~bob@12.130.118.4) joined #pypy.15:21
arigato(I mean that's always true)15:21
antocuniqbproger: in general, windows it's a bit less tested than linux, because most of us don't use it15:21
antocunithat's the only reason, AFAIK15:22
Alex_Gaynorarigato: yes, but look at ARRAYLEN_GC on a virtual array, it's the "wrong" answer IMO15:22
arigatoARRAYLEN_GC is generated for len(list.items)15:22
qbprogerah ok, but it mostly works just as well?15:22
antocuniyes, I think so15:22
antocuni(although I never ran it :-))15:22
arigatoAlex_Gaynor: the RPython code len(resizable_list) turns into GETFIELD_GC(resizable_list, 'length')15:23
Alex_Gaynorsure15:23
antocuniqbproger: btw, if I ssh buildslave@tannit and type "32bit" to enter the 32 bit chroot, I get "(qbproger)buildslave@tannit:~$" as the bash prompt15:24
arigatoI don't understand what is wrong with ARRAYLEN_GC on a virtual array15:24
qbprogerantocuni: i'm not sure what that means15:24
Alex_Gaynorarigato: 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 know15:24
arigatoqbproger, antocuni: that's just an accident15:24
Alex_Gaynorbut it could I guess if the length is gotten, the array is forced, and then you try to do a setitem15:25
qbprogeri'm on my laptop now though (windows), and I don't have the username/password with me15:25
antocuniarigato: caused by what?15:25
Last message repeated 1 time(s).15:26
antocunisorry :-)15:26
arigatoantocuni: /etc/debian_chroot15:26
arigatoantocuni: it contains "qbproger" probably because he's the last one that started a 32bit chroot15:26
antocuniah ok15:27
antocunijust curious15:27
qbprogeri 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 that15:27
Action: antocuni just edits /etc/debian_chroot15:28
arigatoAlex_Gaynor: I think it's fine as long as you only hack with _items in case it's really a virtual15:28
bivab (~david@fwstups.cs.uni-duesseldorf.de) left irc: Quit: bivab15:29
qbprogeri'm not sure if you should say the windows release is 'beta' I thought Mac OS X was in the same state as win3215:29
Alex_Gaynorarigato: any suggestions for the  sorted_descr list hack?15:31
arigatoI fear not15:31
arigatoqbproger: it's at least a bit more tested15:32
arigatoqbproger: for Windows, we had for months no buildbot at all15:32
qbprogerah ok15:33
qbprogermaybe you should do a blog post stating what resources are needed... people would probably chip in15:34
arigatoantocuni: /home/arigo/hg/pypy/trunk/32compiled/c-r44551-jit-invvref15:34
antocunithanks15:34
antocuniarigato: uhm, no binary there15:34
arigatoand ../pypy-c-r44551-jit-invvref is the binary15:34
antocuniok :-)15:35
arigatocrash anyway15:36
arigatoargh15:37
arigatoit's not the latest version :-(15:37
arigatoit's ce4527cbcb3d15:37
Action: arigato builds a 97320865659115:37
antocunipff15:38
Action: arigato suspects he did "hg pull" and forgot "hg up"15:38
antocuniwe should maybe issue a warning if we start translate.py and the current revision is not the only head of the current branch15:39
Alex_Gaynordoes that happen often?15:40
arigatoantocuni: in this case, it's not a head at all15:44
antocuniyes, this also falls in the "not the only head" case15:44
arigatoah ok :-)15:44
qbprogerdoes pypy on windows work with virtualenv?15:58
stb (~stb@74.113.152.17) left irc: Remote host closed the connection16:04
antocuniqbproger: I suppose it should, not sure if anybody ever tried16:05
qbprogerantocuni: i got an error message about a missing libpypy.dll16:05
antocunithen it doesn't work :-/16:06
qbprogerantocuni: yea, i asking mostly to see if it was supposed to work16:06
arigatoprobably easy to fix, at least manually: copy libpypy.dll together with pypy.exe16:09
apoirier (apoirier@sakura.nagare.org) left #pypy ("Leaving...").16:10
CIA-1903chortos 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 the16:13
CIA-19tv_usec field of struct timeval still takes only 4 bytes. ... * 14https://bugs.pypy.org/issue73016:13
G2P (~G2P@fw-asn1.ornis.com) left irc: Quit: Leaving.16:14
arigatoantocuni: /home/arigo/hg/pypy/trunk/32compiled/c-r44554-jit-invvref16:14
antocuniarigato: does it pass the cpickle test now?16:16
arigatoyes16:16
antocunicool16:16
arigato:-)16:16
antocunigood, jinja2 tests also work16:16
arigatogood16:17
gutworthtannit has a load higher than 1!?16:17
Action: arigato -> dinner16:17
antocuni("work" as in "fail in the same way as pypy1.5)16:17
arigatotannit is busy with buildslave right now16:17
antocuniyes, I kicked one run16:17
arigatobut "busy" as in "it's fine to run even more stuff"16:17
arigato (~arigo@fwstups.cs.uni-duesseldorf.de) left irc: Quit: See you16:18
Action: gutworth finds a rather embarassing bug16:20
Alex_Gaynorgutworth: 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 seconds16:29
asabil (~asabil@195.159.219.65) left irc: Ping timeout: 246 seconds16:33
CIA-1903agaynor 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-19struct timeval {16:42
CIA-19time_t tv_se ... * 14https://bugs.pypy.org/issue73016:42
harrison (~sr@adsl-69-209-211-40.dsl.chcgil.ameritech.net) left irc: Ping timeout: 255 seconds16:42
Vorpal (~AnMaster@unaffiliated/anmaster) left irc: Ping timeout: 248 seconds16:43
ousado__ (~ousado@188-192-13-103-dynip.superkabel.de) left irc: Read error: Operation timed out16: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_Gaynorhttp://paste.pocoo.org/show/396308/ new version of this patch, removes all the hacks except for the main one :)16:50
antocunibah, invalidate-virtualrefs tests fail in module/thread/test :-(16:52
antocunihttp://buildbot.pypy.org/summary?builder=own-linux-x86-32&branch=invalidate-virtualrefs16:52
antocuniAlex_Gaynor: shouldn't you also write tests in test_optimizeopt?16:53
Alex_Gaynorantocuni: perhaps, but it's a pain to write stuff for a specific descr there16:53
antocunistill16:54
qbprogerwho would work on improving the assembly?16:55
Alex_Gaynoris there some reason that the test_list test isn't appropriate?16:55
antocuniAlex_Gaynor: yes, that if it later fails, I won't have a clue about what the resulting code was supposed to look like16:56
qbprogerI found this: http://thecodecavern.co.uk/ might be able to produce better assembly16:56
antocuniAlex_Gaynor: also, I don't think it's so hard to write a test16:57
Alex_Gaynortest_optimizeopt should really be split up :)16:58
antocunisince 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 fields16:58
antocuniAlex_Gaynor: yes, splitting test_optimizeopt is also on my todo list (although I admit not at the top)16:58
antocunibut feel free to do it, I won't take offense :-)16:59
Alex_Gaynor:D17: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 seconds17: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 seconds17:10
__name__ (~name@sburn/devel/name) joined #pypy.17:13
CIA-1903jamartinh 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-19TypeError ... * 14https://bugs.pypy.org/issue73117:15
CIA-1903agaynor 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 can17:18
CIA-19actually execute. * 14https://bugs.pypy.org/issue73117: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-1903jamartinh 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/issue73117:43
Alex_Gaynoroooh, this bug looks hard17:48
iori (~iori@110-133-45-54.rev.home.ne.jp) joined #pypy.17:53
antocuniAlex_Gaynor: in which context?17:56
Alex_Gaynorantocuni: #73117:58
Alex_Gaynorantocuni: here's what I just found with the debugger: http://paste.pocoo.org/show/396326/17:58
antocuniAlex_Gaynor: no, mine was a reply to "what is the difference between a vstruct and a virtual"?17:58
Alex_Gaynorantocuni: I figured that out I think, it looks like it' sjust a case of what information that resop has17:59
antocuniok17:59
antocuniAlex_Gaynor: does the bug 731 happen also without the jit?18:00
Alex_Gaynorantocuni: excellent question18:00
Alex_Gaynorthat's --jit threshold=-1 right?18:00
Alex_Gaynorholy crap this is slow without the JIT18:00
antocuniyes18:01
Alex_GaynorI fear I'll be eating lucnh before this is finished :/18:01
Alex_Gaynorit hasn't crashed yet, I'll keep you apprised18:01
Alex_Gaynorantocuni: 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
antocuniyes, I'm running it as well18:04
antocuniwould be nice to have a more reproducible/fast test case :-(18:04
Alex_Gaynoryes, this is a lot of code, if nothing else18:04
Alex_Gaynor(if you try to run with PYPYLOG=jit-log-opt:- it starts spewing traces left and right)18:04
antocunihttp://paste.pocoo.org/show/396328/18:05
antocuniAlex_Gaynor: ^^^ this fails at iteration 100018:05
antocuniso yes, it's a jit bug18:05
Alex_Gaynorantocuni: hah, nice18:11
dmalcolm (~david@nat/redhat/x-jmywzdftnhjwgbio) joined #pypy.18:14
Alex_Gaynordmalcolm: you have amazing debugging skills?18:15
Alex_Gaynorerr no ?18:15
Alex_Gaynorantocuni: I haven't a clue what the bug is though18:16
antocuniI did not investigate further18:16
Alex_GaynorBUILD_SET should probably be @jit.unroll_safe18:17
antocuniwell, looking at the trace, there is a call_may_force to BUILD_SET18:17
Alex_Gaynorbut I hope that's not the source of a bug18:17
Alex_Gaynorthat should never effect correctness18:17
antocunimaybe instead of building the set, it does nothing18:17
antocuniso the int remains on the valuestack, and the rest of the interpreter thinks it's the return value18:18
antocuniAlex_Gaynor: sure, we should first understand the source of the error18:18
antocunithen, we can talk about unroll_safe18:18
dmalcolmAlex_Gaynor: eh?18:18
Alex_Gaynordmalcolm: the crasher bug that was filed18:19
dmalcolmrhbz#707707 ?18:19
Alex_Gaynorantocuni: indeed, I'm just saying I think they're connected, even though they shouldn't be18:19
Alex_Gaynordmalcolm: yes18:19
dmalcolmAlex_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 now18:20
dmalcolmSecret Project (TM)18:21
Alex_Gaynordmalcolm: 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 think18:21
CIA-1903antocuni 07roundup * 10#731/Problem handling set operations: (log message trimmed)18:21
CIA-19This smaller test case shows the bug as well. I did not investigate further, though.18:21
CIA-19def foo():18:21
CIA-19for i in range(2000):18:21
CIA-19x = {i} * 14https://bugs.pypy.org/issue73118:21
Alex_Gaynorantocuni: replacing type(x) is set with `i in x` gives a slightly simpler trace18:22
Alex_Gaynorand you can see you end up with: p31 = new_with_vtable(ConstClass(W_IntObject))18:22
Alex_Gaynorsetfield_gc(p31, i19, descr=<SignedFieldDescr pypy.objspace.std.intobject.W_IntObject.inst_intval 8>)18:22
Alex_Gaynorp33 = call_may_force(ConstClass(contains), p31, p31, descr=<GcPtrCallDescr>)18:22
davisagli (~davisagli@davisagli.com) left irc: Excess Flood18:23
davisagli (~davisagli@davisagli.com) joined #pypy.18:24
lucian (~lucian@78-86-217-168.zone2.bethere.co.uk) joined #pypy.18:27
Alex_Gaynorantocuni: I think their must be a bug in the virtualizable code18:28
jokey (~jokey@gentoo/developer/jokey) left irc: Remote host closed the connection18:31
Alex_Gaynorreading jit-log-noopt is hilarious18:35
Alex_Gaynorantocuni: so reading jit-log-noopt the bug occurs before the optimizers ever occur, the bug is in the frontned18:37
Alex_Gaynorantocuni: I suppose it's possible the bug is even in codewriter, I suppose the next step is to try to write a test18:39
antocuniAlex_Gaynor: uh? So you are saying that the set is not constructed at all in the jit-log-noopt?18:42
Alex_Gaynorantocuni: no the set is constructed, but the call to contains looks the same as in -opt, it has p31 for both params18:43
antocuniah, I see it now18:43
antocuniyes, it looks like a bug in the frontend18:44
Alex_Gaynorthis is why I think it's a codewriter/virtualizable bug18:44
antocuniAlex_Gaynor: I think that pypyjit.py might be useful to debug this18:46
Action: antocuni going out very soon18:46
Alex_Gaynorgood idea, not sure how long I can spend on debugging this ATM, but I'll try18:47
__name__ (~name@sburn/devel/name) left irc: Read error: Operation timed out18:48
Alex_Gaynorantocuni: how does one run pypyjit_demo again?18:48
antocuniAlex_Gaynor: py.test -s --pdb pypyjit.py18:48
antocunipypyjit_demo is run automatically by it18:49
Alex_Gaynorantocuni: can you use pytest.py instead of py.test?18:49
antocuniI think so18:49
antocuninote that it might be broken18:49
antocuniit's not tested nighlty :-(18:49
Alex_Gaynorok18:49
Action: antocuni off18:50
antocunibye18:50
Alex_Gaynorbye18:50
__name__ (~name@chello080108038152.1.11.vie.surfer.at) joined #pypy.18:53
__name__ (~name@chello080108038152.1.11.vie.surfer.at) left irc: Changing host18: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 seconds18:55
etrepum (~bob@12.130.118.4) left irc: Quit: etrepum18:55
santagada (~user@200.175.214.154.dynamic.adsl.gvt.net.br) left irc: Remote host closed the connection18:56
CIA-1903chortos 07roundup * 10#730/resource.timeval has a wrong size in 64-bit builds on Mac OS X: 19:02
CIA-19Yes. On Linux, both time_t and suseconds_t are typedef'ed to long, but on19:02
CIA-19Mac OS X time_t is typedef'ed to long but suseconds_t to int. * 14https://bugs.pypy.org/issue73019:02
CIA-1903agaynor 07roundup * 10#730/resource.timeval has a wrong size in 64-bit builds on Mac OS X: 19:04
CIA-19Since ctypes doesn't provide an alias for suseconds_t or time_t for that matter,19:04
CIA-19does someone want to write a patch that does the appropriate log ... * 14https://bugs.pypy.org/issue73019:04
exarkunAlex_Gaynor: what's the right thing to use for that now?19:10
exarkunrffi_platform?19:10
Alex_Gaynorexarkun: it's pure python code, so the right thing is really just special case it I guess19:12
Alex_Gaynorexarkun: we can't assume a compiler19:12
exarkunAlex_Gaynor: that doesn't sound very cool.19:12
exarkunif 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_Gaynorrffi_platform is for RPython19:13
Alex_Gaynorwe can assume a compiler then19:13
exarkunthat doesn't change the other thing I said19:14
Alex_GaynorI don't disgaree, but that's life19:15
exarkunmaybe at least put all of the insane subtly wrong size and alignment detection logic into a single place19:17
exarkuninstead of spreading it out over the whole library19:17
exarkunso there's one place for someone to look at to have a heart attack19:18
jokey (~jokey@gentoo/developer/jokey) joined #pypy.19:19
whitelynx (~whitelynx@li117-47.members.linode.com) left irc: Quit: Ex-Chat19: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: Leaving19:29
davisagli (~davisagli@davisagli.com) left irc: Excess Flood19:31
davisagli (~davisagli@davisagli.com) joined #pypy.19:31
FAFI have a question regarding PyPy dictionary behavior compared to its CPython equivalent.19:34
kenaan12arigo 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
kenaan12arigo 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
kenaan12arigo default 113992786f8966 15/pypy/: merge heads19:40
gutworthFAF: sure19:43
FAFgutworth : Ok here is what I obseverd.19:43
FAFwith 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
FAFwith 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
gutworthyes, dictionary order is undefined19:44
FAFok19:44
FAFAnd since it is undefined, the order in CPython and in PyPy doesn't have to concord.19:46
gutworthright19:46
FAFOk, 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 :P19:48
Sho_FAF: If you need a reliable key order you probably want OrderedDict (new in 2.7/3.2)19:48
gutworthFAF: just sort them19:48
gutworthand dictionary comparisons don't care about order19:48
gutwortha better way to think of it is they have no order19:49
gutworthrepr() just spits out some arbitrary order19:49
Action: gutworth reflects on how dictionaries are like complex numbers19:49
Alex_Gaynorgrump, where is arigato!19:50
FAFOk, I get there is no order. We just had some algorithm which used the pop function of set.19:51
FAFThe retrieve an arbitrary number from the set19:51
Alex_Gaynoryes, it really is arbitrary :)19:51
Action: Sho_ thinks of today's xkcd19:52
FAFYeah, 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 connection19:53
FAFWell, thanks guy for your lights19:55
Alex_GaynorFAF: an excellent point!  you can probably also "break" it by running on: different OS, different endianness, different integer width19:55
Alex_Gaynor:)19:55
Alex_Gaynorgutworth: do you know much about how virtualizables work?19:57
gutworthI suppose you're trying to recruit me to debug them? :)20:00
Alex_Gaynorgutworth: weeeel, yes :)20:00
whitelynx (~whitelynx@75.110.189.230) joined #pypy.20:02
davisagli (~davisagli@davisagli.com) left irc: Excess Flood20: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 seconds20: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 host20:13
jimbaker (~jbaker@canonical/jimbaker) joined #pypy.20:13
whitelynx (~whitelynx@75.110.189.230) left irc: Read error: Connection reset by peer20:38
Alex_Gaynorgutworth: 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 it20:39
Alex_Gaynorgiven unroll_safe is supposed to be just for performance, Bug!20:39
whitelynx (~whitelynx@75.110.189.230) joined #pypy.20:40
gutworthbingo!20:42
Alex_Gaynorgutworth: 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 investigate20:45
romao (~romao@unaffiliated/errado) left irc: Quit: WeeChat 0.3.6-dev20:47
lizardo (~lizardo@189.2.128.130) left irc: Quit: Leaving20:54
whitelynx (~whitelynx@75.110.189.230) left irc: Read error: Connection reset by peer20:59
Alex_Gaynorgutworth: so I just speant some time trying to build a test case, and failed :(21:07
Alex_Gaynorhttp://paste.pocoo.org/show/396394/21:08
Alex_Gaynorit passes :(21:09
gutworththat's always annoying21:12
Alex_GaynorI'm sure I've failed to make my test sufficiently obscure21:12
Alex_Gaynorany suggestions?21:12
gutworthha, I haven't even got the demo to translate21:13
gutworthwhat's the symtom even? :)21:13
Alex_Gaynoryou saw the ticket right?21:13
Alex_Gaynorthe symptom in real code is any time you have a BUILD_SET nonsense happens21:14
Alex_Gaynorthe symptom in the demo thing is an assertion is failed inside some runtime checks that only happen when not translated21:14
whitelynx (~whitelynx@75.110.189.230) joined #pypy.21:14
gutworthah21:15
Alex_Gaynorthe runtime checks have a nice like check_virtualizable_synced or something21:15
Alex_Gaynorand they appear to check that the array of virtualizable values on the frame match the attributes on the vable object21:15
Alex_Gaynorgutworth: the assertion failed is https://bitbucket.org/pypy/pypy/src/default/pypy/jit/metainterp/virtualizable.py#cl-157 L16321:19
Alex_Gaynorerr1 6921:19
gutworthdoes it make a difference if you turn opts off?21:19
Alex_Gaynorwhich is called from https://bitbucket.org/pypy/pypy/src/default/pypy/jit/metainterp/pyjitpl.py#cl-221221:20
Alex_Gaynorgutworth: make a difference where?21:20
gutworthdoes it fail without opts?21:20
Alex_Gaynorpypyjit_demo you mean?21:20
gutworthyeah21:20
Alex_Gaynorugh, that takes like 20 minutes, you really want me to run that?21:21
gutworthwell, run it in the background21:21
gutworththat would disqualify quite a lot of code :)21:21
lucian (~lucian@78-86-217-168.zone2.bethere.co.uk) left irc: Ping timeout: 240 seconds21:21
Alex_Gaynor:D21:21
gutworthbut how can check_boxes be called?21:22
Alex_Gaynorgutworth: it already has backendopt=False21:22
gutworthit's guarded by "not we_are_translated()"21:22
gutworthI meant jit opts21:22
whitelynx (~whitelynx@75.110.189.230) left irc: Read error: Connection reset by peer21:23
Alex_Gaynorgutworth: I think we_are_translated() is false in pypyjit_demo I guess21:23
gutworth?21:23
gutworthhow can that possible work21:23
Alex_Gaynorgutworth: it's not a JIT opt issue, you can see the problem in the unoptimized traces21:23
gutworthah21:23
Alex_Gaynorit uses llgrpah doesn't?21:23
gutworthyeah21:24
Action: gutworth hasn't used pypyjit_demo in a while21:24
Alex_GaynorLLGraph 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: FAF21:28
amaury_ (~amaury_@56.197.69.86.rev.sfr.net) left irc: Ping timeout: 244 seconds21:40
whitelynx (~whitelynx@75.110.189.230) joined #pypy.21:50
Alex_Gaynorgutworth: ok I ahve something strange: http://paste.pocoo.org/show/396420/ fails, but http://paste.pocoo.org/show/396421/ passes21:58
Alex_Gaynorgutworth: the only difference is the j opcode21:59
gutworthfail as in?22:02
Alex_Gaynorgutworth: as in AssertionError 34 != 3722:02
gutworthah22:03
whitelynx (~whitelynx@75.110.189.230) left irc: Quit: Leaving22:04
Alex_Gaynorgutworth: I still get that if I take away the dont_look_inside on build dict through22:04
Alex_Gaynorthrough*22:04
Alex_GaynorI'm so confused, seems like there's 20 false trails22:05
gutworthvirtualizable tests are hard :)22:05
Alex_Gaynorgutworth: and if I move the can_enter_jit before changing PC it passes22:06
Alex_Gaynorshould have waited for armin :/22:06
gutworthjit hint placement is subtle22:07
Alex_Gaynorshould it effect correctness though?22:07
gutworthI wouldn't be suprised :)22:07
Alex_Gaynorstrictly speaking I suppose those are bugs though?22:08
gutworthwell, it's done afterwards in the python interp22:09
Alex_Gaynorwhat do you mean?22:09
Alex_Gaynoryou mean the modification of pc?22:10
gutworththere might be a right way22:10
Sho_ (~EHS1@kde/hein) left irc: Read error: Connection reset by peer22:10
gutworthyes22:10
Alex_Gaynorthe can_enter_jit comes first in th epython one22:10
Alex_Gaynorsince the pc doesn't get set on self until that method returns22:10
Alex_GaynorAFAIK22:10
Sho_ (~EHS1@kde/hein) joined #pypy.22:11
gutworthAlex_Gaynor: I think I found it22:23
gutworththe trace is calling BUILD_SET__AccessDirect_None22:24
gutworthbut it shouldn't be accessing directly22:24
Alex_Gaynorgutworth: oh yeah?  I rewrote this "interp" to be closer to the python one for this example, but it's giving my obscure errors22:24
gutworthso it updates the frame22:24
gutworthdirectly 22:24
Alex_GaynorLLInterpException is the worst thing ever22:24
gutworthand the metainterp never finds out about it22:24
gutworthand the virtualizable frame is out of sync!22:25
Alex_Gaynorgutworth: Ah!  why is it doing that?  because it's self?22:25
gutworthno, the annotator is wonrg22:25
gutworthwrong22:25
gutworthlemme figure out how to fix this22:26
kost-bebix (~kost@195.95.210.249) left irc: Ping timeout: 258 seconds22:27
Alex_Gaynorgutworth: first figure out how to test it!22:27
kost-bebix (~kost@195.177.74.243) joined #pypy.22:27
gutworthwell, that's implied22:27
Alex_Gaynorhehe22:28
Alex_Gaynorexarkun would be pleased22:28
gutworthexarkun shaped my testing philosphy22:28
Alex_Gaynoralways write a test?22:28
gutworthat 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 Quit22:32
whitelynx (~whitelynx@75.111.197.204) joined #pypy.22:44
Alex_Gaynorgutworth: in LLInterp how can I see what a variable's value is?22:44
gutworthI think stuff is in llframe.bindings22:46
Alex_Gaynorbah, I can't find what I'm looking for22:48
Alex_Gaynorgutworth: 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 KeyError22:55
gutworthAlex_Gaynor: uhm, look at _virtualizable2_ = [... line22:56
Alex_Gaynorgutworth: haha, holy crap that's an obscure error22:58
gutworthdoubtless22:58
exarkunThe 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_Gaynorexarkun: that's cool, patches welcome :D23:03
bobbyz (~bobbyz@c-24-14-151-193.hsd1.il.comcast.net) left irc: Read error: Connection reset by peer23:04
Alex_Gaynorgutworth: 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 connection23:17
gutworthwhere's the "same place"?23:19
Alex_Gaynorgutworth: it's coming from the unkown opcode branch23:19
gutworthwow, that's weird23:23
Alex_Gaynorgutworth: indeed, you making progress on your test/fix?23:24
gutworthyes, I fixed it with a hack23:25
gutworthand got the example to work23:25
Alex_Gaynorheh, paste it?23:25
gutworthI might have to consult with armin for a proper fix23:25
Alex_GaynorArmin: keeper of the obscure knowledge23:26
gutworths/keeper/creator23:26
Alex_Gaynor:D23:26
Alex_Gaynorcan you paste the patch though, I'm curious where the issue was23:26
gutworthhttp://paste.pocoo.org/show/396443/23:26
Alex_Gaynorah thanks23:26
Alex_Gaynorhahaha23:27
Alex_Gaynorhack indeed23:27
Alex_Gaynorgutworth: if you want to go this approach the fix is simply to put the @unroll_safe on BUILD_SET and be done with it23:28
gutworthyes, that will be the solution23:28
gutworththe fix is to have something explode in translation if something like this happens again, though23:28
gutwortharmin might have a better idea, though23:29
Alex_Gaynorit sounds like it's not fixable, but should error out23:29
Alex_Gaynorrather than break at runtime23:29
gutworthnaturally23:29
Alex_Gaynorgutworth: it sounds like the error is just you can't have dont_look_inside function that is access_directly23:31
gutworthI have to see if anything else has this problem :)23:31
Alex_GaynorI suppose we'll find out if we write a real fix (aka Error) :)23:31
Alex_GaynorI guess the issue is the annotator doesn't see BUILD_SET as don't_look_inside, but it is because it's got a loop23:32
gutworththis is going to need a long comment...23:33
Alex_Gaynorhaha, probably23:33
Alex_Gaynorit'll hardly be the first23:34
Alex_Gaynorhell I've got a 4-5 line comment in Django explaining why you can't use functools.partial for somethign23:34
Alex_Gaynorthere may in fact be a law of triviality or something for code comments23:35
ronny (~ronny@pida/ronny) left irc: Ping timeout: 250 seconds23:37
Alex_Gaynorgutworth: 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 yet23:42
ronny (~ronny@pida/ronny) joined #pypy.23:42
gutworthah, and indeed, that's others23:46
Alex_Gaynor"that's others"?23:47
gutworthmm, I meant there's23:48
Alex_Gaynorwhat other functions?23:48
gutworthfast2locals23:50
gutworthhopefully no one is jitting that...23:50
Alex_Gaynorhehe23:51
Alex_Gaynoris it even possible?  the only way to get to that is exec isn't it?23:51
Alex_Gaynorgutworth: are there any others?23:51
gutworthlocals2fast :)23:52
__name__ (~name@sburn/devel/name) left irc: Remote host closed the connection23:52
Alex_Gaynoraaand, any others? :D23:52
gutworthwe'll see if translation finishes :)23:53
gutworth(while I eat...)23:53
Alex_Gaynorgutworth: I suppose you could raise an error later in the process, even if you can't now?23:54
Alex_Gaynorenjoy dinner23:54
--- Sat May 28 201100:00

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