#pypy IRC log for Friday, 2009-03-20

jewel_ (n=jewel@dsl-242-172-168.telkomadsl.co.za) left irc: Read error: 113 (No route to host)00:13
kb6 (n=kb@c-24-11-108-151.hsd1.mi.comcast.net) left irc: "Java user signed off"00:15
Gonsor (n=gon@p50803674.dip.t-dialin.net) left irc: Remote closed the connection00:19
setanta (n=setanta@ left irc: "Ex-Chat"00:28
fijal (n=fijal@terminal-4-221.retsat1.com.pl) left irc: Read error: 110 (Connection timed out)00:29
Gonsor (n=gon@p50803674.dip.t-dialin.net) joined #pypy.00:38
kasra (n=chatzill@82-44-19-141.cable.ubr03.nmal.blueyonder.co.uk) joined #pypy.00:49
frooschhpk42: mmh. on tuesday juergen wrote 'next week'. seems i've missed it. urx.01:09
merlin1983 (n=merlin@cm147.delta246.maxonline.com.sg) left irc: Read error: 60 (Operation timed out)01:11
Gonsor (n=gon@p50803674.dip.t-dialin.net) left irc: Read error: 113 (No route to host)01:26
kasra (n=chatzill@82-44-19-141.cable.ubr03.nmal.blueyonder.co.uk) left irc: Remote closed the connection01:26
panni_ (i=hannes@ip-88-152-22-213.unitymediagroup.de) joined #pypy.01:29
victorgp (n=Victor@ left irc: "Ex-Chat"01:33
hpk42 (i=55d8698f@gateway/web/ajax/mibbit.com/x-1703ffef77ec1db2) left irc: "http://www.mibbit.com ajax IRC Client"03:10
hpk42 (i=55d8698f@gateway/web/ajax/mibbit.com/x-f82c85fb8a4f8e33) joined #pypy.03:10
hpk42 (i=55d8698f@gateway/web/ajax/mibbit.com/x-f82c85fb8a4f8e33) left irc: "http://www.mibbit.com ajax IRC Client"03:29
hpk42 (i=55d8698f@gateway/web/ajax/mibbit.com/x-eda01345e6f9c9f4) joined #pypy.03:33
bigdog1 (n=scmikes@72-197-8-8-arpa.cust.cinci.current.net) left irc: Read error: 104 (Connection reset by peer)03:55
hpk42 (i=55d8698f@gateway/web/ajax/mibbit.com/x-eda01345e6f9c9f4) left irc: "http://www.mibbit.com ajax IRC Client"03:59
stakkars (n=tismer@i577B7F81.versanet.de) joined #pypy.03:59
jbaker (n=jbaker@c-67-176-103-236.hsd1.co.comcast.net) joined #pypy.04:00
stakkars (n=tismer@i577B7F81.versanet.de) left irc: Success04:00
stakkars (n=tismer@i577B7F81.versanet.de) joined #pypy.04:00
tav (n=tav@ joined #pypy.04:06
stakkars (n=tismer@i577B7F81.versanet.de) left irc: 04:08
ondrej (n=ondra@24-205-99-158.dhcp.reno.nv.charter.com) left irc: "Leaving"04:09
stakkars (n=tismer@i577B7F81.versanet.de) joined #pypy.04:11
tav_ (n=tav@ left irc: Read error: 110 (Connection timed out)04:13
dialtone (n=dialtone@ left irc: Read error: 110 (Connection timed out)04:24
dialtone (n=dialtone@adsl-64-175-34-198.dsl.pltn13.pacbell.net) joined #pypy.04:34
Gonsor (n=gon@p50803674.dip.t-dialin.net) joined #pypy.05:48
gon_ (n=gon@p508036BB.dip.t-dialin.net) joined #pypy.06:06
Gonsor (n=gon@p50803674.dip.t-dialin.net) left irc: Read error: 110 (Connection timed out)06:22
panni_ (i=hannes@ip-88-152-22-213.unitymediagroup.de) left irc: Read error: 54 (Connection reset by peer)06:49
FMJaguar (i=FMJaguar@nv-65-173-67-56.dhcp.embarqhsd.net) joined #pypy.06:58
gon_ (n=gon@p508036BB.dip.t-dialin.net) left irc: Remote closed the connection06:58
jbaker (n=jbaker@c-67-176-103-236.hsd1.co.comcast.net) left irc: 07:01
Arnar (n=arnarb@blackhole.hvergi.net) left irc: Read error: 60 (Operation timed out)07:05
Arnar (n=arnarb@blackhole.hvergi.net) joined #pypy.07:05
fynn (n=fynn@unaffiliated/fynn) left irc: "Leaving"07:25
stakkars_ (n=tismer@i577B71CA.versanet.de) joined #pypy.07:48
jbaker (n=jbaker@c-67-176-103-236.hsd1.co.comcast.net) joined #pypy.07:51
stakkars (n=tismer@i577B7F81.versanet.de) left irc: Read error: 110 (Connection timed out)07:56
FMJaguar (i=FMJaguar@nv-65-173-67-56.dhcp.embarqhsd.net) left irc: Client Quit08:52
kenaan03cami 10r6310814 07M(pypy/trunk/pypy/translator/goal/targetgbfullprofiling.py): added float input support ...09:10
kenaan03cami 10r6310914 07M(pypy/trunk/pypy/lang/gameboy/profiling/gameboy_profiling_implementation.py): added float input support ...09:11
hpk42 (i=55d8698f@gateway/web/ajax/mibbit.com/x-b947acede4bf0db2) joined #pypy.09:12
dialtone_ (n=dialtone@adsl-99-136-101-166.dsl.pltn13.sbcglobal.net) joined #pypy.09:18
RealNitro (n=jens@ joined #pypy.09:20
xorAxAx (n=xoraxax@moinmoin/coreteam/alexander) joined #pypy.09:27
dialtone (n=dialtone@adsl-64-175-34-198.dsl.pltn13.pacbell.net) left irc: Read error: 110 (Connection timed out)09:29
fijal (n=fijal@terminal-4-221.retsat1.com.pl) joined #pypy.09:30
pedronis (i=pedronis@vitaly.openend.se) joined #pypy.09:37
fijalpedronis: hi09:37
fijalamaury_: http://codespeak.net:8099/summary/longrepr?testname=modified&builder=pypy-c-lib-python-linux-x86-32&build=191&mod=lib-python.test_pyexpat09:39
fijala *really* obscure failure09:40
fijalI think the test is just bogus09:40
fijalto depend on the exact representation of exception09:40
dialtone (n=dialtone@adsl-64-175-34-198.dsl.pltn13.pacbell.net) joined #pypy.09:41
antocuni (n=antocuni@host51-60-dynamic.52-82-r.retail.telecomitalia.it) joined #pypy.09:43
fijalantocuni: morning09:44
amaury_ (i=5bc34844@gateway/web/ajax/mibbit.com/x-728f38c4a6c7bb36) left irc: "http://www.mibbit.com ajax IRC Client"09:44
amaury_ (i=5bc34844@gateway/web/ajax/mibbit.com/x-db662898e4d9fef7) joined #pypy.09:44
Action: antocuni bought a new car :-)09:46
fijalantocuni: wow!09:47
fijalwhat do you use it for?09:47
antocunito go around? :-)09:48
fijalright, italy...09:48
antocuniseriously, it's absolutely important to have a car where I live, as I'm not in a big city with strong public transport09:48
fijalright right09:49
fijalwhat about a bike then?09:49
antocunino, thanks :-)09:50
Action: antocuni tries to imagine how it would be to go e.g. skiing with a bike09:50
fijalI was biking with crashpad09:50
fijalI think it's worse09:51
antocunifor ~500 km?09:51
fijalthere is completely no train in between?09:51
kenaan03fijal 10r6311114 05A(pypy/branch/virtualizable-specnodes-2/): branch again ...09:52
antocunitrains are good to go to main cities, but you can't get everywhere with them09:53
antocuni(unless you want to spend the whole day traveling)09:54
pjenvey_ (n=pjenvey@astound-69-42-4-166.ca.astound.net) left irc: 09:54
antocunifijal: please remind I'm not in switzerland :-)09:54
dialtone_ (n=dialtone@adsl-99-136-101-166.dsl.pltn13.sbcglobal.net) left irc: Read error: 110 (Connection timed out)09:54
kenaan03pedronis 10r6311214 07M(pypy/trunk/pypy/interpreter/test/test_code.py): (iko, pedronis) ...09:55
kenaan03fijal 10r6311314 pypy/branch/virtualizable-specnodes/pypy/jit/metainterp 07M(compile.py optimize.py specnode.py test_tl.py): an in-progress checkin of changes so-far ...09:55
fijalantocuni: yeah, I know, italy sucks :)09:55
fijalwhat means MULTI_STATUS from svn?09:56
Rhamphoryncus (n=rhamph@unaffiliated/rhamphoryncus) left irc: 09:59
morphis (n=morphis@hfw-ext-wlan.rz.hs-bremen.de) joined #pypy.10:01
pedronisfijal: you are doing something with dir with externals and svn client is getting confused10:05
fijalsvn merge to be precise10:06
fijalbut indeed, in pypy it worked10:06
fijalpedronis: we're down to 11 failures, good10:09
kenaan03fijal 10r6311414 07M(pypy/branch/virtualizable-specnodes-2/pypy/jit/metainterp/test/test_tl.py): some example for blog, skip so far ...10:11
kenaan03fijal 10r6311514 07M(pypy/branch/virtualizable-specnodes-2/pypy/jit/metainterp/test/test_vable_optimize.py): fix test ...10:17
tav_ (n=tav@ joined #pypy.10:21
arigato (n=arigo@d83-181-125-199.cust.tele2.ch) joined #pypy.10:29
kenaan03pedronis 10r6311614 07M(pypy/trunk/pypy/objspace/std/test/test_obj.py): (iko, pedronis) ...10:30
tav (n=tav@ left irc: Read error: 110 (Connection timed out)10:31
tav (n=tav@ joined #pypy.10:32
kenaan03afa 10r6311814 07M(pypy/trunk/pypy/module/pyexpat/interp_pyexpat.py): Give more precise error messages in ParseCreate ...10:34
zejn (n=hruske@ joined #pypy.10:40
tav_ (n=tav@ left irc: Read error: 110 (Connection timed out)10:40
fijalarigato: morning10:42
fijalE       AttributeError: type object 'MIFrame' has no attribute 'opimpl_force_cast'10:44
fijalarigato: also, I found out that our optimizations does not work for objects without vtables10:45
arigatooups, we may be missing tests about them10:45
arigatoopimpl_force_cast: that's new10:45
fijalwhat's new?10:46
zejn (n=hruske@ left #pypy ("Leaving").10:46
arigatoopimpl_force_cast didn't show up so far10:46
pedronisarigato: morning10:46
arigatowhat are you trying to compile that contains a "force_cast" operation?10:46
arigatopedronis: hi!10:46
fijalarigato: print x10:47
arigatofijal: I'm sure there is tons of unspecified context information that I should ideally also be aware of10:47
fijalarigato: no, really10:47
jewel_ (n=jewel@dsl-242-133-68.telkomadsl.co.za) joined #pypy.10:47
fijalI try to print an integer10:47
fijalanyway, doesn't matter if it doesn't work10:48
fijalregarding non-vtable things tuples are one example10:48
pedronisarigato: we found a builtinshortcut bug10:48
arigatois it related to my recent checkin?10:48
kenaan03pedronis 10r6311914 pypy/trunk/pypy/objspace/std/test 07M(test_builtinshortcut.py test_unicodeobject.py): (iko, pedronis) ...10:50
pedroniswe checked in a skipped test that shows the problem10:50
pedronischr(128) == unichr(128)10:51
pedronisinstead of giving a warning and then false10:51
pedronisthe other direction works10:51
arigatoit explodes on Python 2.4 too (gives a warning only in >= 2.5)10:53
arigato(that's not an excuse, I know :-)10:54
pedronisone solution is too implement the other direction explicitly too10:56
pedronisthe issue is that in shortcut case10:56
pedroniswe fallback to unicode unicode comparison10:56
pedronisgoing through the conversion10:56
pedroniswhich explodes instead of giving a warning10:57
arigatoyes, but what happens in the non-shortcut case then?10:57
pedronisthe question is what will happen to the 10:58
arigatoah, you mean that str==unicode will actually call eq__Unicode_String, normally10:59
pedronisthat's how it works in the normal case10:59
pedroniswithout the shortcut11:00
pedronisbut that may change with the fix11:00
arigatoah, str.__eq__("a", u"b") returns NotImplemented11:01
arigatobut only without builtinshortcut, right?11:01
pedronisbuiltin shortcut11:01
pedronishas no influence at that level11:01
arigatoah right, it's even before11:01
arigatotoo many levels11:01
pedroniswhat I fear11:02
fijalarigato: ExplicitVirtualizableTest is bogus11:02
pedronisis that the fix11:02
pedroniswill have that call11:02
cfbolz (n=cfbolz@fwstups.cs.uni-duesseldorf.de) joined #pypy.11:02
pedronisnot give NotImplemented11:02
arigatopedronis: uh, why?11:02
pedroniswe need to define eq_String_Unicode11:03
arigatoa better fix should be in builtinshortcut.py only11:03
arigatoif possible11:03
arigatoor even multimethod.py11:03
pedronisseems a bit hard11:04
pedronisis we managed that then we would get the descopr rules into the multimethods11:04
pedronisgiven how unnatural multimethod wise they are it doesn't seem trivial11:05
pedronismaybe we can just do something in terms of stopping the shortcut 11:05
pedronisfor thise pair of types11:05
arigatocan't we tweak the expanded_order for the first argument?11:05
arigatoso that it no longer delegates to another type11:05
arigatoit might remove the shortcut on "int == float" too but I'm not sure I care that much11:06
pedronisI see11:06
pedronisso you would reduce the shortcut to the cases that don't involve conversions11:06
arigatoat least for the first argument, yes11:07
pedroniswe can try11:07
arigatoit's also safer -- I'm not sure there aren't other obscure cases like this one11:07
kenaan03afa 10r6312014 pypy/trunk/pypy/module/rctime 07M(__init__.py test_rctime.py): time.tzname should be a tuple. ...11:07
Topic changed on #pypy by cfbolz!n=cfbolz@fwstups.cs.uni-duesseldorf.de: PyPy the flexible snake (irc-logs: http://wyvern.cs.uni-duesseldorf.de/irc-logs/pypy/ ) | <arigato> fijal: I'm sure there is tons of unspecified context information that I should ideally also be aware of11:08
fijalcfbolz: get off me11:09
cfbolzthis is a _great_ quote11:10
arigatofijal: "print" makes the jit explode when seeing os_write_llimpl11:11
arigatowhich it should really never see, I suppose11:12
fijalit should at some point11:12
fijalbut not now11:12
arigatowell, no11:12
arigatowe have to call an external function at some point anyway11:12
fijalbut jit should call it directly11:13
fijalnot via some rpython wrapper11:13
arigatoand I think it's fine to keep all rffi-based hacking out of sight of the jit11:13
fijalnot now for sure11:13
arigatoyes :-)11:13
fijalcan I move prepare_rebuild_ops back to instnode?11:14
arigatowe only need to pass the cpu11:15
fijalbecause it makes sense :)11:15
arigatoyes, I thought we needed the whole 'self'11:15
fijalnot any more11:16
arigatotype object 'MIFrame' has no attribute 'opimpl_getarraysize'11:16
arigatoconfused confused11:16
morphis (n=morphis@hfw-ext-wlan.rz.hs-bremen.de) left irc: Read error: 110 (Connection timed out)11:17
morphis (n=morphis@hfw-ext-wlan.rz.hs-bremen.de) joined #pypy.11:20
kenaan03arigo 10r6312114 07M(pypy/branch/pyjitpl5/pypy/jit/backend/llgraph/llimpl.py): Missing case to support rop.NEW. ...11:25
kenaan03arigo 10r6312214 pypy/branch/pyjitpl5/pypy 07M(policy.py support.py test_basic.py rlist.py): Minimal support for "print" in RPython. ...11:25
arigatofijal: I'm not sure, but maybe r63121 fixed the issue with rop.NEW11:26
fijal (n=fijal@terminal-4-221.retsat1.com.pl) left irc: Read error: 110 (Connection timed out)11:32
fijal (n=fijal@terminal-4-221.retsat1.com.pl) joined #pypy.11:33
jbaker (n=jbaker@c-67-176-103-236.hsd1.co.comcast.net) left irc: Nick collision from services.11:44
fijalarigato: no11:45
fijalwe don't optimize it11:45
kenaan03fijal 10r6312314 pypy/branch/virtualizable-specnodes-2/pypy/jit/metainterp 07M(compile.py optimize.py pyjitpl.py specnode.py test_vable_optimize.py test_virtualizable.py virtualizable.py): hopefully fix the virtualizable spec nod ...11:46
fijalarigato: branch is mostly done11:46
fijalthere is one issue left about existing bridges11:46
fijal(which we don't update)11:46
fijalbut stuff is there11:46
fijal+ x86 backend + rpythonization11:46
fijalbut feel free to review11:46
arigatoa bit confused about why you needed to make a branch11:47
kenaan03fijal 10r6312414 pypy/branch/virtualizable-specnodes-2/pypy/jit/backend/llgraph 07M(llimpl.py runner.py): missing backend updates ...11:47
fijalbecause I was unsure whether it'll work11:47
arigato"some example for blog, skip so far" sounds exactly like the kind of checkin that shouldn't go in yet another branch11:48
fijalI'm being puzzled with branches11:49
fijalI would like to merge this branch as of now11:49
fijaland do tiny fixes on pyjitpl511:49
arigatogo ahead11:49
fijalbut I would like you to review first11:49
fijalwhat about that?11:49
arigatoI'm still trying to figure out what the branch is about :-)11:49
fijalthe branch is about missing fields11:50
fijalon virtualizables11:50
arigatois it about a precise test?11:50
fijalprecisely about test_virtual_obj_on_always_virtual11:50
kenaan03pedronis 10r6312514 07M(pypy/trunk/pypy/objspace/std/test/test_stringobject.py): (iko, pedronis) ...11:50
fijaland test_pass_always_virtual_to_bridge11:50
fijalin test_virtualizable.py11:50
arigatothat much was very unclear by looking at the log :-)11:50
fijalI'm trying :)11:51
fijalthis breaks x86 backend so far11:51
fijalI'm off to the swimming pool11:53
fijalfeel free to review :)11:54
fijalthis change will (when finished) open the gate to see more of pypy11:54
arigatonever mind, I'm reading the diff...11:55
fijalbecause it exploded on f611:55
fijalno, it's important11:55
arigatoah, right11:55
arigatoif it makes f6 work nicely, then it's indeed a big step forward11:56
fijalI don't know yet :)11:56
fijalbut that was the point at least11:56
fijalso modulo bugs, yes11:56
fijalyou can think about fixing x86 backend (and doing FRAMESIZE as well)11:57
kenaan03fijal 10r6312614 07M(pypy/branch/virtualizable-specnodes-2/pypy/jit/metainterp/optimize.py): add an XXX ...12:01
arigatoI'm still quite unsure if this was a good idea or just a pile of hacks12:03
kenaan03pedronis 10r6312714 07M(pypy/trunk/pypy/module/_rawffi/test/test__rawffi.py): (iko, pedronis) ...12:10
hpk42arigato: a thin line sometimes :) 12:10
cfbolzany sufficiently advanced pile of hacks is indistinguishable from magic12:11
arigatoespecially given that we discussed yesterday a cleanup12:11
cfbolz (n=cfbolz@fwstups.cs.uni-duesseldorf.de) left #pypy ("Leaving").12:12
arigato(and I don't see at all how this change makes doing FRAMESIZE any easier -- it's worse if anything, or I am missing something)12:12
fijalarigato: exactly12:14
fijaland you're asking why I made a branch...12:14
arigatono, I see why12:14
fijalwe discussed a cleanup yesterday12:14
fijalbut I don't see how this is relevant12:14
cfbolz (n=cfbolz@fwstups.cs.uni-duesseldorf.de) joined #pypy.12:15
Action: cfbolz --> food12:15
fijalarigato: in other words, I don't see how I can make it less complex12:16
arigatook, maybe we didn't discuss the cleanup completely12:16
fijalwithout pushing the loop back through optimize.py12:16
fijalthrough optimize_loop to be precise12:16
arigatoI thought about what would occur if the backend is asked to always compile a loop and a number of bridges, and never to patch a jump to go to a bridge12:17
fijalthat does not change a thing about having to patch the old loop, no?12:18
arigatoit gives a clearer picture of what the backend is allowed to keep references to12:19
arigatoe.g. right now I have no clue if the backend would actually explode because you add arguments to mergepoints and jumps12:20
fijalx86 would be rather happy12:20
fijaleven without recompilation12:20
fijalI still fail to see how backend is relevant here12:21
arigato"there is still one outstanding change to support already compiled bridges"12:22
arigatobut I don't see how you can do that12:23
fijalwhy not?12:23
fijalyou just walk bridges and do the same as for main loop12:23
arigatobut you need to do something in the backend too12:23
fijal(that is, patch merge point, jump and guard_ops)12:23
fijalyes, the same thing as for the main loop12:23
fijalto be more precise, x86 would need to extend stacklocs and locs for operations12:25
arigatook, then what dou you plan to do in CPU386.update_loop()?12:25
fijaland do something about guard_recorvery code and bootstrap_code12:25
fijal(probably just compile new of those)12:26
fijaland that's it12:26
arigatowhat about currently-running pieces of assembler?12:26
fijalthat's another question :)12:27
fijalso we need to either patch return addresses etc.12:27
fijalor we need to completely recompile everything12:27
fijaland I think recompiling everything is not that bad12:27
arigatobut recompiling everything should not be a concern of the backend at all12:27
fijalso we'll call compile_operations instead of update_loop12:28
pedroniswe found a bug in rangelist12:28
pedronisit cannot behave correctly in the face of inplace operations12:28
pedronisas it is implemented no12:29
pedronisbecause it cannot preserve identity12:29
fijalis it required?12:30
arigatowhy not?12:30
arigatofijal: of course12:30
arigatofijal: for += and *=12:30
pedronisyou need something like multilist to get the right behavior12:31
fijalint does not preserve identity12:31
arigatopedronis: no12:31
arigatothere is "w_rangelist.w_list"12:31
arigatoso it's doing multilist-like things by hand all over the place12:31
pedronisah, I didn't notice12:32
pedronisthen it needs to grow lots more code12:32
hpk42didn't mwhudson play around with multi-lists sometime? 12:32
arigatoit needs an inplace_add__xxx12:32
pedronisnot sure I want to work on that now12:32
arigatook, I can do it12:32
pedronisI will turn it off12:32
arigatoit's probably just a couple of functions to add12:33
fijalarigato: I can do it, you review :)12:33
arigatofijal: I already started12:33
fijalcan you finish the review first?12:33
arigatowhat about the swimming pool?12:34
fijalwell, whatever really12:34
fijalI broke my bike :(12:34
fijaland a place to fix it opens at two12:34
fijalI suppose I'll try to walk there then12:34
Action: fijal off12:34
arigatosee you12:35
pedronisthere are quite a few inplace ops that needs to be supported12:35
pedronisah, I see12:36
pedronisforce and the delegation do the right thing in most cases12:36
arigatoare there?12:36
pedronisexcept when the op12:36
arigatowhat more than += and *= is there?12:37
pedronisis supposed to return the list again12:37
pedronisarigato: no12:37
pedronisbut as usual you need to stare at the code a bit to find out12:37
morphis_ (n=morphis@hfw-ext-wlan.rz.hs-bremen.de) joined #pypy.12:37
morphis (n=morphis@hfw-ext-wlan.rz.hs-bremen.de) left irc: No route to host12:37
arigatothey are the only inplace_xxx in listobject.py12:38
pedronisbtw only module/test_operator.py run with pypy-c -A shows the problem12:39
kenaan03arigo 10r6312814 pypy/trunk/pypy/objspace/std 07M(rangeobject.py test_rangeobject.py): Missing += and *= on range() objects. ...12:40
Action: pedronis -> lunch12:50
pedroniswe are waiting for a translation for the builtinshortcut bug12:50
pedronisto run some testing before checking that in12:51
fijalarigato: grrr other mess12:51
fijalwhat happens if we have a path that doesn't use virtualizable at all?12:52
fijalthen it becomes NotSpecNode12:52
fijalthis is also a problem12:54
kenaan03fijal 10r6312914 pypy/branch/virtualizable-specnodes-2/pypy/jit/metainterp 07M(compile.py specnode.py test_virtualizable.py): A test and a partial fix ...12:58
lmoura_ (n=lauro@mobile.cin.ufpe.br) joined #pypy.13:07
cfbolzmultilist is a bit horrrible13:11
cfbolzit's not tested enough and has lots of corner-cases13:12
cfbolzbesides, it never showed real benefits, apart from what ranglelist already does13:12
fijalcfbolz: it's super jit-friendly13:14
cfbolzI am saying that rangelist is great13:14
cfbolzbut multilist is not13:14
fijalmultilist is jit friendlt13:15
arigatoit's also buggy, so well13:16
fijalnot *right now*13:16
fijalbut I'm arguing with carl about "showed no benefits"13:16
cfbolzwell, it didn't so far13:17
cfbolzand what do you have in mind that would help the jit greatly?13:17
fijalfor example int-only list13:18
cfbolzah, well13:18
morphis_ (n=morphis@hfw-ext-wlan.rz.hs-bremen.de) left irc: Read error: 110 (Connection timed out)13:28
jandem (n=jandem@unaffiliated/jandem) joined #pypy.13:36
kenaan03fijal 10r6313114 pypy/branch/virtualizable-specnodes-2/pypy/jit/metainterp 07M(compile.py graphpage.py history.py optimize.py pyjitpl.py specnode.py test_virtualizable.py): * allow VirtualizableSpecNode to match NotSpecNode (unus ...13:37
fijalarigato: ping?13:37
kenaan03fijal 10r6313214 07M(pypy/branch/virtualizable-specnodes-2/pypy/jit/backend/llgraph/runner.py): store catches in jump2target as well ...13:38
Action: pedronis back13:41
fijalarigato: I'm having trouble making llgraph backend behave13:46
kenaan03fijal 10r6313314 pypy/branch/virtualizable-specnodes-2/pypy/jit/metainterp 07M(compile.py optimize.py): clean up, call update_tree from a single place ...13:47
fijalarigato: basically I want the "update_tree" to recompile a bit everything13:47
fijaland it explodes13:47
fijalthis way or other way13:47
fijalarigato: I think this interface will make x86 backend easy to work with13:49
fijalyou'll simply recompile the whole tree and be done13:49
arigatowell we are changing the interfaces a bit too much for quick hacks13:52
arigatowe should pause and redesign the interface13:52
fijalgo ahead13:52
fijalI think interface like "recompile the whole tree"13:53
Action: arigato -> walk for thoughts13:53
fijalis a good first step13:53
Action: fijal -> walk to repair the bike13:54
kenaan03pedronis 10r6313414 pypy/trunk/pypy/objspace/std 07M(builtinshortcut.py test_builtinshortcut.py): (iko, pedronis) ...14:00
igorto (n=igor@201-75-49-26-ma.cpe.vivax.com.br) joined #pypy.14:02
kirmadoes the jit do some "magic" gc-alloc removal now already? (read about it in *some* doc)14:04
kirmahmm :)14:06
igortohello ... there is someone here that can i talk about gsoc? .. in OpenBossa pypy guy said that C++ binding is a little bit deprecated ... and i am interested in working on it14:07
fijaligorto: "deprecated"?14:08
fijaldo we have C++ bindings?14:08
fijalI suppose you can talk to us regarding soc, yes :)14:09
igortoin fact his said that nobody is working on that14:09
fijalthat's closer14:09
fijalyes, that's true14:09
igortofijal: i saw here: http://morepypy.blogspot.com/2008/10/sprint-discussions-c-library-bindings.html14:09
fijalbut that's discussion right?14:10
igortosome discussion about c++ binding too14:10
fijalnoone implemented anything14:10
hpk42igorto: huh?  i was the one at openbossa and didn't intend to say anything like that - pypy does not have a c++ binding, i had a slide on this and talked about possibilities14:10
igortohpk42: sorry ..i misunderstood14:11
antocuni (n=antocuni@host51-60-dynamic.52-82-r.retail.telecomitalia.it) left irc: "Leaving"14:11
hpk42sorry if i wasn'T clear enough 14:11
jandem (n=jandem@unaffiliated/jandem) left irc: Read error: 104 (Connection reset by peer)14:11
jandem (n=jandem@unaffiliated/jandem) joined #pypy.14:11
igortobut you guys believe that it is an interesting gsoc idea? of course that it is very very complicated ... seen in the post we have many problems in create that bindings14:13
igortohpk42: in fact many guys from Nokia like a lot and stayed very interested14:14
hpk42good to hear - i also had some discussions 14:14
hpk42i think it's a very worthwhile GSOC idea14:15
amaury_It would be a nice improvement ideed14:16
hpk42i read that the Reflex guys plan a new release this month or so 14:16
hpk42(on their website) 14:16
Action: hpk42 thinking about doing a lightning talk at pycon about ideas for PyPy related GSoc projects 14:18
Nick change: kneetone -> skintone14:20
LvQi (n=lv@ joined #pypy.14:22
verte (n=verte@dsl-124-150-97-116.vic.westnet.com.au) joined #pypy.14:26
fijal_ (n=fijal@terminal-4-221.retsat1.com.pl) joined #pypy.14:30
setanta (n=setanta@ joined #pypy.14:31
fijal_ (n=fijal@terminal-4-221.retsat1.com.pl) left irc: Remote closed the connection14:36
jacob22 (n=jacob@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Read error: 104 (Connection reset by peer)14:42
jacob22 (n=jacob@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.14:43
fijal (n=fijal@terminal-4-221.retsat1.com.pl) left irc: Read error: 110 (Connection timed out)14:45
kenaan03pedronis 10r6313814 pypy/trunk/pypy 07M(test_marshal.py runicode.py test_runicode.py): (iko, pedronis) ...15:05
verte (n=verte@dsl-124-150-97-116.vic.westnet.com.au) left irc: "http://coyotos.org/"15:10
kenaan03afa 10r6314014 07M(pypy/trunk/pypy/module/rctime/interp_time.py): Implement init_timezone() on Windows. ...15:16
fijal (n=fijal@terminal-4-221.retsat1.com.pl) joined #pypy.15:16
arigatofijal: rehi15:21
fijalarigato: rehi15:22
fijalany thoughts?15:23
arigatofijal: kind of15:24
Action: fijal listens15:25
lmoura_ (n=lauro@mobile.cin.ufpe.br) left irc: Client Quit15:30
arigatofirst a trivial thought: in your branch, we don't really need "extensions" because it's fine to add new arguments in the middle of the list instead of at the end, no?15:31
fijalif we decide to go for recompilation, yes, it's fine15:31
fijalalthough I found it even messier to implement15:32
arigatowhat I thought about is how much simpler it would be to go for always-recompilation15:33
fijalthat's a good question15:34
arigatoit would mean:15:34
arigatofirst we don't have loops and bridges,15:34
arigatoand guards,15:34
arigatobut always conditional jumps (expected to be not taken too often)15:34
fijalwhat about bridges between loops?15:35
arigatoso the basic Loop class becomes a complete tree of operations15:35
arigatosome branches might end with a 'jump' going to another loop15:35
fijalwe still have guards, no?15:35
arigatostrictly, no, because we now have the code needed in case of "guard failure"15:36
arigatoso we can just as well compile it as a small branch15:36
fijalwow, that's super cool15:36
arigatothe small branch would probably end by raising an exception, GuardFailed, with all the live values as arguments15:37
arigatoso in this model we can again reverse the stack order:15:38
arigatowe no longer need the assembler bit to be below the JIT code in the stack15:38
arigatoin other words, the backend only needs a simplified interface:15:39
arigato"compile this loop and all its branches"15:39
arigato"run this loop"15:39
arigatowhich might end up raising GuardFailed15:39
fijalah cool15:40
fijalit's a *real* simplification15:40
kenaan03pedronis 10r6314214 07M(pypy/trunk/pypy/module/sys/test/test_sysmodule.py): (iko, pedronis) ...15:40
panni_ (i=hannes@ip-88-152-22-213.unitymediagroup.de) joined #pypy.15:40
arigatothe backend should not keep references to the ResOperation after "compile this loop"15:41
arigatoso the frontend is free to later add new arguments to 'mergepoint' or whatever15:41
arigatoI suppose that it also makes sense for a CLI backend15:42
fijalthe issue how to do it nicely stays though15:42
fijalhow to nicely attach arguments, that is15:43
arigatoattach arguments to what?15:43
arigatoah, to the mergepoint15:44
arigatoyes, but now it's internal to optimize.py15:44
LvQi (n=lv@ left irc: "Leaving."15:44
fijalthe pure fact that mess is internal15:44
fijaldoesn't make it less of a mess15:44
arigatoa bit15:44
fijala bit15:44
fijalbut if the model allow us to nicely expand not-yet-expanded specnodes15:45
fijalit would simplify a lot :)15:45
LvQi (n=lv@ joined #pypy.15:45
arigatoI suppose that you can expand specnodes in place in this new model15:46
arigatothe old loop is not really going to be reused any more15:46
arigatoI suppose15:46
fijalI did that15:47
fijaland it's a mess15:47
fijaleven ignoring the fact that it's a mess afterwards15:48
fijalthe thing is that we cannot nicely insert arguments a bit everywhere15:48
fijallike in guard_ops etc15:48
arigatoI see15:48
fijalfor that we would need to keep perfect specializer alive15:49
fijalwe can also leave some hooks15:49
fijallike "if this gets expanded put it here"15:49
arigatostill, cross-jumps (going to another loop) are annoying15:52
fijalI don't know how to do it nicely15:52
fijalwhy exactly?15:52
arigatoall the mess is there, I think15:52
arigatono, wait, all jumps are a problem15:54
arigatoyou might have a loop that is perfectly specialized,15:54
arigatoand later you want to add "this actually contains a virtual"15:54
arigatobut you have no clue if that's actually going to be the case at the jump15:54
fijalwhere this jump leads btw?15:55
fijalso isn't the answer "yes"?15:55
fijalwhat else can it be at the beginning of the loop?15:56
fijalthe only reason for putting virtual there15:56
fijalis because the original old loop did not care15:56
fijalwe don't expand nodes that are known to escape for example15:59
fijal(that would be pointless, no?)16:00
fijalarigato: so?16:06
arigatoI was off in other thoughts16:07
fijalok :)16:07
arigatoI don't get why, more deeply, optimize_loop() and optimize_bridge() are different in the sense that only the first one does intersect_input_and_output()16:16
lsoto (n=lsoto@ joined #pypy.16:18
fijalbecause the other one need to adapt to specnodes from the target, no?16:18
fijalintersect_input_and_output makes no sense16:19
fijalsince it might have different args even16:19
arigatobecause the target specnodes have already been compiled16:19
arigatobut we're seeing now a case where we want to extend the specnodes because they are not enough16:20
fijalwe can really do intersect_input_and_output between more things16:20
fijalindeed, that makes no sense any more16:20
fijalwe have no test so far that contains more specialized loop and less specialized loop, right?16:21
fijalI see16:21
arigatoyes, I think we managed to write one or two such tests16:21
LvQi (n=lv@ left irc: "Leaving."16:21
arigatobut that's not enough by far16:22
kenaan03pedronis 10r6314314 07M(pypy/trunk/pypy/module/gc/interp_gc.py): (iko, pedronis) ...16:30
mwhudson (n=mwh@canonical/launchpad/mwhudson) left irc: Read error: 110 (Connection timed out)16:31
arigatopedronis: fwiw, you have checked in an "assert start > 0" at interp-level that might fail16:32
arigatodepending on what is in /proc/xxx/status16:33
arigatowell, it's not like the int() call couldn't fail before16:33
arigatothe whole function should probably be written at app level16:34
pedronisI was half tempted to kill the feature16:34
arigatothat too16:34
arigatoit makes little sense until the XXX is fixed ("should be done with the help of the GCs")16:34
arigatoit's also obscure to have it exposed in a seemly-normal name16:35
arigatoin the gc module16:35
arigatoit should have "pypy" in the name or something16:36
pedroniswell, is a rest from the EU project I suppose16:36
pedronisI think cfbolz wrote it16:36
cfbolzI fear so16:36
pedronisseems this day that proc file contains tabs16:40
arigato (n=arigo@d83-181-125-199.cust.tele2.ch) left irc: "See you"17:13
Action: pedronis off17:23
pedronissee you17:23
pedronis (i=pedronis@vitaly.openend.se) left irc: "ERC Version 5.3 (IRC client for Emacs)"17:23
zejn (n=hruske@89-212-104-197.dynamic.dsl.t-2.net) joined #pypy.17:25
EspenG (n=espen@ left irc: "Ex-Chat"17:26
EspenG (n=espen@ joined #pypy.17:26
zejn (n=hruske@89-212-104-197.dynamic.dsl.t-2.net) left irc: Client Quit17:27
jandem (n=jandem@unaffiliated/jandem) left irc: "Ik ga weg"17:29
kenaan03afa 10r6314614 pypy/trunk/pypy/module/rctime 07M(__init__.py interp_time.py): Initialize time.timezone &co when pypy-c loads the module, ...17:31
lmoura (n=lmoura@ joined #pypy.17:47
fijalproc file can contain whatever...17:54
cfbolz (n=cfbolz@fwstups.cs.uni-duesseldorf.de) left irc: "Leaving"17:57
dialtone (n=dialtone@adsl-64-175-34-198.dsl.pltn13.pacbell.net) left irc: Read error: 60 (Operation timed out)17:59
dialtone (n=dialtone@adsl-99-136-101-166.dsl.pltn13.sbcglobal.net) joined #pypy.18:07
Gonsor (n=gon@p57A8ABF3.dip0.t-ipconnect.de) joined #pypy.18:12
RealNitro (n=jens@ left irc: "Leaving"18:16
Rhamphoryncus (n=rhamph@S010600146c3c91a1.ed.shawcable.net) joined #pypy.18:30
Gonsor (n=gon@p57A8ABF3.dip0.t-ipconnect.de) left irc: Remote closed the connection18:33
pjenvey_ (n=pjenvey@astound-69-42-4-166.ca.astound.net) joined #pypy.18:41
tav_ (n=tav@ joined #pypy.19:01
bigdog (n=scmikes@72-197-8-8-arpa.cust.cinci.current.net) joined #pypy.19:09
tav (n=tav@ left irc: Connection timed out19:10
Gonsor (n=gon@p57A8ABF3.dip0.t-ipconnect.de) joined #pypy.19:17
ondrej (n=ondra@24-176-186-44.static.reno.nv.charter.com) joined #pypy.19:26
fijalondrej: hi19:31
ondrejhi fijal 19:31
igorto (n=igor@201-75-49-26-ma.cpe.vivax.com.br) left irc: Read error: 110 (Connection timed out)19:47
kenaan03fijal 10r6315214 pypy/extradoc/talk/pycon2009 05A(/status/ /vm-summit/): I'm too lazy to do anything, create directories ...20:02
tav (n=tav@ joined #pypy.20:20
tav_ (n=tav@ left irc: Read error: 110 (Connection timed out)20:21
Gonsor (n=gon@p57A8ABF3.dip0.t-ipconnect.de) left irc: Remote closed the connection20:27
tav_ (n=tav@ joined #pypy.20:32
arigato (n=arigo@d83-181-125-199.cust.tele2.ch) joined #pypy.20:32
jacob22 (n=jacob@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) left irc: Read error: 131 (Connection reset by peer)20:38
jacob22 (n=jacob@c-22c5e055.1321-1-64736c11.cust.bredbandsbolaget.se) joined #pypy.20:39
tav (n=tav@ left irc: Connection timed out20:49
fijalarigato: evening20:57
fijaldo you have 5 minutes?20:57
santagada (n=santagad@ joined #pypy.21:00
kenaan03fijal 10r6315614 pypy/extradoc/talk/pycon2009/status 05A(author.latex makepdf merlinux-logo.jpg pypy-logo.png status.txt stylesheet.latex title.latex): blindly import pycon uk 2008 talk ...21:05
santagada (n=santagad@ left irc: 21:42
arigato (n=arigo@d83-181-125-199.cust.tele2.ch) left irc: "See you"23:27
ondrej (n=ondra@24-176-186-44.static.reno.nv.charter.com) left irc: "Leaving"23:37
lsoto (n=lsoto@ left irc: Read error: 110 (Connection timed out)23:43
setanta (n=setanta@ left irc: "Ex-Chat"23:44
jewel_ (n=jewel@dsl-242-133-68.telkomadsl.co.za) left irc: Read error: 113 (No route to host)23:53
--- Sat Mar 21 200900:00

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